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
deep-pwning — Metasploit für maschinelles Lernen. | Kitploit
Tools/GitHubGitHub/cchio/deep-pwning
Penetrationstest-FrameworksExploit-FrameworksMaschinelles LernenKI-SicherheitAdversarial-Angriff
GitHubcchio/deep-pwning

deep-pwning

Metasploit für maschinelles Lernen.

Repository anzeigen
571132vor 4 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

Deep-pwning splash

Deep-pwning ist ein leichtgewichtiges Framework zum Experimentieren mit maschinellen Lernmodellen mit dem Ziel, ihre Robustheit gegenüber einem motivierten Angreifer zu bewerten.

Beachten Sie, dass deep-pwning in seinem aktuellen Zustand bei weitem nicht reif oder fertig ist. Es soll von Ihnen experimentiert, erweitert und ausgebaut werden. Nur dann können wir ihm wirklich dabei helfen, das Penetrationstest-Toolkit für statistische maschinelle Lernmodelle zu werden, das es sein soll.

Hintergrund

Forscher haben herausgefunden, dass es überraschend einfach ist, ein maschinelles Lernmodell (Klassifikator, Clusterer, Regressor usw.) dazu zu bringen, objektiv falsche Entscheidungen zu treffen. Dieses Forschungsfeld wird als Adversarial Machine Learning bezeichnet. Es ist keine Übertreibung zu behaupten, dass jeder motivierte Angreifer jedes System des maschinellen Lernens umgehen kann, sofern genügend Informationen und Zeit vorhanden sind. Dieses Problem wird jedoch oft übersehen, wenn Architekten und Ingenieure Systeme des maschinellen Lernens entwerfen und bauen. Die Folgen sind besorgniserregend, wenn diese Systeme in kritischen Szenarien wie im medizinischen, Transport-, Finanz- oder Sicherheitsbereich eingesetzt werden.

Daher sollte bei der Bewertung der Wirksamkeit von Anwendungen, die maschinelles Lernen nutzen, ihre Verformbarkeit in einer adversariellen Umgebung zusammen mit der Präzision und dem Recall des Systems gemessen werden.

Dieses Tool wurde auf der DEF CON 24 in Las Vegas im August 2016 während eines Vortrags mit dem Titel Machine Duping 101: Pwning Deep Learning Systems veröffentlicht.

Struktur

Dieses Framework basiert auf Tensorflow, und viele der in diesem Repository enthaltenen Beispiele sind modifizierte Tensorflow-Beispiele aus dem Tensorflow GitHub Repository.

Alle enthaltenen Beispiele und Code implementieren tiefe neuronale Netze, können aber verwendet werden, um adversarielle Bilder für ähnlich aufgabenorientierte Klassifikatoren zu generieren, die nicht mit tiefen neuronalen Netzen implementiert sind. Dies liegt am Phänomen der 'Übertragbarkeit' im maschinellen Lernen, das Papernot et al. in diesem Paper fachkundig dargelegt haben. Das bedeutet, dass adversarielle Stichproben, die mit einem DNN-Modell A erstellt wurden, ein anderes, anders strukturiertes DNN-Modell B sowie ein SVM-Modell C täuschen können.

Diese aus dem genannten Paper (Papernot et al.) entnommene Abbildung zeigt den Prozentsatz erfolgreicher adversarieller Fehlklassifikationen für ein Quellmodell (verwendet zur Generierung der adversariellen Stichprobe) auf ein Zielmodell (auf dem die adversarielle Stichprobe getestet wird).

Transferability Misclassificaiton Matrixh

Komponenten

Deep-pwning ist modularisiert in mehrere Komponenten, um Code-Wiederholungen zu minimieren. Aufgrund der stark unterschiedlichen Art potenzieller Klassifikationsaufgaben ist die aktuelle Iteration des Codes optimiert für die Klassifizierung von Bildern und Phrasen (mittels Wortvektoren).

Dies sind die Code-Module, die die aktuelle Iteration von Deep-pwning ausmachen:

  1. Treiber

    Die Treiber sind der wichtigste Ausführungspunkt des Codes. Hier können Sie die verschiedenen Module und Komponenten miteinander verknüpfen und weitere Anpassungen in die adversariellen Generierungsprozesse einbringen.

  2. Modelle

    Hier befinden sich die tatsächlichen Implementierungen des maschinellen Lernmodells. Beispielsweise befindet sich die bereitgestellte lenet5-Modelldefinition in der model()-Funktion innerhalb von lenet5.py. Sie definiert das Netzwerk wie folgt:

    root@kitploit:~
       -> Input
       -> Convolutional Layer 1
       -> Max Pooling Layer 1
       -> Convolutional Layer 2
       -> Max Pooling Layer 2
       -> Dropout Layer
       -> Softmax Layer
       -> Output
    

    LeNet-5

    LeCun et al. [LeNet-5 Convolutional Neural Network](http://yann.lecun.com/exdb/lenet/)
  3. Adversarial (advgen)

    Dieses Modul enthält den Code, der adversarielle Ausgaben für die Modelle generiert. Die in jeder dieser advgen-Klassen definierte run()-Funktion nimmt ein input_dict entgegen, das mehrere vordefinierte Tensor-Operationen für das in Tensorflow definierte maschinelle Lernmodell enthält. Wenn das Modell, für das Sie die adversarielle Stichprobe generieren, bekannt ist, sollten die Variablen im Eingabe-Dict auf dieser Modelldefinition basieren. Wenn das Modell unbekannt ist (Black-Box-Generierung), sollte ein Ersatzmodell verwendet/implementiert werden, und diese Modelldefinition sollte verwendet werden. Variablen, die übergeben werden müssen, sind die Platzhaltervariablen des Eingabe-Tensors und die Labels (oft als -> Eingabe und -> Labels bezeichnet), die Modellausgabe (oft als bezeichnet) sowie die tatsächlichen Testdaten und Labels, auf denen die adversariellen Bilder basieren.

Dies sind die für die Anwendung relevanten Ressourcenverzeichnisse:

  1. Checkpoints

    Tensorflow ermöglicht es Ihnen, ein teilweise trainiertes Modell zu laden, um das Training fortzusetzen, oder ein vollständig trainiertes Modell in die Anwendung zur Bewertung oder Durchführung anderer Operationen zu laden. Alle diese gespeicherten 'Checkpoints' werden in diesem Ressourcenverzeichnis gespeichert.

  2. Daten

    Dieses Verzeichnis speichert alle Eingabedaten in dem Format, das die Treiberanwendung erwartet.

  3. Ausgabe

    Dies ist das Ausgabeverzeichnis für alle Anwendungsausgaben, einschließlich generierter adversarieller Bilder.

Erste Schritte

Installation

Bitte folgen Sie den Anweisungen zur Installation von Tensorflow unter https://www.tensorflow.org/versions/r0.8/get_started/os_setup.html, wo Sie das zu installierende Tensorflow-Binary auswählen können.

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

Ausführungsbeispiel (mit dem MNIST-Treiber)

Um von einem zuvor trainierten Checkpoint wiederherzustellen. (Konfiguration in config/mnist.conf)

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

Um von Grund auf zu trainieren. (Beachten Sie, dass alle vorherigen Checkpoints im im Konfigurationsordner angegebenen Ordner überschrieben werden)

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

Aufgabenliste

  • Saliency-Graph-Methode zur Generierung adversarieller Stichproben implementieren
  • defense-Modul zum Projekt hinzufügen für Beispiele einiger in der Literatur vorgeschlagener Abwehrmaßnahmen
  • Upgrade auf Tensorflow 0.9.0
  • Unterstützung für vortrainiertes word2vec-Modell im sentiment driver hinzufügen
  • SVM- und Logistische-Regression-Unterstützung in models hinzufügen (+ Beispiel zur Nutzung)
  • Beispiel für Nicht-Bild- und Nicht-Phrasen-Klassifikator hinzufügen
  • Multi-GPU-Trainingsunterstützung für schnellere Trainingsgeschwindigkeiten hinzufügen

Anforderungen

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

Beachten Sie, dass dpwn Tensorflow 0.8.0 benötigt. Tensorflow 0.9.0 führt einige

Mitwirken

(aus dem großartigen Requests Repository von kennethreitz entliehen)

  • Überprüfen Sie offene Issues oder eröffnen Sie ein neues Issue, um eine Diskussion über eine Feature-Idee oder einen Bug zu starten.
  • Forken Sie das Repository auf GitHub, um Ihre Änderungen am master-Branch (oder einem Abzweig davon) vorzunehmen.
  • Schreiben Sie einen Test, der zeigt, dass der Bug behoben ist oder die Funktion wie erwartet funktioniert.
  • Senden Sie einen Pull-Request und nerven Sie den Maintainer, bis er gemerged und veröffentlicht wird. :) Stellen Sie sicher, dass Sie sich zu AUTHORS.md hinzufügen.

Danksagungen

Es gibt so viel beeindruckende Arbeit von so vielen Forschern im Bereich maschinelles Lernen und Sicherheit, die direkt oder indirekt zu diesem Projekt beigetragen und dieses Framework inspiriert haben. Dies ist eine unvollständige Liste von Ressourcen, die auf die eine oder andere Weise verwendet oder referenziert wurden:

Papers

  • Szegedy et al. Intriguing properties of neural networks
  • Papernot et al. The Limitations of Deep Learning in Adversarial Settings
  • Papernot et al. Practical Black-Box Attacks against Deep Learning Systems using Adversarial Examples
  • Goodfellow et al. Explaining and Harnessing Adversarial Examples
  • Papernot et al. Transferability in Machine Learning: from Phenomena to Black-Box Attacks using Adversarial Samples
  • Grosse et al. Adversarial Perturbations Against Deep Neural Networks for Malware Classification
  • Nguyen et al. Deep Neural Networks are Easily Fooled: High Confidence Predictions for Unrecognizable Images
  • Xu et al. Automatically Evading Classifiers: A Case Study on PDF Malware Classifiers
  • Kantchelian et al. Evasion and Hardening of Tree Ensemble Classifiers
  • Biggio et al. Support Vector Machines Under Adversarial Label Noise
  • Biggio et al. Poisoning Attacks against Support Vector Machines
  • Papernot et al. Distillation as a Defense to Adversarial Perturbations against Deep Neural Networks
  • Ororbia II et al. Unifying Adversarial Training Algorithms with Flexible Deep Data Gradient Regularization
  • Jin et al. Robust Convolutional Neural Networks under Adversarial Noise
  • Goodfellow et al. Deep Learning Adversarial Examples – Clarifying Misconceptions

Code

  • tensorflow/tensorflow
  • WildML Implementing a CNN for Text Classification in Tensorflow
  • wgrathwohl/captcha_crusher
  • josecl/cool-php-captcha

Datensätze

  • Krizhevsky et al. The CIFAR-10 dataset
  • LeCun et al. THE MNIST DATABASE of handwritten digits
  • Pang et al. Movie Review Data (v2.0 from Rotten Tomatoes)
Tool herunterladen
x
y_
y_conv
  • Konfiguration

    Anwendungskonfigurationen.

  • Hilfsprogramme

    Verschiedene Dienstprogramme, die nirgendwo anders hinpassen. Diese umfassen Hilfsfunktionen zum Lesen von Daten, zum Umgang mit Tensorflow-Warteschlangeneingaben usw.