test penetracyjny
| Po angielsku | penetration test |
|---|---|
| Którą formą pisać | po polsku Polska nazwa przyjęła się w tekstach i w wyszukiwarce — używaj jej samodzielnie. |
| Inne formy | pentest · pentesty |
| Kategoria | Sieć i infrastruktura obronna |
Test penetracyjny (potocznie pentest) to autoryzowane badanie bezpieczeństwa, w którym testerzy naśladują prawdziwe ataki, aby znaleźć sposoby obejścia zabezpieczeń aplikacji, systemu lub sieci [1]. Brytyjskie NCSC określa go jako metodę uzyskania pewności co do bezpieczeństwa systemu przez próbę przełamania jego zabezpieczeń tymi samymi narzędziami i technikami, których mógłby użyć przeciwnik [2]. Test ma ustalony zakres i czas, a kończy się raportem. Od skanowania podatności różni się tym, że skaner sprawdza tylko możliwość istnienia podatności, a tester próbuje ją wykorzystać, by potwierdzić, że istnieje [1].
Jak przebiega
NIST dzieli test penetracyjny na cztery fazy: planowanie, rozpoznanie, atak i raportowanie [1]. Między atakiem a rozpoznaniem działa pętla: dostęp zdobyty w jednym kroku daje nowe informacje do kolejnego.
Planowanie. Ustala się zasady, cele testu i dokumentuje zgodę kierownictwa; w tej fazie nie prowadzi się żadnych testów [1]. Wynikiem są zasady prowadzenia testu (rules of engagement), dla których NIST podaje wzór [1].
Rozpoznanie. Obejmuje zbieranie informacji i skanowanie. Tester wykonuje skanowanie portów, odpytuje DNS i WHOIS, odczytuje banery usług z numerami wersji [1]. Potem porównuje wykryte usługi i systemy z bazami podatności, na przykład z NVD [1]. Część tej pracy to OSINT.
Atak. Tester próbuje wykorzystać znalezione podatności. Udany exploit nie zawsze daje pełny dostęp, ale może pozwolić na eskalację uprawnień i dalsze badanie sieci; wtedy test wraca do rozpoznania [1]. Według NIST najczęściej wykorzystywane są błędne konfiguracje, zwłaszcza niebezpieczne ustawienia domyślne, niedostateczna walidacja danych wejściowych, jak w SQL injection, warunki wyścigu oraz błędne uprawnienia plików i katalogów [1].
Raport. Raportowanie trwa równolegle z pozostałymi fazami. Na koniec powstaje raport z opisem podatności, oceną ryzyka i wskazówkami naprawczymi [1]. NCSC oczekuje w raporcie także oceny, na ile trafna była wewnętrzna ocena podatności organizacji, i zaleceń poprawy jej procesów [2].
Rodzaje
Rodzaj testu zależy od tego, kogo symuluje tester i ile wie na starcie.
| Rodzaj | Punkt wyjścia testera | Co symuluje |
|---|---|---|
| zewnętrzny | tylko adresy lub zakresy IP [1] | napastnika spoza organizacji [1] |
| wewnętrzny | dostęp do sieci jak zwykły pracownik [1] | złośliwego pracownika, czyli insider [1] |
| aplikacji webowej | adres aplikacji | metodyka OWASP WSTG [3] |
| socjotechniczny | kontakt z ludźmi | np. podszycie się pod dział pomocy [1] |
| TLPT | analiza zagrożeń dla podmiotu | wymagany przez DORA [4] |
Jeśli wykonuje się test zewnętrzny i wewnętrzny, NIST zaleca zacząć od zewnętrznego [1]. Testy aplikacji webowych opisuje przewodnik OWASP Web Security Testing Guide, którego aktualna stabilna wersja to 4.2 [3]. Testy socjotechniczne dotyczą socjotechniki, czyli czynnika ludzkiego.
W WordPressie
Test strony na WordPressie to przede wszystkim test aplikacji webowej. W rozpoznaniu może posłużyć skaner WPScan, który z zewnątrz ustala wersję rdzenia, wtyczki, motywy, konta użytkowników, foldery kopii zapasowych i eksporty bazy [7]. Wynik rozpoznania wskazuje kierunki ataku: podatności we wtyczkach, enumerację użytkowników połączoną z odgadywaniem haseł, pozostawione pliki i interfejsy takie jak XML-RPC.
NIST ostrzega, że podczas testu systemy mogą zostać uszkodzone lub unieruchomione, a doświadczony tester może to ryzyko zmniejszyć, ale nie usunąć [1]. Dla sklepu lub strony z formularzami ma to znaczenie praktyczne. Przed testem na produkcji potrzebna jest aktualna kopia zapasowa. Test na kopii w środowisku testowym jest bezpieczniejszy, ale nie odtwarza w pełni konfiguracji serwera produkcyjnego.
Zgoda i prawo
Test bez zgody właściciela systemu jest włamaniem. W artykule Niebezpiecznika z 2013 roku prawnik wyjaśnia, że art. 267 § 2 Kodeksu karnego penalizuje uzyskanie dostępu do systemu nawet bez przełamywania zabezpieczeń, więc bezprawne jest także wejście na konto z domyślnym hasłem [5]. Zasada, którą formułuje, brzmi: jeśli nie mamy zgody na wejście, nie wchodzimy [5].
Dlatego zakres testu zapisuje się przed jego rozpoczęciem. NCSC zaleca, by przy ustalaniu zakresu uczestniczyli właściciele ryzyka, osoby znające systemy i przedstawiciele zespołu testującego [2]. NIST zaleca, aby przed testem sprawdzić, czy wszystkie publiczne adresy IP z listy celów rzeczywiście należą do organizacji [1]. Na współdzielonej infrastrukturze ten sam adres może obsługiwać strony innych właścicieli.
Znaczenie i ograniczenia
Test penetracyjny pokazuje, jak kilka słabości łączy się w ścieżkę ataku. NIST zauważa, że większość testów szuka kombinacji podatności, które razem dają większy dostęp niż każda z osobna [1]. Test pozwala też sprawdzić, czy obrońcy wykrywają atak i reagują [1].
Test jest pracochłonny, wymaga dużej wiedzy i niesie ryzyko dla systemów [1]. Ze względu na koszt NIST uznaje, że test sieci i systemów organizacji raz w roku może wystarczyć, ale zaleca regularne mniej pracochłonne badania pomiędzy testami [1]. NCSC podkreśla, że test ma weryfikować proces zarządzania podatnościami, a nie być głównym sposobem znajdowania podatności [2]. Decyzje o ryzyku i naprawach pozostają po stronie organizacji [2].
Historia i przykłady
W lipcu 2021 roku Sekurak opisał test penetracyjny ProtonMaila wykonany przez firmę Securitum na zlecenie Protona [6]. Raport, liczący ponad 40 stron, opublikowano publicznie; wykazał jedną podatność typu Reflected XSS o średniej istotności, wymagającą interakcji użytkownika, oraz cztery problemy o niskiej istotności [6].
W sektorze finansowym Unii Europejskiej testy stały się obowiązkiem. Rozporządzenie DORA przewiduje dla wskazanych podmiotów zaawansowane testy „z wykorzystaniem testów penetracyjnych pod kątem wyszukiwania zagrożeń (TLPT)”, przeprowadzane co najmniej co trzy lata [4].
Przypisy
7- [1] NIST SP 800-115: Technical Guide to Information Security Testing and Assessment · NIST
- [2] Penetration testing · NCSC
- [3] OWASP Web Security Testing Guide · OWASP
- [4] Rozporządzenie (UE) 2022/2554 w sprawie operacyjnej odporności cyfrowej sektora finansowego (DORA) · EUR-Lex
- [5] Nieautoryzowane testy penetracyjne — prawnik odpowiada na Wasze pytania · Niebezpiecznik
- [6] Wykonaliśmy testy penetracyjne Protonmaila — zobaczcie publiczny raport · Sekurak
- [7] WPScan — WordPress Security Scanner · WPScan Team
Hasła w tym artykule
17Linkują tutaj
24- podatność
- OWASP Top 10
- brak kontroli uprawnień (missing authorization)
- bug bounty
- haker
- DORA
- błąd logiki biznesowej
- tailgating
- blue team
- purple team
- skanowanie podatności
- skanowanie portów
- red team
- serwer proxy
- modelowanie zagrożeń
- audyt bezpieczeństwa
- AI red teaming
- OSINT
- due diligence
- PCI DSS
- badacz bezpieczeństwa
- white hat
- tabletop exercise
- grey hat