Bardzo często administratorzy systemów rozumieją i znają ryzyka związane z cybernetycznymi zagrożeniami dla aplikacji, którymi zarządzają. Większość opiera badanie luk w zabezpieczeniach aplikacji i systemów na zautomatyzowanych narzędziach, które wyszukują słabości i generują raporty nawet w kilka kilkanaście minut. Niestety nie jest popularne, a tym bardziej powszechne kompleksowe testowanie podatności aplikacji.
Rynek bezpieczeństwa informacji wypracował wiele zautomatyzowanych narzędzi do wykrywania luk w zabezpieczeniach, jednak większość z nich wyszukuje tylko powierzchowne słabości, a naprawdę skuteczne systemy są skomplikowane wymagają częstych aktualizacji oraz zaangażowania zawsze brakującego czasu administratora, aby osiągnąć efekt w postaci wiarygodnej i pełnej informacji o stanie zabezpieczeń naszych systemów. Niestety to wszystko może nie wystarczyć, gdyż testowanie aplikacji, w których występują poufne informacje może wymagać o wiele bardziej kompleksowego podejścia niż proponują automatyczne systemy testowania podatności. Nie wystarczające może się okazać dla aplikacji internetowych badanie zgodnie z zakresem opisanym w Top 10 OWASP czy WASC, gdzie ze względu na zautomatyzowane skanowanie w wielu przypadkach mogą nie zostać wykryte wszystkie luki. Warto zatem przeprowadzać cyklicznie „ręczne” testy penetracyjne, które np.: pozwolą wykryć luki w logice biznesowej wdrożonych aplikacji.
Ręczne testy penetracyjne, a zautomatyzowane testy penetracyjne, wymagania i różnice. Testowanie ręczne wymaga doświadczonych, wykwalifikowanych profesjonalistów, do przeprowadzenia, dysponujących narzędziami do przechwytywania i obrobienia wyników, pomimo to wyniki testów ręcznych zazwyczaj będą różnić się od siebie w zależności od testu. Zautomatyzowane narzędzia, ze względu na wykorzystanie wbudowanych narzędzi przetwarzania wyników, dostarczają wiele bardziej przejrzyste raporty, nawet wykorzystywane przez mniej doświadczonych testerów. Wyniki testów z wykorzystaniem automatów nie będą się różnić od siebie w zależności od testu.
Dlaczego testowanie jest tak istotne zarówno dla producentów oprogramowania jak i samych administratorów? Naruszenie wizerunku dostawcy aplikacji, może mieć ogromne konsekwencje w postaci utraty klientów lub bezpośrednie skutki finansowe np.: w związku z karami umownymi. Do tego dochodzą przepisy RODO, w szczególności artykuł 32, w który jednoznacznie wskazano wymaganie zapewnienia poufności, integralności i dostępności systemów i usług przetwarzania danych. A zatem aplikacje, które wykorzystujemy do przetwarzania danych nie mogą zawierać podatności, których wykorzystanie może przyczynić się do naruszenia poufności integralności i dostępności danych. W procesie zarządzania podatnościami aplikacji oprócz skanowania podatności, które jest bezwzględnie kluczową techniką zapobiegania naruszeniom bezpieczeństwa, warto uwzględnić takie techniki jak:
– testy penetracyjne – polegające na próbie hakowania własnej aplikacji, zanim zrobi to ktoś inny. Może to być bardzo skuteczny sposób wykrycia słabości systemu, chociaż jest czasochłonny i kosztowny, co sprawia, że bardzo często nie stosowany regularnie;
– symulacja włamań i ataku – technika podobna to testów penetracyjnych, ale w dużej części zautomatyzowana;
– monitorowanie antywirusowe – oprogramowanie antywirusowe, które powinno skupiać się na wyłapywaniu i usuwaniu złośliwego oprogramowania w sieci, a przede wszystkim na zapobieganiu jego przedostawaniu się do sieci;
– skanowanie aplikacji internetowych – narzędzia do skanowania aplikacji internetowych działają na podobnej zasadzie jak skanery podatności, w szczególności wyszukują luki w aplikacjach internetowych, symulując ataki lub analizując kod źródłowy;
– zarządzanie konfiguracją – chociaż wielu administratorów obawia się ataków typu zero-day, dowody sugerujące błędne konfiguracje i brakujące łatki mogą być głównymi słabościami aplikacji.
Każdy rodzaj testów będzie miał swoje wady i zalety jednak nie należy rezygnować z żadnej możliwości oceny bezpieczeństwa naszych aplikacji. Najlepiej gdyby administratorzy łączyli częste testy automatyczne z ręcznymi testami penetracyjnymi wykonywanymi przez ekspertów w dziedzinie bezpieczeństwa aplikacji. Takie kompleksowe podejście do testowania podatności pozwoli zminimalizować ryzyko, że nasze dane zostaną wykorzystane przez hackerów.
Autor: Piotr Maziakowski