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
cleverhans — Une bibliothèque d'exemples adverses pour construire des attaques, élaborer des défenses et évaluer les deux. | Kitploit
Outils/GitHubGitHub/cleverhans-lab/cleverhans
Outils DéfensifsAnalyse des VulnérabilitésApprentissage AutomatiqueSécurité de l'IAAttaque Adversariale
GitHubcleverhans-lab/cleverhans

cleverhans

Une bibliothèque d'exemples adverses pour construire des attaques, élaborer des défenses et évaluer les deux.

Voir le dépôt
6.4k1.4kil y a 2 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

CleverHans (dernière version : v4.0.0)

cleverhans logo

Ce dépôt contient le code source de CleverHans, une bibliothèque Python permettant d'évaluer la vulnérabilité des systèmes d'apprentissage automatique aux exemples adverses. Vous pouvez en apprendre davantage sur ces vulnérabilités sur le blog associé.

La bibliothèque CleverHans est en développement continu et accueille toujours les contributions des dernières attaques et défenses. En particulier, nous accueillons volontiers toute aide pour résoudre les problèmes actuellement ouverts.

Depuis la v4.0.0, CleverHans prend en charge 3 frameworks : JAX, PyTorch et TF2. Nous donnons actuellement la priorité à l'implémentation des attaques en PyTorch, mais nous accueillons très volontiers les contributions pour les 3 frameworks. Dans les versions v3.1.0 et antérieures, CleverHans prenait en charge TF1 ; le code pour v3.1.0 se trouve sous cleverhans_v3.1.0/ ou en consultant une version GitHub antérieure.

La bibliothèque se concentre sur la fourniture d'implémentations de référence des attaques contre les modèles d'apprentissage automatique afin de faciliter l'évaluation comparative des modèles face aux exemples adverses.

La structure des répertoires est la suivante : cleverhans/ contient les implémentations d'attaques, tutorials/ contient des scripts démontrant les fonctionnalités de CleverHans, et defenses/ contient les implémentations de défenses. Chaque framework possède son propre sous-répertoire dans ces dossiers, par exemple cleverhans/jax.

Configuration de CleverHans

Dépendances

Cette bibliothèque utilise Jax, PyTorch ou TensorFlow 2 pour accélérer les calculs de graphe effectués par de nombreux modèles d'apprentissage automatique. Par conséquent, l'installation de l'une de ces bibliothèques est un prérequis.

Installation

Une fois les dépendances installées, vous pouvez installer CleverHans en utilisant pip ou en clonant ce dépôt GitHub.

Installation via pip

Si vous installez CleverHans avec pip, exécutez la commande suivante :

root@kitploit:~
pip install cleverhans

Cela installera la dernière version publiée sur Pypi. Si vous préférez plutôt installer la version de pointe, utilisez :

root@kitploit:~
pip install git+https://github.com/cleverhans-lab/cleverhans.git#egg=cleverhans

Installation pour le développement

Si vous souhaitez faire une installation modifiable de CleverHans afin de pouvoir développer la bibliothèque et réintégrer vos modifications, commencez par forker le dépôt sur GitHub, puis clonez votre fork dans le répertoire de votre choix :

root@kitploit:~
git clone https://github.com/<your-org>/cleverhans

Vous pouvez ensuite installer le paquet local en mode « editable » afin de l'ajouter à votre PYTHONPATH :

root@kitploit:~
cd cleverhans
pip install -e .

Configurations actuellement prises en charge

Bien que CleverHans soit susceptible de fonctionner sur de nombreuses autres configurations machine, nous le testons actuellement avec Python 3.6, Jax 0.2, PyTorch 1.7 et Tensorflow 2.4 sur Ubuntu 18.04 LTS (Bionic Beaver).

Obtenir de l'assistance

Si vous avez une demande d'assistance, veuillez poser une question sur StackOverflow plutôt que d'ouvrir un problème dans le suivi GitHub. Le suivi de problèmes GitHub doit uniquement être utilisé pour signaler des bogues ou demander des fonctionnalités.

Contribuer

Les contributions sont les bienvenues ! Pour accélérer le processus de revue de code, nous demandons que :

  • Les nouveaux efforts et fonctionnalités soient coordonnés sur le forum de discussion.
  • Lorsque vous apportez des contributions de code à CleverHans, vous devez suivre le style de codage Black dans vos pull requests.
  • Nous n'acceptons pas les pull requests qui ajoutent des sous-modules git en raison des problèmes qui surviennent lors de la maintenance des sous-modules git.

Les corrections de bogues peuvent être soumises via des pull requests GitHub.

Tutoriels : répertoire tutorials

Pour vous aider à démarrer avec les fonctionnalités fournies par cette bibliothèque, le dossier tutorials/ contient les tutoriels suivants :

  • MNIST avec FGSM et PGD (jax, tf2 : ce tutoriel explique comment entraîner un modèle MNIST et générer des exemples adverses en utilisant la méthode du signe du gradient rapide et la descente de gradient projetée.
  • CIFAR10 avec FGSM et PGD (pytorch, tf2) : ce tutoriel explique comment entraîner un modèle CIFAR10 et générer des exemples adverses en utilisant la méthode du signe du gradient rapide et la descente de gradient projetée.

REMARQUE : les tutoriels sont maintenus avec soin, dans le sens où nous utilisons l'intégration continue pour nous assurer qu'ils continuent de fonctionner. Ils ne sont pas considérés comme faisant partie de l'API et peuvent changer à tout moment sans préavis. Vous ne devez pas écrire de code tiers qui importe les tutoriels en vous attendant à ce que l'interface ne casse pas. Seule la bibliothèque principale est soumise à notre règle d'avertissement de dépréciation d'interface sur six mois.

REMARQUE : veuillez ouvrir un fil sur le forum de discussion avant d'écrire un nouveau tutoriel. Étant donné que chaque nouveau tutoriel implique une grande quantité de code dupliqué par rapport aux tutoriels existants, et que chaque ligne de code nécessite des tests et une maintenance continus indéfiniment, nous préférons généralement ne pas ajouter de nouveaux tutoriels. Chaque tutoriel doit présenter une manière extrêmement différente d'utiliser la bibliothèque. Mentionner simplement une autre attaque, un autre modèle ou un autre jeu de données ne suffit pas pour justifier le maintien d'un tutoriel parallèle.

Exemples : répertoire examples

Le dossier examples/ contient des scripts supplémentaires pour présenter différentes utilisations de la bibliothèque CleverHans ou pour vous aider à participer à différents concours d'exemples adverses. Nous n'offrons pas autant de maintenance continue ou de support pour ce répertoire que pour le reste de la bibliothèque, et si le code qui s'y trouve casse, nous pouvons simplement le supprimer sans préavis.

Comme nous avons récemment abandonné le support de TF1, le dossier examples/ est actuellement vide, mais vous êtes invités à soumettre vos utilisations via une pull request :)

Les anciens exemples pour CleverHans v3.1.0 et antérieurs se trouvent sous cleverhans_v3.1.0/examples/.

Rapporter des benchmarks

Lorsque vous rapportez des benchmarks, veuillez :

  • Utiliser une version publiée de CleverHans. Vous pouvez trouver une liste des versions publiées ici.
  • Utiliser soit la dernière version, soit, si vous comparez à une publication antérieure, la même version que la publication antérieure.
  • Indiquer quelle méthode d'attaque a été utilisée.
  • Indiquer toutes les variables de configuration utilisées pour déterminer le comportement de l'attaque.

Par exemple, vous pourriez rapporter "Nous avons évalué la robustesse de notre méthode aux attaques adverses en utilisant la v4.0.0 de CleverHans. Sur un ensemble de test modifié par la FastGradientMethod avec une norme maximale eps de 0,3, nous avons obtenu une précision sur l'ensemble de test de 71,3 %."

Citation de ce travail

Si vous utilisez CleverHans pour la recherche académique, vous êtes vivement encouragé (mais pas obligé) à citer l'article suivant :

root@kitploit:~
@article{papernot2018cleverhans,
  title={Technical Report on the CleverHans v2.1.0 Adversarial Examples Library},
  author={Nicolas Papernot and Fartash Faghri and Nicholas Carlini and
  Ian Goodfellow and Reuben Feinman and Alexey Kurakin and Cihang Xie and
  Yash Sharma and Tom Brown and Aurko Roy and Alexander Matyasko and
  Vahid Behzadan and Karen Hambardzumyan and Zhishuai Zhang and
  Yi-Lin Juang and Zhi Li and Ryan Sheatsley and Abhibhav Garg and
  Jonathan Uesato and Willi Gierke and Yinpeng Dong and David Berthelot and
  Paul Hendricks and Jonas Rauber and Rujun Long},
  journal={arXiv preprint arXiv:1610.00768},
  year={2018}
}

À propos du nom

Le nom CleverHans fait référence à une présentation de Bob Sturm intitulée « Clever Hans, Clever Algorithms: Are Your Machine Learnings Learning What You Think? » et la publication correspondante, « A Simple Method to Determine if a Music Information Retrieval System is a 'Horse'. » Clever Hans était un cheval qui semblait avoir appris à répondre à des questions d'arithmétique, mais qui n'avait en réalité appris qu'à lire des indices sociaux qui lui permettaient de donner la bonne réponse. Dans des environnements contrôlés où il ne pouvait pas voir les visages des gens ni recevoir d'autres retours, il était incapable de répondre aux mêmes questions. L'histoire de Clever Hans est une métaphore des systèmes d'apprentissage automatique qui peuvent atteindre une très grande précision sur un ensemble de test tiré de la même distribution que les données d'entraînement, mais qui ne comprennent pas réellement la tâche sous-jacente et performent mal sur d'autres entrées.

Auteurs

Cette bibliothèque est maintenue collectivement par le CleverHans Lab de l'Université de Toronto. Le contact actuel est Jonas Guan. Elle était auparavant maintenue par Ian Goodfellow et Nicolas Papernot.

Les auteurs suivants ont contribué 100 lignes ou plus (classés selon la page des contributeurs GitHub) :

  • Ian Goodfellow (Google Brain)
  • Nicolas Papernot (Google Brain)
  • Nicholas Carlini (Google Brain)
  • Fartash Faghri (University of Toronto)
  • Tzu-Wei Sung (National Taiwan University)
  • Alexey Kurakin (Google Brain)
  • Reuben Feinman (New York University)
  • Shiyu Duan (University of Florida)
  • Phani Krishna (Video Analytics Lab)
  • David Berthelot (Google Brain)
  • Tom Brown (Google Brain)
  • Cihang Xie (Johns Hopkins)
  • Yash Sharma (The Cooper Union)
  • Aashish Kumar (HARMAN X)
  • Aurko Roy (Google Brain)
  • Alexander Matyasko (Nanyang Technological University)
  • Anshuman Suri (University of Virginia)
  • Yen-Chen Lin (MIT)
  • Vahid Behzadan (Kansas State)
  • Jonathan Uesato (DeepMind)
  • Florian Tramèr (Stanford University)
  • Haojie Yuan (University of Science & Technology of China)
  • Zhishuai Zhang (Johns Hopkins)
  • Karen Hambardzumyan (YerevaNN)
  • Jianbo Chen (UC Berkeley)
  • Catherine Olsson (Google Brain)
  • Aidan Gomez (University of Oxford)
  • Zhi Li (University of Toronto)
  • Yi-Lin Juang (NTUEE)
  • Pratyush Sahay (anciennement HARMAN X)
  • Abhibhav Garg (IIT Delhi)
  • Aditi Raghunathan (Stanford University)
  • Yang Song (Stanford University)
  • Riccardo Volpi (Italian Institute of Technology)
  • Angus Galloway (University of Guelph)
  • Yinpeng Dong (Tsinghua University)
  • Willi Gierke (Hasso Plattner Institute)
  • Bruno López
  • Jonas Rauber (IMPRS)
  • Paul Hendricks (NVIDIA)
  • Ryan Sheatsley (Pennsylvania State University)
  • Rujun Long (0101.AI)
  • Bogdan Kulynych (EPFL)
  • Erfan Noury (UMBC)
  • Robert Wagner (Case Western Reserve University)
  • Erh-Chung Chen (National Tsing Hua University)
  • Joel Frank (Ruhr-University Bochum)

Droits d'auteur

Copyright 2021 - Google Inc., OpenAI, Pennsylvania State University, University of Toronto.

Télécharger l’outil