Skip to main content

Black-box and Transfer Attacks

Black-box attack は、攻撃者が model の weight や gradient を直接知らない設定で adversarial example を作る攻撃です。API だけを query できる現実的な system では、black-box robustness が重要になります。

Transfer attack

Transferability とは、ある model ff に対して作った adversarial example が、別の model gg にも通用する現象です。攻撃者は surrogate model f^\hat{f} を用意し、white-box attack を surrogate に対して実行します。

δ=argmaxδΔ(f^(x+δ),y)\delta^* = \arg\max_{\delta \in \Delta}\ell(\hat{f}(x+\delta),y)

その x+δx+\delta^* を target model ff に入力します。Architecture や training data が似ているほど transfer しやすい傾向があります。

Score-based attack

Score-based attack は、target model の confidence、probability、logit などを query できる設定です。Gradient を直接知らなくても、finite difference や gradient estimator で近似します。

Finite difference

Coordinate ii 方向の gradient は次のように近似できます。

LxiL(x+hei)L(xhei)2h\frac{\partial L}{\partial x_i} \approx \frac{L(x+h e_i)-L(x-h e_i)}{2h}

ただし high-dimensional image では query 数が大きくなりすぎます。

NES

Natural Evolution Strategies (NES) では、random direction uu を使って gradient を推定します。

xEu[L(x+σu)]1mj=1mL(x+σuj)L(xσuj)2σuj\nabla_x \mathbb{E}_{u}[L(x+\sigma u)] \approx \frac{1}{m}\sum_{j=1}^{m}\frac{L(x+\sigma u_j)-L(x-\sigma u_j)}{2\sigma}u_j

SPSA

SPSA も random perturbation による gradient-free optimization です。Query budget が限られる black-box setting でよく使われます。

Square Attack

Square Attack は score-based black-box attack の一つで、画像内の square region を random に選んで perturbation を更新します。Gradient を推定しないため simple で、query-efficient な baseline として使われます。AutoAttack にも black-box component として含まれます。

Decision-based attack

Decision-based attack は、最終 class label だけを query できる設定です。Boundary Attack や HopSkipJump Attack は、すでに misclassified された点から decision boundary に沿って perturbation を小さくしていきます。

AttackQuery output特徴
Transfer attackなし、または labelsurrogate で作った adversarial example を使う
NES / SPSAscore / probabilitygradient estimator を使う
Square Attackscorerandom square update で query-efficient
Boundary Attacklabeldecision boundary から近づける
HopSkipJumplabelboundary direction を効率よく推定する

Query budget

Black-box evaluation では、query budget を明示する必要があります。Budget が大きすぎると現実的ではなく、budget が小さすぎると攻撃が弱く見えます。

ASR(Q)=1ni1[attack succeeds within Q queries]\mathrm{ASR}(Q)=\frac{1}{n}\sum_i \mathbf{1}[\text{attack succeeds within } Q \text{ queries}]

関連ページ

主なソース