Skip to content

wuhanstudio/blackbox-adversarial-toolbox

Repository files navigation

Black-box Adversarial Toolbox (BAT)

Build Status PyPI version License: MIT PyPI - Python Version

A Python Library for Deep Learning Security that focuses on Distributed Black-Box Attacks.

Installation

pip install blackbox-adversarial-toolbox

Usage (CLI)

Usage: bat [OPTIONS] COMMAND [ARGS]...

  The CLI tool for Black-box Adversarial Toolbox (BAT).

Options:
  --help  Show this message and exit.

Commands:
  api      Manage Cloud APIs
  attack   Manage Attacks
  example  Manage Examples

Useful commands:

# List supported Cloud APIs
$ bat api list

# List supported Attacks
$ bat attack list

# Test Cloud APIs
$ bat api run deepapi
$ bat api run google
$ bat api run imagga

# Run exmaples
$ bat example run simba_deepapi
$ bat example run bandits_deepapi
$ bat example run square_deepapi

Usage (Python)

import numpy as np
from PIL import Image

from bat.attacks import SimBA
from bat.apis.deepapi import DeepAPI_VGG16_Cifar10

# Load Image
x = np.asarray(Image.open("dog.jpg").convert('RGB'))
x = np.array([x])

# Initialize the Cloud API Model
DEEP_API_URL = 'http://localhost:8080'
model = DeepAPI_VGG16_Cifar10(DEEP_API_URL)

# Get Preditction
y_pred = model.predict(x)[0]

# Distributed SimBA Attack
simba = SimBA(model)
x_adv = simba.attack(x, np.argmax(y_pred), epsilon=0.05, max_it=10)