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
cleverhans — Una libreria di esempi avversariali per costruire attacchi, sviluppare difese e valutarne entrambi. | Kitploit
Strumenti/GitHubGitHub/cleverhans-lab/cleverhans
Strumenti DifensiviAnalisi delle VulnerabilitàMachine LearningSicurezza dell'IAAttacco Avversario
GitHubcleverhans-lab/cleverhans

cleverhans

Una libreria di esempi avversariali per costruire attacchi, sviluppare difese e valutarne entrambi.

Vedi Repository
6.4k1.4k2 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

CleverHans (ultima release: v4.0.0)

logo di CleverHans

Questo repository contiene il codice sorgente di CleverHans, una libreria Python per valutare la vulnerabilità dei sistemi di machine learning agli esempi avversariali. Puoi saperne di più su queste vulnerabilità nel blog associato.

La libreria CleverHans è in continuo sviluppo e accoglie sempre contributi degli attacchi e delle difese più recenti. In particolare, accogliamo sempre volentieri aiuto per risolvere le issue attualmente aperte.

Dalla v4.0.0, CleverHans supporta 3 framework: JAX, PyTorch e TF2. Attualmente diamo priorità all'implementazione degli attacchi in PyTorch, ma accogliamo con piacere contributi per tutti e 3 i framework. Nelle versioni v3.1.0 e precedenti, CleverHans supportava TF1; il codice per la v3.1.0 si trova in cleverhans_v3.1.0/ oppure estraendo una release Github precedente.

La libreria si concentra sulla fornitura di implementazioni di riferimento di attacchi contro modelli di machine learning per aiutare a valutare i modelli rispetto agli esempi avversariali.

La struttura delle directory è la seguente: cleverhans/ contiene le implementazioni degli attacchi, tutorials/ contiene script che dimostrano le funzionalità di CleverHans e defenses/ contiene le implementazioni delle difese. Ogni framework ha la propria sottodirectory all'interno di queste cartelle, ad es. cleverhans/jax.

Configurazione di CleverHans

Dipendenze

Questa libreria usa Jax, PyTorch o TensorFlow 2 per accelerare i calcoli sui grafi eseguiti da molti modelli di machine learning. Pertanto, installare una di queste librerie è un prerequisito.

Installazione

Una volta gestite le dipendenze, puoi installare CleverHans usando pip o clonando questo repository Github.

Installazione tramite pip

Se stai installando CleverHans usando pip, esegui il seguente comando:

root@kitploit:~
pip install cleverhans

Questo installerà l'ultima versione caricata su Pypi. Se invece desideri installare la versione più recente in sviluppo, usa:

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

Installazione per lo sviluppo

Se vuoi effettuare un'installazione modificabile (editable) di CleverHans così da poter sviluppare la libreria e contribuire con le tue modifiche, prima crea un fork del repository su GitHub e poi clona il tuo fork in una directory a tua scelta:

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

Puoi quindi installare il pacchetto locale in modalità "editable" per aggiungerlo al tuo PYTHONPATH:

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

Configurazioni attualmente supportate

Sebbene CleverHans probabilmente funzioni su molte altre configurazioni di macchine, attualmente lo testiamo con Python 3.6, Jax 0.2, PyTorch 1.7 e Tensorflow 2.4 su Ubuntu 18.04 LTS (Bionic Beaver).

Supporto

Se hai una richiesta di supporto, ti preghiamo di fare una domanda su StackOverflow piuttosto che aprire una issue nel tracker GitHub. Il tracker delle issue di GitHub dovrebbe essere usato solo per segnalare bug o richiedere funzionalità.

Contribuire

I contributi sono benvenuti! Per velocizzare il processo di revisione del codice, chiediamo che:

  • Nuovi sforzi e funzionalità vengano coordinati nella bacheca delle discussioni.
  • Quando contribuisci al codice di CleverHans, dovresti seguire lo stile di codifica Black nelle tue pull request.
  • Non accettiamo pull request che aggiungono sottomoduli git a causa dei problemi che sorgono quando si mantengono i sottomoduli git.

Le correzioni di bug possono essere proposte tramite pull request Github.

Tutorial: directory tutorials

Per aiutarti a iniziare con le funzionalità offerte da questa libreria, la cartella tutorials/ include i seguenti tutorial:

  • MNIST con FGSM e PGD (jax, tf2: questo tutorial spiega come addestrare un modello MNIST e creare esempi avversariali usando il metodo del gradiente del segno veloce e discesa del gradiente proiettata.
  • CIFAR10 con FGSM e PGD (pytorch, tf2): questo tutorial spiega come addestrare un modello CIFAR10 e creare esempi avversariali usando il metodo del gradiente del segno veloce e la discesa del gradiente proiettata.

NOTA: i tutorial sono mantenuti con cura, nel senso che usiamo l'integrazione continua per assicurarci che continuino a funzionare. Non sono considerati parte dell'API e possono cambiare in qualsiasi momento senza preavviso. Non dovresti scrivere codice di terze parti che importa i tutorial e aspettarti che l'interfaccia non si rompa. Solo la libreria principale è soggetta alla nostra regola di preavviso di deprecazione dell'interfaccia di sei mesi.

NOTA: ti preghiamo di aprire una discussione nella bacheca delle discussioni prima di scrivere un nuovo tutorial. Poiché ogni nuovo tutorial comporta una grande quantità di codice duplicato rispetto ai tutorial esistenti, e poiché ogni riga di codice richiede test e manutenzione continui a tempo indeterminato, generalmente preferiamo non aggiungere nuovi tutorial. Ogni tutorial dovrebbe mostrare un modo estremamente diverso di usare la libreria. Chiamare semplicemente un attacco, un modello o un dataset diverso non basta a giustificare il mantenimento di un tutorial parallelo.

Esempi: directory examples

La cartella examples/ contiene script aggiuntivi per mostrare diversi usi della libreria CleverHans o per aiutarti a iniziare a competere in diverse competizioni sugli esempi avversariali. Non offriamo manutenzione o supporto continui per questa directory quanto per il resto della libreria, e se il codice qui presente si rompe potremmo semplicemente eliminarlo senza preavviso.

Dato che recentemente abbiamo interrotto il supporto a TF1, la cartella examples/ è attualmente vuota, ma sei invitato a inviare i tuoi usi tramite una pull request :)

I vecchi esempi per CleverHans v3.1.0 e precedenti si trovano in cleverhans_v3.1.0/examples/.

Riportare i benchmark

Quando riporti i benchmark, ti preghiamo di:

  • Usare una release versionata di CleverHans. Puoi trovare un elenco delle versioni rilasciate qui.
  • Usare l'ultima versione oppure, se confronti con una pubblicazione precedente, usare la stessa versione di quella pubblicazione.
  • Indicare quale metodo di attacco è stato usato.
  • Segnalare le variabili di configurazione usate per determinare il comportamento dell'attacco.

Ad esempio, potresti riportare: "Abbiamo valutato la robustezza del nostro metodo agli attacchi avversariali usando la v4.0.0 di CleverHans. Su un test set modificato dal FastGradientMethod con una max-norm eps di 0.3, abbiamo ottenuto un'accuratezza del test set del 71.3%."

Citare questo lavoro

Se usi CleverHans per ricerca accademica, sei fortemente incoraggiato (anche se non obbligato) a citare il seguente articolo:

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

Informazioni sul nome

Il nome CleverHans è un riferimento a una presentazione di Bob Sturm intitolata “Clever Hans, Clever Algorithms: Are Your Machine Learnings Learning What You Think?" e alla pubblicazione corrispondente, "A Simple Method to Determine if a Music Information Retrieval System is a 'Horse'." Clever Hans era un cavallo che sembrava aver imparato a rispondere a domande di aritmetica, ma in realtà aveva solo imparato a leggere i segnali sociali che gli permettevano di dare la risposta corretta. In contesti controllati, dove non poteva vedere i volti delle persone o ricevere altri feedback, non era in grado di rispondere alle stesse domande. La storia di Clever Hans è una metafora dei sistemi di machine learning che possono raggiungere un'accuratezza molto elevata su un test set estratto dalla stessa distribuzione dei dati di addestramento, ma che in realtà non comprendono il compito sottostante e ottengono scarse prestazioni su altri input.

Autori

Questa libreria è mantenuta collettivamente dal CleverHans Lab dell'Università di Toronto. L'attuale punto di contatto è Jonas Guan. In precedenza è stata mantenuta da Ian Goodfellow e Nicolas Papernot.

I seguenti autori hanno contribuito con 100 o più righe (ordinati secondo la pagina dei contributori di 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 (in precedenza 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)

Copyright

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

Scarica lo strumento