Spektakularne napady na bank z bronią w ręku i pończochą na twarzy odeszły już do historii. Współcześni przestępcy poruszając się w cyberprzestrzeni korzystają ze znacznie bardziej wyrafinowanych sposobów na osiągnięcie zysku. Jeśli nie postawimy na regularne testy penetracyjne i nie zadbamy o odpowiednie zabezpieczenie strony internetowej czy brzegu sieci, możemy boleśnie przekonać się o skutkach cyberataków na własnej skórze.
Jak zabezpieczyć się przed hakerami? Nie dać im się wyprzedzić i… zatrudnić jednego z nich. Chodzi oczywiście o etycznego hakera (white hat hacker), który zajmuje się testowaniem podatności systemów na zagrożenia wykorzystując w tym celu testy penetracyjne, czyli inaczej pentesty.
Usługa testów penetracyjnych w Grandmetric
Pentesty to etyczne ataki hakerskie przeprowadzane w sposób kontrolowany, na zlecenie właściciela infrastruktury teleinformatycznej, sieci czy aplikacji.
Służą do wykrycia błędów zagrażających bezpieczeństwu badanego systemu. Przyczyny błędów bezpieczeństwa to najczęściej:
Pentester wciela się w tej sytuacji w hakera, działa jednak „w białych rękawiczkach”. Jego zadaniem jest odkrycie luk systemu i wskazanie miejsc wrażliwych na potencjalny atak.
Pentesty powinny być przeprowadzane w sposób systematyczny i mogą mieć różny zakres, najczęściej też stanowią część audytu systemów i infrastruktury IT. Ich głównym celem jest zbadanie, na ile dana sieć jest odporna na włamanie i jaka jest skuteczność zastosowanych zabezpieczeń. Niezbędną częścią każdego testu jest raport, który opisuje zidentyfikowane problemy. Zawsze powinien zawierać też rekomendacje, mające na celu ich skuteczne wyeliminowanie.
Podatność systemu na zagrożenia określa się w skali 1-10 przy użyciu standardów CVSS (The Common Vulnerability Scoring System).
Pentesty różnią się między sobą poziomem wiedzy na temat badanego systemu, jaka jest udostępniana pentesterom przez klienta. Wyróżniamy:
White box | Black box | Gray box |
Testowanie strukturalne | Testowanie funkcjonalne | Testowanie strukturalne i funkcjonalne |
Wiedza na temat wewnętrznej struktury systemu | Brak wiedzy na temat wewnętrznej struktury systemu | Częściowa wiedza na temat wewnętrznej struktury systemu |
Wiedza na temat funkcjonalności systemu | Brak wiedzy na temat funkcjonalności systemu | Częściowa wiedza na temat funkcjonalności systemu |
Skupiony na analizowaniu kodu źródłowego | Analizuje zewnętrzne cechy i działanie systemu | Analizuje zarówno kod źródłowy, jak i działanie systemu |
Wymaga wiedzy programistycznej i dogłębnej znajomości kodu odpowiadającego za testowany obszar | Mogą przeprowadzać go testerzy z niewielką wiedzą dotyczącą programowania, co pozwala im zbliżyć się do perspektywy „zwykłego użytkownika” | Wymaga wiedzy dotyczącej programowania i znajomości języka kodu źródłowego |
Wysoki poziom automatyzacji umożliwia szybkie testowanie dużych części kodu | Testowanie częściowo zautomatyzowane i/lub manualne, może być czasochłonne | Testowanie jest czasochłonne ze względu na kompleksowość |
Identyfikuje błędy „od środka” na poziomie logiki kodu, pomijając perspektywę użytkownika końcowego | Umożliwia zidentyfikowanie błędów behawioralnych trudnych do wykrycia przez deweloperów, przy kreatywnym podejściu daje szerokie pole do działania | Pozwala na wykrycie zarówno błędów strukturalnych (na poziomie kodu), jak i funkcjonalnych (na poziomie użytkowania) |
Średni poziom szczegółowości, średnio kompleksowe podejście | Niski poziom szczegółowości, mało kompleksowe podejście | Wysoki poziom szczegółowości, najbardziej kompleksowe podejście |
Metodyki testów penetracyjnych stanowią rodzaj przewodników (szczególnie wartościowych dla początkujących pentesterów) opisujących, jakich procedur należy przestrzegać i jakie czynności wykonać.
Różne metodyki (frameworki) są użyteczne w zależności od obszaru, który chcemy testować, m.in:
Nie znajdziemy w nich jednak technicznych szczegółów czy algorytmów testowania. To właśnie dlatego kluczowy wpływ na sukces pentestu ma doświadczenie, kreatywność, wytrwałość i wiedza pentestera, który go przeprowadza. Jego rola wymaga szerokiego zakresu kompetencji nie tylko technicznych, ale też komunikacyjnych czy z zakresu zarządzania.
Techniczne kompetencje pentesterów potwierdzają certyfikaty, takie jak np.:
Najlepszym sposobem dbania o cyberbezpieczeństwo jest przeprowadzanie testów penetracyjnych cyklicznie, przynajmniej raz do roku, a także w przypadku wprowadzania zmian w systemach. Po fazie pentestów warto również wykonać re-test, czyli weryfikację wprowadzonych zmian (sprawdzenie, czy zostały poprawnie zaimplementowane i nie doprowadziły do powstania nowych luk bezpieczeństwa).
Pentest, w zależności od rodzaju, wielkości i poziomu skomplikowania badanej struktury może trwać od kilku dni do kilku tygodni.
Jak szacuje Steve Morgan, redaktor naczelny Cybercrime Magazine, w 2025 r. globalne cyberprzestępstwa będą wymagały naprawy strat rzędu 10,5 tryliona dolarów (!).
Na te rosnące z roku na rok koszty składa się wiele czynników – utrata bądź zniszczenie danych, zaburzenie działania przedsiębiorstw, kradzież pieniędzy czy własności intelektualnej, przeprowadzanie śledztw kryminalnych, przywracanie lub usuwanie naruszonych danych i systemów, a także utrata zaufania klientów.
Wyniki naszych audytów wskazują, że najbardziej powszechne błędy to te, których łatwo można uniknąć, dbając o aktualizację oprogramowania i właściwe zabezpieczenie sieci.
Wszystko wskazuje na to, że zdecydowanie najbardziej opłaca się profilaktyka. A jeśli chcemy zadbać o nasze cyberbezpieczeństwo, lepiej jest zapobiegać, niż leczyć.
Dodaj komentarz