Malwaredetektion og klassificering med Amazon Rekognition PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Malwaredetektion og klassificering med Amazon Rekognition

Ifølge en artikel af Cybersecurity Ventures steg skaden forårsaget af Ransomware (en type malware, der kan blokere brugere i at få adgang til deres data, medmindre de betaler en løsesum) med 57 gange i 2021 sammenlignet med 2015. Desuden forventes det at koste ofrene $265 milliarder ( USD) årligt inden 2031. I skrivende stund falder den økonomiske vejafgift fra Ransomware-angreb lige over de 50th placering på en liste over lande rangeret efter deres BNP.

I betragtning af truslen fra malware er der udviklet adskillige teknikker til at opdage og begrænse malwareangreb. De to mest almindelige teknikker, der bruges i dag, er signatur- og adfærdsbaseret detektion.

Signaturbaseret detektion etablerer en unik identifikator om et kendt ondsindet objekt, så objektet kan identificeres i fremtiden. Det kan være et unikt kodemønster knyttet til en fil, eller det kan være hashen af ​​en kendt malwarekode. Hvis en kendt mønsteridentifikator (signatur) opdages under scanning af nye objekter, markeres objektet som ondsindet. Signaturbaseret detektion er hurtig og kræver lav regnekraft. Det kæmper dog mod polymorfe malware-typer, som løbende ændrer deres form for at undgå opdagelse.

Adfærdsbaseret detektion bedømmer de mistænkelige genstande baseret på deres adfærd. Artefakter, der kan tages i betragtning af anti-malware-produkter, er procesinteraktioner, DNS-forespørgsler og netværksforbindelser fra objektet. Denne teknik klarer sig bedre til at opdage polymorf malware sammenlignet med signaturbaseret, men den har nogle ulemper. For at vurdere, om et objekt er ondsindet, skal det køre på værten og generere nok artefakter til, at anti-malware-produktet kan opdage det. Denne blinde plet kan lade malware inficere værten og spredes gennem netværket.

Eksisterende teknikker er langt fra perfekte. Som et resultat fortsætter forskningen med det formål at udvikle nye alternative teknikker, der vil forbedre vores muligheder for at bekæmpe malware. En ny teknik, der er dukket op i de senere år, er billedbaseret malwaredetektion. Denne teknik foreslår at træne et deep-learning netværk med kendte malware binære filer konverteret i gråtonebilleder. I dette indlæg viser vi, hvordan man udfører billedbaseret malware-detektion med Amazon-anerkendelse Brugerdefinerede etiketter.

Løsningsoversigt

For at træne en multi-klassifikationsmodel og en malware-detektionsmodel, forbereder vi først trænings- og testdatasættene, som indeholder forskellige malwaretyper såsom flooder, adware, spyware osv., samt godartede objekter. Vi konverterer derefter de bærbare eksekverbare (PE) objekter til gråtonebilleder. Dernæst træner vi en model ved hjælp af billederne med Amazon Rekognition.

Amazon Rekognition er en tjeneste, der gør det nemt at udføre forskellige typer visuel analyse på dine applikationer. Rekognition Image hjælper dig med at bygge kraftfulde applikationer til at søge, verificere og organisere millioner af billeder.

Amazon Rekognition Custom Labels bygger på Rekognitions eksisterende muligheder, som allerede er trænet på titusinder af billeder på tværs af mange kategorier.

Amazon Rekognition Custom Labels er en fuldt administreret tjeneste, der lader brugere analysere millioner af billeder og bruge dem til at løse mange forskellige maskinlæringsproblemer (ML), herunder billedklassificering, ansigtsgenkendelse og indholdsmoderering. Bag kulisserne er Amazon Rekognition baseret på en deep learning-teknologi. Tjenesten anvender et convolution neural network (CNN), som er fortrænet på et stort mærket datasæt. Ved at blive eksponeret for sådanne jordsandhedsdata kan algoritmen lære at genkende mønstre i billeder fra mange forskellige domæner og kan bruges på tværs af mange branchebrug. Da AWS tager ejerskabet af at bygge og vedligeholde modelarkitekturen og vælge en passende træningsmetode til den aktuelle opgave, behøver brugerne ikke bruge tid på at administrere den infrastruktur, der kræves til træningsopgaver.

Løsningsarkitektur

Følgende arkitekturdiagram giver et overblik over løsningen.

Løsningen er bygget vha AWS batch, AWS Fargateog Amazon-anerkendelse. AWS Batch lader dig køre hundredvis af batch computing-job på Fargate. Fargate er kompatibel med begge dele Amazon Elastic Container Service (Amazon ECS) , Amazon Elastic Kubernetes Service (Amazon EKS). Amazon Rekognition brugerdefinerede etiketter lader dig bruge AutoML til computervision til at træne tilpassede modeller til at opdage malware og klassificere forskellige malwarekategorier. AWS Step-funktioner bruges til at orkestrere dataforbehandling.

Til denne løsning opretter vi forbehandlingsressourcerne via AWS CloudFormation. CloudFormations stakskabelonen og kildekoden til AWS Batch-, Fargate- og Step-funktionerne er tilgængelige i en GitHub Repository.

datasæt

For at træne modellen i dette eksempel brugte vi følgende offentlige datasæt til at udtrække det ondsindede og godartede Bærbar eksekverbar (PE):

Vi opfordrer dig til at læse omhyggeligt gennem datasætdokumentationen (Sophos/Reversing Labs README, PE Malware Machine Learning Datasæt) for sikkert at håndtere malware-objekterne. Baseret på dine præferencer kan du også bruge andre datasæt, så længe de leverer malware og godartede objekter i det binære format.

Dernæst fører vi dig gennem de følgende trin i løsningen:

  • Forbehandle objekter og konverter til billeder
  • Implementer forbehandlingsressourcer med CloudFormation
  • Vælg model
  • Træn modellen
  • Vurder modellen
  • Omkostninger og ydeevne

Forbehandle objekter og konverter til billeder

Vi bruger trinfunktioner til at orkestrere objektforbehandlingsarbejdsgangen, som omfatter følgende trin:

  1. Tag meta.db sqllite database fra sorel-20m S3 bucket og konverter den til en .csv-fil. Dette hjælper os med at indlæse .csv-filen i en Fargate-container og henvise til metadataene, mens vi behandler malware-objekterne.
  2. Tag objekterne fra sorel-20m S3-spanden og opret en liste over objekter i csv-formatet. Ved at udføre dette trin opretter vi en række .csv-filer, som kan behandles parallelt, og derved reducerer den tid, det tager for forbehandlingen.
  3. Konverter objekterne fra sorel-20m S3-spanden til billeder med en række jobs. AWS Batch-array-job deler fælles parametre til konvertering af malware-objekter til billeder. De kører som en samling af billedkonverteringsjob, der er fordelt på flere værter og kører samtidigt.
  4. Vælg et forudbestemt antal billeder til modeltræningen med en række job, der svarer til kategorierne af malware.
  5. I lighed med trin 2 tager vi de godartede objekter fra den benign-160k S3-bøtte og opretter en liste over objekter i csv-format.
  6. I lighed med trin 3 konverterer vi objekterne fra den godartede 160k S3-spand til billeder med en række job.
  7. På grund af Amazon Rekognition-standardkvoten for træning af tilpassede etiketter (250 billeder), skal du vælge et forudbestemt antal godartede billeder til modeltræningen.
  8. Som vist i det følgende billede, gemmes billederne i en S3-bøtte, der først er opdelt af malware og godartede mapper, og derefter opdeles malwaren af ​​malware-typer.
    Trænings S3 spand
    Træningsdatasæt

Implementer forbehandlingsressourcerne med CloudFormation

Forudsætninger

Følgende forudsætninger er påkrævet, før du fortsætter:

Ressourceimplementering

CloudFormation-stakken vil skabe følgende ressourcer:

parametre

  • STACK_NAME – CloudFormation staknavn
  • AWS_REGION – AWS-region, hvor løsningen vil blive implementeret
  • AWS_PROFIL – Navngivet profil, der vil gælde for AWS CLI-kommandoen
  • ARTEFACT_S3_BUCKET – S3-spand, hvor infrastrukturkoden vil blive opbevaret. (Spanden skal oprettes i samme region, hvor løsningen bor).
  • AWS_ACCOUNT – AWS-konto-id.

Brug følgende kommandoer til at implementere ressourcerne

Sørg for, at docker-agenten kører på maskinen. Udrulningerne udføres ved hjælp af bash-scripts, og i dette tilfælde bruger vi følgende kommando:

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

Dette bygger og implementerer de lokale artefakter, som CloudFormation-skabelonen (f.eks. cloudformation.yaml) refererer til.

Træn modellen

Da Amazon Rekognition tager sig af modeltræning for dig, er computersyn eller højt specialiseret ML-kendskab ikke påkrævet. Du skal dog give Amazon Rekognition en bøtte fyldt med passende mærkede inputbilleder.

I dette indlæg træner vi to uafhængige billedklassificeringsmodeller via funktionen til brugerdefinerede etiketter:

  1. Malware-detektionsmodel (binær klassificering) – identificer, om det givne objekt er ondsindet eller godartet
  2. Malware-klassifikationsmodel (multi-class klassifikation) – identificer malware-familien for et givet ondsindet objekt

Modeltræningsgennemgang

De trin, der er angivet i den følgende gennemgang, gælder for begge modeller. Derfor skal du gennemgå trinene to gange for at træne begge modeller.

  1. Log ind på AWS Management Console og åbn Amazon Rekognition konsol.
  2. Vælg i venstre rude Brug tilpassede etiketter. Amazon Rekognition Custom Labels-landingssiden vises.
  3. Fra Amazon Rekognition Custom Labels-landingssiden skal du vælge Kom i gang.
  4. Vælg i venstre rude Projekter.
  5. Vælg Opret projekt.
  6. In Projekt navn, indtast et navn til dit projekt.
  7. Vælg Opret projekt at skabe dit projekt.
  8. I Projekter side, skal du vælge det projekt, som du vil tilføje et datasæt til. Oplysningssiden for dit projekt vises.
  9. Vælg Opret datasæt. Det Opret datasæt siden vises.
  10. In Starter konfiguration, vælg Start med et enkelt datasæt at lade Amazon Rekognition opdele datasættet til træning og test. Bemærk, at du kan ende med forskellige testprøver i hver modeltræningsiteration, hvilket resulterer i lidt forskellige resultater og evalueringsmetrikker.
  11. Vælg Importer billeder fra Amazon S3 bucket.
  12. In S3 URI, skal du indtaste S3-bøtteplaceringen og mappestien. Den samme S3-bucket, der leveres fra forbehandlingstrinnet, bruges til at oprette begge datasæt: Malware-detektion og Malware-klassificering. Malware-detektionsdatasættet peger på roden (dvs. s3://malware-detection-training-{account-id}-{region}/) i S3-bøtten, mens malware-klassifikationsdatasættet peger på malware-mappen (dvs. s3://malware-detection-training-{account-id}-{region}/malware) af S3 skovlen. Træningsdata
  13. Vælg Vedhæft automatisk etiketter til billeder baseret på mappen.
  14. Vælg Opret datasæt. Datasætsiden for dit projekt åbnes.
  15. Tog model side, vælg Tog model. Amazon-ressourcenavnet (ARN) for dit projekt skal være i Vælg projekt redigeringsboks. Hvis ikke, så indtast ARN for dit projekt.
  16. I Vil du træne din model? dialogboksen, vælg Tog model.
  17. Når træningen er fuldført, skal du vælge modellens navn. Træningen er afsluttet, når modelstatus er TRAINING_COMPLETED.
  18. I Modeller sektion, vælg Brug model fanen for at begynde at bruge modellen.

For flere detaljer, tjek Amazon Rekognition brugerdefinerede etiketter Kom godt i gang guide.

Vurder modellen

Når træningsmodellerne er færdige, kan du få adgang til evalueringsmetrikkene ved at vælge Tjek metrics på modelsiden. Amazon Rekognition giver dig følgende metrics: F1-score, gennemsnitlig præcision og generel genkaldelse, som almindeligvis bruges til at evaluere klassifikationsmodellernes ydeevne. Sidstnævnte er gennemsnitlige målinger over antallet af etiketter.

I Per label ydeevne sektion, kan du finde værdierne af disse metrics pr. etiket. For at få værdierne for Sand positiv, Falsk positiv og Falsk negativ skal du desuden vælge Se testresultater.

Malware-detektionsmodel-metrics

På det afbalancerede datasæt med 199,750 billeder med to etiketter (godartet og malware) modtog vi følgende resultater:

  • F1-score – 0.980
  • Gennemsnitlig præcision – 0.980
  • Samlet tilbagekaldelse – 0.980

Malware-detektionsmodel-metrics

Malware-klassificeringsmodel-metrics

På det afbalancerede datasæt med 130,609 billeder med 11 etiketter (11 malware-familier) modtog vi følgende resultater:

  • F1-score – 0.921
  • Gennemsnitlig præcision – 0.938
  • Samlet tilbagekaldelse – 0.906

Malware-klassificeringsmodel-metrics

For at vurdere om modellen klarer sig godt, anbefaler vi at sammenligne dens ydeevne med andre branchebenchmarks, som er blevet trænet på det samme (eller i det mindste lignende) datasæt. Desværre er der på tidspunktet for skrivningen af ​​dette indlæg ingen sammenlignende forskning, som løser dette problem ved hjælp af den samme teknik og de samme datasæt. Inden for datavidenskabssamfundet anses en model med en F1-score over 0.9 dog for at klare sig meget godt.

Omkostninger og ydeevne

På grund af ressourcernes serverløse karakter påvirkes de samlede omkostninger af den tid, hver tjeneste bruges. På den anden side påvirkes ydeevnen af ​​mængden af ​​data, der behandles, og træningsdatasættets størrelsesfeed til Amazon Rekognition. Til vores omkostnings- og præstationsestimater overvejer vi følgende scenarie:

  • 20 millioner objekter er katalogiseret og behandlet fra sorel-datasættet.
  • 160,000 objekter er katalogiseret og behandlet fra PE Malware Machine Learning Dataset.
  • Cirka 240,000 objekter er skrevet til trænings S3-bøtten: 160,000 malware-objekter og 80,000 godartede objekter.

Baseret på dette scenarie er den gennemsnitlige pris for at forbehandle og implementere modellerne 510.99 USD. Du vil blive opkrævet yderligere $4 USD/t for hver time, du bruger modellen. Du kan finde den detaljerede omkostningsfordeling i skøn genereret via AWS prisberegner.

Præstationsmæssigt er disse resultater fra vores måling:

  • ~2 timer for forbehandlingsflowet at fuldføre
  • ~40 timer for at fuldføre uddannelsen af ​​malware-detektionsmodellen
  • ~40 timer for at gennemføre træningen i malwareklassificeringsmodellen

Ryd op

For at undgå at pådrage sig fremtidige gebyrer, stoppe , slette Amazon Rekognition-modellerne, og slet forbehandlingsressourcerne via ødelægge.sh manuskript. Følgende parametre er nødvendige for at køre scriptet med succes:

  • STACK_NAME – CloudFormations staknavn
  • AWS_REGION – Regionen, hvor løsningen er indsat
  • AWS_PROFIL – Den navngivne profil, der gælder for AWS CLI-kommandoen

Brug følgende kommandoer til at køre ./malware_detection_deployment_scripts/destroy.sh manuskript:

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

Konklusion

I dette indlæg demonstrerede vi, hvordan man udfører malwaredetektion og klassificering ved hjælp af Amazon Rekognition. Løsningerne følger et serverløst mønster og udnytter administrerede tjenester til dataforbehandling, orkestrering og modelimplementering. Vi håber, at dette indlæg hjælper dig i dine igangværende bestræbelser på at bekæmpe malware.

I et fremtidigt indlæg vil vi vise en praktisk anvendelse af malware-detektion ved at forbruge de modeller, der er implementeret i dette indlæg.


Om forfatterne

Edvin HallvaxhiuEdvin Hallvaxhiu er en Senior Global Security Architect med AWS Professional Services og brænder for cybersikkerhed og automatisering. Han hjælper kunder med at bygge sikre og kompatible løsninger i skyen. Uden for arbejdet kan han godt lide at rejse og sport.

Rahul ShauryaRahul Shaurya er Principal Data Architect hos AWS Professional Services. Han hjælper og arbejder tæt sammen med kunder, der bygger dataplatforme og analytiske applikationer på AWS. Uden for arbejdet elsker Rahul at gå lange gåture med sin hund Barney.

Bruno DheftoBruno Dhefto er en global sikkerhedsarkitekt med AWS Professional Services. Han er fokuseret på at hjælpe kunder med at bygge sikre og pålidelige arkitekturer i AWS. Uden for arbejdet er han interesseret i de nyeste teknologiopdateringer og rejser.

Nadim MajedNadim Majed er dataarkitekt indenfor AWS professional services. Han arbejder side om side med kunder, der bygger deres dataplatforme på AWS. Udenfor arbejdet spiller Nadim bordtennis og elsker at se fodbold/fodbold.

Tidsstempel:

Mere fra AWS maskinindlæring