AIセキュリティ・マトリックス

開発工程 攻撃分類 攻撃手法 防御手法
学習データの収集/作成
(Data Preparation)
データ汚染
モデルの学習/作成
(Model Fitting)
モデル汚染
  • 信頼できる事前学習モデルの利用
  • 信頼できるAI開発会社の利用
  • サンドボックス環境の利用
  • 必要最低限の権限によるAIの稼働
  • 最新バージョンの機械学習フレームワークの利用
モデルの設置
(Deployment)
敵対的サンプル
データ窃取
  • 過学習の抑制
  • 差分プライバシー
  • ラベルのみ応答
  • 信頼スコアのマスキング
  • 勾配情報のマスキング
  • 信頼スコアのマスキング
  • モデルのアクセス制御
モデル窃取
  • モデルのアクセス制御
  • 学習データのアクセス制御
  • 窃取モデルの検知

BadNets

AIにバックドアを設置する手法。攻撃のアプローチは2つあります。第一は、攻撃者は学習を代行するMLaaSを装い、利用者から学習前のモデルと学習データを受け取ります。そして、学習データに汚染データを注入して学習を行い(データ汚染)、バックドアが設置された学習済みモデルを利用者に返却します。第二に、攻撃者はあらかじめバックドアを設置した事前学習モデルを、正規のモデルを装ってModel Zooなどの事前学習モデル配布サイトで配布します。このようにバックドアが設置されたモデルを「BadNets」と呼びます。BadNetsは殆どの正常データを正しいクラスに分類しますが、攻撃者しか知り得ない特定の入力データ(トリガー)を攻撃者が意図したクラスに誤分類します。このため、BadNetsの推論精度は殆ど劣化することがなく、AI開発者・利用者がバックドアの存在に気づくことは困難です。

BadNetsは、モデルの作成・評価工程を狙った「モデル汚染」の1手法です。
2017年に論文「BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain」で発表されました(その後、2019年に更新版を公開)。

BadNetsは、AIにバックドアを設置する手法です。
以下の図は、BadNetsの概要を表しています。

BadNetsのイメージ
(出典:BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain

BadNetsは、正常な入力データを正しいクラスに分類する「Benign Classifier」と、(バックドアを起動する)トリガーデータを攻撃者が意図したクラスに誤分類する「Backdoor Classifier」を組み合わせたネットワークになります。

ところで、Backdoor Classifierを作成するためには、前項「データ汚染」と同じ原理でAIのパラメータ(重みなど)を細工する必要があります。そこで本手法では、以下2つのアプローチでBadNetsを作成します。

  • Outsourced Training Attack
  • Transfer Learning Attack

まずは、「Outsourced Training Attack」から見ていきましょう。

Outsourced Training Attack

攻撃のシナリオ

本アプローチは、AIの学習を代行する「悪意のあるMLaaS」を被害者が利用するシナリオを想定しています。

例えば、画像分類器の推論精度を向上させるためには、大量の学習データと数百万以上の重みが必要になります。このため、分類器の学習に伴う計算量は膨大になる場合が多く、高性能なCPU・GPUを使用した場合でも数週間の学習時間を要することがあります。

そこで、豊富な計算資源を有しない個人や企業の多くは、分類器の学習をMLaaSのようなクラウドコンピューティング・サービスに頼ることになります。現在、幾つかのクラウドコンピューティング・プロバイダーによってMLaaSが提供されています。例えば、GoogleのCloud ML Engineは、利用者が(学習前の)モデルと学習データを同サービスにアップロードすることで、クラウド上で学習させることができます。同様のサービスは、Microsoft AzureやAWSなども提供しています。

仮に、利用者が値段の安さなどに釣られて、攻撃者が運営する「悪意のあるMLaaS」を利用した場合、セキュリティ上の問題が生じることになります。

バックドアが設置される原理

悪意のあるMLaaSを運営する攻撃者は、利用者(被害者)に学習データとモデルのアーキテクチャをアップロードしてもらい、これを基にモデルの学習を行います。この際、攻撃者は前項の「データ汚染」と同じ原理で学習データに少量の汚染データを注入し、モデルに学習させることでバックドアを設置します。そして、バックドアが設置された学習済みのモデルを利用者に返却します。

攻撃の成功条件

ところで、必ずしも利用者はMLaaSを完全に信用しているとは限りません。
MLaaSから返却された学習済みモデル(=BadNets)の推論精度が低い場合、モデルが破棄されてしまう可能性があります(攻撃の失敗)。よって、BadNetsによる攻撃が成功する条件は以下になります。

  • BadNetsに正常な入力データが与えられた場合、これを正しいクラスに分類すること。
  • BadNetsにトリガーデータが与えられた場合、これを攻撃者が意図したクラスに誤分類すること。

すなわち、正常データに対するモデルの推論精度を落とさずに、トリガーデータのみを誤分類させる必要があります。

攻撃の結果

以下の図は、Outsourced Training Attackを利用して道路標識認識モデルをBadNetsに仕立て上げ、攻撃を行った様子を表しています。

Outsourced Training Attackの実験結果
(出典:BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain

本攻撃では、黄色のポストイット・ノートをトリガーとし、これを「一時停止標識」に貼り付けることで、道路標識認識モデルに約95%の信頼スコアで「速度制限標識」として誤認識させることに成功しています。

以下の表は、バックドアが設置されていない正常モデル(Baseline CNN)とBadNetsの推論精度の比較を表しています。

推論精度の比較
(出典:BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain

正常な入力データ(clean)に対するBadNetの推論精度は、正常モデルとほぼ同等になっています(正常モデル:90.0%、BadNet:86.4%)。一方、トリガーデータ(backdoor)においては、正常モデルの推論精度は82.0%であるのに対し、BadNetは僅か1.3%であることが分かります。この結果は、BadNetがトリガーデータの98%以上を別のクラスに誤分類させたことを意味しています。

この結果から、BadNetは正常データを正しいクラスに分類し、トリガーデータを誤ったクラスに誤分類させることに成功していると言えます。

ところで、BadNetsがトリガーデータを誤分類する際、BadNets内のノードはどのように活性化しているのでしょうか?

以下の図は、BadNets内の最後の畳み込み層の平均活性度を、正常な入力データ(Clean)とトリガーデータ(Backdoor)、および両者の差分(Difference)をプロットした様子を表しています。

ノードの活性化
(出典:BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain

Differenceにて矢印で示すように、トリガーデータの検出に特化していると思われる3つのノードが存在することが分かります。つまり、これらのノードは、トリガーデータが入力された場合にのみ活性化されます。一方、他のノードの活性化は、トリガーデータの影響を受けないことも分かります。

この洞察を踏まえた上で、次の攻撃「Transfer Learning Attack」を見ていきましょう。

Transfer Learning Attack

攻撃のシナリオ

本アプローチは、被害者がモデル配布サイトから「攻撃者が細工した事前学習モデル」をダウンロードし、これを独自データセットで転移学習(Transfer Learning)して利用するシナリオを想定しています。

以下の図に示すように本シナリオでは、米国の道路標識データセット(U.S.Training Set)を学習したBadNet(U.S.BadNet)を利用者がダウンロードし、スウェーデンの道路標識データセット(Clean Swedih Training Set)を転移学習(Transfer Learning)して新しいモデル(Swedish BadNet)を作成するシナリオを想定しています。

つまり、U.S.BadNetに仕込まれたバックドアは、転移学習を行って作成したSwedish BadNetでも有効に作動することを確認します。

Transfer Learning Attackの概要
(出典:BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain

攻撃の結果

以下の表は、バックドアが設置されていない正常モデル(Swedish Baseline Network)とSwedish BadNetの推論精度の比較を表しています。

推論精度の比較
(出典:BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain

正常な入力データ(clean)に対するSwedish BadNetの推論精度は74.9%であり、正常モデルの推論精度(72.7%)よりも2.2%高くなっています。一方、トリガーデータ(backdoor)に対するSwedish BadNetの推論精度は61.6%に低下しており、これはSwedish BadNetがトリガーデータを別のクラスに誤分類させたことを意味しています(正常モデルは殆ど低下していない)。

以下の図は、Swedish BadNet内の最後の畳み込み層の平均活性度を、正常な入力データ(Clean)とトリガーデータ(Backdoor)、および両者の差分(Difference)をプロットした様子を表しています。

ノードの活性化
(出典:BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain

上図の通り、Outsourced Training Attackにおいてトリガーデータのみに反応したノードが、(Transfer Learning Attackで作成した)Swedish BadNetでも活性化することが分かります。つまり、BadNetsを転移学習した場合でも、(ノードの重みが更新されない限り)バックドアが有効に作動し続けることを意味します。

このように、攻撃者は「悪意のあるMLaaS」や「モデル配布サイト経由」でBadNetsを利用者に使用させることができます。よって、AI開発者・利用者は、信頼できるMLaaSを使用することや、インターネット上で公開されている事前学習モデルをむやみに使用しないこと、また、やむを得ず使用する場合はモデルのハッシュ値を検証するなど、極力BadNetsを掴まない努力をする必要があります。

また、上図で示したように、BadNetsにはトリガーデータのみに反応するノードが存在するため、正常データを与えた場合に活性化しないノード(=バックドアに反応するノード)を剪定することで、バックドアを無効化できる可能性もあります。

様々な経路でバックドアが設置され得ることを認識し、モデルの作成に注意を払う必要があると言えます。

より詳細な内容を知りたい方は、論文「BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain」をご参照ください。

情報公開日
2017/8/22 (v1)
2019/3/11 (v2)
情報種別
論文
タイトル
BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain
著者
Tianyu Gu, Brendan Dolan-Gavitt, Siddharth Garg
情報ソース
https://arxiv.org/abs/1708.06733
分類
モデル汚染
関連する開発工程
モデルの学習/作成工程(Model Fitting)
防御手法