21 września 2021

Od rekonesansu do raportowania, czyli
o procesie przeprowadzania testów bezpieczeństwa

O tym, czym są testy penetracyjne i jakie niosą za sobą korzyści, możecie przeczytać w jednym z poprzednich wpisów: Wychwycić najsłabsze ogniwa, czyli czym są testy penetracyjne. Tym razem przyjrzymy się bliżej samemu procesowi testów.

Na wstępie warto zaznaczyć, że każdy tester ma swoje własne, wypracowane przez lata workflow, często bazujące na OWASP ASVS, OWASP Web Security Testing Guide, MASVS dla mobilnych aplikacji, a także na innych źródłach. Każdy ma inne podejście do testów, ale wszyscy mają jeden cel.

Sam proces znajdowania luk w bezpieczeństwie można podzielić na poniższe etapy.

Zbieranie informacji – rekonesans

Jest to pierwszy i najważniejszy krok, który trzeba podjąć, aby testy były skuteczne. Musimy wiedzieć, co jest celem testów,
a także jaki jest ich zakres. Istotna jest również wiedza na temat działania samej aplikacji oraz które elementy są bardziej wrażliwe – w późniejszych etapach ułatwi nam to wychwycenie głównych cech błędów i ich krytyczność. Wszystko po to, aby organizacje mogły właściwie ustalić priorytety procesów zarządzania podatnościami. Przeprowadzanie testów w środowisku produkcyjnym zazwyczaj nie jest najlepszym pomysłem ze względu na to, że ataki mogą być dość inwazyjne. Dane klientów mogą zostać ujawnione. Wpłynąć to może również na integralność i dostępność danej aplikacji.

Skanowanie aplikacji

Najlepiej podejść do tematu skanowania dwutorowo – nie polegać tylko i wyłącznie na automatycznych skanerach, które nie zawsze najlepiej radzą sobie z mapowaniem wszystkich możliwych wektorów ataku, ale także ręcznie „przeklikać” aplikację.
W przypadku testów aplikacji webowych istotne jest sprawdzenie wszystkich możliwych miejsc, w których użytkownicy wprowadzają dane. Sprawdzenie przekierowań, każdego zapytania, które jest wysyłane do serwera, a także ataki typu brute force na foldery i pliki – to także istotne elementy. Nawet jeżeli aplikacja jest webowa, warto sprawdzić, jakie inne porty są otwarte
i jakie serwisy na nich działają. Jeżeli jest to możliwe – tak jak w przypadku aplikacji mobilnych – ważne jest, aby aplikacje zdekompilować, poznać kod źródłowy i sprawdzić, czy nie korzysta ona z podatnych bibliotek, jak radzi sobie z uwierzytelnianiem, a także warto wiedzieć, jak się po niej poruszać. Najczęstszym błędem znajdowanym podczas security code review są ujawniane tzw. sekrety (ang. client secret) i hardcodowane hasła.

Eksploitacja celu

Dla przeprowadzenia tego etapu istnieje mnóstwo pomocy w postaci książek, artykułów, a także opisów podatności i technik, które są zgłaszane każdego dnia. Znajomość tylko podatności, które znajdują się na liście OWASP TOP 10 nie jest wystarczająca do przeprowadzenia pełnowymiarowego testu penetracyjnego. Istotne tutaj są umiejętności testera połączone z jego kreatywnością i samozaparciem. Im więcej informacji jest zebranych podczas początkowej fazy testów, tym prościej jest przeprowadzić atak. Część znalezionych podatności może pomóc w odkryciu niezamierzonych dla użytkowników obszarów
i funkcjonalności aplikacji, o których istnieniu nie wiedzą nawet twórcy aplikacji. Najlepszym przykładem takiego scenariusza jest wykorzystanie podatności SSRF (Server-Side Request Forgery) do skanowania lokalnej sieci mogącej otworzyć kolejne wektory ataku, których celem są usługi wewnętrzne.

Analiza ryzyka i raportowanie

Warto zwrócić uwagę, że wiele podatności, które w pierwszej kolejności mogą być postrzegane jako mało krytyczne, w połączeniu z innymi znalezionymi podatnościami mogą sprawić, że ich znaczenie jest zdecydowanie ważniejsze. Jeśli chodzi o raportowanie, wiele firm używa własnych szablonów, które są już przemyślane – są to dopracowane dokumenty, które są łatwe do zrozumienia dla nietechnicznej kadry kierowniczej, a także pokazujące techniczne szczegóły błędów. Treść powinna opisywać wyniki testów – podatności, kroki do ich odtworzenia, ich wpływ oraz zalecenia dla deweloperów dotyczące łagodzenia skutków ataków lub ich całkowitej eliminacji. Dobry raport powinien również odpowiadać na potencjalne pytania klienta.

 

Tak jak całe bezpieczeństwo IT, testy penetracyjne to proces, który należy ciągle ulepszać. Nowe zagrożenia i podatności są zgłaszane każdego dnia. Większość firm nie testuje swojego oprogramowania przed releasem, a warto już podczas planowania budowania aplikacji zintegrować ją z różnymi narzędziami, które będą audytować kod pod kątem błędów – nie tylko związanych
z samym działaniem aplikacji, lecz będą także szukać potencjalnych luk w zabezpieczeniach.

Więcej informacji o wsparciu Onwelo w obszarze bezpieczeństwa IT można znaleźć na stronie internetowej.

Zostaw komentarz

Polecamy

Wychwycić najsłabsze ogniwa, czyli czym są testy penetracyjne

Wychwycić najsłabsze ogniwa, czyli czym są testy penetracyjne

Czym są testy penetracyjne? Jaki jest poziom świadomości zagrożenia cyberprzestępczością wśród organizacji? Przed jakimi niebezpieczeństwami pentesty mogą uchronić firmy, szczególnie w okresie wzmożonej aktywności grup hakerskich, jakim jest pandemia? O tych tematach rozmawialiśmy z Filipem z zespołu Cyber Security w Onwelo.

Spock vs JUnit

Spock vs JUnit

Testy automatyczne to potężne narzędzie w arsenale programisty. Nowoczesne frameworki do testów ułatwiają ich pisanie oraz pozwalają na lepszą utrzymywalność. Jednymi z popularniejszych rozwiązań na rynku służących do testowania kodu napisanego w Javie są Spock i JUnit.

Wychwycić najsłabsze ogniwa, czyli czym są testy penetracyjne

Wychwycić najsłabsze ogniwa, czyli czym są testy penetracyjne

Czym są testy penetracyjne? Jaki jest poziom świadomości zagrożenia cyberprzestępczością wśród organizacji? Przed jakimi niebezpieczeństwami pentesty mogą uchronić firmy, szczególnie w okresie wzmożonej aktywności grup hakerskich, jakim jest pandemia? O tych tematach rozmawialiśmy z Filipem z zespołu Cyber Security w Onwelo.

#Udostępnij

strzałka przewiń do góry strony