Wywiad z Code Risk — bezpłatna usługa analizy kodu źródłowego dla wtyczek WordPress
Opublikowany: 2018-10-17Luki we wtyczkach WordPress były przyczyną większej liczby ataków na strony niż luki w rdzeniu WordPress. Jednym z powodów, dla których tak się dzieje, jest brak zasobów. Oprogramowanie zawsze będzie zawierało luki, chociaż rdzeń WordPressa jest sprawdzany przez tysiące ludzi. Ponadto fundacja ma przydzielone środki, aby zapewnić jak najbezpieczniejszy kod.
Z drugiej strony, wielu twórców wtyczek nie ma dostępnych zasobów, aby zapewnić, że kod ich wtyczek jest bezpieczny, zwłaszcza jeśli jest to niewielka wtyczka. Chociaż to wszystko się zmieni, jak wyjaśnia Hendrik Buchwald w tym wywiadzie. Hendrik jest inżynierem oprogramowania, badaczem bezpieczeństwa i współzałożycielem RIPS Technologies.
Co robią technologie RIPS?
RIPS Technologies to firma high-tech z siedzibą w Bochum w Niemczech. Dostarczamy zautomatyzowaną analizę bezpieczeństwa dla aplikacji PHP jako lokalną instalację oprogramowania lub wysoce skalowalną usługę w chmurze. Nasze innowacyjne algorytmy analizy kodu, które są specjalnie dedykowane językowi PHP, potrafią zidentyfikować złożone luki w zabezpieczeniach nowoczesnych aplikacji jak żadne inne rozwiązanie. Naszą misją jest dostarczanie programistom i specjalistom ds. bezpieczeństwa możliwie najdokładniejszej i najskuteczniejszej analizy bezpieczeństwa.
Co twoim zdaniem jest najczęstszym błędem popełnianym przez programistów i jakie są 3 najczęstsze luki w zabezpieczeniach wtyczek WordPress?
Nic dziwnego, że najczęstszymi problemami są luki w zabezpieczeniach XSS (cross-site scripting), które występują za każdym razem, gdy dane wprowadzone przez użytkownika są drukowane bez odpowiedniego oczyszczenia strony odpowiedzi HTML. Po pierwsze, problemy te pojawiają się często, ponieważ dane wyjściowe są najczęstszą operacją aplikacji PHP, a zatem są bardziej narażone na naruszenia bezpieczeństwa niż inne operacje. Po drugie, biorąc pod uwagę różnorodność kontekstów HTML i pułapki związane z oczyszczaniem, problemy te można łatwo wprowadzić. Luki w zabezpieczeniach XSS (cross-site scripting) są dość poważne w WordPressie, ponieważ można je wykorzystać na przykład do wstrzyknięcia kodu PHP za pomocą edytora szablonów. Na szczęście wymagają interakcji z administratorem.
Drugim najczęstszym problemem są luki typu SQL injection. Wstrzyknięcia SQL są poważniejsze niż luki w zabezpieczeniach cross-site scripting, ponieważ w najgorszym przypadku można ich użyć do wydobycia poufnych informacji z bazy danych – na przykład haseł – bez jakiejkolwiek interakcji użytkownika. W rezultacie mogą być wykorzystywane do w pełni zautomatyzowanych złośliwych ataków.
Jak dobry lub zły jest według Ciebie ogólny stan bezpieczeństwa najpopularniejszych/pobieranych 1000 wtyczek?
Trudno na to odpowiedzieć, ponieważ nie przyjrzałem się szczegółowo 1000 najpopularniejszych wtyczek. Takie operacje zajęłyby wiele miesięcy, a zanim będziemy gotowi, musielibyśmy zacząć od nowa, ponieważ niektóre wtyczki są bardzo często aktualizowane.
Dlatego ważne jest, aby korzystać z automatycznej usługi bezpieczeństwa, takiej jak Code Risk. Chociaż z wyniku CodeRisk, który jest generowany ze zautomatyzowanych i niezweryfikowanych skanów kodu źródłowego, które wykonujemy w repozytorium, mogę powiedzieć, że kod większości nie jest zły, chociaż są też wtyczki ze złą oceną. Większość z tych wtyczek jest jednak bardzo duża i ma wiele funkcji. To automatycznie zwiększa szanse na posiadanie gdzieś błędu. Z naszych ręcznych testów możemy również powiedzieć, że duże wtyczki często mają logiczne luki.
Czy możesz nam trochę opowiedzieć o tym, co oferujesz twórcom wtyczek WordPress?
Nasz najnowszy projekt CodeRisk pomaga programistom i użytkownikom bezpłatnie oceniać zagrożenia bezpieczeństwa związane z kodem ich wtyczki. Na razie ogranicza się to do wtyczek WordPress hostowanych w oficjalnym repozytorium WordPressa.
Automatycznie pobieramy nowe wtyczki z repozytorium WordPressa i skanujemy je za pomocą naszego skanera bezpieczeństwa PHP RIPS. Szczegółowe wyniki RIPS są połączone w łatwą do zrozumienia wartość ryzyka. Wartość uwzględnia powagę udanej eksploatacji, liczbę znalezionych problemów w stosunku do rozmiaru kodu oraz prawdopodobieństwo nadużycia problemu przez stronę trzecią.
Twórcy wtyczek mogą zażądać pełnych szczegółowych wyników dla własnych wtyczek za pośrednictwem zautomatyzowanego systemu. Mogą wykorzystać te informacje, aby naprawić ewentualne luki w zabezpieczeniach i wzmocnić swój kod, dzięki czemu ekosystem WordPressa będzie bezpieczniejszy. Ideą CodeRisk jest umożliwienie programistom wtyczek samodzielne znajdowanie problemów w ich kodzie, nawet jeśli nie są doświadczeni w bezpieczeństwie. Chociaż prowadzimy wiele badań dotyczących bezpieczeństwa WordPressa i zgłaszamy wiele luk w zabezpieczeniach programistom, jest zbyt wiele wtyczek, aby wszystkie analizować ręcznie.
Czy wielu twórców wtyczek subskrybuje i korzysta z Twojej bezpłatnej usługi analizy kodu źródłowego? Jaka jest reakcja społeczności WordPressa?
Obecnie istnieje kilkudziesięciu twórców wtyczek, którzy używają CodeRisk do zmniejszania ryzyka luk w zabezpieczeniach swoich wtyczek. Do tej pory otrzymaliśmy wiele pozytywnych opinii, a CodeRisk pomógł już rozwiązać setki problemów.
Automatyczne skanery zwykle zgłaszają fałszywe alarmy i przypadki brzegowe, których nie można wykorzystać. Biorąc pod uwagę, że wielu programistów nie zna się na zabezpieczeniach, co robisz, aby im pomóc i uniknąć fałszywych alarmów?
Nasi użytkownicy powinni mieć świadomość, że wyróżniamy kod, który stanowi zagrożenie dla bezpieczeństwa. Wśród niezamierzonych luk w zabezpieczeniach obejmuje to również inne ustalenia, na przykład słabe zabezpieczenia, które mogą później stać się zagrożeniem.
Nie musisz wiedzieć, czy i w jaki sposób da się wykorzystać problem, aby mieć pewność, że w przyszłości nie stanie się zagrożeniem dla bezpieczeństwa. Na przykład, jeśli drukujesz wartość zwracaną przez funkcję, upewnij się, że została ona poprawnie zakodowana, aby zapobiec usterkom związanym z wykonywaniem skryptów między witrynami. Nawet jeśli zwracana wartość nie zawiera jeszcze danych wejściowych użytkownika, może tak nie być w przyszłości.
Gdzie widzisz ten darmowy projekt WordPress? Masz na to plany? Może oferowanie usług premium dla programistów, pomagających im zrozumieć wyniki i jak najlepiej je wykorzystać?
Następna wersja CodeRisk doda obsługę motywów WordPress, ponieważ są one integralną częścią większości blogów i często zawierają również luki w zabezpieczeniach. W pewnym momencie chcielibyśmy rozszerzyć CodeRisk na inne systemy zarządzania treścią. Obecnie nie ma planów na usługę premium, ale jeśli będzie na nią wystarczający popyt, może się to zmienić.
Czy możesz dać programistom WordPress dwie lub trzy najlepsze bezpieczne praktyki programistyczne do przestrzegania, aby mogli pisać bezpieczniejszy kod?
Jeśli chcesz napisać bezpieczniejszy kod, nigdy ślepo nie ufaj istniejącemu kodowi. Zawsze zakładaj, że funkcje mogą zwracać dane wejściowe użytkownika i traktuj je jako takie. Aby uzyskać ogólne informacje na temat pisania bezpiecznego kodu PHP, zapoznaj się z przewodnikiem 2018 Guide to Building Secure PHP Software.
Odwiedź stronę CodeRisk, aby uzyskać więcej informacji na temat usługi. A jeśli jesteś programistą wtyczek WordPress, a Twoja wtyczka znajduje się w repozytorium wtyczek WordPress, załóż darmowe konto, aby zobaczyć, jakie luki może mieć Twoja wtyczka.