Blog 24/7

process injection

TAB. 1Hasłopo angielsku
Po angielskuprocess injection
Którą formą pisaćpo angielsku Polski odpowiednik istnieje, ale w praktyce nikt tak nie pisze. Zostaw angielski, polski trzymaj jako synonim.
Inne formywstrzykiwanie kodu do procesu · wstrzyknięcie kodu w proces
KategoriaZłośliwe oprogramowanie

Process injection to technika, w której atakujący uruchamia własny kod w przestrzeni adresowej innego, działającego już procesu. MITRE ATT&CK opisuje ją jako sposób wykonania dowolnego kodu w pamięci osobnego, żywego procesu, stosowany po to, by ominąć zabezpieczenia oparte na procesach i czasem podnieść uprawnienia [1]. Wstrzyknięty kod działa pod nazwą i tożsamością gospodarza, więc dla wielu narzędzi obronnych wygląda jak zwykła praca zaufanego programu [1]. Po polsku mówi się zwykle opisowo: złośliwe oprogramowanie „wstrzykuje swój kod w procesy” [5].

Jak działa

Process injection nie jest samodzielnym atakiem, tylko etapem po uzyskaniu wykonania kodu na maszynie. Atakujący ma już jakiś przyczółek, na przykład konia trojańskiego, tylną furtkę albo przejęte konto. Wstrzyknięcie przenosi dalsze działanie do procesu, który budzi mniej podejrzeń. MITRE wskazuje trzy korzyści dla atakującego: dostęp do pamięci procesu-gospodarza, dostęp do jego zasobów systemowych i sieciowych oraz możliwe wyższe uprawnienia [1]. Dlatego technika należy w katalogu do dwóch taktyk naraz: ukrywania się i eskalacji uprawnień [1].

Ogólną logikę pokazuje schemat poniżej. Nie opisuje on żadnego konkretnego wariantu, tylko to, dlaczego obrońca widzi zdarzenie w niewłaściwym miejscu.

RYS. 1Dlaczego wstrzyknięcie myli obronę

Na Linuksie jednym z mechanizmów jest wywołanie systemowe ptrace, służące normalnie debuggerom do podglądania i zmieniania innych procesów [2]. MITRE zaznacza, że taka droga bywa niemożliwa wobec procesów, które nie są potomkami atakującego albo mają wyższe uprawnienia [2]. To ograniczenie jest ważne dla obrony, bo zależy od ustawień systemu.

Odmiany

MITRE ATT&CK wyróżnia dwanaście podtechnik process injection dla systemów Windows, Linux i macOS [1]. Różnią się mechanizmem systemu, z którego korzystają, a nie celem. Kilka przykładów z katalogu:

Podtechnika (MITRE)IdentyfikatorSystemCzego dotyczy
Dynamic-link Library InjectionT1055.001Windowsbiblioteki DLL
Thread Execution HijackingT1055.003Windowswątki procesu
Ptrace System CallsT1055.008Linuxdebugowanie procesów
Proc MemoryT1055.009Linuxpamięć przez /proc
Process HollowingT1055.012Windowspodmiana treści procesu

Pokrewne pojęcia to shellcode, czyli kod maszynowy często dostarczany w ten sposób, oraz złośliwe oprogramowanie bezplikowe, które unika zapisu na dysk. Process injection bywa też elementem techniki living off the land (LotL), gdy atakujący chowa się w legalnych programach systemu.

W WordPressie

Process injection dotyczy systemu operacyjnego serwera albo komputera administratora, a nie samego kodu WordPressa. Wtyczki i motywy działają w interpreterze PHP i nie wstrzykują kodu w procesy systemu. Typowe przejęcie strony WordPress kończy się raczej webshellem lub złośliwym kodem w plikach.

Związek pojawia się piętro niżej. Jeśli atakujący uzyska wykonanie poleceń na serwerze, może próbować przenieść się do innych procesów tego samego użytkownika. Dokumentacja jądra Linuksa podaje przykład: po przejęciu jednej aplikacji atakujący mógłby podłączyć się do innych działających procesów, na przykład sesji SSH czy agenta GPG, aby wydobyć kolejne dane uwierzytelniające [3]. Na hostingu współdzielonym rośnie znaczenie izolacji, bo WordPress.org ostrzega, że przejęcie innej strony na tym samym serwerze może zagrozić także naszej [6]. Ta sama dokumentacja zaleca utrzymywanie bezpiecznych, stabilnych wersji serwera WWW i oprogramowania na nim [6].

Zagrożenia i skutki

Główny skutek to utrata widoczności. MITRE zaznacza, że wykonanie przez process injection może umknąć produktom bezpieczeństwa, bo działanie jest maskowane legalnym procesem [1]. Reguły oparte na nazwie programu, na przykład „przeglądarka może łączyć się z siecią”, przestają wtedy chronić.

Drugi skutek to dostęp do cudzych sekretów. MITRE wymienia dostęp do pamięci procesu-gospodarza [1], a w niej mogą być dane, które ten proces przetwarza, w tym dane logowania [3]. Stąd bliskość z keyloggerami, trojanami bankowymi i oprogramowaniem szpiegowskim.

Trzeci skutek to trwałość i wiarygodność pozoru. Sekurak opisał w styczniu 2022 roku badanie firmy ZecOps nazwane NoReboot: na iPhonie złośliwe oprogramowanie z odpowiednimi uprawnieniami mogłoby wstrzyknąć kod w procesy odpowiedzialne za wyłączanie telefonu i jedynie symulować wyłączenie [5].

Jak się bronić

Obrona opiera się na ograniczeniu, kto może ingerować w cudze procesy, i na obserwacji zachowania zamiast nazw.

  • Ograniczenie ptrace na Linuksie. Moduł Yama ma ustawienie ptrace_scope. Wartość 1 wymaga z góry określonej relacji między procesami, 2 pozwala na to tylko procesom z uprawnieniem CAP_SYS_PTRACE, a 3 wyłącza podłączanie całkowicie i po ustawieniu nie da się jej zmienić [3]. MITRE wprost zaleca Yama jako środek przeciw tej odmianie, obok SELinux i AppArmor [2].
  • Zarządzanie kontami uprzywilejowanymi i wykrywanie zachowań. To dwa środki zaradcze przypisane technice w katalogu MITRE [1]. W praktyce oznacza to zasadę najmniejszych uprawnień oraz narzędzia klasy EDR, które oceniają działania procesu, a nie jego nazwę.
  • Osobne konta dla usług. Każda strona lub usługa na własnym użytkowniku systemu ogranicza, do których procesów atakujący może sięgnąć, bo klasyczne podłączenie działa w obrębie tego samego uid [3].
  • Aktualizacje i utwardzanie serwera zmniejszają szansę na pierwszy przyczółek, bez którego wstrzyknięcie nie jest możliwe [6].
  • Logi i korelacja. WordPress.org nazywa logi najlepszym przyjacielem przy ustalaniu, co się dzieje na stronie [6]. Nietypowe połączenia sieciowe procesu, który zwykle ich nie wykonuje, to dobry wskaźnik kompromitacji do analizy w SIEM.

Historia i przykłady

Wzorcowym przypadkiem jest Flame, opisany przez CERT Polska 13 sierpnia 2012 roku [4]. Analitycy ocenili, że Flame miał najbardziej wyrafinowany system wstrzyknięć kodu, jaki widzieli w złośliwym oprogramowaniu: rozkładał swoje elementy po procesach systemu łańcuchami do trzech wstrzyknięć obejmujących do czterech procesów [4]. Ruch sieciowy prowadził z procesu przeglądarki, bo połączenia z witryną Windows Update z takiego procesu nie budzą podejrzeń nawet w chronionych segmentach sieci [4]. Według CERT Polska taka architektura bardzo utrudniała wykrywanie oparte na zachowaniu i pozwalała działać niezauważenie miesiącami i latami [4]. Flame jest dziś przykładem, jak technika wspiera długotrwałe kampanie typu APT i dlaczego threat hunting (polowanie na zagrożenia) szuka anomalii w zachowaniu procesów, a nie tylko znanych plików.

TAB. 2

Przypisy

6
  1. [1] Process Injection (T1055) · MITRE ATT&CK
  2. [2] Process Injection: Ptrace System Calls (T1055.008) · MITRE ATT&CK
  3. [3] Yama — The Linux Kernel documentation · kernel.org
  4. [4] More human than human – Flame's code injection techniques · CERT Polska
  5. [5] Wyłączenie telefonu wcale nie musi oznaczać usunięcia Pegasusa czy innego malware · Sekurak
  6. [6] Hardening WordPress — Advanced Administration Handbook · WordPress.org
TAB. 3

Hasła w tym artykule

20
TAB. 4

Linkują tutaj

3

Wszystkie kategorie → · Hasło w słowniku →

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com