Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/cchio/deep-pwning
Frameworks per Penetration TestingFramework di ExploitMachine LearningSicurezza dell'IAAttacco Avversario
GitHubcchio/deep-pwning

deep-pwning

Metasploit per l'apprendimento automatico.

Vedi Repository
5711324 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Splash di Deep-pwning

Deep-pwning è un framework leggero per sperimentare con modelli di machine learning, con l'obiettivo di valutarne la robustezza contro un avversario motivato.

Si noti che deep-pwning nel suo stato attuale è lontano dall'essere maturo o completo. È pensato per essere sperimentato, ampliato ed esteso da te. Solo allora potremo davvero aiutarlo a diventare il toolkit di penetration testing per modelli statistici di machine learning di riferimento.

Background

I ricercatori hanno scoperto che è sorprendentemente banale ingannare un modello di machine learning (classificatore, clusterer, regressore, ecc.) portandolo a prendere decisioni oggettivamente errate. Questo campo di ricerca è chiamato Adversarial Machine Learning. Non è un'esagerazione affermare che qualsiasi attaccante motivato può bypassare qualsiasi sistema di machine learning, date sufficienti informazioni e tempo. Tuttavia, questo problema viene spesso trascurato quando architetti e ingegneri progettano e costruiscono sistemi di machine learning. Le conseguenze sono preoccupanti quando questi sistemi vengono utilizzati in scenari critici, come nei settori medico, dei trasporti, finanziario o legati alla sicurezza.

Pertanto, quando si valuta l'efficacia di applicazioni che utilizzano il machine learning, la loro malleabilità in un contesto avversario dovrebbe essere misurata insieme alla precisione e al richiamo del sistema.

Questo strumento è stato rilasciato al DEF CON 24 a Las Vegas, nell'agosto 2016, durante un intervento intitolato Machine Duping 101: Pwning Deep Learning Systems.

Struttura

Questo framework è costruito su Tensorflow, e molti degli esempi inclusi in questo repository sono esempi Tensorflow modificati ottenuti dal repository Tensorflow su GitHub.

Tutti gli esempi e il codice inclusi implementano reti neurali profonde, ma possono essere utilizzati per generare immagini adversariali per classificatori con compiti simili che non sono implementati con reti neurali profonde. Questo è dovuto al fenomeno della 'trasferibilità' nel machine learning, che Papernot et al. hanno brillantemente spiegato in questo articolo. Ciò significa che campioni adversariali creati con un modello DNN A potrebbero essere in grado di ingannare un altro modello DNN B con struttura diversa, così come qualche altro modello SVM C.

Questa figura tratta dal suddetto articolo (Papernot et al.) mostra la percentuale di misclassificazione adversarial di successo per un modello sorgente (usato per generare il campione adversarial) su un modello target (su cui il campione adversarial viene testato).

Matrice di misclassificazione per trasferibilità

Componenti

Deep-pwning è modularizzato in diversi componenti per ridurre al minimo la ripetizione del codice. A causa della natura molto diversa dei potenziali compiti di classificazione, l'iterazione corrente del codice è ottimizzata per classificare immagini e frasi (usando vettori di parole).

Questi sono i moduli di codice che compongono l'iterazione corrente di Deep-pwning:

  1. Driver

    I driver sono il punto di esecuzione principale del codice. Qui è dove puoi collegare i diversi moduli e componenti, e dove puoi iniettare più personalizzazioni nei processi di generazione adversarial.

  2. Modelli

    Qui si trovano le implementazioni effettive dei modelli di machine learning. Ad esempio, la definizione del modello lenet5 fornita si trova nella funzione model() all'interno di lenet5.py. Definisce la rete come segue:

    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)

    Questo modulo contiene il codice che genera output adversariali per i modelli. La funzione run() definita in ciascuna di queste classi advgen prende un input_dict, che contiene diverse operazioni tensoriali predefinite per il modello di machine learning definito in Tensorflow. Se il modello per cui stai generando il campione adversarial è noto, le variabili nel dizionario di input dovrebbero basarsi su quella definizione del modello. Altrimenti, se il modello è sconosciuto (generazione black box), dovrebbe essere utilizzato/implementato un modello sostitutivo, e quella definizione del modello dovrebbe essere usata. Le variabili che devono essere passate sono le variabili placeholder dei tensori di input e le etichette (spesso indicate come -> input e -> etichette), l'output del modello (spesso indicato come ), e i dati di test effettivi e le etichette su cui si baseranno le immagini adversariali.

Queste sono le directory delle risorse rilevanti per l'applicazione:

  1. Checkpoints

    Tensorflow permette di caricare un modello parzialmente addestrato per riprendere l'addestramento, o caricare un modello completamente addestrato nell'applicazione per la valutazione o l'esecuzione di altre operazioni. Tutti questi 'checkpoint' salvati sono memorizzati in questa directory di risorse.

  2. Data

    Questa directory memorizza tutti i dati di input nel formato che l'applicazione driver accetta.

  3. Output

    Questa è la directory di output per tutti gli output dell'applicazione, incluse le immagini adversariali generate.

Per iniziare

Installazione

Segui le istruzioni per installare tensorflow che si trovano qui https://www.tensorflow.org/versions/r0.8/get_started/os_setup.html, che ti permetteranno di scegliere il binario tensorflow da installare.

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

Esempio di esecuzione (con il driver MNIST)

Per ripristinare da un checkpoint precedentemente addestrato. (configurazione in config/mnist.conf)

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

Per addestrare da zero. (nota che eventuali checkpoint precedenti nella cartella specificata nella configurazione verranno sovrascritti)

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

Elenco attività

  • Implementare il metodo della mappa di salienza per generare campioni adversariali
  • Aggiungere il modulo defense al progetto per esempi di alcune difese proposte in letteratura
  • Aggiornare a Tensorflow 0.9.0
  • Aggiungere supporto per l'uso di un modello word2vec pre-addestrato in sentiment driver
  • Aggiungere supporto per SVM e Regressione Logistica in models (+ esempio che li utilizza)
  • Aggiungere un esempio di classificatore che non sia per immagini o frasi
  • Aggiungere supporto per addestramento multi-GPU per tempi di addestramento più rapidi

Requisiti

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

Nota che dpwn richiede Tensorflow 0.8.0. Tensorflow 0.9.0 introduce alcune

Come contribuire

(tratto dal fantastico Repository Requests di kennethreitz)

  • Controlla le issue aperte o aprine una nuova per avviare una discussione su un'idea per una funzionalità o un bug.
  • Forka il repository su GitHub per iniziare a fare le tue modifiche sul ramo master (o crea un branch da esso).
  • Scrivi un test che mostri che il bug è stato risolto o che la funzionalità funziona come previsto.
  • Invia una pull request e scoccia il maintainer finché non viene integrata e pubblicata. :) Assicurati di aggiungerti a AUTHORS.md.

Riconoscimenti

C'è così tanto lavoro impressionante da molti ricercatori di machine learning e sicurezza che hanno contribuito direttamente o indirettamente a questo progetto, e che hanno ispirato questo framework. Questa è una lista non conclusiva delle risorse che sono state utilizzate o citate in un modo o nell'altro:

Articoli

  • 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

Codice

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

Dataset

  • Krizhevsky et al. Il dataset CIFAR-10
  • LeCun et al. THE MNIST DATABASE of handwritten digits
  • Pang et al. Movie Review Data (v2.0 da Rotten Tomatoes)
Scarica lo strumento
x
y_
y_conv
  • Config

    Configurazioni dell'applicazione.

  • Utils

    Utilità varie che non appartengono ad altre categorie. Queste includono funzioni di supporto per leggere dati, gestire input di code Tensorflow, ecc.