Dzień z życia hakera – czyli jak wygląda wyszukiwanie nowych podatności w oprogramowaniu

Juli 8, 2021, 09:00

Specjaliści zajmujący się defensywną stroną cybersecu (tzw. blue team) nieustannie toczą walkę z hakerami, których upór i wytrwałość wydają się być nieskończone. Ich schemat działania często nie odbiega od tego w jaki sposób funkcjonują korporacje czy też przedsiębiorstwa.

Atakujący szukają dróg wejścia do naszych zasobów, które wymagają od nich jak najmniejszego wysiłku, przy użyciu jak najmniejszej liczby exploitów oraz narobienia jak najmniejszego “hałasu”. Podejście to realizuje jedną z podstawowych prawidłowości rynkowych tj. im mniejszy poniesiony koszt czy też wysiłek, tym większy zysk. 

W chwili, gdy wybiorą interesujący, opłacalny dla nich cel natychmiast przystępują do działania i stosują techniki mające na celu wykrycie podatności. Niektóre mogą przynieść korzyści w krótkim czasie, a niektóre wymagają go więcej. Szukanie i exploitowanie dziur w systemie może zająć godziny, jak i również niekiedy całe miesiące, a nawet lata. 

Perspektywa z jaką hakerzy podchodzą do szukania podatności (tzw. bug hunting’u) może pomóc zrozumieć, w jaki sposób wspomniany blue team może zabezpieczać cenne zasoby.


Bug hunting często zaczyna się od tych czterech metod:

1. Przeszukiwanie list CVE (Common Vulnerabilities and Exposures - identyfikatory nadawane konkretnym odkrytym podatnościom).

Podobnie jak zespoły ds. cyberbezpieczeństwa stawiają czoła błędom w zabezpieczeniach tak samo napastnicy mają do czynienia z dużą ilością informacji o odkrytych podatnościach. Jako punkt początkowy przestępcy mogą obrać właśnie tę metodę do porównywania, łączenia wykrytych luk z obranym przez siebie celem. CVE z wysokim stopniem zagrożenia nie zawsze są owocne ponieważ najczęściej są również dobrze monitorowane przez ludzi z blue teamów. Znane luki są jednak doskonałym punktem wyjścia do poszukiwania podobnych podatności, błędów w kodzie źródłowym danego systemu. 

2. Pozostawione komentarze w kodzie przez programistów.

W przypadku oprogramowania o otwartym kodzie źródłowym (oprogramowanie, aplikacje na licencjach Open Source) hakerzy mogą potraktować komentarze, adnotacje deweloperów niekiedy jako mapę skarbów. Kod jest komentowany i opisywany na różnym etapie rozwoju oprogramowania w celu ułatwienia oraz pomocy sobie w pracy zespołowej przez programistów. Najcenniejsze są komentarze mówiące o konieczności poprawy danego fragmentu lub o usunięciu określonej części kodu przed wystawieniem go na produkcję.

Metoda ta jest również wykorzystywana  do analizy kodu, który został wcześniej wykradziony producentowi aplikacji, tak jak pokazują sławne już przypadki CD Projektu – Cyberpunk 2077 oraz EA Games – FIFA 12. 

3. Wpisy z pytaniami lub prośbą o pomoc na różnego rodzaju forach wsparcia.

Programiści lub inżynierzy tworzący dane rozwiązanie również przemierzają Internet w poszukiwaniu pomocy i wsparcia. Zdarza się, że publikują oni swoje zapytania na ogólnodostępnych forach bez przywiązywania należytej uwagi do tego, aby pozostać anonimowym. Niekiedy bywa tak, że posty pisane są z użyciem służbowego maila. W ten sposób haker również szuka informacji o możliwych podatnościach.

4. Fuzzing - automatyczna lub półautomatyczna metoda testowania oprogramowania lub znajdowania w nim dziur.

Stosując tę metodę hakerzy wysyłają do programu, do danego elementu oprogramowania lub systemu rożnego rodzaju losowe dane wejściowe i rejestrują wszelkie niepożądane wydarzenia takie jak crashe, wycieki pamięci czy nieautoryzowany dostęp. Dane wprowadzane mogą być z linii poleceń, za pomocą plików otwieranych w systemie, przy użyciu myszy i klawiatury lub z wykorzystaniem protokołów internetowych. Doświadczeni cyberprzestępcy wiedzą, że takie automaty mogą bardzo szybko zostać wykryte np. przez administratorów dlatego sami zastępują rolę automatów i wykorzystują do tego swoją wiedzę oraz umiejętności aby zawęzić obszar testów do minimum w celu uniknięcia wykrycia i zaoszczędzenia czasu.

Zajmując się bezpieczeństwem nieustannie skupiamy się na zamykaniu wszelkich potencjalnych furtek dla przestępców. Hakerzy podchodzą do tego problemu niestety zupełnie z innej strony. Ogranicza ich jedynie własny czas i wysiłek, a nie narzucone polityki czy też narzędzia w określonej organizacji. Dla biznesu zrozumienie schematu postępowania hakera jest pierwszym krokiem w kierunku skutecznej ochrony jego wartości jaką mogą być dane, informacje czy też wspomniany kod źródłowy. 

MM