9 zasad maksymalizacji korzyści z testów penetracyjnych i programów bug bounty

Prowadzenie testów penetracyjnych na własną rękę jest wyjątkowo trudne, uciążliwe i skomplikowane, więc większość firm deweloperskich decyduje się  zlecać tego typu prace komuś z zewnątrz. Są jednak pewne sekretne sztuczki, bez których nie skorzystasz na testach penetracyjnych w 100%. Przeczytaj poradnik Dawida Bałuta, aby dowiedzieć się co zrobić, aby z współpracy z testerami wyciągnąć jak najwięcej.


 

Dawid Bałut

Pentester i Bug Hunter z dużym doświadczeniem, który dołączył do defensywnej strony mocy i przez ponad pół dekady pracował jako Architekt Bezpieczeństwa dla korporacji  z Doliny Krzemowej. Na co dzień buduje systemy zabezpieczeń, szkoli pracowników i automatyzuje wszelkie procesy  bezpieczeństwa.

 

 

 


Oto krótka lista zaleceń, których przestrzeganie pozwoli ci wykorzystać do maksimum pracę pentesterów. Przestrzegając ich na pewno podniesiesz poziom bezpieczeństwa swojego produktu, ale także upewnisz się, że pieniądze, które zainwestowałeś w testy nie idą na marne, a zwrot z inwestycji jest maksymalny.

  1. Dostarczaj pentesterom wszystkich potrzebnych danych przed rozpoczęciem testów.

Nie chcesz, żeby testerzy marnowali czas (i twoje pieniądze) na rekonesans. Zaopatruj ich w dokładne dokumentacje produktów, nagrania wideo prezentujące działanie produktu, listy API i wszystko, czego mogą potrzebować oraz dokładne informacje o tym, czego od nich oczekujesz. Niczego nie pomijaj, a prace przebiegną sprawniej i będą efektywniejsze.

  1. Nie baw się w bezsensowne gierki i nie przeszkadzaj pentesterom w pracy, bo są po twojej stronie i macie wspólny cel – bezpieczeństwo twojej firmy.

Zmiana nastawienia i otwarcie się może być bardzo trudne. Spotkałem w mojej karierze wiele zespołów security, które wręcz prowadziły wojny z zewnętrznymi pentesterami, bo tak mocno bały się o swoją pozycję i miały tak rozbujane ego. Wynajmujesz jednak pentesterów po to, aby wykonali dla ciebie pewną pracę i wnieśli jak najwięcej do twojej firmy, więc głupotą jest marnowanie czasu i środków na kłótnie z nimi i blokowanie środowisk testowych. W zależności od kultury korporacyjnej, dobrym pomysłem może być zorganizowanie osobnego zespołu do koordynacji zewnętrznych testów, tak aby uniknąć konfliktu interesów.

  1. Bądź skromy i dokładnie wykonuj zalecenia pentesterów.

Nie irytuj się, kiedy testerzy przekazują ci informacje o tym jak poważne błędy wykryli oraz gdy przesyłają swoje zalecenia dotyczące rozwiązywania problemów. Bardzo możliwe, że znając swoją firmę od podszewki sam jesteś w stanie przeprowadzić nawet trafniejszą analizę ryzyka i inaczej ocenić poziom podatności, pamiętaj jednak, że w większości przypadków pentesterzy dobrze wiedzą co robią i praca dla ciebie nie jest ich debiutem w zawodzie. Jeśli więc będziesz z nimi bezkonfliktowo współpracować i dostarczać im wszystkich informacji, których potrzebują do pracy, to możesz liczyć na dobre rezultaty. Dobrym pomysłem zawsze jest ścisłe podążanie za wytycznymi od testerów, tak aby mieć pewność, że problem został rozwiązany kompleksowo, a potem jeszcze i tak zlecić retesty.

  1. Namierz przyczynę każdego problemu i dowiedz się co zrobić lepiej następnym razem.

Nie zapominaj o szerszej perspektywie i pamiętaj też o różnych miejscach, w których mogło dojść do podobnych błędów, ale których nie wykryli pentesterzy. Zamiast po prostu naprawiać kolejne błędy, postaraj się lepiej zgłębić kod, aby upewnić się, że do takich samych pomyłek nie doszło też w innych aplikacjach. Dopiero potem przeanalizuj swoje praktyki deweloperskie, aby sprawdzić, czy coś można robić lepiej i nie dopuścić do powstawania podobnych błędów w przyszłości.

  1. Niech twoi inżynierowie uczą się od pentesterów i dokładnie studiują raporty.

Nie zatrzymuj całej wiedzy tylko dla siebie i pozwól całemu zespołowi jak najwięcej się z niego nauczyć. Wykorzystuj wszystko, co tylko się da jako interesujące ćwiczenia i okazję na do nauki. Testy penetracyjne w większości firm wykonuje się raz lub dwa razy do roku, więc warto tej okazji nie zmarnować. Z takim podejściem łatwiej będzie inżynierom oprogramowania i QA zacząć stosować nową wiedzę w codziennej pracy.

  1. Upewnij się, że deweloperzy rozumieją wszystkie problemy.

Musisz samodzielnie analizować raporty, zamiast po prostu zasypywać nimi swoich pracowników. Każdy w firmie powinien wykazywać wysoki poziom świadomości bezpieczeństwa, aby skutecznie korzystać z nowych zasobów wiedzy w praktyce i tworzyć coraz lepsze, bezpieczniejsze oprogramowanie. Jeśli cokolwiek jest zbyt skomplikowane, to ciężko to zapamiętać i stosować w pracy.

  1. Upewniaj się, że takie same błędy nie pojawiają się ponownie, wykonując testy regresyjne.

Nie ma sensu, żeby pentesterzy marnowali czas w kółko znajdując identyczne błędy. To nie tylko strata pieniędzy, ale też dodatkowe wystawianie się na atak, jeśli pojawi się jakaś regresja, którą wykorzysta atakujący zanim pentesterzy ją wykryją. Prowadzimy testy penetracyjne aby podnosić jakość produktów i bezpieczeństwo firm, więc jeśli nie starasz się jak najwięcej wynieść ze współpracy z nami, to jest to po prostu marnotrawstwo.

  1. Regularnie sprawdzaj zmiany poczynione przez pentesterów i odwiedzaj ich profile, aby wykryć niespodziewane regresje.

Warto replikować czynności wykonywane przez pentesterów i samodzielnie przygotowywać niezależne scenariusze testów z ich wykorzystaniem. Kiedy zalogujesz się na konta pentesterów w środowisku testowym, prawdopodobnie zobaczysz tam o wiele więcej błędów niż znalazło się w raportach. Testerzy bezpieczeństwa po prostu skupiają się na zgłaszaniu nieprawidłowości naruszających bezpieczeństwo, bo to jest ich główne zadanie. Nie chcą marnować czasu na opisywanie problemów dotyczących UI/UX, które wyszły na jaw niejako przy okazji wykonywania testów bezpieczeństwa. Skorzystasz więc na samym sprawdzaniu, czy czegoś niepokojącego, ale niewartego wzmianki z punku widzenia pentesterów nie wykryto przez przypadek.

  1. Przeglądaj logi, aby odkryć niezidentyfikowane błędy.

Niektórych rzeczy nie widać z punktu widzenia użytkownika, więc testerzy bezpieczeństwa mogą namieszać w delikatnych systemach i może nawet coś zepsuć (oczywiście nieświadomie i nie celowo). Przeglądając logi możesz trafić na jakieś nierozwiązane wyjątki, błędy serwera i inne informacje wskazujące jak poprawić niezawodność kodu i systemów.

Kiedy nabierzesz trochę wprawy w czytaniu logów generowanych przez testerów, będzie ci łatwo rozpocząć stałe monitorowanie logów dostępu/aplikacji, wykrywać potencjalnie szkodliwe próby ataków hackerskich. Jeśli jakieś słowa kluczowe zaczną się pojawiać tylko podczas prób pentesterskich, to znaczy, że potencjalny agresor również może przeprowadzić podobne testy i je poznać. Jeśli skonstruujesz system alarmowy wokół takiej bazy, to z łatwością przyjdzie ci rozpoznawanie ataków i sprawne odpowiadanie na nie.

Przez lata pracy spotkałem sporo firm, które podejmują się takiego szerokiego zakresu czynności podczas testów penetracyjnych. Stosując się do tych porad, zoptymalizujesz swoje wydatki i podniesiesz zwrot z inwestycji w testy bezpieczeństwa.

Comments are closed.