Introducción a AMSI

AMSIren sarrera

Celia Catalán


Oso ona guztiontzat! Gaur AMSIren munduan murgilduko gara. Seguruenik entzun duzu, baina benetan ba al dakizu nola funtzionatzen duten? Ados, ez kezkatu! Hemen gaude jakin behar duzun guztia modu erraz eta atseginean azaltzeko.

Iruditu kodea idazten ari zarela eta zure ordenagailuan exekutatu nahi duzula. Interpretatutako hizkuntzak, exekutatu aurretik kodea makina kodean konpilatu beharrean, hizkuntza hauek interprete izeneko itzultzaile berezi bat erabiltzen dute. Interprete hau argibideak itzultzeko eta exekutatzeko ardura du, lerroz lerro, aurkitzen dituen heinean.

Hizkuntza interpretatuekin, argibideak zure disko gogorrean fitxategi batean edukitzeaz gain, halaber, argibideak interpreteari zuzenean pasatzeko aukera duzu. Horrek esan nahi du edukiak ez duela zertan disko gogorra ukitu behar edozein unetan.

Orain, hitz egin dezagun gauza garrantzitsu bati buruz: diskoko malwarearen eta RAMaren arteko aldea. Antibirusetarako, disko gogorra eskaneatzea nahiko erraza da. Antibirus askok diskoa irakurtzen dute erabiltzaileak karpetetan zehar nabigatzen duen heinean, eskaneaketa eraginkorra egiteko aukera emanez. Malwarearekin lotutako sinadura bat hautematen badute, jakinarazpen bat agertuko da eta asmo txarreko fitxategia berrogeialdian jarriko da. Hala ere, RAMan jada sartuta dagoen malwarea detektatzea askoz konplexuagoa da bi arrazoirengatik:
  •  RAM memoria oso aldakorra da, eta hori zerbait bihurtzen da oso konplexua aztertzeko.
  • Prozesu bat dagoeneko RAM-en dagoenean, horiek argibideak exekutatzen ari dira, eta malwarea bada, dagoeneko egin zezakeen ekintza gaiztoak, beste prozesu batera migratu eta arrasto nagusia ezabatu, etab.

Orain hori bidetik kanpo daukagula, utzi dizut gaur gure protagonista aurkezten: AMSI ( Antimalware Scan Interfazea). AMSI RAM memoria aztertzeko lan zailari eta exekuzioak gertatu aurretik aztertzeko beharrari erantzuteko jaio zen. Microsoft-ek API moduan garatu zuen, segurtasun-soluzioek inplementatutako funtzioei dei diezaieten.

Zer esan nahi du honek termino sinpleagoetan? Funtsean, exekuzioan komandoak harrapatzeko modu bat eskaintzen du, hala nola, PowerShell, JScript, VB/VBA eta .NET-ek. Harrapatu ondoren, antibirusera bidaliko ditu, exekutatu aurretik aztertu ahal izateko. Antibirusak komandoa gaiztoa dela zehazten badu, AMSIk aplikazioari jakinaraziko dio eta exekuzioa eragotziko du.

AV/EDR guztiek AMSI babes neurri gisa erabiltzen ez duten arren, gero eta gehiago sartzen dute, beraz. ezinbestekoa da nola funtzionatzen duen ulertzea. AMSI zergatik dagoen eta zein den bere helburua jakin ondoren, bere funtzionamenduaren ohiko fluxua nolakoa den zehatz ulertzeko garaia da.

Programa baten eta prozesu baten arteko aldea da programa zeregin zehatz baterako argibideak eta prozesu bat direla. Programak dituen argibide berberak dira, baina aldagaietarako eta bestelako beharretarako gordetako memoria-eremuak gehituz.

Windows-en, DLLak (Dynamic Link Libraries) erabiltzen dira programa baten funtzionaltasuna zabaltzeko. Programa bat prozesu moduan RAM-ra kargatzen denean eta DLL bat kargatzen duenean, funtzionalitateak prozesuko eremu birtualean integratzen dira zuzenean. Adibidez, PowerShell exekutatzen denean, ntdll, kernel32 eta AMSI bezalako DLLak prozesu memoriaren parte dira.

Eman dezagun adibide bat. PowerShell prozesu bat dugu, bertatik komandoak abiarazten saiatuko gara, eta Windows Defender instalatu eta aktibatuta dago ordenagailuan. Azal dezagun komunikazio-fluxua AMSIri dagokionez.

Badakigu AMSI PowerShell bezalako prozesuetan kargatzen den liburutegi dinamikoa dela, hau da, gisa jarduteko diseinatua. prozesuaren beraren eta AV/EDRren arteko bitartekaria.

Komando bat sartzen denean, PowerShell, AMSI API funtzioen bidez, Windows Defenderrekin komunikatuko da. komandoaren edukia bidaltzeko prozesua. Windows Defender-ek aztertu eta erantzun moduan bidaliko du exekutatzen ari dena gaiztoa den ala ez.

AMSI eta Windows Defender erabiltzen duen prozesuaren arteko komunikazioa RPC erabiliz egiten da. RPC Windows-ek hainbat prozesuren artean komunikatzeko modu bat da (ordenagailu ezberdinetan dauden prozesuak izan daitezke). Funtsean, bezero-zerbitzariaren arkitektura duten prozesuen arteko sareko komunikazioa ahalbidetzen duen inplementazio estandar bat da.

Laburbilduz, AMSI bera ez da segurtasun neurri bat (ez delako aztertzen duen malwarea da edo ez), PowerShell bezalako prozesuek datuak AV/EDRra bidaltzen dituzten estandar bat da (RPC bidez), komando bat exekutatzen ordenagailuarentzat kaltegarria izango den zehaztu ahal izateko. Aipatutako segurtasun neurriak itzultzen duenaren arabera, PowerShellek exekutatu egingo du edo ez.

Eta gaurkoz, nahikoa da! AMSIrekin jarraituko dugu hurrengo zatietan, RPCak zure neuronen artean utziz. uholdeak jasan ez ditzaten.

Juan Gabriel Ruiz, Segurtasun-analista seniorra Zerolynx eta Justo Martín, Segurtasun-analista Zerolynx.



var article = document.querySelector('#medium-feed-article-root'); baldin(artikulua) { article.style.display = 'bat ere ez'; }
Itzuli blogera

Utzi iruzkin bat

Kontuan izan iruzkinak argitaratu aurretik onartu behar direla.