Skip to content
Strona główna » Blog » Testy penetracyjne – przegląd i omówienie podstawowych zagadnień

Testy penetracyjne – przegląd i omówienie podstawowych zagadnień

  • by

Testy penetracyjne, znane również jako pentesty, to kluczowy element dbania o bezpieczeństwo systemów informatycznych. Stanowią one skuteczną formę zabezpieczenia przed potencjalnymi atakami, identyfikując słabości w systemie, które mogą być wykorzystane przez hakerów. Jednocześnie same w sobie nie gwarantują całkowitego bezpieczeństwa. Choć jest to kluczowy element zapewnienia bezpieczeństwa informacji, to trzeba traktować go jako weryfikacje wcześniejszych wysiłków na rzecz bezpieczeństwa naszego rozwiązania.

Poniżej przedstawiam przegląd testów penetracyjnych, ich metody, rodzaje, wymagania, restrykcje oraz znaczenie komunikacji podczas procesu. Całość opakowana w analogie w celu łatwiejszego zrozumienia.

Metody Wykonywania Testów Penetracyjnych

Black Box

Testy tego rodzaju polegają na ocenie systemu z zewnątrz, bez wiedzy na temat jego wewnętrznej struktury. Testując czarną skrzynkę, eksperci ds. bezpieczeństwa symulują ataki z perspektywy potencjalnego intruza. Wykorzystywane są narzędzia skanujące porty, analiza nagłówków pakietów oraz testy penetracyjne, które pomagają zidentyfikować potencjalne podatności systemu.

/// Testy te można porównać do sytuacji, w której jesteśmy jak detektyw, próbujący rozwikłać tajemnicę bez żadnych wskazówek. Sprawdzamy, czy intruz z zewnątrz może znaleźć jakiekolwiek luki w systemie, które poprowadzą go dalej w głąb naszego systemu.

White Box

Przeciwnie do testów czarnej skrzynki, testy białej skrzynki opierają się na pełnej wiedzy o strukturze systemu. Testerzy mają dostęp do kodu źródłowego aplikacji, co umożliwia szczegółową analizę i identyfikację potencjalnych zagrożeń. W ramach tego podejścia stosuje się analizę kodu źródłowego aby dokładnie zweryfikować bezpieczeństwo systemu.

/// W tym przypadku, jak inżynier pracujący nad projektem, znamy każdy szczegół systemu, a naszym zadaniem jest sprawdzenie, czy wszystko działa zgodnie z planem. To jakbyśmy mieli plany budynku i sprawdzali, czy fundamenty są solidne.

Grey Box

Metoda ta stanowi połączenie testów czarnej i białej skrzynki. Testerzy dysponują pewnym stopniem wiedzy na temat systemu, ale nie znają go w całości. Podczas tego typu testu weryfikowana jest cała aplikacja na różnych poziomach uprawień, dlatego przed testem należy dostarczyć konta dla każdego typu uprawnień w aplikacji przez co tester może zweryfikować podatności będące na zewnątrz oraz wewnątrz systemu. W mojej opinii jest to najbardziej efektywna metoda, ponieważ zapewnia największe pokrycie (przetestowanie) systemy w aspekcie możliwych podatności.

/// To mieszanka obu podejść. Można to porównać do sytuacji, w której mamy niektóre informacje o tajemnicy, ale nie wszystkie aby rozwiązać zagadkę. To tak, jakbyśmy byli poszukiwaczem skarbu, który zna mapę ale jeszcze nie zbadał drogi do skarbu.

Rodzaje Testów Penetracyjnych

Testy Aplikacyjne

Te testy koncentrują się na badaniu bezpieczeństwa aplikacji, takich jak strony internetowe, aplikacje mobilne czy oprogramowanie desktopowe. Specjaliści ds. bezpieczeństwa wykorzystują standardy branżowe (OWASP, NIST oraz inne) aby zidentyfikować potencjalne luki w zabezpieczeniach aplikacji.

Testy Infrastruktury

Podczas testu infrastruktury skupiamy się na identyfikacji serwisów z którymi możemy wejść w interakcje. Celem jest identyfikacja potencjalnych zagrożeń związanych z konfiguracją i architekturą sieci np. poprzez wykorzystanie znanych luk w oprogramowaniu albo błędnych konfiguracji

Testy Fizyczne

Testy fizyczne oceniają aspekty bezpieczeństwa związane z dostępem fizycznym do budynków, sprzętu czy innych urządzeń.

Czas Trwania i Wymagania Wstępne

W zależności od rozmiaru i złożoności systemu, czas trwania testów może wynieść od kilku dni do kilku tygodni.

Przed wykonaniem pentestu istotne jest aby uzyskać zgodę na jego wykonanie, bez takiego zielonego światła nie można pójść dalej. Wstępne wymagania obejmują dostęp do dokumentacji, kodu źródłowego oraz informacji na temat architektury systemu. Następnie aby zacząć pracę często wymagane jest aby połączyć się z siecią docelową bądź dodać adres IP testera do adresów które mogą odwiedzić aplikacje (chyba, że aplikacja jest publiczna, dostępna z internetu). Kiedy już tester może dostać się do celu, następnym krokiem będzie uwierzytelnienie czyli wcześniejsze dostarczenie kont. Najlepiej po 2 konta na 1 typ uprawnień tj. 2 konta adminstracyjne, 2 konta użytkowników binznesowych itd.

Możliwe Restrykcje

Środowisko Produkcyjne

Gneralnie na potrzeby testu zaleca się posiadania osobnego środowiska, które jest kopią środowiska produkcyjnego lecz bez prawdziwych danych (przez kopie rozumiemy tutaj te samą wersje aplikacji, te same ustawienia).

Czasem natomiast występuję jedno środowisko bądź klient chcę aby przetestować środowisko produkcyjne i to wiążę się z pewnym ryzykiem dlatego lepiej wcześniej ustalić zasady takiego pentestu i omówić tzw. rules of engagement (ROE) – możę się to wiązać z ograniczeniem testu tylko do ataków manualnych, wykluczenia pewnych typów ataku (DOS) bądź atakowania używając specjalnego prefixu bądź sufixu do łatwego posprzątania środowiska po teście.

Raport jako Produkt Końcowy

Jako produkt końcowy testu penetracyjnego klient otrzymuje rapor, który jest omówiony na spotkaniu końcowym. Raport może zostać umieszczony w standardowym szablonie bądź w podesłanym przez klienta. Taki raport zawiera z reguły zakres testu penetracyjnego, ramy czasowe w których został wykonany, metodę jaką test został wykonany, narzędzia jakie był użyte podczas testu, podsumowanie, zidentyfikowane podatności wraz opisem, stopniem krytyczności i rekomendacjami w celu naprawienia. Oczywiście wszystko jest opakowane w format ułatwiający zrozumienie np poprzez screenshoty.

Komunikacja i Spotkania

Spotkania przed, podczas i po testach penetracyjnych są kluczowe dla skutecznego przeprowadzenia procesu i zapewnienia pełnej wartości dla klienta.

Przed rozpoczęciem testów, spotkanie pozwala na jasne zdefiniowanie celów, zakresu i oczekiwań klienta, co umożliwia dostosowanie podejścia testowego do konkretnych potrzeb.

Spotkania bądź stałą komunikacja (e-mail) podczas testów są niezbędne do ścisłej współpracy i bieżącego informowania klienta o postępie, szczególnie w przypadku krytycznych znalezisk.

Po zakończeniu testów, spotkanie pozwala na przedstawienie raportu z wynikami w sposób zrozumiały dla klienta, umożliwiając dyskusję nad rekomendacjami i planami działania. To także okazja do zadawania pytań i uzyskiwania dodatkowych wyjaśnień. Ważność tych spotkań polega na efektywnej komunikacji, zabezpieczeniu interesów klienta i umożliwieniu szybkiej reakcji na ewentualne zagrożenia.

Podsumowanie

Testy penetracyjne stanowią nieodłączny element strategii zapewnienia bezpieczeństwa aplikacją webowym. Współpraca z ekspertami, transparentność w procesie i zrozumienie raportu końcowego to kluczowe elementy skutecznego wzmocnienia systemu przed potencjalnymi zagrożeniami.