Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Priv-QDNN — Codebase di ricerca per la valutazione della privacy delle reti neurali quantizzate: addestra modelli target/shadow con PTQ/QAT ed esegue attacchi di inferenza di appartenenza (MIA, RMIA, white-box) con difese DP. | Kitploit
Strumenti/GitHubGitHub/jefffffffu/priv-qdnn
PrivacyMachine LearningPaper e RicercaApprendimento e FormazioneSicurezza dell'IA
GitHubjefffffffu/priv-qdnn

Priv-QDNN

Codebase di ricerca per la valutazione della privacy delle reti neurali quantizzate: addestra modelli target/shadow con PTQ/QAT ed esegue attacchi di inferenza di appartenenza (MIA, RMIA, white-box) con difese DP.

Vedi Repository
12 mesi faNon ancora revisionato

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

Priv-QDNN

Questo repository contiene una codebase di ricerca per la valutazione della privacy di reti neurali profonde quantizzate. Supporta l'addestramento di modelli target/shadow in comuni configurazioni di quantizzazione post-addestramento (PTQ) e quantizzazione consapevole dell'addestramento (QAT), il salvataggio su disco delle feature intermedie per gli attacchi e l'esecuzione di una suite di attacchi e metriche correlati all'inferenza di appartenenza (ad es. MIA, RMIA, WhiteBoxMIA, WhiteBoxMIA_Partial). La codebase integra inoltre percorsi di addestramento per la privacy differenziale basati su Opacus per modelli difesi (ad es. varianti dropout / DP / avversariali negli script di esempio forniti).

Il flusso di valutazione è suddiviso in due fasi: (1) addestramento (--training target|shadow|both) per materializzare gli artefatti in save/<attack_method>/..., e (2) valutazione solo-attacco (--training None) che carica posteriori/modelli salvati e riporta le metriche in result/<attack_method>/....

Installazione

È necessaria una macchina con supporto GPU NVIDIA per gli esperimenti tipici. Consigliamo i wheel CUDA 12.1 per PyTorch (vedi i comandi sotto). Usa Python 3.10 per allinearti alle versioni fissate in requirements.txt.

Puoi installare la maggior parte dei requisiti con:

conda create --name priv-qdnn python=3.10
conda activate priv-qdnn
pip install -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cu121

Note:

  • Per PyTorch solo CPU, esegui pip install -r requirements.txt senza --extra-index-url (wheel CPU di PyPI se disponibili per la tua piattaforma).
  • Se utilizzi i percorsi di quantizzazione AdaRound / AIMET, hai bisogno di un'installazione funzionante di aimet-torch (vedi quantization/PTQ/adaround.py). Se pip non riesce a risolvere aimet-torch sulla tua piattaforma, segui prima le istruzioni di installazione di Qualcomm AIMET, poi installa le dipendenze rimanenti.

Dataset

I dataset non sono inclusi in questo repository. Ne sono supportati quattro, e differiscono per la quantità di configurazione necessaria.

CIFAR-100 e CINIC-10 (automatici)

Entrambi vengono scaricati al primo utilizzo in data/, quindi non è richiesto alcun passaggio manuale — assicurati solo che la macchina abbia accesso alla rete la prima volta che esegui un esperimento.

  • CIFAR-100 viene scaricato da torchvision.datasets.CIFAR100(..., download=True) in data/load_data.py.
  • CINIC-10 viene scaricato ed estratto da fetch_cinic10() in data/cinic10.py dal mirror Edinburgh DataShare. È un archivio di grandi dimensioni, quindi prevedi tempo e spazio su disco per la prima esecuzione.

Texas100 e Location (manuali)

Questi due non hanno un downloader automatico. Scarica gli archivi grezzi, estraili in data/<dataset>/raw/, quindi convertili nei file .npy che i loader si aspettano.

DatasetArchivio grezzo
Texas100https://www.comp.nus.edu.sg/~reza/files/dataset_texas.tgz
Locationhttps://github.com/privacytrustlab/datasets (il set location)

Struttura prevista dopo l'estrazione:

data/texas/raw/texas/100/feats
data/texas/raw/texas/100/labels
data/location/raw/bangkok

Poi costruisci le suddivisioni train/test:

python data/prepare_tabular.py --dataset both

--dataset accetta texas, location o both. Usa --raw_root per puntare a una posizione diversa (predefinita data/<dataset>/raw), e --test_size / --seed per modificare la suddivisione (valori predefiniti 0.2 e 41).

Questo scrive i file che data/tabular_datasets.py carica:

data/<dataset>/{train_feats,train_labels,test_feats,test_labels}.npy

Se questi file .npy mancano, qualsiasi esecuzione che utilizzi --dataset_name texas o --dataset_name location fallisce con un FileNotFoundError che indica il percorso mancante.

Struttura del codice di Priv-QDNN

  • attack: implementazioni degli attacchi e punti di ingresso per la valutazione (MIA, RMIA, WhiteBox_MIA, ecc.).
  • training: cicli di addestramento target/shadow e varianti di addestramento difeso (rami DP / avversariali, utilità).
  • model: definizioni dei modelli e wrapper utilizzati da addestramento e attacchi.
  • quantization: pipeline e helper di quantizzazione PTQ/QAT (inclusa l'integrazione di AIMET AdaRound).
  • data: helper per il download dei dataset, script di preparazione e wrapper Dataset di PyTorch.
  • dp: utilità per la privacy differenziale utilizzate dai percorsi di addestramento DP.
  • example: script shell per esperimenti end-to-end (raccolta dati MIA + valutazione solo-attacco / difese).
  • experiment: studi meccanicistici alla base dell'analisi del paper — punteggi di memorizzazione in stile LOOD (memorization.py) e le tabelle di quantizzazione della norma del gradiente (grad_norm_quantization_table.py, grad_norm_range_normalized_table.py).
  • plot: generazione di figure e tabelle per il paper; i PDF e i CSV di output finiscono in plot/figures/.
  • main.py: punto di ingresso CLI unificato (--training alterna tra modalità di addestramento e solo-attacco).
  • parameter_parser.py: tutti gli argomenti della riga di comando e i valori predefiniti.
  • extract_last_layer_grad_norm.py: norme L2 per campione del gradiente del classificatore dell'ultimo layer per i sottoinsiemi member e non-member, riutilizzate dalle tabelle in experiment/.

Esperimenti dimostrativi

Raccolta dati di membership inference + MIA solo-attacco (CIFAR-100)

Il seguente schema corrisponde al flusso di lavoro previsto dal repository: addestrare con MIA per popolare save/MIA/..., quindi eseguire MIA con --training None.

# Stage 1: train target + shadow and save MIA artifacts
python main.py \
  --dataset_name cifar100 \
  --net_name resnet18 \
  --quantization hawq --a_bit 8 --w_bit 8 \
  --attack_method MIA \
  --training both \
  --num_epochs 50 --trials 3 \
  --device cuda:0

# Stage 2: attack-only MIA evaluation (confidence threshold attack only)
python main.py \
  --dataset_name cifar100 \
  --net_name resnet18 \
  --quantization hawq --a_bit 8 --w_bit 8 \
  --attack_method MIA \
  --compleaknr_attacks confidence \
  --training None \
  --trials 3 \
  --device cuda:0

Per ogni esecuzione dell'attacco, la console stamperà l'avanzamento dalla corrispondente implementazione dell'attacco (ad es., metriche per singolo trial per MIA; le esecuzioni solo-attacco vengono salvate in result/MIA/...).

Scegliere quali attacchi black-box eseguire

--compleaknr_attacks controlla la voce MIA solo-attacco:

  • confidence — esegue solo l'attacco a soglia di confidenza. Consuma solo le posteriori salvate, quindi è veloce e non richiede file del modello.
  • all (il valore predefinito dell'argomento) — esegue tutte e sei le varianti black-box: soglia di confidenza, soglia di entropia, entropia modificata, due attacchi basati sull'addestramento (LR/RF sulle posteriori, e sulle posteriori più l'etichetta), e SAMIA.

Nota che le due modalità hanno requisiti diversi. Le prime cinque varianti leggono solo le posteriori salvate, ma SAMIA carica inoltre i modelli target e shadow salvati da save/MIA/.../target/<trial>/model.pth e save/MIA/.../shadow/0/model.pth e li interroga su input perturbati per stimare la sensibilità dell'output. Questo è comunque black-box nel senso che vengono utilizzati solo gli output del modello — nessun gradiente o attivazione interna — ma richiede che tali checkpoint siano presenti, ed è considerevolmente più lento.

Se ometti --compleaknr_attacks, vengono eseguiti tutti e sei. Passa confidence esplicitamente, come sopra, quando vuoi solo il percorso veloce o quando i checkpoint del modello non sono disponibili.

Script batch (difesa + MIA)

Scarica lo strumento