6 sposobów, w jaki hakerzy ukrywają swoje ślady

Od zaufanych narzędzi pentestingowych po LOLBIN-y ̶ atakujący wykorzystują zaufane platformy i protokoły, aby ominąć kontrole bezpieczeństwa.

6 sposobów, w jaki hakerzy ukrywają swoje ślady

Pixabay / Gerd Altmann

CISO mają do dyspozycji całą gamę coraz lepszych narzędzi, które pomagają wykrywać i powstrzymywać złośliwą aktywność: narzędzia do monitorowania sieci, skanery antywirusowe, narzędzia do analizy składu oprogramowania (SCA), rozwiązania do cyfrowej kryminalistyki i reagowania na incydenty (DFIR) i wiele innych.

Mimo wszystko cyberbezpieczeństwo to ciągła walka pomiędzy atakiem a obroną. Starsze techniki, takie jak steganografia ̶ sztuka ukrywania informacji, w tym złośliwych ładunków, w skądinąd łagodnych plikach, takich jak obrazy ̶ ewoluują, prowadząc do nowych możliwości. Niedawno jeden z badaczy wykazał, że nawet Twitter nie jest odporny na steganografię, a obrazy na tej platformie mogą być nadużywane w celu umieszczenia w nich archiwów ZIP o rozmiarze do 3 MB.

Zobacz również:

  • Nie żyje jeden z najsłynniejszych hakerów na świecie
  • Apple ostrzega użytkowników w 92 krajach. Uwaga na ataki szpiegowskie

Jednak w trakcie moich własnych badań zauważyłem, że oprócz stosowania technik maskowania, steganografii i pakowania złośliwego oprogramowania, przestępcy często wykorzystują legalne usługi, platformy, protokoły i narzędzia do prowadzenia swoich działań. Pozwala im to wtopić się w ruch lub aktywność, która może wyglądać niepodejrzanie zarówno dla ludzkich analityków, jak i maszyn.

Oto pięć taktyk, które cyberprzestępcy stosują do zacierania śladów:

Nadużywanie zaufanych platform, które nie podniosą alarmu

Zjawisko to było powszechnie obserwowane przz przez specjalistów ds. bezpieczeństwa już w 2020 r.

Od usług i narzędzi do przeprowadzania testów penetracyjnych, takich jak Cobalt Strike i Ngrok, przez ustalone ekosystemy kodu open-source, takie jak GitHub, po strony z obrazami i tekstami, takie jak Imgur i Pastebin ̶ w ciągu zaledwie kilku ostatnich lat atakujący obrali sobie za cel szeroki wachlarz zaufanych platform. Zazwyczaj Ngrok jest wykorzystywany przez etycznych hakerów zainteresowanych zbieraniem danych lub tworzeniem pozorowanych tuneli dla połączeń przychodzących w ramach akcji bug bounty lub pen-testów. Jednak przestępcy nadużywali Ngrok do bezpośredniego instalowania złośliwego oprogramowania botnetowego lub podłączania legalnej usługi komunikacyjnej do złośliwego serwera. W ostatnim czasie Xavier Mertens z SANS Institute zauważył jedną z takich próbek złośliwego oprogramowania napisaną w Pythonie, która zawierała kod zakodowany w base64 w celu umieszczenia backdoora w zainfekowanym systemie wykorzystującym Ngrok.

Ponieważ Ngrok cieszy się powszechnym zaufaniem, zdalny napastnik może połączyć się z zainfekowanym systemem za pomocą tunelu Ngrok, który prawdopodobnie ominie korporacyjne zapory sieciowe lub zabezpieczenia NAT.

GitHub był również wykorzystywany do hostowania złośliwego oprogramowania, od Octopus Scanner do Gitpaste-12. Ostatnio sprytni napastnicy wykorzystali GitHub i Imgur w połączeniu z otwartym skryptem PowerShell, który umożliwił im hostowanie prostego skryptu na GitHubie, który wyliczał ładunek Cobalt Strike z łagodnego zdjęcia na Imgur. Cobalt Strike jest popularnym narzędziem do przeprowadzania testów penetracyjnych, służącym do symulowania zaawansowanych ataków cybernetycznych w świecie rzeczywistym, ale jak każde oprogramowanie zabezpieczające, może zostać niewłaściwie wykorzystane przez przeciwników.

Podobnie, narzędzia do automatyzacji, na których polegają programiści, nie są odporne na wykorzystanie.

W kwietniu napastnicy nadużyli GitHub Actions, aby obrać za cel setki repozytoriów w zautomatyzowanym ataku, który wykorzystywał serwer GitHub i zasoby do wydobywania kryptowalut.

Ataki upstreamowe, które wykorzystują wartość, reputację lub popularność marki

Problemy związane z bezpieczeństwem łańcucha dostaw oprogramowania mogły zyskać uwagę opinii publicznej w związku z niedawnym naruszeniem bezpieczeństwa SolarWinds, ale ataki te nasilają się już od jakiegoś czasu.

Czy to w formie typosquatting (rejestracja błędnie zapisanej domeny innej organizacji jako swoją własnej, np. wnet.pl zamiast onet.pl), brandjacking (to działanie, w ramach którego ktoś nabywa lub w inny sposób przejmuje tożsamość online innego podmiotu w celu zdobycia kapitału marki tej osoby lub firmy), czy też zamieszania w zależności (które początkowo pojawiło się jako badanie proof-of-concept, ale później zostało nadużyte do złośliwych celów), ataki „upstream” wykorzystujące zaufanie w ramach znanych ekosystemów partnerskich i kapitalizują popularność lub reputację marki lub komponentu oprogramowania. Celem atakujących jest przepchnięcie złośliwego kodu do zaufanej bazy kodów związanej z daną marką, który następnie jest dystrybuowany do ostatecznego celu: partnerów, klientów lub użytkowników tej marki.

Każdy system, który jest otwarty dla wszystkich, jest również otwarty dla przeciwników. Tak więc, wiele ataków na łańcuch dostaw jest wymierzonych w ekosystemy open-source, z których niektóre mają luźną walidację, aby utrzymać zasadę owej otwartości dla wszystkich. Nie oznacza to, że organizacje komercyjne nie są narażone na takie ataki.

W ostatnim przypadku, który niektórzy porównują do incydentu SolarWinds, firma Codecov, zajmująca się testowaniem oprogramowania, ujawniła atak na swój skrypt Bash Uploader, który pozostawał niewykryty przez ponad dwa miesiące.

Wśród ponad 29 tysięcy klientów Codecov znajdują się znane światowe marki. W ataku tym uploader używany przez klientów firmy został zmieniony w taki sposób, że zmienne środowiskowe systemu (klucze, dane uwierzytelniające i tokeny) zostały przeniesione na adres IP atakującego.

Ochrona przed atakami na łańcuch dostaw wymaga działań na wielu frontach. Dostawcy oprogramowania będą musieli zwiększyć nakłady na zapewnienie bezpieczeństwa swoich programów rozwojowych. Rozwiązania devops oparte na AI i ML, zdolne do automatycznego wykrywania i blokowania podejrzanych komponentów oprogramowania, mogą pomóc w zapobieganiu zdarzeniom typosquatting, brandjacking i atakom polegającym na myleniu zależności.

Dodatkowo, ponieważ coraz więcej firm wykorzystuje kontenery Kubernetes lub Docker do wdrażania swoich aplikacji, rozwiązania zabezpieczające kontenery, które mają wbudowaną zaporę aplikacji internetowych i są w stanie wcześnie wykryć proste błędy w konfiguracji, mogą pomóc w zapobieganiu większym kompromisom. Przerzucanie płatności kryptowalutowych za pomocą trudnych do wyśledzenia metod

Sprzedawcy w darknecie i operatorzy oprogramowania ransomware często dokonują transakcji w kryptowalucie, biorąc pod uwagę jej zdecentralizowaną i chroniącą prywatność konstrukcję.

Jednak, mimo że kryptowaluta nie jest bita ani kontrolowana przez rządowe banki centralne, nadal nie zapewnia takiego samego poziomu anonimowości jak gotówka.

Cyberprzestępcy znajdują więc innowacyjne sposoby na przesuwanie środków między kontami.

Ostatnio ponad 760 milionów dolarów Bitcoinów związanych z włamaniem na Bitfinex w 2016 roku zostało przeniesionych na nowe konta w wielu mniejszych transakcjach ̶ w kwotach od 1 BTC do 1200 BTC.

Kryptowaluta nie jest całkowicie niezawodnym sposobem na ukrycie śladu pieniędzy. W noc wyborów prezydenckich w USA w 2020 r. rząd amerykański opróżnił portfel Bitcoin o wartości 1 miliarda dolarów, który zawierał fundusze powiązane z najbardziej osławionym rynkiem darknetowym Silk Road, który został zamknięty w 2013 r.

Niektóre inne kryptowaluty, takie jak Monero (XMR) i Zcash (ZEC) mają szersze możliwości ochrony prywatności niż Bitcoin w zakresie anonimizacji transakcji. Wymiana zdań między przestępcami a śledczymi będzie bez wątpienia kontynuowana na tym froncie, ponieważ atakujący wciąż szukają lepszych sposobów na ukrycie swoich śladów.

Używanie wspólnych kanałów i protokołów

Podobnie jak zaufane platformy i marki, szyfrowane kanały, porty i protokoły używane przez legalne aplikacje stanowią kolejny sposób na zamaskowanie śladów przez atakujących.

Na przykład, HTTPS jest dziś powszechnie niezbędnym protokołem w sieci, i z tego powodu port 443 (używany przez HTTPS/SSL) jest bardzo trudny do zablokowania w środowisku korporacyjnym.

Jednak DNS over HTTPS (DoH) ̶ protokół do rozwiązywania domen ̶ również korzysta z portu 443 i był nadużywany przez autorów złośliwego oprogramowania do przesyłania komend Command-and-Control (C2) do zainfekowanych systemów.

Są dwa aspekty tego problemu. Po pierwsze, nadużywając powszechnie stosowanego protokołu, takiego jak HTTPS lub DoH, osoby atakujące korzystają z tych samych korzyści w zakresie prywatności, jakie dają szyfrowane kanały end-to-end, co legalni użytkownicy.

Po drugie, stwarza to trudności dla administratorów sieci. Blokowanie DNS w każdej formie samo w sobie stanowi wyzwanie, ale teraz, biorąc pod uwagę, że żądania DNS i odpowiedzi są szyfrowane przez HTTPS, staje się uciążliwe dla specjalistów ds. bezpieczeństwa, aby przechwycić, wyróżnić i przeanalizować podejrzany ruch z wielu żądań HTTPS poruszających się przychodzących i wychodzących przez sieć.

Alex Birsan ̶ badacz, który zademonstrował technikę zamieszania zależnościowego, aby etycznie włamać się do ponad 35 dużych firm technologicznych, był w stanie zmaksymalizować swój sukces używając DNS (port 53) do eksfiltracji podstawowych informacji. Birsan wybrał DNS ze względu na wysokie prawdopodobieństwo, że korporacyjne zapory sieciowe nie będą blokować ruchu DNS, ze względu na wymagania wydajnościowe i uzasadnione zastosowania DNS.

Wykorzystywanie podpisanych binariów do uruchamiania złośliwego oprogramowania z obfuskacją

Znana koncepcja złośliwego oprogramowania bez plików, wykorzystującego pliki binarne typu „living-off-the-land” (LOLBINs), pozostaje ważną techniką unikania ataków.

LOLBIN-y odnoszą się do legalnych, cyfrowo podpisanych plików wykonywalnych, takich jak pliki wykonywalne systemu Windows podpisane przez Microsoft, które mogą zostać wykorzystane przez atakujących do uruchomienia złośliwego kodu z podwyższonymi uprawnieniami lub do ominięcia produktów bezpieczeństwa punktów końcowych, takich jak programy antywirusowe.

Pod koniec 2021 r. Microsoft podzielił się wskazówkami dotyczącymi technik obronnych, które przedsiębiorstwa mogą zastosować, aby uniemożliwić atakującym nadużywanie LOLBIN-ów Microsoft Azure.

W innym przykładzie, niedawno odkryte złośliwe oprogramowanie dla systemów Linux i macOS, które przeanalizowałem, miało doskonały, zerowy wskaźnik wykrywalności wśród wszystkich wiodących produktów antywirusowych.

Kod binarny zawierał kod obfuscated, który pomagał w unikaniu ataków. Jednak dalsze badania wykazały, że złośliwe oprogramowanie zostało zbudowane przy użyciu setek legalnych komponentów open-source i wykonywało swoje szkodliwe działania, takie jak uzyskiwanie uprawnień administracyjnych, w sposób identyczny do tego, w jaki robiłyby to legalne aplikacje.

Podczas gdy złośliwe oprogramowanie z obfuskacją, pakery uruchamiania, unikanie maszyn wirtualnych lub ukrywanie złośliwego ładunku w obrazach są znanymi technikami unikania stosowanymi przez zaawansowane zagrożenia, ich prawdziwa moc pochodzi z omijania produktów bezpieczeństwa lub pozostawania pod ich radarem.

Jest to możliwe, gdy payloads (fragmenty przesyłanych danych, będące formą wiadomości) są w pewnym stopniu połączone z zaufanymi komponentami oprogramowania, protokołami, kanałami, usługami lub platformami.

Kodowanie szkodliwego oprogramowania w nietypowych językach programowania

Według ostatniego raportu zespołu BlackBerry Research and Intelligence, autorzy złośliwego oprogramowania coraz częściej wykorzystują nietypowe języki programowania, aby po części lepiej unikać wykrycia. Głównymi wykorzystywanymi językami były Go, D, Nim i Rust.

Języki te dodają obfuskację (zaciemnianie kodu) na kilka sposobów. Po pierwsze, przepisanie złośliwego oprogramowania w nowym języku oznacza, że narzędzia wykrywające oparte na sygnaturach nie będą już w stanie go wykryć (przynajmniej do czasu stworzenia nowych sygnatur). Po drugie, naukowcy z Blackberry twierdzą, że języki same w sobie działają jak warstwa maskująca. Na przykład, złośliwe oprogramowanie pierwszego etapu, wykorzystywane do dekodowania, ładowania i wdrażania innych typowych złośliwych programów, jest napisane w nietypowym języku, co może pomóc w uniknięciu wykrycia na punkcie końcowym.

Badacze Blackberry zauważyli, że obecnie istnieje niewiele niestandardowych obfuskacji dla złośliwego oprogramowania napisanego w tych językach. Jednym z najbardziej popularnych jest Gobfuscate dla złośliwego oprogramowania napisanego w języku Go. Potrafi on manipulować nazwami pakietów, funkcji, typów i metod, a także zmiennymi globalnymi i ciągami znaków.

Źródło: CSO

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200