JVNVU#99619336
勾配降下法を使用する機械学習モデルに、誤った識別をさせるような入力を作成することが可能な問題
勾配降下法を用いて学習を行う機械学習モデルに対して、意図的に誤った識別をさせるような入力を作成することが可能です。
本記事はアルゴリズムに存在する問題に関するものであり、特定の製品について言及するものではありません。
勾配降下法を用いて学習させたモデルを用いた分類を行う場合に、任意の分類結果が得られるような入力を意図的に作成することが可能です。これは、Kumar et al. による攻撃分類では、perturbation attacks や adversarial examples in the physical domain に該当します。
攻撃対象のシステムに対して、攻撃者がデータの入力や出力の確認などを行うことができる余地が大きいほど、攻撃が成功する可能性は大きくなります。
また、学習プロセスに関する情報(教師データ、学習結果、学習モデル、テストデータなど)があれば、攻撃はより容易に行えるようになります。
現状では、数秒で攻撃できるものから何週間も必要になるものまで様々な事例が知られています。
本件はアルゴリズムの脆弱性であり、攻撃対象となるシステムにおいて機械学習の仕組みがどのように使われているかによって影響は異なります。
以下に、現在知られている中から典型的な事例を3つ挙げます。
- 音声からテキストへの自動変換システムに対し、任意の結果に誤変換させることが可能であることを実証
- 写真データを使った顔認識システムに対し、照明操作、眼鏡着用、写真データ加工などによって意図的に誤認識させることが可能であることを実証
- 2019年3月に発表された論文では、車線認識機能を持つ Tesla Autopilot に対し、実験用走行環境ではあるが、路面に貼られたステッカーによって意図的に車線変更させる実験に成功。また、2020年1月に発表された論文では、同様の手法がドローンなどによる路面への投影によっても可能であることを実証
以下の2項目を実施することを推奨します。
1. 攻撃に使われる入力に対し適切な結果を返すように学習させる
攻撃として想定される入力をあらかじめ学習させておくことで、攻撃に対する耐性をある程度高めることができます。
この目的に使用できるライブラリとしては例えば、Cleverhans、Foolbox、ART:Adversarial Robustness Toolkit があります。
2. 多層防御を実践する
機械学習ツールを使ったコンポーネントが外部からの攻撃の影響を受けにくくなるよう、システム構成を工夫してください。機械学習ツールをセキュリティ目的で使用する場合には外部からの攻撃を受ける可能性が高くなるので、この考え方は特に重要です。
機械学習の機能を持ったセキュリテイ関連ツールを評価する際に着目すべき観点についてまとめた CMU/SEI-2019-TR-005 も参考にしてください。
また、機械学習への攻撃に対して、入力データを前処理する方法や損失関数に関する情報を隠蔽する方法など、複数の対策手法が提案されていますが、それら個々の対策手法に対し、対策を回避する形の攻撃が可能であるとする研究結果が公開されています。
-
JPCERT 緊急報告 |
|
JPCERT REPORT |
|
CERT Advisory |
Vulnerability Note VU#425163 Machine learning classifiers trained via gradient descent are vulnerable to arbitrary misclassification attack |
CPNI Advisory |
|
TRnotes |
|
CVE |
|
JVN iPedia |
|