Malware detection and classification with Amazon Rekognition PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Odkrivanje in razvrščanje zlonamerne programske opreme z Amazon Rekognition

Po članek Cybersecurity Ventures se je škoda, ki jo povzroči izsiljevalska programska oprema (vrsta zlonamerne programske opreme, ki lahko uporabnikom prepreči dostop do njihovih podatkov, razen če plačajo odkupnino), leta 57 povečala za 2021-krat v primerjavi z letom 2015. Poleg tega naj bi svoje žrtve stala 265 milijard dolarjev ( USD) letno do leta 2031. V času pisanja je finančni davek zaradi napadov Ransomware padel malo nad 50th mesto na seznamu držav, razvrščenih po njihovih BDP.

Glede na grožnjo, ki jo predstavlja zlonamerna programska oprema, je bilo razvitih več tehnik za odkrivanje in zadrževanje napadov zlonamerne programske opreme. Dve najpogostejši tehniki, ki se danes uporabljata, sta zaznavanje na podlagi podpisa in vedenja.

Zaznavanje na podlagi podpisa vzpostavi enolični identifikator o znanem zlonamernem predmetu, tako da ga je mogoče identificirati v prihodnosti. Lahko je edinstven vzorec kode, priložen datoteki, ali pa zgoščena vrednost znane kode zlonamerne programske opreme. Če se med pregledovanjem novih predmetov odkrije znani identifikator vzorca (podpis), je objekt označen kot zlonameren. Zaznavanje na podlagi podpisov je hitro in zahteva nizko računalniško moč. Vendar pa se bori proti polimorfnim vrstam zlonamerne programske opreme, ki nenehno spreminjajo svojo obliko, da se izognejo odkrivanju.

Zaznavanje na podlagi vedenja presodi sumljive predmete na podlagi njihovega vedenja. Artefakti, ki jih izdelki proti zlonamerni programski opremi lahko upoštevajo, so interakcije procesov, poizvedbe DNS in omrežne povezave objekta. Ta tehnika je boljša pri odkrivanju polimorfne zlonamerne programske opreme v primerjavi s tehniko, ki temelji na podpisih, vendar ima nekaj slabosti. Če želite oceniti, ali je predmet zlonameren, se mora izvajati na gostitelju in ustvariti dovolj artefaktov, da ga izdelek proti zlonamerni programski opremi zazna. Ta slepa pega lahko zlonamerni programski opremi okuži gostitelja in se razširi po omrežju.

Obstoječe tehnike še zdaleč niso popolne. Posledično se raziskave nadaljujejo s ciljem razviti nove alternativne tehnike, ki bodo izboljšale naše zmogljivosti za boj proti zlonamerni programski opremi. Ena nova tehnika, ki se je pojavila v zadnjih letih, je odkrivanje zlonamerne programske opreme na podlagi slik. Ta tehnika predlaga usposabljanje omrežja za globoko učenje z znanimi dvojiškimi datotekami zlonamerne programske opreme, pretvorjenimi v sivine slike. V tej objavi prikazujemo, kako izvesti zaznavanje zlonamerne programske opreme na podlagi slike Amazonsko ponovno vžiganje Oznake po meri.

Pregled rešitev

Za usposabljanje modela z več klasifikacijami in modela za odkrivanje zlonamerne programske opreme najprej pripravimo nabore podatkov za usposabljanje in preizkus, ki vsebujejo različne vrste zlonamerne programske opreme, kot so flooder, oglaševalska programska oprema, vohunska programska oprema itd., kot tudi benigne objekte. Objekte prenosnih izvedljivih datotek (PE) nato pretvorimo v sivine slike. Nato urimo model z uporabo slik z Amazon Rekognition.

Amazon Rekognition je storitev, ki omogoča preprosto izvajanje različnih vrst vizualnih analiz vaših aplikacij. Rekognition Image vam pomaga zgraditi zmogljive aplikacije za iskanje, preverjanje in organiziranje milijonov slik.

Amazon Rekognition Custom Labels temelji na obstoječih zmožnostih Rekognition, ki so že usposobljene na več desetih milijonih slik v številnih kategorijah.

Amazon Rekognition Custom Labels je popolnoma upravljana storitev, ki uporabnikom omogoča analizo milijonov slik in njihovo uporabo za reševanje številnih različnih težav s strojnim učenjem (ML), vključno s klasifikacijo slik, zaznavanjem obrazov in moderiranjem vsebine. Amazon Rekognition v zakulisju temelji na tehnologiji globokega učenja. Storitev uporablja konvolucijsko nevronsko mrežo (CNN), ki je vnaprej usposobljena na velikem označenem naboru podatkov. Če je algoritem izpostavljen takšnim osnovnim resničnim podatkom, se lahko nauči prepoznati vzorce v slikah iz številnih različnih področij in se lahko uporablja v številnih industrijskih primerih uporabe. Ker AWS prevzame lastništvo nad izgradnjo in vzdrževanjem arhitekture modela ter izbiro ustrezne metode usposabljanja za zadevno nalogo, uporabnikom ni treba porabiti časa za upravljanje infrastrukture, potrebne za naloge usposabljanja.

Arhitektura rešitev

Naslednji diagram arhitekture ponuja pregled rešitve.

Rešitev je zgrajena z uporabo Serija AWS, AWS Fargatein Amazonsko ponovno vžiganje. AWS Batch vam omogoča izvajanje na stotine paketnih računalniških opravil v Fargateu. Fargate je združljiv z obema Amazonska elastična posoda (Amazon ECS) in Storitev Amazon Elastic Kubernetes (Amazon EKS). Oznake po meri Amazon Rekognition vam omogočajo uporabo AutoML za računalniški vid za usposabljanje modelov po meri za odkrivanje zlonamerne programske opreme in razvrščanje različnih kategorij zlonamerne programske opreme. Funkcije korakov AWS se uporabljajo za orkestriranje predprocesiranja podatkov.

Za to rešitev ustvarimo sredstva za predprocesiranje prek Oblikovanje oblaka AWS. Predloga sklada CloudFormation in izvorna koda za funkcije AWS Batch, Fargate in Step sta na voljo v Skladišče GitHub.

Podatkovni niz

Za usposabljanje modela v tem primeru smo uporabili naslednje javne nabore podatkov za ekstrahiranje zlonamernih in benignih Prenosna izvršljiva datoteka (PE):

Priporočamo vam, da natančno preberete dokumentacijo o naborih podatkov (Sophos/Reversing Labs README, Nabor podatkov o strojnem učenju zlonamerne programske opreme PE) za varno ravnanje s predmeti zlonamerne programske opreme. Glede na vaše želje lahko uporabite tudi druge nabore podatkov, če zagotavljajo zlonamerno programsko opremo in benigne predmete v binarni obliki.

Nato vas bomo vodili skozi naslednje korake rešitve:

  • Vnaprej obdelajte predmete in jih pretvorite v slike
  • Razmestite sredstva za predprocesiranje s CloudFormation
  • Izberite model
  • Trenirajte model
  • Ocenite model
  • Stroški in zmogljivost

Vnaprej obdelajte predmete in jih pretvorite v slike

Funkcije korakov uporabljamo za orkestriranje delovnega toka predprocesiranja objektov, ki vključuje naslednje korake:

  1. Bodite meta.db baza podatkov sqllite iz sorel-20m S3 vedro in ga pretvorite v datoteko .csv. To nam pomaga naložiti datoteko .csv v vsebnik Fargate in se sklicevati na metapodatke med obdelavo predmetov zlonamerne programske opreme.
  2. Vzemite predmete iz vedra sorel-20m S3 in ustvarite seznam predmetov v formatu csv. Z izvedbo tega koraka ustvarimo niz datotek .csv, ki jih je mogoče obdelovati vzporedno, s čimer skrajšamo čas, potreben za predhodno obdelavo.
  3. Pretvorite predmete iz vedra sorel-20m S3 v slike z nizom opravil. Opravila paketnih nizov AWS imajo skupne parametre za pretvorbo objektov zlonamerne programske opreme v slike. Izvajajo se kot zbirka opravil pretvorbe slik, ki so porazdeljene na več gostiteljev in se izvajajo sočasno.
  4. Izberite vnaprej določeno število slik za usposabljanje modela z nizom opravil, ki ustrezajo kategorijam zlonamerne programske opreme.
  5. Podobno kot pri 2. koraku vzamemo benigne predmete iz vedra benignih-160k S3 in ustvarimo seznam predmetov v formatu csv.
  6. Podobno kot pri 3. koraku pretvorimo predmete iz vedra benigne-160k S3 v slike z nizom opravil.
  7. Zaradi privzete kvote Amazon Rekognition za usposabljanje oznak po meri (250K slik) izberite vnaprej določeno število benignih slik za usposabljanje modela.
  8. Kot je prikazano na naslednji sliki, so slike shranjene v vedru S3, najprej particionirane z zlonamerno programsko opremo in benignimi mapami, nato pa je zlonamerna programska oprema razdeljena po vrstah zlonamerne programske opreme.
    Vadbena žlica S3
    Nabor podatkov o usposabljanju

Razmestite sredstva za predprocesiranje z CloudFormation

Predpogoji

Pred nadaljevanjem so potrebni naslednji predpogoji:

Razporeditev virov

Sklad CloudFormation bo ustvaril naslednje vire:

parametri

  • STACK_NAME – Ime sklada CloudFormation
  • AWS_REGION – Regija AWS, kjer bo rešitev uvedena
  • AWS_PROFILE – Imenovani profil, ki bo veljal za ukaz AWS CLI
  • ARTEFACT_S3_BUCKET – vedro S3, kjer bo shranjena infrastrukturna koda. (Vedro mora biti ustvarjeno v isti regiji, kjer živi rešitev).
  • AWS_ACCOUNT – ID računa AWS.

Za razmestitev virov uporabite naslednje ukaze

Prepričajte se, da se na napravi izvaja docker agent. Razmestitve potekajo s skripti bash, v tem primeru pa uporabimo naslednji ukaz:

bash malware_detection_deployment_scripts/deploy.sh -s '' -b 'malware-
detection--artifacts' -p  -r "" -a

To zgradi in razmesti lokalne artefakte, na katere se sklicuje predloga CloudFormation (npr. cloudformation.yaml).

Trenirajte model

Ker Amazon Rekognition namesto vas poskrbi za usposabljanje modela, računalniški vid ali visoko specializirano znanje ML ni potrebno. Vendar boste morali storitvi Amazon Rekognition zagotoviti vedro, napolnjeno z ustrezno označenimi vhodnimi slikami.

V tej objavi bomo usposobili dva neodvisna modela klasifikacije slik prek funkcije oznak po meri:

  1. Model odkrivanja zlonamerne programske opreme (binarna klasifikacija) – ugotovi, ali je dani predmet zlonameren ali benigen
  2. Model klasifikacije zlonamerne programske opreme (večrazredna klasifikacija) – identificirajte družino zlonamerne programske opreme za določen zlonamerni predmet

Predstavitev usposabljanja modela

Koraki, navedeni v naslednjem vodstvu, veljajo za oba modela. Zato boste morali iti skozi korake dvakrat, da boste usposobili oba modela.

  1. Prijavite se v Konzola za upravljanje AWS in odprite Amazon Rekognition konzola.
  2. V levem podoknu izberite Uporabite oznake po meri. Prikazana je ciljna stran Amazon Rekognition Custom Labels.
  3. Na ciljni strani Amazon Rekognition Custom Labels izberite Začnite.
  4. V levem podoknu izberite Izberi projekti.
  5. Izberite Ustvari projekt.
  6. In Ime Projekta, vnesite ime za svoj projekt.
  7. Izberite Ustvarite projekt ustvariti svoj projekt.
  8. v projekti izberite projekt, ki mu želite dodati nabor podatkov. Prikaže se stran s podrobnostmi za vaš projekt.
  9. Izberite Ustvari nabor podatkov. Ustvari nabor podatkov se prikaže stran.
  10. In Zagon konfiguracije, izberite Začnite z enim naborom podatkov da Amazon Rekognition razdeli nabor podatkov na usposabljanje in preizkus. Upoštevajte, da lahko na koncu dobite različne preizkusne vzorce v vsaki ponovitvi usposabljanja modela, kar povzroči nekoliko drugačne rezultate in meritve ocenjevanja.
  11. Izberite Uvozite slike iz vedra Amazon S3.
  12. In S3 URI, vnesite lokacijo vedra S3 in pot do mape. Isto vedro S3, zagotovljeno v koraku predprocesiranja, se uporablja za ustvarjanje obeh naborov podatkov: odkrivanje zlonamerne programske opreme in klasifikacija zlonamerne programske opreme. Nabor podatkov o odkrivanju zlonamerne programske opreme kaže na koren (tj. s3://malware-detection-training-{account-id}-{region}/) vedra S3, medtem ko nabor podatkov o klasifikaciji zlonamerne programske opreme kaže na mapo z zlonamerno programsko opremo (tj. s3://malware-detection-training-{account-id}-{region}/malware) vedra S3. Podatki o usposabljanju
  13. Izberite Samodejno pripnite oznake slikam glede na mapo.
  14. Izberite Ustvarite nabore podatkov. Odpre se stran z nabori podatkov za vaš projekt.
  15. o Model vlaka stran, izberite Model vlaka. Amazonovo ime vira (ARN) za vaš projekt mora biti v Izberite projekt polje za urejanje. Če ne, potem vnesite ARN za svoj projekt.
  16. v Ali želite usposobiti svojega modela? izberite pogovorno okno Model vlaka.
  17. Po končanem usposabljanju izberite ime modela. Usposabljanje je končano, ko je status modela TRAINING_COMPLETED.
  18. v Modeli v razdelku izberite Uporabi model zavihek, da začnete uporabljati model.

Za več podrobnosti preverite oznake po meri Amazon Rekognition Prvi koraki vodnik.

Ocenite model

Ko so modeli usposabljanja končani, lahko z izbiro dostopate do meritev ocenjevanja Preverite meritve na strani modela. Amazon Rekognition vam ponuja naslednje meritve: rezultat F1, povprečno natančnost in splošni priklic, ki se običajno uporabljajo za ocenjevanje učinkovitosti klasifikacijskih modelov. Slednje so povprečne meritve glede na število oznak.

v Zmogljivost na oznako lahko najdete vrednosti teh meritev na oznako. Poleg tega, če želite pridobiti vrednosti za True Positive, False Positive in False negative, izberite Oglejte si rezultate testa.

Meritve modela za odkrivanje zlonamerne programske opreme

Na uravnoteženem naboru podatkov 199,750 slik z dvema oznakama (benigna in zlonamerna programska oprema) smo prejeli naslednje rezultate:

  • Ocena F1 – 0.980
  • Povprečna natančnost – 0.980
  • Skupni odpoklic – 0.980

Meritve modela za odkrivanje zlonamerne programske opreme

Meritve modela klasifikacije zlonamerne programske opreme

Na uravnoteženem naboru podatkov 130,609 slik z 11 oznakami (11 družin zlonamerne programske opreme) smo prejeli naslednje rezultate:

  • Ocena F1 – 0.921
  • Povprečna natančnost – 0.938
  • Skupni odpoklic – 0.906

Meritve modela klasifikacije zlonamerne programske opreme

Če želite oceniti, ali model deluje dobro, priporočamo primerjavo njegove uspešnosti z drugimi primerjalnimi testi v panogi, ki so bili usposobljeni na istem (ali vsaj podobnem) naboru podatkov. Na žalost v času pisanja te objave ni primerjalnih raziskav, ki bi rešile ta problem z uporabo iste tehnike in istih naborov podatkov. Vendar se v skupnosti podatkovnih znanosti model z oceno F1 nad 0.9 šteje za zelo dobrega.

Stroški in zmogljivost

Zaradi narave virov brez strežnika na skupni strošek vpliva čas, ki ga vsaka storitev uporablja. Po drugi strani pa na uspešnost vpliva količina podatkov, ki se obdelujejo, in velikost nabora podatkov o usposabljanju, ki se posreduje Amazon Rekognition. Za našo oceno stroškov in uspešnosti upoštevamo naslednji scenarij:

  • 20 milijonov predmetov je katalogiziranih in obdelanih iz nabora podatkov sorel.
  • 160,000 predmetov je katalogiziranih in obdelanih iz nabora podatkov o strojnem učenju zlonamerne programske opreme PE.
  • V vedro S240,000 za usposabljanje je zapisanih približno 3 objektov: 160,000 objektov zlonamerne programske opreme in 80,000 benignih objektov.

Na podlagi tega scenarija je povprečni strošek predhodne obdelave in uvajanja modelov 510.99 USD. Za vsako uro uporabe modela vam bomo dodatno zaračunali 4 USD/h. Podrobno razčlenitev stroškov lahko najdete v oceniti ustvarjen prek Kalkulator cen AWS.

Kar zadeva zmogljivost, so to rezultati naših meritev:

  • ~2 h za dokončanje toka predprocesiranja
  • Približno 40 ur za dokončanje usposabljanja modela za odkrivanje zlonamerne programske opreme
  • Približno 40 ur za dokončanje usposabljanja za model klasifikacije zlonamerne programske opreme

Pospravi

Da bi se izognili prihodnjim stroškom, stop in odstrani modele Amazon Rekognition in izbrišite sredstva za predprocesiranje prek uničiti.sh scenarij. Za uspešno izvajanje skripta so potrebni naslednji parametri:

  • STACK_NAME – Ime sklada CloudFormation
  • AWS_REGION – Regija, kjer je rešitev nameščena
  • AWS_PROFILE – Poimenovani profil, ki velja za ukaz AWS CLI

Za zagon uporabite naslednje ukaze ./malware_detection_deployment_scripts/destroy.sh skript:

bash malware_detection_deployment_scripts/destroy.sh -s  -p
 -r 

zaključek

V tej objavi smo pokazali, kako izvesti odkrivanje in razvrščanje zlonamerne programske opreme z uporabo Amazon Rekognition. Rešitve sledijo vzorcu brez strežnika in izkoriščajo upravljane storitve za predhodno obdelavo podatkov, orkestracijo in uvajanje modela. Upamo, da vam bo ta objava pomagala pri nenehnih prizadevanjih za boj proti zlonamerni programski opremi.

V prihodnji objavi bomo prikazali primer praktične uporabe odkrivanja zlonamerne programske opreme z uporabo modelov, uporabljenih v tej objavi.


O avtorjih

Edvin HallvaxhiuEdvin Hallvaxhiu je višji globalni varnostni arhitekt pri AWS Professional Services in je navdušen nad kibernetsko varnostjo in avtomatizacijo. Strankam pomaga zgraditi varne in skladne rešitve v oblaku. Poleg službe ima rad potovanja in šport.

Rahul ShauryaRahul Shaurya je glavni podatkovni arhitekt pri AWS Professional Services. Pomaga in tesno sodeluje s strankami, ki gradijo podatkovne platforme in analitične aplikacije na AWS. Izven službe Rahul obožuje dolge sprehode s svojim psom Barneyjem.

Bruno DheftoBruno Dhefto je globalni varnostni arhitekt pri AWS Professional Services. Osredotočen je na pomoč strankam pri gradnji varnih in zanesljivih arhitektur v AWS. Zunaj dela ga zanimajo najnovejše tehnološke posodobitve in potovanja.

Nadim MajedNadim Majed je podatkovni arhitekt znotraj strokovnih storitev AWS. Dela vzporedno s strankami, ki gradijo svoje podatkovne platforme na AWS. Zunaj službe Nadim igra namizni tenis in rad gleda nogomet.

Časovni žig:

Več od Strojno učenje AWS