Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
deep-pwning — Metasploit pour l’apprentissage automatique. | Kitploit
Outils/GitHubGitHub/cchio/deep-pwning
Frameworks de Tests d'IntrusionFrameworks d'ExploitationApprentissage AutomatiqueSécurité de l'IAAttaque Adversariale
GitHubcchio/deep-pwning

deep-pwning

Metasploit pour l’apprentissage automatique.

Voir le dépôt
5711325il y a 4 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Deep-pwning splash

Deep-pwning est un framework léger pour expérimenter avec des modèles d'apprentissage automatique dans le but d'évaluer leur robustesse face à un adversaire motivé.

Notez que deep-pwning dans son état actuel est loin d'être mature ou complet. Il est conçu pour être expérimenté, enrichi et étendu par vous. Ce n'est qu'ainsi que nous pourrons l'aider à devenir la véritable boîte à outils de test de pénétration pour les modèles d'apprentissage statistique.

Contexte

Des chercheurs ont découvert qu'il est étonnamment trivial de tromper un modèle d'apprentissage automatique (classifieur, clusterizer, régresseur, etc.) pour lui faire prendre des décisions objectivement erronées. Ce domaine de recherche s'appelle l'Apprentissage Automatique Adversarial. Il n'est pas exagéré d'affirmer que tout attaquant motivé peut contourner n'importe quel système d'apprentissage automatique, avec suffisamment d'informations et de temps. Cependant, ce problème est souvent négligé lorsque les architectes et ingénieurs conçoivent et construisent des systèmes d'apprentissage automatique. Les conséquences sont inquiétantes lorsque ces systèmes sont mis en œuvre dans des scénarios critiques, comme dans les domaines médical, des transports, financier ou lié à la sécurité.

Par conséquent, lorsqu'on évalue l'efficacité des applications utilisant l'apprentissage automatique, leur malléabilité dans un cadre adversarial devrait être mesurée en même temps que la précision et le rappel du système.

Cet outil a été publié au DEF CON 24 à Las Vegas, en août 2016, lors d'une conférence intitulée Machine Duping 101: Pwning Deep Learning Systems.

Structure

Ce framework est construit sur Tensorflow, et la plupart des exemples inclus dans ce dépôt sont des exemples Tensorflow modifiés obtenus à partir du dépôt GitHub Tensorflow.

Télécharger l’outil

Tous les exemples et le code inclus implémentent des réseaux de neurones profonds, mais ils peuvent être utilisés pour générer des images adversariales pour des classifieurs similaires qui ne sont pas implémentés avec des réseaux de neurones profonds. Cela est dû au phénomène de 'transferabilité' en apprentissage automatique, que Papernot et al. ont expliqué de manière experte dans cet article. Cela signifie que des échantillons adversariaux conçus avec un modèle DNN A peuvent tromper un autre modèle DNN B de structure distincte, ainsi qu'un autre modèle SVM C.

Cette figure tirée de l'article susmentionné (Papernot et al.) montre le pourcentage de mauvaises classifications adversariales réussies pour un modèle source (utilisé pour générer l'échantillon adversarial) sur un modèle cible (sur lequel l'échantillon adversarial est testé).

Transferability Misclassificaiton Matrixh

Composants

Deep-pwning est modulaire en plusieurs composants pour minimiser la répétition de code. En raison de la nature très différente des tâches de classification potentielles, l'itération actuelle du code est optimisée pour la classification d'images et de phrases (en utilisant des vecteurs de mots).

Voici les modules de code qui composent l'itération actuelle de Deep-pwning :

  1. Pilotes (Drivers)

    Les pilotes sont le point d'exécution principal du code. C'est ici que vous pouvez relier les différents modules et composants, et où vous pouvez injecter plus de personnalisations dans les processus de génération adversarial.

  2. Modèles

    C'est ici que se trouvent les implémentations réelles des modèles d'apprentissage automatique. Par exemple, la définition du modèle lenet5 fournie se trouve dans la fonction model() au sein de lenet5.py. Elle définit le réseau comme suit :

    root@kitploit:~
       -> Entrée
       -> Couche convolutive 1
       -> Couche de max pooling 1
       -> Couche convolutive 2
       -> Couche de max pooling 2
       -> Couche de dropout
       -> Couche Softmax
       -> Sortie
    

    LeNet-5

    LeCun et al. [Réseau de neurones convolutif LeNet-5](http://yann.lecun.com/exdb/lenet/)
  3. Adversarial (advgen)

    Ce module contient le code qui génère la sortie adversarial pour les modèles. La fonction run() définie dans chacune de ces classes advgen prend un input_dict, qui contient plusieurs opérations de tenseur prédéfinies pour le modèle d'apprentissage automatique défini dans Tensorflow. Si le modèle pour lequel vous générez l'échantillon adversarial est connu, les variables dans le dictionnaire d'entrée doivent être basées sur cette définition de modèle. Sinon, si le modèle est inconnu (génération boîte noire), un modèle de substitution doit être utilisé/implémenté, et cette définition de modèle doit être utilisée. Les variables à passer sont les variables d'espace réservé du tenseur d'entrée et les étiquettes (souvent appelées x -> entrée et y_ -> étiquettes), la sortie du modèle (souvent appelée y_conv), ainsi que les données et étiquettes de test réelles sur lesquelles les images adversariales seront basées.

  4. Config

    Configurations de l'application.

  5. Utils

    Utilitaires divers qui n'ont pas leur place ailleurs. Ceux-ci incluent des fonctions d'aide pour lire les données, gérer les entrées de file d'attente Tensorflow, etc.

Voici les répertoires de ressources pertinents pour l'application :

  1. Checkpoints

    Tensorflow vous permet de charger un modèle partiellement entraîné pour reprendre l'entraînement, ou de charger un modèle entièrement entraîné dans l'application pour évaluation ou pour effectuer d'autres opérations. Tous ces 'checkpoints' sauvegardés sont stockés dans ce répertoire de ressources.

  2. Data

    Ce répertoire stocke toutes les données d'entrée dans le format que l'application pilote accepte.

  3. Output

    C'est le répertoire de sortie pour toutes les sorties de l'application, y compris les images adversariales générées.

Pour commencer

Installation

Veuillez suivre les instructions pour installer tensorflow trouvées ici https://www.tensorflow.org/versions/r0.8/get_started/os_setup.html qui vous permettront de choisir le binaire tensorflow à installer.

root@kitploit:~
$ pip install -r requirements.txt

Exemple d'exécution (avec le pilote MNIST)

Pour restaurer à partir d'un checkpoint préalablement entraîné. (configuration dans config/mnist.conf)

root@kitploit:~
$ cd dpwn
$ python mnist_driver.py --restore_checkpoint

Pour entraîner à partir de zéro. (notez que tout checkpoint précédent situé dans le dossier spécifié dans la configuration sera écrasé)

root@kitploit:~
$ cd dpwn
$ python mnist_driver.py

Liste de tâches

  • Implémenter la méthode des graphiques de saillance pour générer des échantillons adversariaux
  • Ajouter un module defense au projet pour des exemples de certaines défenses proposées dans la littérature
  • Mettre à niveau vers Tensorflow 0.9.0
  • Ajouter le support pour l'utilisation d'un modèle word2vec pré-entraîné dans sentiment driver
  • Ajouter le support SVM et régression logistique dans models (+ exemple qui les utilise)
  • Ajouter un exemple de classifieur non-image et non-phrase
  • Ajouter le support d'entraînement multi-GPU pour des vitesses d'entraînement plus rapides

Prérequis

  • Tensorflow 0.8.0
  • Matplotlib >= 1.5.1
  • Numpy >= 1.11.1
  • Pandas >= 0.18.1
  • Six >= 1.10.0

Notez que dpwn nécessite Tensorflow 0.8.0. Tensorflow 0.9.0 introduit quelques

Contribuer

(emprunté au formidable dépôt Requests par kennethreitz)

  • Vérifiez les problèmes ouverts ou ouvrez un nouveau problème pour lancer une discussion autour d'une idée de fonctionnalité ou d'un bogue.
  • Forkez le dépôt sur GitHub pour commencer à apporter vos modifications à la branche master (ou créez une branche à partir de celle-ci).
  • Écrivez un test qui montre que le bogue a été corrigé ou que la fonctionnalité fonctionne comme prévu.
  • Envoyez une demande de tirage et embêtez le mainteneur jusqu'à ce qu'elle soit fusionnée et publiée. :) Assurez-vous de vous ajouter à AUTHORS.md.

Remerciements

Il y a tellement de travaux impressionnants de tant de chercheurs en apprentissage automatique et en sécurité qui ont directement ou indirectement contribué à ce projet et ont inspiré ce framework. Voici une liste non exhaustive des ressources qui ont été utilisées ou référencées d'une manière ou d'une autre :

Articles

  • Szegedy et al. Propriétés intrigantes des réseaux de neurones
  • Papernot et al. Les limites de l'apprentissage profond dans des contextes adversariaux
  • Papernot et al. Attaques pratiques en boîte noire contre les systèmes d'apprentissage profond à l'aide d'exemples adversariaux
  • Goodfellow et al. Expliquer et exploiter les exemples adversariaux
  • Papernot et al. Transferabilité en apprentissage automatique : du phénomène aux attaques en boîte noire à l'aide d'échantillons adversariaux
  • Grosse et al. Perturbations adversariales contre les réseaux de neurones profonds pour la classification de malwares
  • Nguyen et al. Les réseaux de neurones profonds sont facilement trompés : prédictions à haute confiance pour des images non reconnaissables
  • Xu et al. Contourner automatiquement les classifieurs : une étude de cas sur les classifieurs de malwares PDF
  • Kantchelian et al. Évasion et durcissement des classifieurs d'ensemble d'arbres
  • Biggio et al. Machines à vecteurs de support sous bruit d'étiquettes adversarial
  • Biggio et al. Attaques par empoisonnement contre les machines à vecteurs de support
  • Papernot et al. La distillation comme défense contre les perturbations adversariales des réseaux de neurones profonds
  • Ororbia II et al. Unifier les algorithmes d'entraînement adversarial avec une régularisation flexible du gradient profond des données
  • Jin et al. Réseaux de neurones convolutifs robustes sous bruit adversarial
  • Goodfellow et al. Exemples adversariaux en apprentissage profond – Clarifier les idées fausses

Code

  • tensorflow/tensorflow
  • WildML Implémentation d'un CNN pour la classification de texte dans Tensorflow
  • wgrathwohl/captcha_crusher
  • josecl/cool-php-captcha

Ensembles de données

  • Krizhevsky et al. L'ensemble de données CIFAR-10
  • LeCun et al. LA BASE DE DONNÉES MNIST de chiffres manuscrits
  • Pang et al. Données de critiques de films (v2.0 de Rotten Tomatoes)