Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cleverhans — Eine Adversarial-Examples-Bibliothek zum Erstellen von Angriffen, Entwickeln von Abwehrmaßnahmen und Benchmarking beider. | Kitploit
Tools/GitHubGitHub/cleverhans-lab/cleverhans
DefensivwerkzeugeSchwachstellenanalyseMaschinelles LernenKI-SicherheitAdversarial-Angriff
GitHubcleverhans-lab/cleverhans

cleverhans

Eine Adversarial-Examples-Bibliothek zum Erstellen von Angriffen, Entwickeln von Abwehrmaßnahmen und Benchmarking beider.

Repository anzeigen
6.4k1.4kvor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CleverHans (aktuellste Version: v4.0.0)

cleverhans logo

Dieses Repository enthält den Quellcode für CleverHans, eine Python-Bibliothek zur Bewertung der Anfälligkeit von Machine-Learning-Systemen gegenüber adversarial examples. Mehr über solche Schwachstellen erfahren Sie im zugehörigen Blog.

Die CleverHans-Bibliothek wird kontinuierlich weiterentwickelt und freut sich stets über Beiträge der neuesten Angriffe und Abwehrmaßnahmen. Insbesondere freuen wir uns jederzeit über Hilfe bei der Lösung der derzeit offenen Issues.

Seit v4.0.0 unterstützt CleverHans 3 Frameworks: JAX, PyTorch und TF2. Wir priorisieren derzeit die Implementierung von Angriffen in PyTorch, freuen uns aber sehr über Beiträge für alle 3 Frameworks. In Versionen bis einschließlich v3.1.0 unterstützte CleverHans TF1; den Code für v3.1.0 finden Sie unter cleverhans_v3.1.0/ oder indem Sie eine frühere Github-Version auschecken.

Die Bibliothek konzentriert sich darauf, Referenzimplementierungen von Angriffen auf Machine-Learning-Modelle bereitzustellen, um beim Benchmarking von Modellen gegen adversarial examples zu helfen.

Die Verzeichnisstruktur ist wie folgt: cleverhans/ enthält die Angriffsimplementierungen, tutorials/ enthält Skripte, die die Funktionen von CleverHans demonstrieren, und defenses/ enthält Implementierungen von Abwehrmaßnahmen. Jedes Framework hat sein eigenes Unterverzeichnis in diesen Ordnern, z. B. cleverhans/jax.

Einrichtung von CleverHans

Abhängigkeiten

Diese Bibliothek verwendet Jax, PyTorch oder TensorFlow 2, um die von vielen Machine-Learning-Modellen durchgeführten Graphenberechnungen zu beschleunigen. Daher ist die Installation einer dieser Bibliotheken eine Voraussetzung.

Installation

Sobald die Abhängigkeiten berücksichtigt wurden, können Sie CleverHans mit pip installieren oder indem Sie dieses Github-Repository klonen.

pip-Installation

Wenn Sie CleverHans mit pip installieren, führen Sie den folgenden Befehl aus:

root@kitploit:~
pip install cleverhans

Dadurch wird die letzte Version installiert, die auf Pypi hochgeladen wurde. Wenn Sie stattdessen die neueste Entwicklungsversion installieren möchten, verwenden Sie:

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

Installation für die Entwicklung

Wenn Sie eine bearbeitbare Installation von CleverHans vornehmen möchten, um die Bibliothek weiterzuentwickeln und Änderungen beizusteuern, forken Sie zunächst das Repository auf GitHub und klonen Sie dann Ihren Fork in ein Verzeichnis Ihrer Wahl:

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

Sie können das lokale Paket dann im „editable“-Modus installieren, um es zu Ihrem PYTHONPATH hinzuzufügen:

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

Derzeit unterstützte Umgebungen

Obwohl CleverHans wahrscheinlich auf vielen anderen Maschinenkonfigurationen funktioniert, testen wir es derzeit mit Python 3.6, Jax 0.2, PyTorch 1.7 und Tensorflow 2.4 auf Ubuntu 18.04 LTS (Bionic Beaver).

Unterstützung erhalten

Wenn Sie eine Unterstützungsanfrage haben, stellen Sie bitte eine Frage auf StackOverflow, anstatt ein Issue im GitHub-Tracker zu eröffnen. Der GitHub-Issue-Tracker sollte nur verwendet werden, um Fehler zu melden oder Feature-Anfragen zu stellen.

Beitragen

Beiträge sind willkommen! Um den Code-Review-Prozess zu beschleunigen, bitten wir um Folgendes:

  • Neue Vorhaben und Funktionen sollten auf dem Diskussionsforum abgestimmt werden.
  • Wenn Sie Code zu CleverHans beitragen, sollten Sie in Ihren Pull-Requests den Black-Codestil befolgen.
  • Wir akzeptieren keine Pull-Requests, die Git-Submodule hinzufügen, wegen der Probleme, die bei der Pflege von Git-Submodulen auftreten.

Fehlerbehebungen können über GitHub-Pull-Requests eingereicht werden.

Tutorials: Verzeichnis tutorials

Um Ihnen den Einstieg in die Funktionen dieser Bibliothek zu erleichtern, enthält der Ordner tutorials/ die folgenden Tutorials:

  • MNIST mit FGSM und PGD (jax, tf2): dieses Tutorial behandelt, wie man ein MNIST-Modell trainiert und adversarial examples mit der Fast-Gradient-Sign-Methode und Projected Gradient Descent erzeugt.
  • CIFAR10 mit FGSM und PGD (pytorch, tf2): dieses Tutorial behandelt, wie man ein CIFAR10-Modell trainiert und adversarial examples mit der Fast-Gradient-Sign-Methode und Projected Gradient Descent erzeugt.

HINWEIS: Die Tutorials werden sorgfältig gepflegt, in dem Sinne, dass wir kontinuierliche Integration verwenden, um sicherzustellen, dass sie weiterhin funktionieren. Sie gelten nicht als Teil der API und können sich jederzeit ohne Vorwarnung ändern. Sie sollten keinen Drittanbieter-Code schreiben, der die Tutorials importiert, und erwarten, dass die Schnittstelle nicht bricht. Nur die Hauptbibliothek unterliegt unserer Regel zur sechsmonatigen Ankündigung von Schnittstellenänderungen.

HINWEIS: Bitte starten Sie einen Thread im Diskussionsforum, bevor Sie ein neues Tutorial schreiben. Da jedes neue Tutorial im Vergleich zu den vorhandenen Tutorials eine große Menge an dupliziertem Code mit sich bringt und da jede Codezeile dauerhaft getestet und gepflegt werden muss, ziehen wir es im Allgemeinen vor, keine neuen Tutorials hinzuzufügen. Jedes Tutorial sollte eine extrem andere Art der Nutzung der Bibliothek demonstrieren. Allein einen anderen Angriff, ein anderes Modell oder einen anderen Datensatz aufzurufen, reicht nicht aus, um ein paralleles Tutorial zu rechtfertigen.

Beispiele: Verzeichnis examples

Der Ordner examples/ enthält zusätzliche Skripte, um verschiedene Verwendungszwecke der CleverHans-Bibliothek zu demonstrieren oder Ihnen den Einstieg in verschiedene Adversarial-Example-Wettbewerbe zu erleichtern. Wir bieten für dieses Verzeichnis bei weitem nicht so viel laufende Wartung oder Unterstützung an wie für den Rest der Bibliothek, und wenn Code hier beschädigt wird, löschen wir ihn möglicherweise einfach ohne Vorwarnung.

Da wir die Unterstützung für TF1 kürzlich eingestellt haben, ist der Ordner examples/ derzeit leer, aber Sie können Ihre Verwendungszwecke gerne per Pull-Request einreichen :)

Alte Beispiele für CleverHans v3.1.0 und früher finden Sie unter cleverhans_v3.1.0/examples/.

Berichterstattung von Benchmarks

Wenn Sie Benchmarks melden, beachten Sie bitte:

  • Verwenden Sie eine versionierte Veröffentlichung von CleverHans. Eine Liste der veröffentlichten Versionen finden Sie hier.
  • Verwenden Sie entweder die neueste Version oder, wenn Sie mit einer früheren Veröffentlichung vergleichen, dieselbe Version wie die frühere Veröffentlichung.
  • Geben Sie an, welche Angriffsmethode verwendet wurde.
  • Geben Sie alle Konfigurationsvariablen an, die zur Bestimmung des Verhaltens des Angriffs verwendet wurden.

Sie könnten beispielsweise berichten: „Wir haben die Robustheit unserer Methode gegenüber Adversarial-Angriffen mit v4.0.0 von CleverHans bewertet. Auf einem Testsatz, der mit der FastGradientMethod mit einer Max-Norm eps von 0.3 modifiziert wurde, erzielten wir eine Genauigkeit des Testsatzes von 71,3 %."

Zitieren dieser Arbeit

Wenn Sie CleverHans für akademische Forschung verwenden, wird dringend empfohlen (aber nicht verlangt), die folgende Veröffentlichung zu zitieren:

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}
}

Über den Namen

Der Name CleverHans bezieht sich auf eine Präsentation von Bob Sturm mit dem Titel „Clever Hans, Clever Algorithms: Are Your Machine Learnings Learning What You Think?" und die entsprechende Veröffentlichung, „A Simple Method to Determine if a Music Information Retrieval System is a 'Horse'.“ Clever Hans war ein Pferd, das schien, das Beantworten von Rechenfragen gelernt zu haben, aber in Wirklichkeit nur gelernt hatte, soziale Hinweise zu lesen, die es ihm ermöglichten, die richtige Antwort zu geben. In kontrollierten Umgebungen, in denen es die Gesichter der Menschen nicht sehen oder anderes Feedback erhalten konnte, war es nicht in der Lage, dieselben Fragen zu beantworten. Die Geschichte von Clever Hans ist eine Metapher für Machine-Learning-Systeme, die möglicherweise eine sehr hohe Genauigkeit auf einem Testsatz erzielen, der aus derselben Verteilung wie die Trainingsdaten stammt, die die zugrunde liegende Aufgabe jedoch nicht wirklich verstehen und bei anderen Eingaben schlecht abschneiden.

Autoren

Diese Bibliothek wird gemeinsam vom CleverHans Lab an der University of Toronto gepflegt. Der aktuelle Ansprechpartner ist Jonas Guan. Zuvor wurde sie von Ian Goodfellow und Nicolas Papernot gepflegt.

Die folgenden Autoren haben 100 Zeilen oder mehr beigetragen (geordnet nach der GitHub-Beitragendenseite):

  • 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 (ehemals 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-Universität Bochum)

Copyright

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

Tool herunterladen