Malwaredetectie en classificatie met Amazon Rekognition PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Detectie en classificatie van malware met Amazon Rekognition

Volgens een dit artikel door Cybersecurity Ventures is de schade veroorzaakt door ransomware (een soort malware die gebruikers de toegang tot hun gegevens kan ontzeggen tenzij ze losgeld betalen) in 57 2021 keer zo groot als in 2015. Bovendien wordt voorspeld dat het de slachtoffers 265 miljard dollar zal kosten ( USD) per jaar tegen 2031. Op het moment van schrijven valt de financiรซle tol van ransomware-aanvallen net boven de 50th positie in een lijst van landen gerangschikt op basis van hun Het BBP.

Gezien de dreiging die uitgaat van malware, zijn er verschillende technieken ontwikkeld om malware-aanvallen te detecteren en in te dammen. De twee meest gebruikte technieken die tegenwoordig worden gebruikt, zijn handtekening- en gedragsgebaseerde detectie.

Detectie op basis van handtekening stelt een unieke identificatie vast over een bekend kwaadaardig object, zodat het object in de toekomst kan worden geรฏdentificeerd. Het kan een uniek codepatroon zijn dat aan een bestand is gekoppeld, of het kan de hash zijn van een bekende malwarecode. Als een bekende patroonidentificatie (handtekening) wordt ontdekt tijdens het scannen van nieuwe objecten, wordt het object gemarkeerd als kwaadaardig. Detectie op basis van handtekeningen is snel en vereist weinig rekenkracht. Het worstelt echter met polymorfe malwaretypen, die voortdurend van vorm veranderen om detectie te omzeilen.

Op gedrag gebaseerde detectie beoordeelt de verdachte objecten op basis van hun gedrag. Artefacten die door antimalwareproducten kunnen worden overwogen, zijn procesinteracties, DNS-query's en netwerkverbindingen van het object. Deze techniek presteert beter in het detecteren van polymorfe malware in vergelijking met op handtekeningen gebaseerde malware, maar heeft wel enkele nadelen. Om te beoordelen of een object schadelijk is, moet het op de host worden uitgevoerd en voldoende artefacten genereren zodat het antimalwareproduct het kan detecteren. Door deze blinde vlek kan de malware de host infecteren en zich via het netwerk verspreiden.

Bestaande technieken zijn verre van perfect. Als gevolg hiervan wordt het onderzoek voortgezet met als doel nieuwe alternatieve technieken te ontwikkelen die onze mogelijkheden om malware te bestrijden zullen verbeteren. Een nieuwe techniek die de afgelopen jaren is ontstaan, is op afbeeldingen gebaseerde malwaredetectie. Deze techniek stelt voor om een โ€‹โ€‹deep-learning netwerk te trainen met bekende malware-binaries die zijn omgezet in grijswaardenafbeeldingen. In dit bericht laten we zien hoe u op afbeeldingen gebaseerde malwaredetectie kunt uitvoeren Amazon Rekognition Aangepaste labels.

Overzicht oplossingen

Om een โ€‹โ€‹multiclassificatiemodel en een malwaredetectiemodel te trainen, bereiden we eerst de trainings- en testdatasets voor die verschillende soorten malware bevatten, zoals flooder, adware, spyware, enz., evenals goedaardige objecten. Vervolgens zetten we de Portable executables (PE)-objecten om in grijswaardenafbeeldingen. Vervolgens trainen we een model aan de hand van de afbeeldingen met Amazon Rekognition.

Amazon Rekognition is een service die het eenvoudig maakt om verschillende soorten visuele analyses op uw applicaties uit te voeren. Rekognition Image helpt u bij het bouwen van krachtige toepassingen voor het zoeken, verifiรซren en ordenen van miljoenen afbeeldingen.

Amazon Rekognition Custom Labels bouwt voort op de bestaande mogelijkheden van Rekognition, die al zijn getraind op tientallen miljoenen afbeeldingen in vele categorieรซn.

Amazon Rekognition Custom Labels is een volledig beheerde service waarmee gebruikers miljoenen afbeeldingen kunnen analyseren en deze kunnen gebruiken om veel verschillende machine learning (ML)-problemen op te lossen, waaronder afbeeldingsclassificatie, gezichtsdetectie en inhoudsmoderaties. Achter de schermen is Amazon Rekognition gebaseerd op een deep learning-technologie. De service maakt gebruik van een convolution neuraal netwerk (CNN), dat vooraf is getraind op een grote gelabelde dataset. Door te worden blootgesteld aan dergelijke grondwaarheidsgegevens, kan het algoritme patronen leren herkennen in afbeeldingen uit veel verschillende domeinen en kan het worden gebruikt in veel industriรซle use-cases. Aangezien AWS de verantwoordelijkheid neemt voor het bouwen en onderhouden van de modelarchitectuur en het selecteren van een geschikte trainingsmethode voor de betreffende taak, hoeven gebruikers geen tijd te besteden aan het beheren van de infrastructuur die nodig is voor trainingstaken.

Oplossingsarchitectuur

Het volgende architectuurdiagram geeft een overzicht van de oplossing.

De oplossing is gebouwd met behulp van AWS-batch, AWS Fargate en Amazon Rekognition. Met AWS Batch kunt u honderden batch computing-taken uitvoeren op Fargate. Fargate is compatibel met beide Amazon Elastic Container-service (Amazon ECS) en Amazon Elastic Kubernetes-service (Amazon EKS). Met aangepaste labels van Amazon Rekognition kunt u AutoML voor computervisie gebruiken om aangepaste modellen te trainen om malware te detecteren en verschillende malwarecategorieรซn te classificeren. AWS Step Functions worden gebruikt om de voorverwerking van gegevens te orkestreren.

Voor deze oplossing creรซren we de preprocessing resources via AWS CloudFormatie. De CloudFormation-stacktemplate en de broncode voor de AWS Batch-, Fargate- en Step-functies zijn beschikbaar in een GitHub Repository.

dataset

Om het model in dit voorbeeld te trainen, hebben we de volgende openbare datasets gebruikt om de kwaadaardige en goedaardige gegevens te extraheren Draagbaar uitvoerbaar bestand (PE):

We raden u aan de documentatie van de datasets aandachtig door te lezen (Sophos/Reversing Labs LEESMIJ, PE Malware Machine Learning-gegevensset) om de malware-objecten veilig te verwerken. Op basis van uw voorkeur kunt u ook andere datasets gebruiken, zolang deze malware en goedaardige objecten in binair formaat leveren.

Vervolgens zullen we u door de volgende stappen van de oplossing leiden:

  • Objecten voorbewerken en converteren naar afbeeldingen
  • Implementeer preprocessing-resources met CloudFormation
  • Kies het model
  • Train het model
  • Evalueer het model
  • Kosten en prestaties

Objecten voorbewerken en converteren naar afbeeldingen

We gebruiken stapfuncties om de werkstroom voor het voorbewerken van objecten te orkestreren, die de volgende stappen omvat:

  1. Neem de meta.db sqllite-database van sorel-20m S3-bucket en converteer deze naar een .csv-bestand. Dit helpt ons het .csv-bestand in een Fargate-container te laden en naar de metadata te verwijzen tijdens het verwerken van de malware-objecten.
  2. Neem de objecten uit de sorel-20m S3-emmer en maak een lijst met objecten in csv-formaat. Door deze stap uit te voeren, creรซren we een reeks .csv-bestanden die parallel kunnen worden verwerkt, waardoor de voorverwerkingstijd wordt verkort.
  3. Converteer de objecten van de sorel-20m S3-bak naar afbeeldingen met een reeks taken. AWS Batch-arraytaken delen gemeenschappelijke parameters voor het converteren van de malware-objecten naar afbeeldingen. Ze worden uitgevoerd als een verzameling afbeeldingsconversietaken die over meerdere hosts zijn verdeeld en gelijktijdig worden uitgevoerd.
  4. Kies een vooraf bepaald aantal afbeeldingen voor de modeltraining met een reeks taken die overeenkomen met de malwarecategorieรซn.
  5. Net als bij stap 2 nemen we de goedaardige objecten uit de goedaardige S160-bucket van 3k en maken we een lijst met objecten in csv-indeling.
  6. Net als bij stap 3 zetten we de objecten van de goedaardige S160-bucket van 3 om in afbeeldingen met een reeks taken.
  7. Vanwege het standaardquotum van Amazon Rekognition voor aangepaste labeltraining (250 afbeeldingen), kiest u een vooraf bepaald aantal goedaardige afbeeldingen voor de modeltraining.
  8. Zoals te zien is in de volgende afbeelding, worden de afbeeldingen opgeslagen in een S3-bucket, eerst gepartitioneerd door malware en goedaardige mappen, en vervolgens wordt de malware gepartitioneerd door malwaretypen.
    Trainingsbak S3
    Trainingsgegevensset

Implementeer de preprocessing-resources met CloudFormation

Voorwaarden

De volgende vereisten zijn vereist voordat u doorgaat:

Resource-implementatie

De CloudFormation-stack maakt de volgende bronnen:

parameters

  • STACK_NAME - CloudFormation-stacknaam
  • AWS_REGION โ€“ AWS-regio waar de oplossing wordt geรฏmplementeerd
  • AWS_PROFIEL โ€“ Benoemd profiel dat van toepassing is op de AWS CLI-opdracht
  • ARTEFACT_S3_BUCKET โ€“ S3-bucket waar de infrastructuurcode wordt opgeslagen. (De bucket moet worden gemaakt in dezelfde regio waar de oplossing zich bevindt).
  • AWS_ACCOUNT โ€“ AWS-account-ID.

Gebruik de volgende opdrachten om de resources te implementeren

Zorg ervoor dat de docker-agent op de computer wordt uitgevoerd. De implementaties worden gedaan met behulp van bash-scripts, en in dit geval gebruiken we de volgende opdracht:

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

Dit bouwt en implementeert de lokale artefacten waarnaar de CloudFormation-sjabloon (bijv. cloudformation.yaml) verwijst.

Train het model

Aangezien Amazon Rekognition de modeltraining voor u verzorgt, is computervisie of zeer gespecialiseerde ML-kennis niet vereist. U moet Amazon Rekognition echter voorzien van een emmer gevuld met correct gelabelde invoerafbeeldingen.

In dit bericht trainen we twee onafhankelijke modellen voor afbeeldingsclassificatie via de functie voor aangepaste labels:

  1. Malwaredetectiemodel (binaire classificatie) โ€“ identificeer of het gegeven object kwaadaardig of goedaardig is
  2. Classificatiemodel voor malware (classificatie met meerdere klassen): identificeer de malwarefamilie voor een bepaald kwaadaardig object

Handleiding voor modeltraining

De stappen in de volgende walkthrough zijn van toepassing op beide modellen. Daarom moet u de stappen twee keer doorlopen om beide modellen te trainen.

  1. Log in op AWS-beheerconsole en open de Amazon-herkenning console.
  2. Kies in het linkerdeelvenster Gebruik aangepaste labels. De landingspagina van Amazon Rekognition Custom Labels wordt weergegeven.
  3. Kies op de bestemmingspagina Amazon Rekognition Custom Labels Start.
  4. Kies in het linkerdeelvenster Projecten.
  5. Kies Maak Project.
  6. In Naam van het project, voer een naam in voor uw project.
  7. Kies Maak een project aan om uw project te maken.
  8. In het Projecten kies het project waaraan u een dataset wilt toevoegen. De detailpagina voor uw project wordt weergegeven.
  9. Kies Maak een dataset. De Maak een dataset pagina wordt getoond.
  10. In Configuratie starten, kiezen Begin met een enkele dataset om Amazon Rekognition de dataset te laten splitsen voor training en testen. Houd er rekening mee dat u mogelijk verschillende testvoorbeelden krijgt in elke iteratie van de modeltraining, wat resulteert in iets andere resultaten en evaluatiestatistieken.
  11. Kies Importeer afbeeldingen uit de Amazon S3-bucket.
  12. In S3-URI, voer de S3-bucketlocatie en het mappad in. Dezelfde S3-bucket uit de voorverwerkingsstap wordt gebruikt om beide datasets te maken: Malwaredetectie en Malwareclassificatie. De dataset voor malwaredetectie wijst naar de root (d.w.z. s3://malware-detection-training-{account-id}-{region}/) van de S3-bucket, terwijl de malwareclassificatiedataset verwijst naar de malwaremap (d.w.z. s3://malware-detection-training-{account-id}-{region}/malware) van de S3-emmer. Trainingsdata
  13. Kies Voeg automatisch labels toe aan afbeeldingen op basis van de map.
  14. Kies Gegevenssets maken. De datasets-pagina voor uw project wordt geopend.
  15. Op de Trein model pagina, kies Trein model. De Amazon Resource Name (ARN) voor uw project moet in de Kies een project vak bewerken. Zo niet, voer dan de ARN voor uw project in.
  16. In het Wil je je model trainen? dialoogvenster, kies Trein model.
  17. Nadat de training is voltooid, kiest u de naam van het model. De training is voltooid wanneer de modelstatus is OPLEIDING AFGEROND.
  18. In het Modellen sectie, kies het Gebruik model tabblad om het model te gaan gebruiken.

Raadpleeg de aangepaste labels van Amazon Recognition voor meer informatie Aan de slag gids.

Evalueer het model

Wanneer de trainingsmodellen zijn voltooid, hebt u toegang tot de evaluatiestatistieken door te selecteren Controleer statistieken op de modelpagina. Amazon Rekognition biedt u de volgende statistieken: F1-score, gemiddelde precisie en algehele herinnering, die vaak worden gebruikt om de prestaties van classificatiemodellen te evalueren. De laatste zijn gemiddelde statistieken over het aantal labels.

In het Prestaties per label sectie vindt u de waarden van deze statistieken per label. Om de waarden voor True Positive, False Positive en False negative te krijgen, selecteert u bovendien de Bekijk testresultaten.

Statistieken van het detectiemodel voor malware

Op de gebalanceerde dataset van 199,750 afbeeldingen met twee labels (goedaardig en malware) ontvingen we de volgende resultaten:

  • F1-score - 0.980
  • Gemiddelde precisie - 0.980
  • Algehele terugroepactie - 0.980

Statistieken van het detectiemodel voor malware

Statistieken van het classificatiemodel voor malware

Op de gebalanceerde dataset van 130,609 afbeeldingen met 11 labels (11 malwarefamilies) ontvingen we de volgende resultaten:

  • F1-score - 0.921
  • Gemiddelde precisie - 0.938
  • Algehele terugroepactie - 0.906

Statistieken van het classificatiemodel voor malware

Om te beoordelen of het model goed presteert, raden we aan de prestaties te vergelijken met andere branchebenchmarks die zijn getraind op dezelfde (of op zijn minst vergelijkbare) dataset. Helaas zijn er op het moment van schrijven van dit bericht geen vergelijkende onderzoeken die dit probleem oplossen met dezelfde techniek en dezelfde datasets. Binnen de data science-gemeenschap wordt echter aangenomen dat een model met een F1-score van meer dan 0.9 zeer goed presteert.

Kosten en prestaties

Vanwege de serverloze aard van de resources, worden de totale kosten beรฏnvloed door de hoeveelheid tijd dat elke service wordt gebruikt. Aan de andere kant worden de prestaties beรฏnvloed door de hoeveelheid gegevens die wordt verwerkt en de grootte van de trainingsdataset die wordt ingevoerd in Amazon Rekognition. Voor onze schatting van kosten en prestaties houden we rekening met het volgende scenario:

  • 20 miljoen objecten worden gecatalogiseerd en verwerkt vanuit de sorel-dataset.
  • 160,000 objecten worden gecatalogiseerd en verwerkt vanuit de PE Malware Machine Learning Dataset.
  • Er worden ongeveer 240,000 objecten naar de training S3-bucket geschreven: 160,000 malware-objecten en 80,000 goedaardige objecten.

Op basis van dit scenario bedragen de gemiddelde kosten voor het voorbewerken en implementeren van de modellen $ 510.99 USD. Voor elk uur dat u het model gebruikt, wordt $ 4 USD per uur in rekening gebracht. U kunt de gedetailleerde kostenspecificatie vinden in de schatting gegenereerd via de AWS-prijscalculator.

Qua prestaties zijn dit de resultaten van onze meting:

  • ~ 2 uur om de voorverwerkingsstroom te voltooien
  • ~ 40 uur voordat de training voor het detecteren van malware is voltooid
  • ~ 40 uur voordat de training voor het classificatiemodel voor malware is voltooid

Opruimen

Om toekomstige kosten te voorkomen, stoppen en verwijderen de Amazon Rekognition-modellen en verwijder de voorverwerkingsresources via de vernietigen.sh script. De volgende parameters zijn vereist om het script met succes uit te voeren:

  • STACK_NAME โ€“ De CloudFormation-stacknaam
  • AWS_REGION โ€“ De regio waar de oplossing wordt ingezet
  • AWS_PROFIEL โ€“ Het benoemde profiel dat van toepassing is op de AWS CLI-opdracht

Gebruik de volgende opdrachten om de . uit te voeren ./malware_detection_deployment_scripts/destroy.sh script:

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

Conclusie

In dit bericht hebben we gedemonstreerd hoe u malwaredetectie en -classificatie kunt uitvoeren met behulp van Amazon Rekognition. De oplossingen volgen een serverloos patroon en maken gebruik van beheerde services voor gegevensvoorverwerking, orkestratie en modelimplementatie. We hopen dat dit bericht u helpt bij uw voortdurende inspanningen om malware te bestrijden.

In een toekomstige post zullen we een praktisch gebruiksvoorbeeld van malwaredetectie laten zien door gebruik te maken van de modellen die in deze post zijn geรฏmplementeerd.


Over de auteurs

Edvin HallvaxhiuEdvin Hallvaxhiu is een Senior Global Security Architect bij AWS Professional Services en heeft een passie voor cybersecurity en automatisering. Hij helpt klanten bij het bouwen van veilige en compliant oplossingen in de cloud. Buiten het werk houdt hij van reizen en sporten.

Rahul ShauryaRahul Shaurya is een Principal Data Architect bij AWS Professional Services. Hij helpt en werkt nauw samen met klanten bij het bouwen van dataplatforms en analytische applicaties op AWS. Buiten zijn werk houdt Rahul ervan lange wandelingen te maken met zijn hond Barney.

Bruno DheftoBruno Dhefto is een Global Security Architect met AWS Professional Services. Hij richt zich op het helpen van klanten bij het bouwen van veilige en betrouwbare architecturen in AWS. Buiten zijn werk is hij geรฏnteresseerd in de nieuwste technologische updates en reizen.

Nadim MajedNadim Majed is een data architect binnen AWS professional services. Hij werkt zij aan zij met klanten die hun dataplatforms op AWS bouwen. Buiten het werk speelt Nadim tafeltennis en kijkt hij graag naar voetbal.

Tijdstempel:

Meer van AWS-machine learning