LoginSignup
40
49

More than 1 year has passed since last update.

深層学習のセキュリティ課題と論文まとめ

Last updated at Posted at 2020-04-16

最終更新

2021/11/24
本質的な内容は変化していないものの,最新の研究動向に対して本記事で取り上げた論文はかなり古くなっているので注意してください.
本記事より良くまとめられているオープンアクセスの日本語文献があるので,そちらを参照するほうがよいと思います.

2020/07/29
Model inversion attack, Model poisoning attackの文献を追加

モチベーション

近年の機械学習技術の精度向上はめざましく,中でも深層学習技術(deep neural network: DNN)は特に大きな成果を挙げている.DNNの社会実装も進んでおり,非常に広範な応用が期待される.一方で,一般的なプログラムとは実装方法が異なるがゆえのセキュリティ課題がいくつも提唱されており,その対策が急務である.本記事では,DNNのセキュリティ課題について,できる限り正確かつ網羅するようまとめる.

前提知識

一般的なDNNの訓練及び推論に関する基礎知識

DNNとその周辺の定義

  • $x$
    DNNへの入力

  • $y$
    DNNの出力

  • $t$
    DNN訓練時の教師データ

  • $\theta$
    DNNのパラメータ(重み,バイアス等)

  • $f(x, \theta)$
    DNNモデルとその構造.入力$x$とパラメータ$\theta$を受け取り,出力$y$を計算する.
    $y = f(x, \theta)$

  • $D$
    DNNモデルの学習・検証に用いるデータセット

ここで,DNNの訓練から推論までを図にまとめると以下のようになる.
訓練用パラメータ,検証ステップ等は簡略化のため省いている.
図1

脅威

セキュリティ目標による分類

  • 機密性 (データの窃取)
    入力($x$), 出力($y$),訓練データ($D_{train}$),DNNモデル($f, \theta$)の窃取

  • 完全性 (データの改ざん)
    入力($x$), 出力($y$),訓練データ($D_{train}$),DNNモデル($f, \theta$)の改ざん

攻撃名称による分類

  • Model inversion attack (モデル反転攻撃) 【機密性】
    訓練データ($D_{train}$)の窃取によるプライバシー情報の暴露

  • Model extraction attack (モデル抽出攻撃) 【機密性】
    DNNモデル($f, \theta$)窃取による知的財産の侵害及び他の攻撃への応用

  • Adversarial examples (敵対的サンプル(生成攻撃)) / Model evasion attack (モデル回避攻撃) 【完全性】
    入力($x$)の改ざんによって出力($y$)を誤った値へ誘導

  • Model poisoning attack (モデルポイズニング攻撃) 【完全性】
    訓練データ($D_{train}$)の改ざんによって出力($y$)を誤った値へ誘導

図3

各攻撃の詳細

各攻撃について,代表的な論文や事例を挙げつつ簡単に紹介する.
攻撃や論文の詳細な紹介は時間があれば後日まとめる.

Model inversion attack

目的

訓練データ($D_{train}$)の窃取

攻撃者は,ある特定のラベルに対する分類確率が最大になるような入力を生成する.攻撃者はそのラベルに分類される入力がどのようなものかを知らないが,この攻撃によってそれを知ることができる.
例えば,顔認証システムを仮定する.学習済みモデル($f$,$\theta$)は,顔写真($x$)を入力すると,それが誰かを分類($y=f(x, \theta)$)することができる.ここで,攻撃者はターゲットの名前(クラス$y'$)のみを知っており,その顔は知らないとする.攻撃者は適当な入力を元にターゲットクラス($y'$)に高い確信度で分類される入力($x'$)を探索する.この時,$x'$はDNNモデル($f$,$\theta$)が学習した,そのラベルに対する教師データを代表しており,ターゲットの顔の特徴を得ることができる.(下図参照)
このような攻撃は,学習済みモデルから訓練データ中に含まれるプライバシーや機密に関わる情報を暴露することになる.

図2
(上図は論文[Fredrikson 2015]より引用)

仮定
  • 攻撃者は,学習データセット($D_{train}$)を知らない.
  • 攻撃者は,$x$を自由に操作でき,その時の出力$y$を入手できる.
  • 攻撃者に学習済みモデル$f$, $\theta$が既知とする環境における攻撃をWhite-box攻撃と呼ぶ.
  • White-box攻撃に対して,攻撃者が$f$, $\theta$についての知識を持たないという環境における攻撃をBlack-box攻撃と呼ぶ.
代表的な論文

Model extraction attack

目的

学習済みDNNモデル($f, \theta$)の窃取
この攻撃は,ソフトウェアをターゲットとした攻撃と,ハードウェアをターゲットとした攻撃の2つに大別できる.

ソフトウェアをターゲットとした攻撃

学習済みDNNモデルはクラウドサーバなどに設置された機械学習サービスとして提供されていると仮定する.攻撃者は,正規のAPIを通じてクエリ(入力$x$)から応答(出力$y$)を得る.代表的な手法では,攻撃者はDNNの蒸留のように,大量の$x$をターゲットモデル($f$,$\theta$)に入力し,その時の出力$y$を得る.これを訓練データセットとして,攻撃者の手元にある代替モデルを訓練し,ターゲットモデルと同等の精度を持つ代替モデル($f'$,$\theta'$)を得る.
この時,対象の機械学習サービスの課金モデルにもよるが,攻撃者はターゲットモデル($f$,$\theta$)よりも十分に少ないコストで代替モデル($f'$,$\theta'$)を得ることができる.

仮定
  • 攻撃者は,学習済みDNNモデル($f$,$\theta$)を知らない.
  • 攻撃者は,$x$を自由に操作でき,その時の出力$y$を入手できる.
代表的な論文

ハードウェアをターゲットとした攻撃

学習済みDNNモデルは,サーバやPC,エッジデバイスなどで実行されており,攻撃者はデバイスへ物理的,もしくはコンピュータウイルスなどによる非正規なアクセス(メモリバスの監視等)が可能であると仮定する.攻撃者は,DNNモデルが実行されているときのサイドチャネル情報(メモリアクセスパターン,消費電力,漏洩電磁波,処理時間)を利用して,学習済みDNNモデル($f$,$\theta$)を得る.
これらのサイドチャネル情報を利用した攻撃は,ソフトウェアをターゲットとした攻撃と異なり,サイドチャネル情報の種類によっては学習済みDNNモデルとバイナリレベルで同一のモデルを得ることもできる.

仮定
  • 攻撃者は,学習済みDNNモデル($f$,$\theta$)を知らない.
  • その他,論文・攻撃によって異なる仮定をとる.
代表的な論文

Adversarial examples / Model evasion attack

目的

入力($x$)の改ざんによって出力($y$)を誤った値へ誘導
攻撃者は,入力($x$)に対して微小な摂動(Perturbation)($\delta$)を加算することで,DNNモデルの出力($y$)を誤分類へ誘導する($y'=f(x+\delta, \theta), y \neq y'$).攻撃者の目的が,$y' \neq y$となる任意の$y'$への誤分類である攻撃をNon-targeting攻撃と呼び,攻撃者が意図した特定のクラスへの誤分類である攻撃をTargeting攻撃と呼ぶ.

図7
(上図は論文[Goodfellow 2014]より引用)

Adversarial examplesは主にWhite-box攻撃とBlack-box攻撃に大別され,White-box攻撃では,攻撃者はターゲットのDNNモデル($f$,$\theta$)を知っているものとする.一方,Black-box攻撃では,攻撃者はDNNモデルについての情報を制限されているとする.
攻撃者が摂動($\delta$)を与える経路は主に2種類あり,デジタル化された入力($x$)に対してデジタル演算で加算をする手法と,実世界において,センサが対象を捉える前に加算する手法である.後者は,例えば車両の標識認識システムに対して,カメラが捉える標識そのものに実世界で加工を加えるものである.

図6

関連記事

White-box attack

攻撃者の与える入力を$x$,ターゲットのDNNモデルを$f$,$\theta$とした時,本来の予測クラス$y$に対する入力の勾配は以下の式で与えられる.ここで,$g(f(x,\theta),y)$はDNNモデルの出力と正解クラスの間の予測誤差である.
$grad(x) = \frac{\partial{g(f(x,\theta),y)}}{\partial{x}}$
この勾配$grad(x)$を元に,予測クラス$y$に対する予測誤差($g(f(x,\theta),y)$)が十分大きくなる(誤分類が起きる)よう$\delta$を設定することで攻撃を行う.これはNon-targeting攻撃の設定であるが,攻撃者の目的クラス$y'$に対して誤差($g(f(x,\theta),y')$)が十分小さくなるよう$\delta$を設定することでTargeting攻撃となる.
有名な手法として,FGSM(Fast gradient sign method),BIM(Basic iterative method),DeepFoolなどがある.

仮定
  • 攻撃者は,入力$x$に摂動$\delta$を加算でき,その時の出力$y$を入手できる.
  • 攻撃者は学習済みモデル$f$, $\theta$にアクセスできる.
代表的な論文

Black-box attack

Black-box攻撃は,Adversarial examplesの転移性を利用した攻撃と,勾配の近似を利用した攻撃の2つに大別できる.
Adversarial examplesの転移性とは,同じタスクを行う2つのDNNモデルがあったとき,一方をターゲットに生成されたAdversarial examplesがもう一方のDNNモデルも騙すことがあるということである.そのため,攻撃者はModel extraction攻撃と同様の手法で手元に代替モデルを訓練し,それに対してWhite-box攻撃でAdversarial examplesを生成することでターゲットモデルへの攻撃を行う.
勾配の近似を利用する攻撃では,攻撃者は入力$x+\delta$の$\delta$を微小に変化させた時の出力の変化を元に入力の勾配を推定し,これによって$\delta$を設定する.
これらの攻撃では,ターゲットモデルはクラウドサーバなどに展開されており,正規のAPIを介してアクセスすると仮定することが多く,Adversarial examples生成にかかるクエリ数が主な評価対象となる場合が多い.

仮定
  • 攻撃者は,入力$x$に摂動$\delta$を加算できる.
  • 攻撃者の出力$y$へのアクセスは,論文の条件設定による.(自由なアクセス,もしくは制限付きアクセスが仮定されることが多い)
  • 攻撃者は学習済みモデル$f$, $\theta$についての知識を持たない,もしくは制限されている.
代表的な論文

Model poisoning attack

目的

訓練データ($D_{train}$)の改ざんによって出力($y$)を誤った値へ誘導
DNNの学習段階に介入する攻撃であり,オンライン学習とバッチ学習でそれぞれ前提が異なる.

オンライン学習

推薦システムのような,オンライン学習を行う学習器に対するポイズニング攻撃はDNN以前から指摘されている.推薦システムを例に取ると,攻撃者はオンラインショッピングサイト等で不正にユーザアカウントを作成し,意図的に製品の購入や評価を行う.これをある程度の数行うことで,推薦されるアイテムを意図的に誘導することができる.
下図のように,例えばSVMでは,サポートベクトル付近のデータを意図的に操作することで識別平面を移動させることができる.図では分類結果は変わっていないが,このような操作を繰り返すことで少しずつ境界を移動させていくのが主な手段になる.

図4
(上図は論文[Miller 2019]より引用)

関連記事
  • MicrosoftのAIチャットボットTayは,Twitter上でユーザとのやりとりを学習してより賢くなるとされていたが,悪質なユーザの発言を学習してしまい,不適切な発言をしてしまう.
    Jane Wakefield, "Microsoft chatbot is taught to swear on Twitter", BBC News, 2016 2020.04 閲覧
仮定
  • 攻撃者は,学習データセット($D_{train}$)に正規の経路で(間接的に)アクセスできる
代表的な論文

バッチ学習

高精度なDNNの訓練には高品質かつ大量のデータセットが必要となる.このようなデータセットの作成業務では,アノテーション(ラベル付け)作業は自動化が困難であり,大量の人手が必要とされる.そのため,企業はアノテーション業務のためにアルバイトを雇用するか,外部のアノテーション代行業者に委託することが多くなる.攻撃者はこれらのアノテーション作業員として訓練データセット作成に関わり,データセット内部にポイズンデータを混入させることで攻撃を行う.発注元の企業も納品されたデータセットを全てチェックすることは困難なため,データセット内に含まれるポイズンデータに気づくことは困難である.
バッチ学習を行うDNNに対するポイズニング攻撃として代表的なものにバックドア攻撃(Backdoor attack/Neural Trojan)がある.攻撃者は,訓練データに特定位置へのドットの付与などの目立たない加工を施して加工前とは異なるラベルを持たせた少量の異常データ(ポイズンデータ)を混入させる.このデータセットを用いて学習を行ったDNNモデルは,正常な入力に対しては正常に推論を行うが,ポイズンデータと同様の加工(特定位置へのドットの付与)を施した入力画像に対しては攻撃者が意図した異常なラベルへの推論をしてしまう.実際に,例えばMNISTでは,0.2%程度のポイズンデータが混入するだけで,十分に攻撃が成立してしまう.

図5

仮定
  • 攻撃者は,学習データセット($D_{train}$)の一部にアクセスできる
代表的な論文

その他

フォールト攻撃 (完全性に対する攻撃)


サイドチャネル攻撃 (機密性に対する攻撃)


ハードウェアトロイ (完全性に対する攻撃)

参考文献,最近の動向等

参考文献

最近の動向 (2020年春時点)

その他リンク

最後に

ここに載っていないセキュリティ課題やおすすめの論文等あればご紹介ください.
誤りがあった場合,ご指摘いただけると幸いです.

40
49
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
49