Oppdagelse og klassifisering av skadelig programvare med Amazon Rekognition PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Oppdagelse og klassifisering av skadelig programvare med Amazon Rekognition

I henhold til en Artikkel av Cybersecurity Ventures, økte skaden forårsaket av Ransomware (en type skadelig programvare som kan blokkere brukere fra å få tilgang til dataene deres med mindre de betaler løsepenger) med 57 ganger i 2021 sammenlignet med 2015. Videre er det spådd å koste ofrene 265 milliarder dollar ( USD) årlig innen 2031. I skrivende stund faller den økonomiske belastningen fra Ransomware-angrep like over 50th plassering i en liste over land rangert etter deres BNP.

Gitt trusselen fra skadelig programvare, har flere teknikker blitt utviklet for å oppdage og inneholde skadelig programvareangrep. De to vanligste teknikkene som brukes i dag er signatur- og atferdsbasert deteksjon.

Signaturbasert deteksjon etablerer en unik identifikator om et kjent skadelig objekt slik at objektet kan identifiseres i fremtiden. Det kan være et unikt kodemønster knyttet til en fil, eller det kan være hashen til en kjent skadelig programvarekode. Hvis en kjent mønsteridentifikator (signatur) oppdages under skanning av nye objekter, flagges objektet som skadelig. Signaturbasert deteksjon er rask og krever lav datakraft. Den kjemper imidlertid mot polymorfe skadevaretyper, som kontinuerlig endrer form for å unngå oppdagelse.

Atferdsbasert deteksjon bedømmer de mistenkelige objektene basert på deres oppførsel. Artefakter som kan vurderes av anti-malware-produkter er prosessinteraksjoner, DNS-spørringer og nettverkstilkoblinger fra objektet. Denne teknikken fungerer bedre til å oppdage polymorf skadelig programvare sammenlignet med signaturbasert, men den har noen ulemper. For å vurdere om et objekt er skadelig, må det kjøres på verten og generere nok artefakter til at anti-malware-produktet kan oppdage det. Denne blindsonen kan la skadelig programvare infisere verten og spre seg gjennom nettverket.

Eksisterende teknikker er langt fra perfekte. Som et resultat fortsetter forskningen med mål om å utvikle nye alternative teknikker som vil forbedre våre evner til å bekjempe skadelig programvare. En ny teknikk som har dukket opp de siste årene er bildebasert oppdagelse av skadelig programvare. Denne teknikken foreslår å trene et dypt-læringsnettverk med kjente malware-binærfiler konvertert i gråtonebilder. I dette innlegget viser vi hvordan du utfører bildebasert skadelig programvaredeteksjon med Amazon-anerkjennelse Egendefinerte etiketter.

Løsningsoversikt

For å trene opp en multi-klassifiseringsmodell og en malware-deteksjonsmodell, forbereder vi først opplærings- og testdatasettene som inneholder forskjellige skadevaretyper som flooder, adware, spyware, etc., samt godartede objekter. Vi konverterer deretter de bærbare kjørbare (PE)-objektene til gråtonebilder. Deretter trener vi en modell ved å bruke bildene med Amazon Rekognition.

Amazon Rekognition er en tjeneste som gjør det enkelt å utføre ulike typer visuelle analyser på applikasjonene dine. Rekognition Image hjelper deg med å bygge kraftige applikasjoner for å søke, verifisere og organisere millioner av bilder.

Amazon Rekognition Custom Labels bygger på Rekognitions eksisterende funksjoner, som allerede er trent på titalls millioner bilder i mange kategorier.

Amazon Rekognition Custom Labels er en fullstendig administrert tjeneste som lar brukere analysere millioner av bilder og bruke dem til å løse mange forskjellige maskinlæringsproblemer (ML), inkludert bildeklassifisering, ansiktsgjenkjenning og innholdsmoderasjoner. Bak kulissene er Amazon Rekognition basert på en dyp læringsteknologi. Tjenesten bruker et konvolusjonsnevralt nettverk (CNN), som er forhåndsopplært på et stort merket datasett. Ved å bli eksponert for slike grunnsannhetsdata, kan algoritmen lære å gjenkjenne mønstre i bilder fra mange forskjellige domener og kan brukes på tvers av mange bransjebrukstilfeller. Siden AWS tar eierskap til å bygge og vedlikeholde modellarkitekturen og velge en passende opplæringsmetode for oppgaven, trenger ikke brukere å bruke tid på å administrere infrastrukturen som kreves for opplæringsoppgaver.

Løsningsarkitektur

Følgende arkitekturdiagram gir en oversikt over løsningen.

Løsningen bygges vha AWS-batch, AWS Fargateog Amazon-anerkjennelse. AWS Batch lar deg kjøre hundrevis av batch-databehandlingsjobber på Fargate. Fargate er kompatibel med begge Amazon Elastic Container Service (Amazon ECS) og Amazon Elastic Kubernetes Service (Amazon EKS). Egendefinerte etiketter for Amazon Rekognition lar deg bruke AutoML for datasyn for å trene tilpassede modeller til å oppdage skadelig programvare og klassifisere ulike kategorier av skadelig programvare. AWS Step-funksjoner brukes til å orkestrere dataforbehandling.

For denne løsningen oppretter vi forbehandlingsressursene via AWS skyformasjon. CloudFormation stabelmalen og kildekoden for AWS Batch-, Fargate- og Step-funksjonene er tilgjengelige i en GitHub-arkivet.

datasett

For å trene modellen i dette eksemplet brukte vi følgende offentlige datasett for å trekke ut de ondsinnede og godartede Bærbar kjørbar (PE):

Vi oppfordrer deg til å lese nøye gjennom datasettdokumentasjonen (Sophos/Reversing Labs README, PE Malware Machine Learning Datasett) for å trygt håndtere skadevareobjektene. Basert på dine preferanser kan du også bruke andre datasett så lenge de gir skadelig programvare og godartede objekter i binærformatet.

Deretter vil vi lede deg gjennom følgende trinn i løsningen:

  • Forbehandle objekter og konverter til bilder
  • Distribuer forbehandlingsressurser med CloudFormation
  • Velg modell
  • Tren modellen
  • Evaluer modellen
  • Kostnad og ytelse

Forbehandle objekter og konverter til bilder

Vi bruker trinnfunksjoner for å orkestrere arbeidsflyten for objektforbehandling, som inkluderer følgende trinn:

  1. ta meta.db sqllite-database fra sorel-20m S3-bøtte og konverter den til en .csv-fil. Dette hjelper oss med å laste .csv-filen i en Fargate-beholder og referere til metadataene mens vi behandler skadevareobjektene.
  2. Ta objektene fra sorel-20m S3-bøtten og lag en liste over objekter i csv-format. Ved å utføre dette trinnet lager vi en serie .csv-filer som kan behandles parallelt, og dermed reduserer tiden det tar for forhåndsbehandlingen.
  3. Konverter gjenstandene fra sorel-20m S3-bøtten til bilder med en rekke jobber. AWS Batch array-jobber deler vanlige parametere for å konvertere skadevareobjektene til bilder. De kjører som en samling av bildekonverteringsjobber som er fordelt på flere verter, og kjøres samtidig.
  4. Velg et forhåndsbestemt antall bilder for modellopplæringen med en rekke jobber som tilsvarer kategoriene av skadelig programvare.
  5. I likhet med trinn 2 tar vi de godartede objektene fra den godartede 160k S3-bøtten og lager en liste over objekter i csv-format.
  6. I likhet med trinn 3 konverterer vi objektene fra den godartede 160k S3-bøtten til bilder med en rekke jobber.
  7. På grunn av Amazon Rekognition-standardkvoten for opplæring av tilpassede etiketter (250 XNUMX bilder), velg et forhåndsbestemt antall godartede bilder for modellopplæringen.
  8. Som vist i bildet nedenfor, lagres bildene i en S3-bøtte som først er partisjonert av skadelig programvare og godartede mapper, og deretter blir skadelig programvare partisjonert av skadevaretyper.
    Trenings S3 bøtte
    Opplæringsdatasett

Distribuer forbehandlingsressursene med CloudFormation

Forutsetninger

Følgende forutsetninger kreves før du fortsetter:

Ressursdistribusjon

CloudFormation-stakken vil lage følgende ressurser:

parametere

  • STACK_NAME – CloudFormation stabelnavn
  • AWS_REGION – AWS-regionen der løsningen skal distribueres
  • AWS_PROFILE – Navngitt profil som vil gjelde for AWS CLI-kommandoen
  • ARTEFACT_S3_BUCKET – S3-bøtte hvor infrastrukturkoden skal lagres. (Bøtten må lages i samme region der løsningen bor).
  • AWS_ACCOUNT – AWS-konto-ID.

Bruk følgende kommandoer for å distribuere ressursene

Kontroller at docker-agenten kjører på maskinen. Utrullingene gjøres ved hjelp av bash-skript, og i dette tilfellet bruker vi følgende kommando:

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

Dette bygger og distribuerer de lokale artefaktene som CloudFormation-malen (f.eks. cloudformation.yaml) refererer til.

Tren modellen

Siden Amazon Rekognition tar seg av modellopplæring for deg, er det ikke nødvendig med datasyn eller høyspesialiserte ML-kunnskaper. Du må imidlertid gi Amazon Rekognition en bøtte fylt med passende merkede inngangsbilder.

I dette innlegget vil vi trene to uavhengige bildeklassifiseringsmodeller via den egendefinerte etikettfunksjonen:

  1. Malware-deteksjonsmodell (binær klassifisering) – identifiser om det gitte objektet er skadelig eller godartet
  2. Skadevareklassifiseringsmodell (flerklasseklassifisering) – identifiser skadevarefamilien for et gitt skadelig objekt

Gjennomgang av modelltrening

Trinnene som er oppført i den følgende gjennomgangen gjelder for begge modellene. Derfor må du gå gjennom trinnene to ganger for å trene begge modellene.

  1. Logg deg på AWS-administrasjonskonsoll og åpne Amazon Rekognition trøste.
  2. Velg i venstre rute Bruk egendefinerte etiketter. Amazon Rekognition Custom Labels-landingssiden vises.
  3. Velg fra Amazon Rekognition Custom Labels-landingssiden KOM I GANG.
  4. Velg i venstre rute Prosjekter.
  5. Velg Opprett prosjekt.
  6. In Prosjektnavn, skriv inn et navn for prosjektet ditt.
  7. Velg Opprett prosjekt for å lage prosjektet ditt.
  8. Prosjekter siden, velg prosjektet du vil legge til et datasett til. Detaljsiden for prosjektet ditt vises.
  9. Velg Lag datasett. De Lag datasett siden vises.
  10. In Starter konfigurasjon, velg Start med ett enkelt datasett å la Amazon Rekognition dele opp datasettet til trening og test. Merk at du kan ende opp med forskjellige testprøver i hver modelltreningsiterasjon, noe som resulterer i litt forskjellige resultater og evalueringsverdier.
  11. Velg Importer bilder fra Amazon S3 bøtte.
  12. In S3 URI, skriv inn S3-bøtteplasseringen og mappebanen. Den samme S3-bøtten som ble levert fra forbehandlingstrinnet, brukes til å lage begge datasettene: Skadevaredeteksjon og skadeligvareklassifisering. Datasettet for oppdagelse av skadelig programvare peker til roten (dvs. s3://malware-detection-training-{account-id}-{region}/) i S3-bøtten, mens datasettet for klassifisering av skadelig programvare peker til mappen for skadelig programvare (dvs. s3://malware-detection-training-{account-id}-{region}/malware) av S3-bøtta. Treningsdata
  13. Velg Fest automatisk etiketter til bilder basert på mappen.
  14. Velg Lag datasett. Datasettsiden for prosjektet åpnes.
  15. Togmodell side, velg Togmodell. Amazon Resource Name (ARN) for prosjektet ditt skal være i Velg prosjekt redigeringsboks. Hvis ikke, skriv inn ARN for prosjektet ditt.
  16. Vil du trene modellen din? dialogboksen, velg Togmodell.
  17. Etter at treningen er fullført, velg modellens navn. Treningen er ferdig når modellstatus er TRAINING_COMPLETED.
  18. Modeller velger du Bruk modell for å begynne å bruke modellen.

For mer informasjon, sjekk de tilpassede etikettene for Amazon Rekognition Komme i gang guide.

Evaluer modellen

Når treningsmodellene er fullført, kan du få tilgang til evalueringsberegningene ved å velge Sjekk beregninger på modellsiden. Amazon Rekognition gir deg følgende beregninger: F1-poengsum, gjennomsnittlig presisjon og generell tilbakekalling, som ofte brukes til å evaluere ytelsen til klassifiseringsmodeller. Sistnevnte er gjennomsnittsberegninger over antall etiketter.

Per etikett ytelse delen, kan du finne verdiene for disse beregningene per etikett. I tillegg, for å få verdiene for sann positiv, falsk positiv og falsk negativ, velg Se testresultater.

Modellberegninger for oppdagelse av skadelig programvare

På det balanserte datasettet med 199,750 XNUMX bilder med to etiketter (godartet og skadelig programvare), mottok vi følgende resultater:

  • F1-poengsum – 0.980
  • Gjennomsnittlig presisjon – 0.980
  • Samlet tilbakekalling – 0.980

Modellberegninger for oppdagelse av skadelig programvare

Modellberegninger for klassifisering av skadelig programvare

På det balanserte datasettet med 130,609 11 bilder med 11 etiketter (XNUMX malware-familier), mottok vi følgende resultater:

  • F1-poengsum – 0.921
  • Gjennomsnittlig presisjon – 0.938
  • Samlet tilbakekalling – 0.906

Modellberegninger for klassifisering av skadelig programvare

For å vurdere om modellen gir gode resultater, anbefaler vi å sammenligne ytelsen med andre industristandarder som har blitt trent på det samme (eller i det minste lignende) datasettet. Dessverre, på tidspunktet for skriving av dette innlegget, er det ingen komparative undersøkelser som løser dette problemet ved å bruke samme teknikk og samme datasett. Innenfor datavitenskapsmiljøet anses imidlertid en modell med en F1-score over 0.9 å yte svært godt.

Kostnad og ytelse

På grunn av ressursenes serverløse natur, påvirkes den totale kostnaden av hvor lang tid hver tjeneste brukes. På den annen side påvirkes ytelsen av mengden data som behandles og opplæringsdatasettets størrelsesfeed til Amazon Rekognition. For kostnads- og ytelsesestimatet vårt vurderer vi følgende scenario:

  • 20 millioner objekter er katalogisert og behandlet fra sorel-datasettet.
  • 160,000 XNUMX objekter er katalogisert og behandlet fra PE Malware Machine Learning Dataset.
  • Omtrent 240,000 3 objekter er skrevet til trenings-S160,000-bøtten: 80,000 XNUMX skadelige objekter og XNUMX XNUMX godartede objekter.

Basert på dette scenariet er den gjennomsnittlige kostnaden for å forhåndsbehandle og distribuere modellene $510.99 USD. Du vil bli belastet i tillegg $4 USD/t for hver time du bruker modellen. Du kan finne den detaljerte kostnadsoversikten i anslag generert via AWS priskalkulator.

Ytelsesmessig er dette resultatene fra målingen vår:

  • ~2 timer for forbehandlingsflyten å fullføre
  • ~40 timer for å fullføre opplæringen for modellopplæringen for skadelig programvare
  • ~40 timer før opplæringen i klassifiseringsmodellen for skadelig programvare skal fullføres

Rydde opp

For å unngå å pådra seg fremtidige kostnader, stoppe og slette Amazon Rekognition-modellene, og slett forbehandlingsressursene via ødelegge.sh manus. Følgende parametere kreves for å kjøre skriptet vellykket:

  • STACK_NAME – CloudFormation-stabelnavnet
  • AWS_REGION – Regionen der løsningen er utplassert
  • AWS_PROFILE – Den navngitte profilen som gjelder for AWS CLI-kommandoen

Bruk følgende kommandoer for å kjøre ./malware_detection_deployment_scripts/destroy.sh manus:

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

konklusjonen

I dette innlegget demonstrerte vi hvordan du utfører oppdagelse og klassifisering av skadelig programvare ved å bruke Amazon Rekognition. Løsningene følger et serverløst mønster, og utnytter administrerte tjenester for dataforbehandling, orkestrering og modellimplementering. Vi håper at dette innlegget hjelper deg i din pågående innsats for å bekjempe skadelig programvare.

I et fremtidig innlegg vil vi vise et praktisk brukstilfelle av oppdagelse av skadelig programvare ved å konsumere modellene som er distribuert i dette innlegget.


Om forfatterne

Edvin HallvaxhiuEdvin Hallvaxhiu er en senior global sikkerhetsarkitekt med AWS Professional Services og brenner for cybersikkerhet og automatisering. Han hjelper kunder med å bygge sikre og kompatible løsninger i skyen. Utenfor jobben liker han å reise og sport.

Rahul ShauryaRahul Shaurya er en hoveddataarkitekt med AWS Professional Services. Han hjelper og jobber tett med kunder som bygger dataplattformer og analytiske applikasjoner på AWS. Utenom jobben elsker Rahul å gå lange turer med hunden sin Barney.

Bruno DheftoBruno Dhefto er en global sikkerhetsarkitekt med AWS Professional Services. Han er fokusert på å hjelpe kunder med å bygge sikre og pålitelige arkitekturer i AWS. Utenom jobben er han interessert i de siste teknologioppdateringene og reiser.

Nadim MajedNadim Majed er dataarkitekt innen AWS profesjonelle tjenester. Han jobber side om side med kunder som bygger sine dataplattformer på AWS. Utenfor jobben spiller Nadim bordtennis, og elsker å se fotball/fotball.

Tidstempel:

Mer fra AWS maskinlæring