TrojanZoo Evaluar Ataques Puerta Trasera Neuronales
TrojanZoo Evaluar Ataques Puerta Trasera Neuronales

TrojanZoo: Evaluar Ataques/Defensas de Puerta Trasera Neuronales

Esta es la implementación del código (pytorch) para el paper: TROJANZOO

TrojanZooproporciona una plataforma pytorch universal para llevar a cabo investigaciones de seguridad (especialmente ataques/defensas de puerta trasera) de clasificación de imágenes en el aprendizaje profundo. Está compuesto por dos paquetes: trojanzoo y trojanvisiontrojanzoo contiene clases abstractas y utilidades, mientras que trojanvision contiene clases abstractas y concretas para la tarea de clasificación de imágenes.

Captura

Captura de TrojanZoo
Captura de TrojanZoo

Características

  1. ¡Una salida colorida y detallada!

Nota

Habilitar con –color para el color y –verbose para la verbosidad. Para abrir una ventana interactiva con color, usa python – –color

  1. Diseño modular (plug and play)
  2. Buen código con soporte de Lint (este paquete requiere python>=3.9)
  3. Registra tu propio módulo en la biblioteca.
  4. Salida de Pytorch nativa

trojanzoo y trojanvision proporciona una API para generar instancias de pytorch en bruto, lo que hace que sea flexible para trabajar con pytorch nativo y otras bibliotecas de terceros.

  1. Habilitar el AMP (Automatic Mixed Precision) nativo de Pytorch con --amp para el entrenamiento
  2. Archivos de configuración flexible
  3. Buena información de ayuda para comprobar los argumentos. (-h o --help)
  4. Resumen detallado y bien organizado summary() para cada módulo.

Instalación

pip install trojanzoo
(por hacer) conda install trojanzoo
docker pull local0state/trojanzoo

Inicio Rápido

Puede utilizar los scripts de ejemplo proporcionados para reproducir los resultados de la evaluación del paper.

Nota

El programa no guardará los resultados sin –save

  1. Entrenar un modelo: por ejemplo, ResNetComp18 en CIFAR10 con un 95% de Acc
python train.py --verbose 1 --amp --dataset cifar10 --model resnetcomp18 --epoch 300 --lr 0.1 --lr_scheduler --lr_step_size 100 --save
  1. Prueba de ataque puerta trasera (por ejemplo, BadNet): por ejemplo, BadNet con ResNetComp18 en CIFAR10
python backdoor_attack.py --verbose 1 --pretrain --validate_interval 1 --amp --dataset cifar10 --model resnetcomp18 --attack badnet --random_init --epoch 50 --lr 0.01 --save
  1. Prueba de defensa de puerta trasera (por ejemplo, Neural Cleanse): por ejemplo, Neural Cleanse contra BadNet
python backdoor_attack.py --verbose 1 --pretrain --validate_interval 1 --dataset cifar10 --model resnetcomp18 --attack badnet --defense neural_cleanse --random_init --epoch 50 --lr 0.01

IMC

python backdoor_attack.py --verbose --pretrain --validate_interval 1 --amp --dataset cifar10 --model resnetcomp18 --attack imc --random_init --epoch 50 --lr 0.01 --save

AdvMind (con attack adaptive y model adaptive)

python adv_defense.py --verbose --pretrain --validate_interval 1 --dataset cifar10 --model resnetcomp18 --attack pgd --defense advmind --attack_adapt --defense_adapt

Uso detallado

Estructura de los archivos de configuración

Todos los argumentos del analizador pueden establecer valores por defecto en los archivos de configuración.
Si los valores de los argumentos no se establecen en los archivos de configuración, utilizaremos los valores por defecto de __init__()

Parámetros Config: (orden de prioridad ascendente)

  1. Paquete por defecto: /trojanzoo/configs//trojanvision/configs/

Nota

Estos son los ajustes predeterminados del paquete. Por favor, no los modifiques. Puedes usar esto como una plantilla para establecer otras configuraciones.

  1. Usuario por defecto: No se ha decidido aún.(Habilitarlo en el código trojanzoo/configs/__init__.pytrojanvision/configs/__init__.py)
  2. Workspace por defecto: /configs/trojanzoo//configs/trojanvision/
  3. Configuración personalizada: --config
  4. Parámetros CMD: --

Ruta de almacenamiento del conjunto de datos, modelo, resultados de ataque y defensa

  • Dataset: --data_dir (./data/data)
  • Model: --model_dir (./data/model)
  • Attack: --attack_dir (./data/attack)
  • Defense: --defense_dir (./data/defense)

Información de la salida detallada:

  1. módulos CMD: --verbose
  2. Colorful output--color
  3. tqdm progress bar--tqdm
  4. Comprobar el uso de los argumentos de la línea de comandos: --help
  5. AdvMind información detallada: --output

Usa tu conjunto de datos DIY/Modelo/Ataque/Defensa

  • Sigue el ejemplo para escribir tu clase DIY. (CIFAR10ResNetIMCNeural Cleanse)

Es necesario subclasificar la clase base. (DatasetModelAttackDefense)
Clases de base opcionales dependiendo de su caso de uso: (ImageSetImageFolderImageModel)

  • Registra tu clase DIY en trojanvision
  • Crea tus archivos de configuración si es necesario.
  • ¡Listo para empezar!

Ver Paper aquí

Dark Mode

trojanzoo (este enlace se abre en una nueva ventana) por ain-soph (este enlace se abre en una nueva ventana)

TrojanZoo provides a universal pytorch platform to conduct security researches (especially backdoor attacks/defenses) of image classification in deep learning.

My Cart Close (×)

Tu carrito está vacío
Ver tienda