Détection et classification des logiciels malveillants avec Amazon Rekognition PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Détection et classification des logiciels malveillants avec Amazon Rekognition

Selon une article par Cybersecurity Ventures, les dommages causés par Ransomware (un type de logiciel malveillant qui peut empêcher les utilisateurs d'accéder à leurs données à moins qu'ils ne paient une rançon) ont été multipliés par 57 en 2021 par rapport à 2015. De plus, il devrait coûter à ses victimes 265 milliards de dollars ( USD) chaque année d'ici 2031. Au moment de la rédaction de cet article, le bilan financier des attaques de Ransomware tombe juste au-dessus des 50th position dans une liste de pays classés selon leur PIB.

Compte tenu de la menace posée par les logiciels malveillants, plusieurs techniques ont été développées pour détecter et contenir les attaques de logiciels malveillants. Les deux techniques les plus couramment utilisées aujourd'hui sont la détection basée sur les signatures et le comportement.

La détection basée sur la signature établit un identifiant unique sur un objet malveillant connu afin que l'objet puisse être identifié à l'avenir. Il peut s'agir d'un modèle de code unique attaché à un fichier ou du hachage d'un code malveillant connu. Si un identifiant de modèle connu (signature) est découvert lors de l'analyse de nouveaux objets, l'objet est marqué comme malveillant. La détection basée sur les signatures est rapide et nécessite une faible puissance de calcul. Cependant, il lutte contre les types de logiciels malveillants polymorphes, qui changent continuellement de forme pour échapper à la détection.

La détection basée sur le comportement juge les objets suspects en fonction de leur comportement. Les artefacts pouvant être pris en compte par les produits anti-malware sont les interactions de processus, les requêtes DNS et les connexions réseau à partir de l'objet. Cette technique est plus performante pour détecter les logiciels malveillants polymorphes que celle basée sur les signatures, mais elle présente certains inconvénients. Pour évaluer si un objet est malveillant, il doit s'exécuter sur l'hôte et générer suffisamment d'artefacts pour que le produit anti-malware le détecte. Cet angle mort peut laisser le logiciel malveillant infecter l'hôte et se propager sur le réseau.

Les techniques existantes sont loin d'être parfaites. En conséquence, les recherches se poursuivent dans le but de développer de nouvelles techniques alternatives qui amélioreront nos capacités de lutte contre les logiciels malveillants. Une nouvelle technique qui a émergé ces dernières années est la détection de logiciels malveillants basée sur l'image. Cette technique propose de former un réseau d'apprentissage en profondeur avec des binaires malveillants connus convertis en images en niveaux de gris. Dans cet article, nous montrons comment effectuer la détection des logiciels malveillants basée sur l'image avec Amazon Reconnaissance Étiquettes personnalisées.

Vue d'ensemble de la solution

Pour former un modèle de classification multiple et un modèle de détection de logiciels malveillants, nous préparons d'abord les ensembles de données de formation et de test qui contiennent différents types de logiciels malveillants tels que flooder, adware, spyware, etc., ainsi que des objets bénins. Nous convertissons ensuite les objets exécutables portables (PE) en images en niveaux de gris. Ensuite, nous formons un modèle à l'aide des images avec Amazon Rekognition.

Amazon Rekognition est un service qui simplifie la réalisation de différents types d'analyses visuelles sur vos applications. Rekognition Image vous aide à créer des applications puissantes pour rechercher, vérifier et organiser des millions d'images.

Amazon Rekognition Custom Labels s'appuie sur les capacités existantes de Rekognition, qui sont déjà formées sur des dizaines de millions d'images dans de nombreuses catégories.

Amazon Rekognition Custom Labels est un service entièrement géré qui permet aux utilisateurs d'analyser des millions d'images et de les utiliser pour résoudre de nombreux problèmes d'apprentissage automatique (ML), notamment la classification des images, la détection des visages et la modération du contenu. Dans les coulisses, Amazon Rekognition est basé sur une technologie d'apprentissage en profondeur. Le service utilise un réseau de neurones à convolution (CNN), qui est pré-formé sur un grand ensemble de données étiquetées. En étant exposé à de telles données de vérité terrain, l'algorithme peut apprendre à reconnaître des modèles dans des images de nombreux domaines différents et peut être utilisé dans de nombreux cas d'utilisation de l'industrie. Étant donné qu'AWS prend en charge la création et la maintenance de l'architecture du modèle et la sélection d'une méthode de formation appropriée à la tâche à accomplir, les utilisateurs n'ont pas besoin de passer du temps à gérer l'infrastructure requise pour les tâches de formation.

Architecture de la solution

Le schéma d'architecture suivant donne un aperçu de la solution.

La solution est construite en utilisant Lot AWS, AWSFargateet Amazon Reconnaissance. AWS Batch vous permet d'exécuter des centaines de tâches de traitement par lots sur Fargate. Fargate est compatible avec les deux Amazon Elastic Container Service (Amazon ECS) ainsi que Service Amazon Elastic Kubernetes (Amazon EKS). Les étiquettes personnalisées d'Amazon Rekognition vous permettent d'utiliser AutoML pour la vision par ordinateur afin de former des modèles personnalisés pour détecter les logiciels malveillants et classer diverses catégories de logiciels malveillants. AWS Step Functions est utilisé pour orchestrer le prétraitement des données.

Pour cette solution, nous créons les ressources de prétraitement via AWS CloudFormation. Le modèle de pile CloudFormation et le code source des fonctions AWS Batch, Fargate et Step sont disponibles dans un Dépôt GitHub.

Ensemble de données

Pour former le modèle dans cet exemple, nous avons utilisé les ensembles de données publics suivants pour extraire les éléments malveillants et bénins Exécutable portable (PE):

Nous vous encourageons à lire attentivement la documentation des ensembles de données (Sophos/Reversing Labs LISEZMOI, Ensemble de données d'apprentissage automatique des logiciels malveillants PE) pour gérer en toute sécurité les objets malveillants. En fonction de vos préférences, vous pouvez également utiliser d'autres ensembles de données tant qu'ils fournissent des logiciels malveillants et des objets bénins au format binaire.

Ensuite, nous vous guiderons à travers les étapes suivantes de la solution :

  • Prétraiter les objets et les convertir en images
  • Déployer des ressources de prétraitement avec CloudFormation
  • Choisissez le modèle
  • Former le modèle
  • Évaluer le modèle
  • Coût et performances

Prétraiter les objets et les convertir en images

Nous utilisons Step Functions pour orchestrer le flux de travail de prétraitement d'objet qui comprend les étapes suivantes :

  1. Prenez une méta.db base de données sqllite de sorel-20m compartiment S3 et convertissez-le en fichier .csv. Cela nous aide à charger le fichier .csv dans un conteneur Fargate et à consulter les métadonnées lors du traitement des objets malveillants.
  2. Prenez les objets du bucket sorel-20m S3 et créez une liste d'objets au format csv. En effectuant cette étape, nous créons une série de fichiers .csv qui peuvent être traités en parallèle, réduisant ainsi le temps nécessaire au prétraitement.
  3. Convertissez les objets du bucket sorel-20m S3 en images avec un tableau de travaux. Les tâches de tableau AWS Batch partagent des paramètres communs pour convertir les objets malveillants en images. Ils s'exécutent comme un ensemble de travaux de conversion d'images répartis sur plusieurs hôtes et exécutés simultanément.
  4. Choisissez un nombre prédéterminé d'images pour la formation du modèle avec un tableau d'emplois correspondant aux catégories de logiciels malveillants.
  5. Semblable à l'étape 2, nous prenons les objets bénins du compartiment S160 bénin-3k et créons une liste d'objets au format csv.
  6. Semblable à l'étape 3, nous convertissons les objets du bucket S160 bénin-3k en images avec un tableau de tâches.
  7. En raison du quota par défaut d'Amazon Rekognition pour la formation des étiquettes personnalisées (250 XNUMX images), choisissez un nombre prédéterminé d'images bénignes pour la formation du modèle.
  8. Comme illustré dans l'image suivante, les images sont stockées dans un compartiment S3 partitionné d'abord par des dossiers malveillants et bénins, puis le logiciel malveillant est ensuite partitionné par types de logiciels malveillants.
    Seau d'entraînement S3
    Ensemble de données d'entraînement

Déployer les ressources de prétraitement avec CloudFormation

Pré-requis

Les prérequis suivants sont requis avant de continuer :

Déploiement des ressources

La pile CloudFormation créera les ressources suivantes :

Paramètres

  • STACK_NAME – Nom de la pile CloudFormation
  • AWS_REGION – Région AWS où la solution sera déployée
  • AWS_PROFILE – Profil nommé qui s'appliquera à la commande AWS CLI
  • ARTEFACT_S3_BUCKET – Seau S3 où le code d'infrastructure sera stocké. (Le compartiment doit être créé dans la même région où se trouve la solution).
  • AWS_ACCOUNT – ID de compte AWS.

Utilisez les commandes suivantes pour déployer les ressources

Assurez-vous que l'agent docker est en cours d'exécution sur la machine. Les déploiements se font à l'aide de scripts bash, et dans ce cas nous utilisons la commande suivante :

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

Cela génère et déploie les artefacts locaux auxquels le modèle CloudFormation (par exemple, cloudformation.yaml) fait référence.

Former le modèle

Étant donné qu'Amazon Rekognition s'occupe de la formation des modèles pour vous, la vision par ordinateur ou des connaissances ML hautement spécialisées ne sont pas nécessaires. Cependant, vous devrez fournir à Amazon Rekognition un compartiment rempli d'images d'entrée correctement étiquetées.

Dans cet article, nous allons entraîner deux modèles de classification d'images indépendants via la fonctionnalité d'étiquettes personnalisées :

  1. Modèle de détection de logiciels malveillants (classification binaire) - identifie si l'objet donné est malveillant ou bénin
  2. Modèle de classification des logiciels malveillants (classification multi-classes) - identifie la famille de logiciels malveillants pour un objet malveillant donné

Procédure pas à pas de formation de modèle

Les étapes répertoriées dans la procédure pas à pas suivante s'appliquent aux deux modèles. Par conséquent, vous devrez suivre les étapes deux fois afin de former les deux modèles.

  1. Connectez-vous à la Console de gestion AWS et ouvrez Amazon Rekognition console.
  2. Dans le volet de gauche, choisissez Utiliser des étiquettes personnalisées. La page d'accueil des étiquettes personnalisées d'Amazon Rekognition s'affiche.
  3. Sur la page de destination des étiquettes personnalisées d'Amazon Rekognition, choisissez Commencez.
  4. Dans le volet de gauche, choisissez Projets.
  5. Selectionnez Créer un projet.
  6. In Nom du projet, entrez un nom pour votre projet.
  7. Selectionnez Créer un projet pour créer votre projet.
  8. Dans le Projets , choisissez le projet auquel vous souhaitez ajouter un jeu de données. La page de détails de votre projet s'affiche.
  9. Selectionnez Créer un jeu de donnéesL’ Créer un jeu de données page s'affiche.
  10. In Configuration de départ, choisissez Commencez avec un seul ensemble de données pour laisser Amazon Rekognition diviser l'ensemble de données pour l'entraînement et le test. Notez que vous pouvez vous retrouver avec des échantillons de test différents dans chaque itération de formation de modèle, ce qui entraîne des résultats et des métriques d'évaluation légèrement différents.
  11. Selectionnez Importer des images à partir du compartiment Amazon S3.
  12. In URI S3, entrez l'emplacement du compartiment S3 et le chemin du dossier. Le même compartiment S3 fourni à l'étape de prétraitement est utilisé pour créer les deux ensembles de données : détection des logiciels malveillants et classification des logiciels malveillants. L'ensemble de données de détection de logiciels malveillants pointe vers la racine (c'est-à-dire, s3://malware-detection-training-{account-id}-{region}/) du compartiment S3, tandis que l'ensemble de données de classification des logiciels malveillants pointe vers le dossier des logiciels malveillants (c'est-à-dire, s3://malware-detection-training-{account-id}-{region}/malware) du compartiment S3. Données d'entraînement
  13. Selectionnez Attachez automatiquement des étiquettes aux images en fonction du dossier.
  14. Selectionnez Créer des ensembles de données. La page des ensembles de données de votre projet s'ouvre.
  15. Sur le Modèle de train page, choisissez Modèle de train. L'Amazon Resource Name (ARN) de votre projet doit se trouver dans le Choisissez un projet zone d'édition. Si ce n'est pas le cas, saisissez l'ARN de votre projet.
  16. Dans le Vous souhaitez entraîner votre modèle ? boîte de dialogue, choisissez Modèle de train.
  17. Une fois la formation terminée, choisissez le nom du modèle. La formation est terminée lorsque l'état du modèle est FORMATION_COMPLETED.
  18. Dans le Des modèles photo section, choisissez la Utiliser le modèle onglet pour commencer à utiliser le modèle.

Pour plus de détails, consultez les étiquettes personnalisées d'Amazon Rekognition Commencer guider.

Évaluer le modèle

Une fois les modèles d'entraînement terminés, vous pouvez accéder aux métriques d'évaluation en sélectionnant Vérifier les métriques sur la page du modèle. Amazon Rekognition vous fournit les métriques suivantes : score F1, précision moyenne et rappel global, qui sont couramment utilisées pour évaluer les performances des modèles de classification. Ces dernières sont des mesures moyennes sur le nombre d'étiquettes.

Dans le Performances par étiquette section, vous pouvez trouver les valeurs de ces métriques par étiquette. De plus, pour obtenir les valeurs de Vrai positif, Faux positif et Faux négatif, sélectionnez le Afficher les résultats des tests.

Métriques du modèle de détection des logiciels malveillants

Sur l'ensemble de données équilibré de 199,750 XNUMX images avec deux étiquettes (bénignes et malveillantes), nous avons obtenu les résultats suivants :

  • Note F1 – 0.980
  • Précision moyenne – 0.980
  • Rappel global - 0.980

Métriques du modèle de détection des logiciels malveillants

Métriques du modèle de classification des logiciels malveillants

Sur l'ensemble de données équilibré de 130,609 11 images avec 11 étiquettes (XNUMX familles de logiciels malveillants), nous avons obtenu les résultats suivants :

  • Note F1 – 0.921
  • Précision moyenne – 0.938
  • Rappel global - 0.906

Métriques du modèle de classification des logiciels malveillants

Pour évaluer si le modèle fonctionne bien, nous vous recommandons de comparer ses performances avec d'autres références de l'industrie qui ont été formées sur le même ensemble de données (ou au moins similaire). Malheureusement, au moment de la rédaction de cet article, il n'y a pas d'organismes de recherche comparatifs qui résolvent ce problème en utilisant la même technique et les mêmes ensembles de données. Cependant, au sein de la communauté des sciences des données, un modèle avec un score F1 supérieur à 0.9 est considéré comme très performant.

Coût et performances

En raison de la nature sans serveur des ressources, le coût global est influencé par la durée d'utilisation de chaque service. D'autre part, les performances sont affectées par la quantité de données traitées et la taille de l'ensemble de données d'entraînement transmise à Amazon Rekognition. Pour notre exercice d'estimation des coûts et des performances, nous considérons le scénario suivant :

  • 20 millions d'objets sont catalogués et traités à partir du jeu de données sorel.
  • 160,000 XNUMX objets sont catalogués et traités à partir du PE Malware Machine Learning Dataset.
  • Environ 240,000 3 objets sont écrits dans le bucket S160,000 de formation : 80,000 XNUMX objets malveillants et XNUMX XNUMX objets bénins.

Sur la base de ce scénario, le coût moyen de prétraitement et de déploiement des modèles est de 510.99 USD. Des frais supplémentaires de 4 USD/h vous seront facturés pour chaque heure d'utilisation du modèle. Vous trouverez la répartition détaillée des coûts dans le estimation généré via le Calculateur de tarification AWS.

En termes de performances, voici les résultats de notre mesure :

  • ~ 2 h pour que le flux de prétraitement se termine
  • ~ 40 h pour que la formation sur le modèle de détection de logiciels malveillants soit terminée
  • ~40 h pour compléter la formation sur le modèle de classification des logiciels malveillants

Nettoyer

Pour éviter des frais futurs, Arrêtez ainsi que effacer les modèles Amazon Rekognition et supprimer les ressources de prétraitement via le détruire.sh scénario. Les paramètres suivants sont requis pour exécuter le script avec succès :

  • STACK_NAME – Le nom de la pile CloudFormation
  • AWS_REGION – La Région où la solution est déployée
  • AWS_PROFILE – Le profil nommé qui s'applique à la commande AWS CLI

Utilisez les commandes suivantes pour exécuter le ./malware_detection_deployment_scripts/destroy.sh script:

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

Conclusion

Dans cet article, nous avons montré comment effectuer la détection et la classification des logiciels malveillants à l'aide d'Amazon Rekognition. Les solutions suivent un modèle sans serveur, tirant parti des services gérés pour le prétraitement des données, l'orchestration et le déploiement de modèles. Nous espérons que cet article vous aidera dans vos efforts continus pour lutter contre les logiciels malveillants.

Dans un prochain article, nous montrerons un cas d'utilisation pratique de la détection de logiciels malveillants en utilisant les modèles déployés dans cet article.


À propos des auteurs

Edvin HallvaxhiuEdvin Hallvaxhiu est architecte senior en sécurité mondiale chez AWS Professional Services et passionné par la cybersécurité et l'automatisation. Il aide les clients à créer des solutions sécurisées et conformes dans le cloud. En dehors du travail, il aime voyager et faire du sport.

Rahul ShauryaRahul Shaurya est un architecte de données principal avec AWS Professional Services. Il aide et travaille en étroite collaboration avec les clients qui créent des plateformes de données et des applications analytiques sur AWS. En dehors du travail, Rahul aime faire de longues promenades avec son chien Barney.

Bruno DheftoBruno Dhefto est un architecte de sécurité globale avec AWS Professional Services. Il se concentre sur l'aide aux clients pour la création d'architectures sécurisées et fiables dans AWS. En dehors du travail, il s'intéresse aux dernières mises à jour technologiques et aux voyages.

Nadim MajedNadim Majed est un architecte de données au sein des services professionnels AWS. Il travaille côte à côte avec les clients qui construisent leurs plateformes de données sur AWS. En dehors du travail, Nadim joue au tennis de table et aime regarder le football/soccer.

Horodatage:

Plus de Apprentissage automatique AWS