Żaden system nie jest w stu procentach odporny na zagrożenia. Testy penetracyjne, często nazywane pentestami, to specjalistyczny proces oceny bezpieczeństwa, który polega na analizie, ocenie i wzmacnianiu wszystkich elementów systemu informatycznego przed potencjalnymi atakami z cyberprzestrzeni. Firmy coraz częściej wykorzystują programy typu „bug bounty”, aby identyfikować słabości w swoich zabezpieczeniach. Eksperci ds. cyberbezpieczeństwa, specjalizujący się w testach penetracyjnych, odkrywają i zgłaszają te słabości w ramach prawnych, korzystając z systemów nagród za zgłaszanie błędów. Jak dokładnie przebiega taki proces?
1. Pasywne zbieranie i analizowanie danych
Pierwszym etapem zarówno testu „bug bounty”, jak i pełnego pentestu jest zebranie przez testera informacji o systemie, który jest celem analizy. Biorąc pod uwagę różnorodność metod ataków i testów, pentester musi ustalić priorytety na podstawie zebranych informacji, aby wybrać najskuteczniejsze podejście testowe.
Ten krok obejmuje identyfikację istotnych szczegółów dotyczących infrastruktury systemu docelowego, takich jak nazwy domen, zakresy sieciowe, adresy IP i routery. Ponadto gromadzone są wszelkie dane, które mogą zwiększyć skuteczność potencjalnego ataku, na przykład informacje o pracownikach i ich numery telefonów.
Dane dostępne z ogólnodostępnych źródeł podczas tego etapu mogą dostarczyć zaskakująco istotnych informacji. Aby osiągnąć ten cel, etyczny haker korzysta z różnych źródeł, ze szczególnym uwzględnieniem strony internetowej firmy będącej celem oraz jej profili w mediach społecznościowych. Poprzez dokładne zbieranie tych informacji, tester buduje solidny fundament pod efektywne działanie w programie „bug bounty”.
Należy jednak pamiętać, że większość organizacji ustala pewne zasady, których tester penetracyjny musi przestrzegać. Przestrzeganie tych zasad jest kluczowe z punktu widzenia prawnego.
2. Aktywne gromadzenie i skanowanie informacji
Podczas aktywnego skanowania, tester penetracyjny identyfikuje urządzenia aktywne i pasywne, które działają w obrębie zakresu adresów IP, wykorzystując dane zebrane podczas fazy pasywnej. Na podstawie tych informacji pentester ustala kierunek dalszych działań, priorytetyzując potrzebne testy.
W tym kroku, haker nieuchronnie zdobywa informacje na temat systemu operacyjnego, otwartych portów, działających usług i ich wersji.
Dodatkowo, jeśli organizacja prowadząca program „bug bounty” legalnie zezwoli testerowi penetracyjnemu na monitorowanie ruchu sieciowego, możliwe jest zebranie krytycznych danych o infrastrukturze systemu. Jednak zazwyczaj organizacje unikają udzielania takiego zezwolenia, dlatego pentester musi działać w ramach ustalonych zasad.
3. Faza analizy i testowania
W tym etapie, pentester, po wcześniejszym ustaleniu, jak aplikacja docelowa może zareagować na różne próby włamania, podejmuje próbę nawiązania aktywnych połączeń z wykrytymi systemami. Innymi słowy, jest to faza, w której etyczny haker wchodzi w interakcję z systemem, używając usług takich jak FTP, Netcat i Telnet.
Choć na tym etapie nie zawsze dochodzi do penetracji, głównym celem jest sprawdzenie i zweryfikowanie danych zebranych w poprzednich fazach.
4. Próba manipulacji i wykorzystania luk
Pentester wykorzystuje wszystkie dane zebrane w poprzednich krokach w jednym celu: podjęcia próby uzyskania dostępu do systemu docelowego w sposób, w jaki zrobiłby to prawdziwy, złośliwy haker. Dlatego ten krok ma kluczowe znaczenie, ponieważ pentesterzy muszą myśleć jak potencjalni cyberprzestępcy.
Na tym etapie, pentester próbuje przeniknąć do systemu, wykorzystując informacje o systemie operacyjnym, otwartych portach, uruchomionych usługach i dostępnych metodach eksploatacji na podstawie ich wersji. Biorąc pod uwagę, że portale internetowe i aplikacje składają się z dużej ilości kodu i bibliotek, złośliwy haker ma wiele potencjalnych punktów ataku. Dobry pentester powinien uwzględnić wszystkie możliwe scenariusze i wykorzystać wszystkie wektory ataku, które są dozwolone w ramach regulaminu.
Konieczne jest tutaj posiadanie zaawansowanej wiedzy i doświadczenia, aby skutecznie wykorzystać istniejące metody eksploatacji, unikając uszkodzenia systemu i zacierając ślady podczas próby przejęcia kontroli nad nim. Ten etap testu penetracyjnego jest więc najbardziej kluczowym momentem, ponieważ ślady pozostawione przez potencjalnego cyberprzestępcę są istotne dla zespołów reagowania na incydenty.
5. Próba podniesienia poziomu uprawnień
Bezpieczeństwo systemu jest tak mocne, jak jego najsłabsze ogniwo. Jeśli hakerowi uda się uzyskać dostęp do systemu, zazwyczaj loguje się on jako użytkownik z niskimi uprawnieniami. W tym etapie tester penetracyjny powinien dążyć do uzyskania uprawnień na poziomie administratora, wykorzystując słabości w systemie operacyjnym lub środowisku.
Następnie, wykorzystując zdobyte wyższe uprawnienia, pentester próbuje uzyskać kontrolę nad kolejnymi urządzeniami w sieci, aż do uzyskania uprawnień użytkownika najwyższego poziomu, takiego jak Administrator domeny lub Administrator bazy danych.
6. Raportowanie i prezentacja wyników
Po zakończeniu testów penetracyjnych i programu „bug bounty”, pentester musi przedstawić organizacji szczegółowy raport zawierający opis wykrytych luk, kroków podjętych podczas testu i sposobu, w jaki udało się wykorzystać znalezione słabości. Raport powinien zawierać zrzuty ekranu, przykładowe kody, opis etapów ataku i potencjalne konsekwencje wykorzystania danej luki.
Raport powinien zawierać także propozycje rozwiązań, które pomogą zlikwidować każdą wykrytą lukę. Testy penetracyjne powinny być przeprowadzane z zachowaniem poufności i niezależności. Etyczny haker nie powinien ujawniać poufnych informacji zdobytych podczas testów ani nadużywać tych informacji poprzez tworzenie dezinformacji. Działania takie są ogólnie niezgodne z prawem.
Dlaczego testy penetracyjne są ważne?
Nadrzędnym celem testów penetracyjnych jest ocena bezpieczeństwa infrastruktury systemowej z perspektywy potencjalnego napastnika i eliminacja wykrytych słabości. Oprócz identyfikacji słabych punktów w ochronie organizacji, testy te pozwalają ocenić skuteczność polityki bezpieczeństwa, sprawdzają poziom świadomości pracowników w kwestiach bezpieczeństwa i określają, w jakim stopniu firma wdrożyła zasady cyberbezpieczeństwa.
Testy penetracyjne stają się coraz bardziej istotne, a do analizy poziomu bezpieczeństwa infrastruktury firm i aplikacji potrzebne jest wsparcie wykwalifikowanych i certyfikowanych specjalistów w dziedzinie etycznego hakowania.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.