6 najważniejszych rodzajów testów penetracyjnych, które warto znać już dziś

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Każdy atakujący może zakłócić działanie systemu lub uzyskać do niego nieautoryzowany dostęp, jeśli nie jest on odpowiednio zabezpieczony. Testy penetracyjne to rodzaj testów bezpieczeństwa, które ujawniają te podatności, dzięki czemu można je usunąć.

Testy penetracyjne (zwane też testami pen) to rodzaj testów bezpieczeństwa, których celem jest wykrycie potencjalnych podatności w systemie. 

Test penetracyjny nie tylko zgłosi wykryte słabości, ale także aktywnie spróbuje je wykorzystać w ramach tak zwanego etycznego hakowania.

Dlaczego potrzebujemy testów penetracyjnych? Każdy napastnik może zakłócić działanie systemu lub uzyskać do niego nieautoryzowany dostęp, jeśli nie jest on odpowiednio zabezpieczony. Ryzyko związane z bezpieczeństwem może powstać w wyniku niezamierzonych błędów popełnionych podczas opracowywania i wdrażania oprogramowania.

Dzięki testom penetracyjnym możemy:

  • znaleźć słabości i zagrożenia, które mogą prowadzić do wycieku poufnych danych 
  • zapobiegać phishingowi i cyberatakom
  • utrzymać zaufanie użytkowników, chroniąc ich poufne informacje
  • zapewnić zgodność ze standardami i przepisami 

W tym artykule omówię następujące tematy:

Metodologia testów penetracyjnych

Przed przeprowadzeniem testów penetracyjnych zagrożenia są identyfikowane za pomocą oceny podatności. Oznacza to, że pierwszym krokiem jest zidentyfikowanie potencjalnie problematycznych obszarów (takich jak przechowywanie danych uwierzytelniających), a następnie podjęcie próby ich aktywnego zaatakowania.

Testy penetracyjne powinny obejmować wszystkie miejsca przechowywania poufnych danych, wszystkie aplikacje, które przechowują te dane lub wchodzą z nimi w interakcję, wszystkie połączenia sieciowe oraz wszystkie istotne punkty dostępu. Testy penetracyjne próbują wykorzystać podatności i słabości w zabezpieczeniach, podejmując próbę przeniknięcia do sieci i aplikacji. 

Celem testów penetracyjnych jest ustalenie, czy złośliwi napastnicy mogą uzyskać nieautoryzowany dostęp do krytycznych systemów lub plików. Po przeprowadzeniu tych skanów podatności wszelkie znalezione problemy powinny zostać rozwiązane i usunięte.

Zrzut ekranu przedstawiający metodologię testów penetracyjnych

3 główne podejścia do testów penetracyjnych

Podobnie jak w przypadku wszystkich rodzajów i metod testowania, możemy stosować różne podejścia do testów penetracyjnych, zależnie od wiedzy testera i jego praw dostępu. Główne podejścia do testów penetracyjnych obejmują testy typu białej skrzynki, czarnej skrzynki i szarej skrzynki.

1. Testy penetracyjne typu białej skrzynki

W testach penetracyjnych typu białej skrzynki testerzy mają pełną wiedzę o systemie i pełny dostęp do niego. Takie podejście pozwala na przeprowadzenie dogłębnych testów i daje możliwość wykrycia większej liczby zdalnych oraz trudniej dostępnych podatności.

Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

Have an account? Log In

2. Testy penetracyjne typu czarnej skrzynki

Testy penetracyjne typu czarnej skrzynki to podejście, w którym tester nie ma wiedzy na temat wewnętrznego działania systemu. Tester projektuje testy penetracyjne tak, jak zrobiłby to niepoinformowany cybernapastnik. 

To podejście najbardziej przypomina rzeczywiste scenariusze, w których hakerzy nie mają dostępu do rzeczywistego kodu źródłowego testowanej aplikacji lub systemu.

3. Testy penetracyjne typu szarej skrzynki

Testy typu szarej skrzynki stanowią punkt pośredni między testami białej skrzynki i czarnej skrzynki. Oznacza to, że tester penetracyjny ma ograniczoną wiedzę o systemie. 

Następnie przyjrzyjmy się niektórym różnym rodzajom testów penetracyjnych. 

Jakie są główne rodzaje testów penetracyjnych?

1. Testy penetracyjne aplikacji internetowych

Testy penetracyjne witryn internetowych są zwykle bardziej ukierunkowane i szczegółowe niż inne rodzaje testów penetracyjnych. Ich głównym celem jest znalezienie słabości i zagrożeń związanych z cyberbezpieczeństwem w witrynach internetowych i ich komponentach, takich jak bazy danych, kod źródłowy czy sieć zaplecza.

Testy penetracyjne aplikacji internetowych są szczególnie ważne teraz, gdy w związku z pandemią Covid-19 odnotowano znaczny wzrost cyberprzestępczości .

Do typowych luk w zabezpieczeniach, których tester penetracyjny powinien szukać w aplikacji internetowej, należą:

  • Niezabezpieczone punkty dostępu
  • Słabe hasła
  • Ataki typu SQL injection
  • Wstrzykiwanie kodu
  • Skrypty międzywitrynowe
  • Naruszenie danych
  • Ataki phishingowe

2. Testy penetracyjne po stronie klienta

Ten rodzaj testów sprawdza lokalne zagrożenia. Zagrożenia te mogą pochodzić z dowolnych aplikacji lub programów uruchomionych na stacjach roboczych pracowników — przeglądarek, odtwarzaczy multimedialnych, aplikacji otwartego oprogramowania, aplikacji do tworzenia prezentacji lub treści (na przykład Microsoft PowerPoint).

Oprócz aplikacji innych firm zagrożenia dla bezpieczeństwa mogą powodować również programy i struktury wewnętrzne, dlatego należy uwzględnić je w testach.

3. Testy penetracyjne sieci

Ten rodzaj testów jest jednym z najczęściej zlecanych w ramach testów penetracyjnych. Jego celem jest wykrycie luk w infrastrukturze sieciowej.

Sieci mają zarówno wewnętrzne, jak i zewnętrzne punkty dostępu, co może narażać je na  ataki cyberprzestępców. Dwie podkategorie testów penetracyjnych sieci to: testowanie sieci wewnętrznej i testowanie sieci zewnętrznej.

Wewnętrzne testy penetracyjne sieci

Ten rodzaj testów penetracyjnych rozpoczyna się od założenia, że ataki hakerów pochodzą z wnętrza sieci. Jako tester penetracyjny przyjmujesz rolę złośliwej osoby posiadającej określony poziom (mniej lub bardziej) uprawnionego dostępu do sieci wewnętrznej. 

Może to oznaczać na przykład analizę skutków nieumyślnego ujawnienia, zmodyfikowania, niewłaściwego wykorzystania lub zniszczenia poufnych informacji.

Zewnętrzne testy penetracyjne sieci

W tym przypadku odtwarzany scenariusz zakłada, że atak pochodzi z zewnątrz sieci. Testerzy będą próbowali włamać się do systemu, wykorzystując luki zewnętrzne, które mogą umożliwić dostęp do wewnętrznych danych i systemów.

Testy penetracyjne mogą koncentrować się na następujących zagrożeniach dla bezpieczeństwa sieci:

  • Błędne konfiguracje zapór sieciowych
  • Testowanie routerów
  • Testowanie serwerów proxy
  • Rozpoznanie DNS
  • Skanowanie otwartych portów
  • Bazy danych sieciowych
  • Serwery pocztowe

Podczas przeprowadzania testów penetracyjnych należy również koniecznie sprawdzić integralność platform zarządzania danymi

4. Testy socjotechniczne

Socjotechnika różni się od innych rodzajów testów, ponieważ nie koncentruje się na technicznych aspektach systemów ani aplikacji. Zamiast tego uwaga skupia się na psychologii użytkowników i pracowników, którzy mogą nieumyślnie naruszyć bezpieczeństwo.

Testy penetracyjne z zakresu socjotechniki można przeprowadzać na dwa sposoby: zdalnie lub fizycznie.

Zdalne testy socjotechniczne przeprowadza się za pomocą środków elektronicznych, takich jak wiadomości phishingowe potencjalnie zawierające złośliwe oprogramowanie. Jeśli pracownicy otworzą wiadomość, firma powinna rozważyć rozpoczęcie szkoleń z zakresu bezpieczeństwa, aby zapobiegać rzeczywistym atakom tego typu. 

Fizyczne testy bezpieczeństwa polegają na bezpośredniej rozmowie z ludźmi i przekonaniu ich do ujawnienia poufnych informacji.

Nie wiem, jak jest w Twoim przypadku, ale w ostatnich latach trzy firmy, w których pracowałem, przeprowadziły tego rodzaju testy. Na przykład my, jako pracownicy, otrzymywaliśmy wiadomości e-mail informujące, że wygraliśmy nagrodę w serwisach zakupowych lub otrzymaliśmy specjalne rabaty. Wiadomości zachęcały nas do kliknięcia łącza lub pobrania pliku. W normalnych okolicznościach, gdy atak jest prawdziwy, a nie symulowany, adres URL lub załączniki zwykle zawierają złośliwe oprogramowanie, które może zainfekować komputery i wykraść dane osobowe lub poufne.

Zdziwiłbyś się, jak wiele osób rzeczywiście daje się złapać na tego rodzaju pułapki, zwłaszcza gdy wiadomość wydaje się pochodzić z zaufanego źródła, takiego jak Amazon.

Pamiętaj, że przed przeprowadzeniem tego rodzaju testów kierownictwo powinno zawsze zostać o nich poinformowane.

More Articles

5. Fizyczne testy penetracyjne

Zrzut ekranu z fizycznego testu penetracyjnego

Fizyczne testy penetracyjne wykraczają poza aspekty cyfrowe. Aby przeprowadzić ten rodzaj testu, należy ocenić, jak łatwo można uzyskać fizyczny dostęp do obiektu. Można to zrobić, próbując ominąć zabezpieczenia, czujniki, kamery bezpieczeństwa, a nawet otworzyć drzwi wytrychem. 

Korzyści z testów fizycznych są natychmiastowe — usunięcie wszelkich wykrytych luk w zabezpieczeniach można rozpocząć, gdy tylko zostanie zidentyfikowany obszar wymagający poprawy.

6. Testy penetracyjne sieci bezprzewodowych

Naruszenia bezpieczeństwa sieci bezprzewodowych stanowią realne zagrożenie dla bezpieczeństwa firmy. Testy przeprowadza się na wszystkich fizycznych urządzeniach bezprzewodowych, takich jak laptopy, tablety, smartfony itp., które są podłączone do sieci WiFi.

Podczas testowania sieci bezprzewodowych należy zwrócić uwagę między innymi na:

  • słabe punkty szyfrowania
  • luki w protokołach bezprzewodowych, punktach dostępu bezprzewodowego lub poświadczeniach administratora
  • domyślne lub słabe hasła
  • nieautoryzowane hotspoty
  • ataki typu odmowa usługi (DoS)

Wnioski

Testy penetracyjne są naprawdę ważne i przynoszą wiele korzyści, ale ich przeprowadzenie nie jest tak łatwe jak w przypadku innych rodzajów testów. Jeśli chcesz ćwiczyć swoje umiejętności, możesz zapoznać się z aplikacją demonstracyjną OWASP i zaangażować się w wyzwania związane z hakowaniem.

Podobał Ci się ten artykuł? Na stronie The QA Lead znajdziesz wiele interesujących tematów związanych z zapewnianiem jakości, więc koniecznie zapisz się do newslettera!

Sprawdź także:

Powiązana lista narzędzi:

Andreea Draniceanu
Hi there! My name is Andreea, I’m a software test engineer based in Romania. I’ve been in the software industry for over 10 years. Currently my main focus is UI test automation with C#, but I love exploring all QA-related areas 😊

You may also like