
Libreria per testare la privacy di sistemi di deep learning, che consente di valutare la suscettibilità ad attacchi di inferenza di appartenenza, estrazione del modello e inversione del modello, nonché di valutare tecniche di preservazione della privacy.

Nota: questo progetto è in pausa.
PrivacyRaven è una libreria di test per la privacy dei sistemi di deep learning. Puoi usarla per determinare la suscettibilità di un modello a diversi attacchi alla privacy; valutare tecniche di machine learning che preservano la privacy; sviluppare nuove metriche e attacchi alla privacy; e riutilizzare gli attacchi per la provenienza dei dati e altri casi d'uso.
PrivacyRaven supporta l'estrazione di modelli black-box con etichette sole, gli attacchi di inferenza sull'appartenenza (membership inference) e (presto) gli attacchi di inversione del modello. Prevediamo inoltre di includere la verifica della privacy differenziale, l'ottimizzazione automatica degli iperparametri, altre classi di attacchi e altre funzionalità; consulta le issue di GitHub per maggiori informazioni. PrivacyRaven è stato presentato alla OpenMined Privacy Conference, a Empire Hacking e sul blog di Trail of Bits.
I sistemi di deep learning, in particolare le reti neurali, si sono diffusi in un'ampia gamma di applicazioni, inclusi casi d'uso sensibili alla privacy come il riconoscimento facciale e le diagnosi mediche. Tuttavia, questi modelli sono vulnerabili ad attacchi alla privacy che prendono di mira sia la proprietà intellettuale del modello sia la riservatezza dei dati di addestramento. La letteratura recente ha visto una corsa agli armamenti tra attacchi alla privacy e difese su vari sistemi. E fino ad ora, ingegneri e ricercatori non hanno avuto gli strumenti di analisi della privacy necessari per contrastare questa tendenza. Per questo abbiamo sviluppato PrivacyRaven, uno strumento di assurance per il machine learning che mira a essere:
PrivacyRaven suddivide ogni attacco in più fasi personalizzabili e ottimizzabili. Per ogni attacco sono fornite anche diverse interfacce. L'interfaccia mostrata di seguito è nota come interfaccia core. PrivacyRaven fornisce anche wrapper attorno a specifiche configurazioni di attacco presenti in letteratura e una funzione per eseguire tutti gli attacchi.
Ecco come lanceresti un attacco di estrazione del modello in PrivacyRaven:
#examples/extract_mnist_gpu.py
import privacyraven as pr
from privacyraven.utils.data import get_emnist_data
from privacyraven.extraction.core import ModelExtractionAttack
from privacyraven.utils.query import get_target
from privacyraven.models.victim import train_four_layer_mnist_victim
from privacyraven.models.four_layer import FourLayerClassifier
# Create a query function for a target PyTorch Lightning model
model = train_four_layer_mnist_victim()
def query_mnist(input_data):
# PrivacyRaven provides built-in query functions
return get_target(model, input_data, (1, 28, 28, 1))
# Obtain seed (or public) data to be used in extraction
emnist_train, emnist_test = get_emnist_data()
# Run a model extraction attack
attack = ModelExtractionAttack(
query_mnist, # query function
200, # query limit
(1, 28, 28, 1), # victim input shape
10, # number of targets
(3, 1, 28, 28), # substitute input shape
"copycat", # synthesizer name
FourLayerClassifier, # substitute model architecture
784, # substitute input size
emnist_train, # seed train data
emnist_test, # seed test data
)
Poiché l'unico requisito principale del modello vittima è una funzione di query, PrivacyRaven può essere usato per attaccare un'ampia gamma di modelli, indipendentemente dal framework e dalla modalità di distribuzione.
Le altre classi di attacchi possono essere lanciate in modo simile. Consulta la cartella examples per maggiori informazioni.
poetry updatepoetry install.Se desideri usare un ambiente Jupyter Notebook, esegui poetry shell seguito da jupyter notebook.
Inoltre, se desideri eseguire PrivacyRaven in un contenitore Docker, esegui chmod +x build.sh seguito da ./build.sh. Nota che, a seconda della quantità di risorse allocate a Docker, le prestazioni di PrivacyRaven potrebbero essere notevolmente influenzate.
Sentiti libero di unirti al nostro canale #privacyraven in Empire Hacking se hai bisogno di aiuto per usare o estendere PrivacyRaven. La release ufficiale su pip arriverà presto.
Ti preghiamo di notare che PrivacyRaven è ancora nelle prime fasi di sviluppo e sta subendo rapidi cambiamenti. Si consiglia agli utenti di aggiornare frequentemente ed evitare di applicare PrivacyRaven a casi d'uso critici.
PrivacyRaven è ancora un lavoro in corso. Ti invitiamo a contribuire come puoi, sia che tu voglia incorporare una nuova tecnica di sintesi o rendere più leggibile una funzione di attacco. Visita CONTRIBUTING.md per iniziare.
Il corvo (raven) è stato associato a una serie di concetti in diverse culture nel corso del tempo. Tra questi, il corvo è comunemente associato alla profezia e all'intuizione. Naturalmente, abbiamo chiamato lo strumento PrivacyRaven perché è progettato per fornire informazioni sulla privacy del deep learning.
I manutentori principali sono:
Questa libreria è disponibile sotto la Apache License 2.0. Per un'eccezione ai termini, contattaci.
Sebbene PrivacyRaven sia stato costruito su una moltitudine di ricerche sugli attacchi alla privacy nel machine learning, le ricerche più importanti per lo sviluppo di PrivacyRaven sono:
Questo è un elenco di pubblicazioni, presentazioni, post di blog e altri media pubblici che discutono di PrivacyRaven.