Testy penetracyjne, zwane również pentestami lub czasami etycznym hakowaniem, to symulowany atak przeprowadzany na system komputerowy w celu oceny jego bezpieczeństwa. Mogą one obejmować próbę naruszenia dowolnej liczby systemów i aplikacji (np. interfejsów programowania aplikacji (API) czy serwerów frontend/backend) w celu wykrycia luk w ich zabezpieczeniach, takich jak choćby nieaktualne oprogramowanie czy brak filtrowania danych przesyłanych z zewnątrz, które zwiększają podatność na ataki polegające na wstrzyknięciu kodu. Osoby przeprowadzające tego typu próby (nazywane pentesterami lub ethical hackerami) używają tych samych narzędzi i technik, co osoby atakujące, aby zidentyfikować i zweryfikować słabości w systemach IT. Testy penetracyjne są zwykle przeprowadzane przy użyciu ręcznych lub zautomatyzowanych technologii w celu systematycznego testowania serwerów, punktów końcowych, aplikacji internetowych, sieci bezprzewodowych, urządzeń sieciowych, urządzeń mobilnych i innych potencjalnych punktów narażonych na atak. Gdy wybrana podatność zostanie pomyślnie wykorzystana w konkretnym systemie, urządzeniu czy aplikacji, testerzy mogą próbować użyć zaatakowanego punktu do wykorzystania kolejnych luk w innych zasobach i rozpropagować atak na całość systemu, w szczególności poprzez stopniowe uzyskiwanie wyższych poziomów uprawnień i dostępów.

Uzyskane informacje o wszelkich lukach w zabezpieczeniach, które zostały pomyślnie zidentyfikowane w trakcie przeprowadzania testów penetracyjnych, są zazwyczaj agregowane i przedstawiane osobom zarządzającym systemami informatycznymi oraz kierownictwu organizacji, aby wskazać na konieczność „dobezpieczenia się” w zakresie cyberbezpieczeństwa, wyciągnięcia wniosków i ustalenia priorytetów związanych z nimi działań naprawczych. Podstawowym celem testów penetracyjnych jest ocena narażenia użytkownika końcowego na zagrożenia spoza naszej własnej sieci oraz analiza wszelkich możliwych konsekwencji jakie tego typu incydenty mogą powodować. W idealnym świecie każda organizacja powinna projektować i wdrażać swoją infrastrukturę oraz systemy IT eliminując jednocześnie wszelkie luki w zabezpieczeniach. Oczywiście w praktyce stan ten jest niemożliwy do osiągnięcia – nawet najlepiej zabezpieczone systemy posiadają swoje podatności. Pentesty wspierają m.in. następujące działania:

  • Wyszukiwanie słabych punktów infrastruktury i oprogramowania
  • Wspieranie zgodności z przepisami dotyczącymi prywatności i bezpieczeństwa danych (np. KRI, UoKSC, RODO)
  • Zapewnienie jakościowych i ilościowych wyników zapewnienia cyberbezpieczeństwa
  • Wskazanie priorytetów w planach budżetowych dla kierownictwa

Istnieją różne rodzaje testów penetracyjnych, które podzielić możemy przede wszystkim w zależności od obiektu poddawanego sprawdzeniu:

  • Usługi sieciowe – głównym celem jest wykrycie najbardziej podatnych na ataki podatności w zabezpieczeniach infrastruktury sieciowej organizacji (na przykład serwerów, firewalla, przełączników, routerów, drukarek, stacji roboczych i innych);
  • Sieć bezprzewodowa – najczęściej wykonywane w siedzibie danej organizacji, ponieważ testerzy muszą znajdować się w zasięgu sygnału sieci bezprzewodowej Wi-Fi, aby uzyskać do niej dostęp. Inną opcją jest umieszczenie np. Wi-Fi Pineapple na miejscu, aby testujący mogli zdalnie ukończyć testy.
  • Aplikacja internetowa – testy te są ukierunkowane i bardzo szczegółowe. Aby test został uznany za ukończony pomyślnie, należy zebrać i wykazać informacje o punktach końcowych danej aplikacji WWW.
  • Testy socjotechniczne (tzw. social engineering) – polegają na przeprowadzeniu symulowanego ataku, mającego na celu nakłonienie personelu organizacji do ujawnienia poufnych informacji, takich jak np. login i hasło do systemu czy aplikacji. Narzędzia wykorzystywane w tym celu to przede wszystkim telefon, poczta e-mail, poczta tradycyjna czy podsłuch.
  • Testy bezpieczeństwa fizycznego – pokazują słabości fizycznych elementów infrastruktury IT, takich jak np. system kontroli dostępu czy kamery. Informacje uzyskane w ten sposób pomogą wskazać kierownictwu jak należy poprawić stan bezpieczeństwa fizycznego infrastruktury IT.

Aktualnie obowiązujące przepisy (UoKSC, RODO, KRI) wprost nie nakładają obowiązku przeprowadzania testów penetracyjnych, jednak ich wykonywanie powinno być dobrą praktyką stosowaną zarówno przez organizacje sektora finansów publicznych, jak i prywatnego. Rozporządzenie KRI wymaga, aby były przeprowadzane okresowe audyty bezpieczeństwa (nie rzadziej niż raz na rok), a wykonywanie testów penetracyjnych jest jak najbardziej jedną z jego form. Ponadto warto zaznaczyć, iż opublikowane we wrześniu 2022 r. Narodowe Standardy Bezpieczeństwa (dokładnie NSC NSC 800-53) również zalecają wykonywanie testów penetracyjnych, co w przyszłości może okazać się nowym wymaganiem stawianym przed jednostkami publicznymi.

Konieczność wykonywania testów penetracyjnych infrastruktury IT we wszystkich organizacjach przetwarzających dane w formie elektronicznej jest oczywista. Słabości techniczne wykorzystywanych urządzeń, systemów czy aplikacji mogą nie zostać dostrzeżone podczas standardowego audytu bezpieczeństwa, dlatego też pentesty stanowią solidne jego uzupełnienie.

Autor: Tomasz Cieślik