Detektering och klassificering av skadlig programvara med Amazon Rekognition PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Detektering och klassificering av skadlig programvara med Amazon Rekognition

I enlighet med en Artikeln av Cybersecurity Ventures ökade skadorna orsakade av Ransomware (en typ av skadlig programvara som kan blockera användare från att komma åt deras data om de inte betalar en lösensumma) med 57 gånger 2021 jämfört med 2015. Dessutom förutspås det kosta sina offer 265 miljarder dollar ( USD) årligen till 2031. I skrivande stund faller den ekonomiska avgiften från Ransomware-attacker strax över 50th plats i en lista över länder rankade efter deras BNP.

Med tanke på hotet från skadlig programvara har flera tekniker utvecklats för att upptäcka och innehålla skadliga attacker. De två vanligaste teknikerna som används idag är signatur- och beteendebaserad detektion.

Signaturbaserad upptäckt etablerar en unik identifierare för ett känt skadligt objekt så att objektet kan identifieras i framtiden. Det kan vara ett unikt kodmönster som är kopplat till en fil, eller så kan det vara hash för en känd skadlig kod. Om en känd mönsteridentifierare (signatur) upptäcks när nya objekt skannas, flaggas objektet som skadligt. Signaturbaserad detektering är snabb och kräver låg beräkningskraft. Den kämpar dock mot polymorfa skadlig kod, som ständigt ändrar sin form för att undvika upptäckt.

Beteendebaserad upptäckt bedömer de misstänkta föremålen utifrån deras beteende. Artefakter som kan övervägas av produkter mot skadlig programvara är processinteraktioner, DNS-frågor och nätverksanslutningar från objektet. Den här tekniken fungerar bättre på att upptäcka polymorf skadlig kod jämfört med signaturbaserad, men den har vissa nackdelar. För att bedöma om ett objekt är skadligt måste det köras på värden och generera tillräckligt många artefakter för att anti-malware-produkten ska kunna upptäcka det. Denna blinda fläck kan låta skadlig programvara infektera värden och spridas via nätverket.

Befintliga tekniker är långt ifrån perfekta. Som ett resultat fortsätter forskningen med målet att utveckla nya alternativa tekniker som kommer att förbättra vår förmåga att bekämpa skadlig programvara. En ny teknik som har dykt upp de senaste åren är bildbaserad upptäckt av skadlig programvara. Den här tekniken föreslår att man ska träna ett nätverk för djupinlärning med kända binärfiler för skadlig programvara konverterade i gråskalebilder. I det här inlägget visar vi hur man utför bildbaserad upptäckt av skadlig programvara med Amazon-erkännande Anpassade etiketter.

Lösningsöversikt

För att träna en multiklassificeringsmodell och en modell för upptäckt av skadlig kod, förbereder vi först utbildnings- och testdatauppsättningarna som innehåller olika typer av skadlig programvara som flooder, adware, spionprogram, etc., såväl som godartade objekt. Vi konverterar sedan de portabla körbara (PE)-objekten till gråskalebilder. Därefter tränar vi en modell med hjälp av bilderna med Amazon Rekognition.

Amazon Rekognition är en tjänst som gör det enkelt att utföra olika typer av visuell analys på dina applikationer. Rekognition Image hjälper dig att bygga kraftfulla applikationer för att söka, verifiera och organisera miljontals bilder.

Amazon Rekognition Custom Labels bygger på Rekognitions befintliga funktioner, som redan är tränade på tiotals miljoner bilder i många kategorier.

Amazon Rekognition Custom Labels är en helt hanterad tjänst som låter användare analysera miljontals bilder och använda dem för att lösa många olika problem med maskininlärning (ML), inklusive bildklassificering, ansiktsdetektering och innehållsmoderering. Bakom kulisserna är Amazon Rekognition baserad på en djupinlärningsteknologi. Tjänsten använder ett konvolutionsneuralt nätverk (CNN), som är förtränat på en stor märkt dataset. Genom att exponeras för sådan marksanningsdata kan algoritmen lära sig att känna igen mönster i bilder från många olika domäner och kan användas i många branschanvändningsfall. Eftersom AWS tar ansvar för att bygga och underhålla modellarkitekturen och välja en lämplig träningsmetod för den aktuella uppgiften, behöver användarna inte lägga tid på att hantera den infrastruktur som krävs för utbildningsuppgifter.

Lösningsarkitektur

Följande arkitekturdiagram ger en översikt över lösningen.

Lösningen är byggd med hjälp av AWS-batch, AWS Fargateoch Amazon-erkännande. AWS Batch låter dig köra hundratals batchberäkningsjobb på Fargate. Fargate är kompatibel med båda Amazon Elastic Container Service (Amazon ECS) och Amazon Elastic Kubernetes Service (Amazon EKS). Med anpassade etiketter från Amazon Rekognition kan du använda AutoML för datorseende för att träna anpassade modeller för att upptäcka skadlig programvara och klassificera olika kategorier av skadlig programvara. AWS-stegfunktioner används för att orkestrera dataförbearbetning.

För denna lösning skapar vi förbehandlingsresurserna via AWS molnformation. CloudFormations stackmallen och källkoden för AWS Batch-, Fargate- och Step-funktionerna är tillgängliga i en GitHub Repository.

dataset

För att träna modellen i det här exemplet använde vi följande offentliga datauppsättningar för att extrahera de skadliga och godartade Bärbar körbar (PE):

Vi uppmuntrar dig att noggrant läsa igenom datauppsättningsdokumentationen (Sophos/Reversing Labs README, PE Malware Machine Learning Dataset) för att säkert hantera skadliga objekt. Baserat på dina önskemål kan du också använda andra datauppsättningar så länge de tillhandahåller skadlig programvara och godartade objekt i binärt format.

Därefter går vi igenom följande steg i lösningen:

  • Förbearbeta objekt och konvertera till bilder
  • Distribuera förbearbetningsresurser med CloudFormation
  • Välj modell
  • Träna modellen
  • Utvärdera modellen
  • Kostnad och prestanda

Förbearbeta objekt och konvertera till bilder

Vi använder stegfunktioner för att orkestrera arbetsflödet för objektförbearbetning som inkluderar följande steg:

  1. ta meta.db sqllite-databas från sorel-20m S3-hinken och konvertera den till en .csv-fil. Detta hjälper oss att ladda .csv-filen i en Fargate-behållare och hänvisa till metadata när vi bearbetar skadliga objekt.
  2. Ta objekten från sorel-20m S3-hinken och skapa en lista med objekt i csv-format. Genom att utföra detta steg skapar vi en serie .csv-filer som kan bearbetas parallellt, vilket minskar tiden det tar för förbearbetningen.
  3. Konvertera föremålen från sorel-20m S3-skopan till bilder med en mängd jobb. AWS Batch array-jobb delar gemensamma parametrar för att konvertera skadliga objekt till bilder. De körs som en samling bildkonverteringsjobb som är fördelade på flera värdar och körs samtidigt.
  4. Välj ett förutbestämt antal bilder för modellutbildningen med en rad jobb som motsvarar kategorierna skadlig programvara.
  5. I likhet med steg 2 tar vi de godartade objekten från benign-160k S3-hinken och skapar en lista med objekt i csv-format.
  6. I likhet med steg 3 omvandlar vi objekten från den benign-160k S3-skopan till bilder med en mängd jobb.
  7. På grund av Amazon Rekognitions standardkvot för träning av anpassade etiketter (250 XNUMX bilder), välj ett förutbestämt antal godartade bilder för modellutbildningen.
  8. Som visas i följande bild lagras bilderna i en S3-hink som först partitioneras av skadlig programvara och godartade mappar, och sedan partitioneras skadlig programvara av skadlig programvara.
    Träningshink S3
    Utbildningsdataset

Distribuera förbearbetningsresurserna med CloudFormation

Förutsättningar

Följande förutsättningar krävs innan du fortsätter:

Resursdistribution

CloudFormation-stacken kommer att skapa följande resurser:

parametrar

  • STACK_NAME – CloudFormations stacknamn
  • AWS_REGION – AWS-region där lösningen kommer att distribueras
  • AWS_PROFILE – Namngiven profil som kommer att gälla för AWS CLI-kommandot
  • ARTEFACT_S3_BUCKET – S3-hink där infrastrukturkoden kommer att lagras. (Hinken måste skapas i samma region där lösningen bor).
  • AWS_ACCOUNT – AWS-konto-ID.

Använd följande kommandon för att distribuera resurserna

Se till att dockningsagenten körs på maskinen. Distributionerna görs med bash-skript, och i det här fallet använder vi följande kommando:

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

Detta bygger och distribuerar de lokala artefakter som CloudFormation-mallen (t.ex. cloudformation.yaml) refererar till.

Träna modellen

Eftersom Amazon Rekognition tar hand om modellträning åt dig, krävs inte datorseende eller högspecialiserad ML-kunskap. Du måste dock förse Amazon Rekognition med en hink fylld med lämpligt märkta ingångsbilder.

I det här inlägget kommer vi att träna två oberoende bildklassificeringsmodeller via funktionen för anpassade etiketter:

  1. Detektionsmodell för skadlig programvara (binär klassificering) – identifiera om det givna objektet är skadligt eller godartat
  2. Klassificeringsmodell för skadlig programvara (flerklassklassificering) – identifiera skadlig programvara för ett givet skadligt objekt

Genomgång av modellträning

Stegen som anges i följande genomgång gäller båda modellerna. Därför måste du gå igenom stegen två gånger för att träna båda modellerna.

  1. Logga in på AWS Management Console och öppna Amazon Rekognition trösta.
  2. Välj i den vänstra rutan Använd anpassade etiketter. Amazon Rekognition Custom Labels-målsidan visas.
  3. Välj från Amazon Rekognition Custom Labels-målsidan KOM IGÅNG.
  4. Välj i den vänstra rutan Projekt.
  5. Välja Skapa projekt.
  6. In Projektnamn, ange ett namn för ditt projekt.
  7. Välja Skapa projekt för att skapa ditt projekt.
  8. I Projekt sida, välj det projekt som du vill lägga till en datauppsättning till. Informationssidan för ditt projekt visas.
  9. Välja Skapa datasätt. De Skapa datasätt sidan visas.
  10. In Startar konfigurationväljer Börja med ett enda dataset att låta Amazon Rekognition dela upp datamängden till träning och test. Observera att du kan få olika testprover i varje modellträningsiteration, vilket resulterar i lite olika resultat och utvärderingsmått.
  11. Välja Importera bilder från Amazon S3-hink.
  12. In S3 URI, ange S3-hinkens plats och mappsökväg. Samma S3-bucket som tillhandahålls från förbearbetningssteget används för att skapa båda datamängderna: Skadlig detektering och klassificering av skadlig programvara. Datauppsättningen för upptäckt av skadlig programvara pekar på roten (dvs. s3://malware-detection-training-{account-id}-{region}/) i S3-hinken, medan datauppsättningen för klassificering av skadlig programvara pekar på mappen med skadlig programvara (dvs. s3://malware-detection-training-{account-id}-{region}/malware) av S3-skopan. Utbildningsdata
  13. Välja Fäst automatiskt etiketter till bilder baserat på mappen.
  14. Välja Skapa datamängder. Datauppsättningssidan för ditt projekt öppnas.
  15. Tågmodell sida, välj Tågmodell. Amazon Resource Name (ARN) för ditt projekt bör finnas i Välj projekt redigeringsrutan. Om inte, ange ARN för ditt projekt.
  16. I Vill du träna din modell? dialogrutan, välj Tågmodell.
  17. När träningen är klar väljer du modellens namn. Träningen är klar när modellstatus är TRAINING_COMPLETED.
  18. I Modeller väljer du Använd modell fliken för att börja använda modellen.

För mer information, kolla Amazon Rekognition anpassade etiketter Komma igång guide.

Utvärdera modellen

När utbildningsmodellerna är klara kan du komma åt utvärderingsmåtten genom att välja Kontrollera mätvärden på modellsidan. Amazon Rekognition ger dig följande mätvärden: F1-poäng, genomsnittlig precision och övergripande återkallelse, som vanligtvis används för att utvärdera prestanda hos klassificeringsmodeller. De senare är genomsnittliga mätvärden över antalet etiketter.

I Per etikett prestanda kan du hitta värdena för dessa mätvärden per etikett. För att få värdena för Sant positivt, Falskt positivt och Falskt negativt, välj dessutom Visa testresultat.

Mätvärden för detektering av skadlig programvara

På den balanserade datamängden med 199,750 XNUMX bilder med två etiketter (godartad och skadlig kod) fick vi följande resultat:

  • F1-poäng – 0.980
  • Medelprecision – 0.980
  • Totalt återkallande – 0.980

Mätvärden för detektering av skadlig programvara

Mätvärden för modell för klassificering av skadlig programvara

På den balanserade datamängden med 130,609 11 bilder med 11 etiketter (XNUMX skadliga programfamiljer) fick vi följande resultat:

  • F1-poäng – 0.921
  • Medelprecision – 0.938
  • Totalt återkallande – 0.906

Mätvärden för modell för klassificering av skadlig programvara

För att bedöma om modellen fungerar bra rekommenderar vi att du jämför dess prestanda med andra branschriktmärken som har tränats på samma (eller åtminstone liknande) datauppsättning. Tyvärr, när detta inlägg skrivs, finns det inga jämförande forskningsgrupper som löser detta problem med samma teknik och samma datauppsättningar. Inom datavetenskapsgemenskapen anses dock en modell med F1-poäng över 0.9 prestera mycket bra.

Kostnad och prestanda

På grund av resursernas serverlösa karaktär påverkas den totala kostnaden av hur lång tid varje tjänst används. Å andra sidan påverkas prestandan av mängden data som bearbetas och utbildningsdatauppsättningens storleksflöde till Amazon Rekognition. För vår kostnads- och prestationsuppskattning överväger vi följande scenario:

  • 20 miljoner objekt är katalogiserade och bearbetade från sorel-dataset.
  • 160,000 XNUMX objekt är katalogiserade och bearbetade från PE Malware Machine Learning Dataset.
  • Ungefär 240,000 3 objekt skrivs till tränings S160,000-hinken: 80,000 XNUMX skadliga objekt och XNUMX XNUMX godartade objekt.

Baserat på detta scenario är den genomsnittliga kostnaden för att förbearbeta och distribuera modellerna 510.99 USD. Du kommer att debiteras ytterligare $4 USD/h för varje timme som du använder modellen. Du kan hitta den detaljerade kostnadsfördelningen i uppskatta genereras via AWS priskalkylator.

Prestationsmässigt är det här resultaten från vår mätning:

  • ~2 timmar för att förbearbetningsflödet ska slutföras
  • ~40 timmar innan utbildningen för modellupptäckande av skadlig kod ska slutföras
  • ~40 timmar för utbildningen för klassificeringsmodellen för skadlig programvara att slutföra

Städa

För att undvika framtida avgifter, stoppa och radera Amazon Rekognition-modellerna och ta bort förbearbetningsresurserna via förstöra.sh manus. Följande parametrar krävs för att köra skriptet framgångsrikt:

  • STACK_NAME – CloudFormations stacknamn
  • AWS_REGION – Regionen där lösningen används
  • AWS_PROFILE – Den namngivna profilen som gäller för AWS CLI-kommandot

Använd följande kommandon för att köra ./malware_detection_deployment_scripts/destroy.sh manus:

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

Slutsats

I det här inlägget demonstrerade vi hur man utför upptäckt och klassificering av skadlig programvara med hjälp av Amazon Rekognition. Lösningarna följer ett serverlöst mönster och utnyttjar hanterade tjänster för dataförbearbetning, orkestrering och modelldistribution. Vi hoppas att det här inlägget hjälper dig i dina pågående ansträngningar för att bekämpa skadlig programvara.

I ett framtida inlägg kommer vi att visa ett praktiskt användningsfall för upptäckt av skadlig programvara genom att konsumera modellerna som distribueras i det här inlägget.


Om författarna

Edvin HallvaxhiuEdvin Hallvaxhiu är en Senior Global Security Architect med AWS Professional Services och brinner för cybersäkerhet och automation. Han hjälper kunder att bygga säkra och kompatibla lösningar i molnet. Utanför jobbet gillar han att resa och sporta.

Rahul ShauryaRahul Shaurya är en huvuddataarkitekt med AWS Professional Services. Han hjälper och arbetar nära kunder som bygger dataplattformar och analytiska applikationer på AWS. Utanför jobbet älskar Rahul att ta långa promenader med sin hund Barney.

Bruno DheftoBruno Dhefto är en global säkerhetsarkitekt med AWS Professional Services. Han är fokuserad på att hjälpa kunder att bygga säkra och pålitliga arkitekturer i AWS. Utanför jobbet är han intresserad av de senaste teknikuppdateringarna och resor.

Nadim MajedNadim Majed är en dataarkitekt inom AWS professionella tjänster. Han arbetar sida vid sida med kunder som bygger sina dataplattformar på AWS. Utanför jobbet spelar Nadim bordtennis och älskar att titta på fotboll/fotboll.

Tidsstämpel:

Mer från AWS maskininlärning