Nazaj na blog

Tehnike obvoda AMSI: PowerShell in naprej

October 24, 2024 5 min branja
Tehnike obvoda AMSI: PowerShell in naprej
Nazadnje posodobljeno:

Vmesnik za skeniranje proti zlonamerni programski opremi je ena najpomembnejsih Microsoftovih obrambnih tehnologij proti napadom na osnovi skript. Kot preizkusevalec vdorov se z AMSI redno srecujem med angazmaji, razumevanje delovanja in nacinov, kako ga napadalci poskusajo zaobiti, pa je bistveno znanje za vsakega branilca. Ta objava pokriva MITRE ATT&CK tehniko T1562.001 (Poseganje v obrambo: Onemogocanje ali spreminjanje orodij) in pomaga modrim ekipam okrepiti njihove zmoznosti zaznave, povezane z AMSI.

Kako AMSI deluje v ozadju

AMSI deluje kot most med skriptnimi mehanizmi in protivirusnimi produkti. Ko se skripta PowerShell izvede, skriptni mehanizem poslje razmegleno vsebino v AMSI pred izvajanjem. AMSI nato posreduje to vsebino registriranemu ponudniku protivirusne zascite, obicajno Windows Defenderju, za skeniranje. Ta arhitektura je mocna, ker vidi koncno, razmegleno obliko skript, s cimer premaga vec plasti kodiranja in zamegljevanja.

Kaj AMSI skenira

AMSI je integriran v vec komponent sistema Windows in zagotavlja siroko pokritost proti groznjam na osnovi skript. Branilci bi se morali zavedati vseh integracijskih tock, da razumejo svojo pokritost.

  • Skripte PowerShell - Vsak skriptni blok je pred izvajanjem predlozen AMSI, vkljucno z dinamicno generirano kodo in ukazi, vpisanimi interaktivno. To je najbolj znana integracijska tocka, ki ujame vecino napadov na osnovi PowerShell.
  • VBScript in JScript - Gostitelj skript Windows se integrira z AMSI, kar zagotavlja, da so stari skriptni jeziki, ki se uporabljajo v mnogih napadnih verigah, prav tako skenirani pred izvajanjem.
  • Makroji Office VBA - Od Office 365 naprej je makro koda predlozena AMSI za skeniranje. To bistveno izboljsa zaznavo zlonamernih makrov, ki so ze leta primarni vektor zacetnega dostopa.
  • Nalaganja sestavov .NET - Izvajalno okolje .NET Common Language Runtime predlozi sestave AMSI, ko se nalozijo, kar pomaga zaznati napade, ki reflektivno nalozijo zlonamerne sestave .NET v pomnilnik, tehniko, ki jo pogosto uporabljajo orodja kot Cobalt Strike.

Kategorije obvoda, ki jih uporabljajo napadalci

Razumevanje, kako napadalci poskusajo zaobiti AMSI, branilcem omogoca gradnjo zaznav, ki specificno ciljajo te tehnike. Vsaka kategorija ima razlocne indikatorje, ki bi jih morale varnostne ekipe spremljati.

  • Krpanje pomnilnika - Napadalci spremenijo funkcijo AmsiScanBuffer v amsi.dll znotraj pomnilnika procesa, da vedno vrne cist rezultat. To je najpogostejsi pristop obvoda. Dejanje krpanja te funkcije vkljucuje specificne klice API, ki jih je mogoce zaznati, vkljucno s klici VirtualProtect za spreminjanje pomnilniskih dovoljenj na DLL AMSI.
  • Zamegljevanje - Namesto onemogocanja AMSI nekateri napadalci mocno zameglijo svoje koristne vsebine, da se izognejo sprozitvi podpisov AMSI. Ceprav AMSI v vecini primerov vidi razmegleno vsebino, lahko kreativno kodiranje vckasih zaobide zaznavo. Branilci bi morali zagotoviti, da ima njihov ponudnik AMSI robustna vedenjska pravila poleg preprostih podpisov.
  • Onemogocanje na osnovi odseva - Z uporabo odseva .NET lahko napadalci dostopajo do notranjih polj AMSI in nastavijo zastavico amsiInitFailed na true, kar povzroci, da se nadaljnja skeniranja preskocijo. Ta tehnika manipulira notranje stanje izvajalnega okolja .NET in jo je mogoce zaznati s spremljanjem specificnih vzorcev odseva.
  • Ugrabitev COM - AMSI uporablja objekte COM za komunikacijo med komponentami. S preusmeritvijo registracije streznika COM AMSI v registru lahko napadalci usmerijo klice AMSI na benignega upravljavca. Spremembe registra na vnosih COM, povezanih z AMSI, bi morale biti pozorno nadzorovane.

Testiranje vase pokritosti AMSI

  1. Razumevanje, kaj sprozi AMSI - Uporabite testni niz EICAR ali znane testne vzorce AMSI za preverjanje, da je AMSI funkcionalen v vasem okolju. Zagotovite, da so vse integracijske tocke aktivne in pravilno porocajo.
  2. Testiranje ucinkovitosti zamegljevanja - Med preizkusi vdorov dokumentirajte, katere tehnike zamegljevanja zaobidejo vasega ponudnika AMSI. To pomaga identificirati vrzeli v podpisih, ki bi jih moral vas proizvajalec odpraviti.
  3. Preverjanje zaznave obvoda - Poskusite znane tehnike obvoda AMSI v nadzorovanem okolju in preverite, da vas EDR zazna sam poskus obvoda, ne le koristno vsebino, ki jo je poskusal zagnati.
  4. Dokumentiranje vrzeli v zaznavi - Ustvarite celovito porocilo, ki preslika vsako tehniko obvoda na vase zmoznosti zaznave, z oznacbo, kje je potrebno dodatno spremljanje ali pravila po meri.

Zaznava in obramba

Zaznavanje poskusov obvoda AMSI je kljucnega pomena, saj lahko uspesan obvod naredi celotno plast vase obrambe nevidno. Tu so kljucne strategije zaznave, ki jih priporocam svojim strankam.

  • Spremljanje klicev API, povezanih z AMSI - Bodite pozorni na klice VirtualProtect, ki ciljajo pomnilniske regije amsi.dll. Sysmon dogodek ID 10 (ProcessAccess) in telemetrija EDR lahko razkrijeta, ko proces spreminja pomnilniske zascite na nalozenih modulih AMSI.
  • Omogocite belezenje skriptnih blokov PowerShell - Dogodek ID 4104 zajame celotno vsebino izvrsenih skriptnih blokov. Tudi ce je AMSI zaobiden, belezenje skriptnih blokov zagotavlja locen tok telemetrije, ki zajame zlonamerne ukaze. To bi moralo biti omogoceno v celotni organizaciji prek skupinske politike.
  • Spremljajte Windows dogodek ID 4103 - Belezenje modulov zajame podrobnosti izvajanja cevovoda PowerShell in zagotavlja se eno plast vidnosti, neodvisno od AMSI.
  • Bodite pozorni na vzorce odseva .NET - Zaznajte ukaze PowerShell, ki uporabljajo System.Reflection za dostop do tipov in polj, povezanih z AMSI. Specificni vzorci, kot je dostopanje do polj amsiContext ali amsiSession, so mocni indikatorji poskusov obvoda.
  • Spremljanje registra - Opozorite na spremembe registracijskih kljucev COM AMSI pod HKLM\SOFTWARE\Classes\CLSID. Vse spremembe teh kljucev zunaj legitimnih posodobitev programske opreme bi morale biti takoj preiskane.
  • Razmestite preverjanja zdravja AMSI - Implementirajte periodicna avtomatizirana preverjanja, ki potrjujejo, da AMSI pravilno deluje na vseh koncnih tockah. Nenadna odpoved AMSI na gostitelju lahko kaze na izveden obvod.

Krepitev vase drzje AMSI

Poleg zaznave lahko organizacije sprejmejo proaktivne korake, ki napadalcem otezijo obvod AMSI. Posodabljajte Windows in definicije Defenderja, saj Microsoft neprestano zakrpa znane tehnike obvoda. Razmislite o razmestitvi ponudnikov AMSI tretjih oseb, ki ponujajo dodatne zmoznosti zaznave poleg Defenderja. Implementirajte omejeni jezikovni nacin za PowerShell, kjer je mogoce, ki omejuje razpolozljive tipe .NET in naredi mnoge tehnike obvoda nemogoce. Koncno, zapomnite si, da je AMSI ena plast v strategiji obrambe v globino. Tudi ob popolni pokritosti AMSI organizacije potrebujejo zaznavo na koncnih tockah, omrezno spremljanje in robustno belezenje za ohranjanje celovite vidnosti v svoje okolje.

Vid Grosek

Vid Grosek

Etični heker & Penetracijski tester

Pomagam slovenskim podjetjem odkriti varnostne ranljivosti, preden jih odkrijejo napadalci. Vec kot 5 let izkusenj s penetracijskim testiranjem.

Vse objave

Komentarji

Ni se komentarjev. Bodite prvi!

Dodaj komentar

Vam je bil clanek vsec?

Prijavite se na newsletter za mesecne varnostne vpoglede.

Prijavite se