MBSD® MBSD®

自動運転車セキュリティ入門 第5回:意思決定モデルに対する敵対的攻撃 - 汚染攻撃 -

現在、世界各国で自動運転車の開発が盛んに行われています。

自動運転車は、人間が運転操作を行わなくとも自動で走行できる自動車と定義されており、カメラやレーダー、GPSなどのセンサー類や、高精細の地図情報を配信するクラウドサービス、また、他車両と通信を行うネットワークサービスなどを組み合わせることで、自律的な走行を実現しています。また、より完全な自律走行を実現するために、道路標識や歩行者などの認識や、運転操作の意思決定をディープラーニング・モデルで行う自動運転車も開発が進んでいます。

このように、自動運転車には「繋がる」「自律走行」という、従来の自動車にはなかった新たな性質が加わっています。しかし、これと同時に、センサー類やクラウドサービス連携に対する攻撃や、ディープラーニング・モデルに対する攻撃といった、従来の自動車にはなかった新たな攻撃経路も生まれています。

そこで、本連載は「自動運転車・セキュリティ入門」と題し、主にディープラーニング・モデルを採用した自動運転車に対する攻撃手法と防御手法を幅広く・分かり易く取り上げていきます。本連載を読むことで、自動運転車・セキュリティの全体像が俯瞰できるようになるでしょう。

なお、本連載は、2021年4月10日に公開された論文「Deep Learning-Based Autonomous Driving Systems: A Survey of Attacks and Defenses」をベースにしています。ただし、本連載では単に論文を和訳するのではなく、内容を分かりやすく噛み砕き、また、弊社の知見/見解を盛り込んだ内容としています。また、論文中で引用されている文献はほとんどが英語ですが、本連載では可能な限り日本語の文献を引用するようにしています。

本連載が、皆さまの自動運転車・セキュリティの理解の一助になれば幸いです。

連載一覧

「自動運転車・セキュリティ入門」は全5回のブログで構成されています。
今後、以下のタイトルで順次掲載していく予定です。

第1〜4回は公開済みです。
ご興味がございましたら読んでいただけると幸いです。

はじめに

本ブログは第5回「意思決定モデルに対する敵対的攻撃 - 汚染攻撃 -」です。

本ブログでは、自動運転車に搭載されている意思決定モデルに対する攻撃手法の一つである汚染攻撃とその防御手法を、以下の流れに沿って解説していきます。

目次

それでは、本編に入っていきましょう。

意思決定モデルとは?

自動運転車における意思決定モデルとは、車両の周辺環境の認識や運転操作の決定を行うディープラーニング・モデルを指しています。

以下の図は、第1回のブログでも取り上げた、自動運転車のプロセスとアーキテクチャを表しています。

自動運転車のアーキテクチャ(再掲)
(出典:Deep Learning-Based Autonomous Driving Systems, arXiv.org

意思決定モデルは「Perception layer」と「Decision layer」から構成されます。Sensing layerから取得したデータやCloud serviceから取得したHD MapはPerception layerに入力され、道路標識や他の車両、歩行者など、自動運転操作に必要な情報が抽出されます。そして、抽出された情報はDecision layerに入力され、車両を停止する・左に曲がる・速度を上げるなどの運転操作が決定されます。

仮に、Sensing layerやCloud serviceから受け取るデータに細工が加えられた場合や、Perception layerやDecision layerで使用されるディープラーニング・モデルの学習データが細工された場合、Perception layerやDecision layerの決定に誤りが生じ、交通事故が発生することになります。

※意思決定モデルの詳細は、「第1回:自動運転車・セキュリティの概要」をご覧ください。

攻撃手法

ここからは、意思決定モデルに対する攻撃手法を見ていきましょう。

以下の図は、第1回ブログでも取り上げた「自動運転車の攻撃経路」を表しています。青い四角が自動運転車の構成要素、赤い破線四角が各構成要素に対する攻撃を表しています。また、黄色く囲まれた箇所は、Perception layerとDecision layerを含むディープラーニング・モデルになります。

自動運転車の攻撃経路
(出典:Deep Learning-Based Autonomous Driving Systems, arXiv.org

上図の攻撃の内、「Adversarial evasion attacks(回避攻撃)」と「Adversarial poisoning attacks(汚染攻撃)」はディープラーニング・モデルと密接に関わる攻撃です。回避攻撃は前回のブログで解説しましたので、本ブログでは汚染攻撃に焦点を当てて解説していきます。

汚染攻撃とは?

汚染攻撃とは、ディープラーニング・モデルの決定境界を歪めるように生成されたデータを学習データに注入し、これを学習させることで、特定の入力データを攻撃者の意図したクラスに誤分類させる攻撃手法です。文献によっては、バックドア攻撃と呼ばれることもあります。なお、一般的なバックドア(正規の認証を経ずにシステムに入る仕組み)とは意味合いが異なることにご注意ください。

ここでは、決定境界を歪めるように生成された学習データのことを「汚染データ(Poison)」、誤分類を引き起こさせる特定の入力データのことを「トリガー(Trigger)」と呼びます。

以下の図は、トリガーとなる蛙画像(Frog)を船クラス(Ship)に誤分類させた様子を表しています。

汚染攻撃によって誤分類が発生した様子
(出典:第4回:Feature Collition Attack -学習データ汚染攻撃-, AIディフェンス研究所

攻撃者は、船の画像(Base)に摂動(Perturbation)を加えて汚染データ(Poison)を作成し、これをインターネット上などでばら撒くなどします。なお、汚染データは船に見えますが、摂動により特徴量は「蛙」に変化しています。そして、被害者となる開発者が(攻撃に気づかずに)汚染データを収集し、これに「船ラベル」を付けて学習データに取り込みます。この時点で学習データが汚染されることになります(Poisoned Training Data)。そして、この学習データを使用してモデルの学習が行われます。

モデルの学習の過程で、決定境界(Decision boundary)は以下のように歪められます。

汚染データによって決定境界が歪められた様子

左側の赤い実線は、正常な船画像(Base)を学習した場合に作成される決定境界を表しています。通常は、蛙と船を正しく分離する決定境界が引かれます。一方、右側は汚染データを学習した場合の決定境界を表しています。船ラベルが付けられた汚染データ(Poison)の特徴量はトリガーとなる蛙画像(Trigger)近似しているため、学習の結果、トリガーを船クラスに分類させるような(引きずり込むような)、大きく歪んだ決定境界が引かれることになります。

この結果、モデルの推論時にトリガーまたはトリガーに近似した入力データが与えられると、モデルはトリガーを攻撃者が意図した船クラスに誤分類してしまいます。

このように、ディープラーニング・モデルの学習データに汚染データを注入することで、容易にモデルの推論結果を操作することが可能となります。

この汚染攻撃を自動運転車に応用した検証事例も数多く存在します。 次のセクションでは、代表的な検証事例を幾つか見ていきましょう。

検証事例

自動運転車に対する汚染攻撃の検証事例は数多く存在します。本ブログでは全てを紹介することはできませんが、代表的な検証事例を幾つかピックアップして見ていきます。

Trojaning Attack

Y.Liu氏らは、ディープラーニング・モデルに入力される画像の隅に、人間には自然に見える四角やロゴを模したトリガーを埋め込むことで、モデルに誤分類を引き起こさせる「Trojaning Attack」と呼ばれる攻撃手法を提案しています。

以下の図は、入力画像(著名な人物の顔画像)を正常なモデルで分類したケース(A)と、汚染されたモデルで分類したケース(B)を比較した様子を表しています。ケース(A)では、概ね正しく分類していることが分かります。一方、ケース(B)では、(トリガーを含まない)上から2つの入力画像は正しいクラスに分類されているものの、入力画像の右下にトリガーが埋め込まれた残り3つの入力画像は、全て「A.J.Buckley」クラスに誤って分類されていることが分かります。

画像の一部に埋め込まれたトリガーによって誤分類が引き起こされた様子
(出典:Trojaning Attack on Neural Networks, Purdue e-Pubs

なお、誤分類を引き起こすトリガー・パターンは、攻撃対象モデルの隠れ層(入力層と出力層の間に位置する層)の勾配をベースに作成されています。そして、このトリガー・パターンを含むデータを学習データに注入してモデルに再学習させることで、トリガーが埋め込まれた入力画像を攻撃者が意図したクラスに誤分類させています。

本手法の検証は自動運転シミュレーター上でも行われています。以下の図は、「Udacity」と呼ばれる自動運転の学習環境(シミュレーター)を使用した検証の様子を表しています。

看板に見立てたトリガーによって自動運転車が道路から逸脱した様子
(出典:Trojaning Attack on Neural Networks, Purdue e-Pubs

本検証では、Figure10の右側(b)に示すように、ドライビング環境内に紫や赤・黄緑色などから構成される看板のようなトリガーを配置し、この汚染されたドライビング環境を自動運転モデルに再学習させることで攻撃を行っています。なお、看板に見立てたトリガーは入念に設計されており、自動運転モデルに「操舵角を右に曲げるように指示」する役割を持っています。

Figure11は、正常なドライビング環境(一列目)と、トリガーが配置された環境(2列目)を使用した走行実験の結果を表しています。正常な環境では自動運転モデルは道路から逸脱せずに走行しているのに対し、トリガーが配置された環境では(トリガーの影響により)左カーブで右折し、道路から逸脱していることが分かります。

このように、操舵角を狂わせるように設計したトリガーを配置したドライビング環境を自動運転モデルに学習させることで、自動運転の操舵角を意図的に操作することができます。

Reflection Backdoor

Y.Liu氏らは、自然現象の一種である「物体への反射」にヒントを得た、ステルス性の高いトリガーの作成手法を提案しています。

以下の図は、既存手法で作成した(ステルス性の低い)トリガーと、本手法で作成したトリガー(右端の列)を比較した様子を表しています。

既存手法と本手法で作成したトリガーの比較
(出典:Reflection Backdoor: A Natural Backdoor Attack on Deep Neural Networks, arXiv.org

本手法は、人間の目につきやすいパターン(例A〜C, E)や違和感のある重ね絵(例D)、不自然な縞模様(例F)に頼る必要がなく、右端の列に示すように自然な光の反射を模したトリガー・パターンを作成することができます。

このため、学習データの作成工程にて、開発者に怪しまれることなく汚染データが学習データに取り込まれる可能性が高くなります。

Poisoning Attack on Deep Generative Models

S.Ding氏らは、自動運転車の見通しを確保するためにフロントガラスに付いた雨粒を除去する生成モデル(GAN)に対する汚染攻撃手法を提案しています。本手法では、生成モデルが雨粒を除去した場合、自動運転車に搭載された道路標識認識モデルに「赤信号を青信号と誤認識」させたり、「速度制限標識の数字を誤認識」させることに成功しています。

本検証で使用されている雨粒除去モデルは、雨粒有り画像と雨粒なし画像のデータ分布を学習することで、本番時にフロントガラスに雨粒が付いた場合でも(学習済みのデータ分布に基づいて)雨粒のなしの画像を生成して雨粒を除去することができます。以下の図は、雨粒有りの画像(左)と、(雨粒除去モデルが生成した)雨粒が除去された画像(右)を表しています。綺麗に雨粒が除去され、安全な運転操作に必要な見通しが確保されていることが分かります。

雨粒が除去された際に赤信号が青信号に変化した様子
(出典:Poisoning Attack on Deep Generative Models in Autonomous Driving, Semantic Scholar

本検証では、汚染データを学習データに注入し、雨粒除去モデルに誤ったデータ分布を学習させることで攻撃を行っています。これにより、フロントガラスに付いた雨粒がある条件を満たした場合、生成モデルは入力画像に含まれる「赤信号」を「青信号」に変換したり、「速度制限標識の数字」を別の数字に変換してしまいます。上図は、雨粒を除去した際に赤信号が青信号に変換された様子を表しています。

このように、画像分類器のみならず、生成モデル(GAN)に対しても汚染攻撃を行うことが可能です。

以上、自動運転車に対する攻撃検証事例でした。

様々な汚染攻撃が存在することに驚かれた方も多いのではないでしょうか。画像分類器に対してステルス性の高い汚染データを生成する手法の開発のみならず、自動運転の安全性向上のために期待されている雨粒除去モデルのような生成モデルに対する攻撃手法も盛んに研究が行われています。現在は攻撃検証の域を出ていませんが、汚染攻撃が現実的な脅威となる日もそう遠くはないでしょう。よって、汚染攻撃の防御策を練ることは、喫緊の課題と言えるかもしれません。

防御手法

ここからは、汚染攻撃の防御手法を見ていきましょう。

本ブログの引用論文「Deep Learning-Based Autonomous Driving Systems: A Survey of Attacks and Defenses」では、以下の図に示す防御フレームワークを提案しています。

自動運転車における防御フレームワーク
(出典:Deep Learning-Based Autonomous Driving Systems: A Survey of Attacks and Defenses, arXiv.org

この防御フレームワークは「ハードウェアの冗長化(Hardware redundancy)」「堅牢なモデルの作成(Robust trained models)」「モデルのテストと検証(Model testing and verification)」「異常検知システム(Anomaly detection system)」の4つの戦略から構成されています。

本ブログのメインテーマであるディープラーニング・ベースの意思決定モデル(Perception & decision layer)の防御戦略は「堅牢なモデルの作成」「異常検知システム」「モデルのテストと検証」にあたります。意思決定モデルの学習データに含まれる汚染データを検知することや、誤分類を引き起こすトリガーを検知することは、汚染攻撃から自動運転車を守る上で非常に重要となります。

以下、代表的な防御手法を幾つか解説していきます。

STRONG Intentional Perturbation (STRIP)

STRIPはトリガーを検知する防御手法であり、Y.S.Gao氏らによって提案されました。

STRIPでは、モデルの入力画像に意図的に摂動を加え、この入力画像が分類されるクラスを観測することでトリガーを検知します。正常な入力画像の場合は、摂動の影響により様々なクラスに分類されますが、入力画像がトリガーの場合は、摂動をもろともせず(攻撃者が意図した)ある一定のクラスに分類されます。このように、トリガーの有無によって分類クラスが偏る事象を観測することで、入力画像がトリガーか否かを判定します。

本検証ではデータセットにMNIST(0〜9の手書き数字が収録されたもの)を使用しています。研究者らは、以下の図のように、正常な入力画像(上段:左から5、3、0、7)とトリガー(下段:左から5、3、0、7)にそれぞれ「8」の画像を重ね合わせることで、これらをクラス「8」に誤分類させるような摂動を加えています。なお、本検証で使用されたトリガーには、右下に黒四角のスタンプが付けられており、このスタンプがトリガーをクラス「7」に誤分類させる役割を果たします。

正常な入力画像とトリガーに摂動を加えた様子
(出典:STRIP: A Defence Against Trojan Attacks on Deep Neural Networks, arXiv.org

上段の正常な入力画像は、4枚中3枚は摂動の影響を受けずに正しいクラスに分類(pred)されていますが、右端の入力画像は摂動の影響により「8」として誤分類されています(本来は「7」)。このように、正常な入力画像は摂動の影響により、様々なクラスに分類されることになります。

一方、下段のトリガーは摂動の影響を受けずに、全て(攻撃者が意図した)クラス「7」に分類されていることが分かります。これは摂動よりもトリガー(黒四角)にモデルが反応しているためであり、分類されるクラスに偏りが生じます。

以下の図は、MNISTから無作為に選定した1,000枚の数字画像から正常な入力画像とトリガーを作成し、これらに摂動を加えた場合の分類クラスの分布を表しています。

摂動が加えられた正常な入力画像とトリガーの分類クラスの分布
(出典:STRIP: A Defence Against Trojan Attacks on Deep Neural Networks, arXiv.org

上段は正常な入力画像(左から7、0、3)の結果、下段はトリガー(左から7、0、3)の結果です。正常な入力画像は摂動の影響により様々なクラスに分類されていることが分かります。対照的に、トリガーは摂動の影響を受けずに、常に(攻撃者が意図した)クラス「7」に分類されていることが分かります。

このように、摂動が加えられた入力画像が分類されるクラスの偏りを観測することで、入力画像がトリガーか否かを判定することができます。

Activation Clustering

Activation Clusteringは汚染データを検知する防御手法であり、B.Chen氏らによって提案されました。Activation Clusteringでは、学習データに含まれる正常な入力画像と汚染データが同じクラスに分類される場合でも、隠れ層の出力値が大きく異なるという観測に基づいており、各データをモデルに入力した場合の出力値をクラスタリングすることで汚染データを検知します。

以下の図は、Activation Clusteringで汚染データを検知するイメージを表しています。

Activation Clusteringで汚染データを検知するイメージ
(出典:第5回:Activation Clustering -学習データ汚染攻撃の対策-, AIディフェンス研究所

この手法では、汚染データが含まれている可能性のあるデータセット(Poisoned Training Data)をモデルに入力し、隠れ層の出力値(Activations)を取得します。特徴量とラベルが正しく紐付けられた正常データと、特徴量とラベルに乖離がある汚染データでは隠れ層の出力値に差が生じるため、これをクラスタリングで選り分けることで、汚染データを検知します。

Neural Cleanse

Neural Cleanseは(汚染データを学習して)汚染されたモデルを正常化する防御手法であり、B.Wang氏らによって提案されました。Neural Cleanseでは、モデルの誤分類を引き起こすトリガーを作成し、モデルに入力します。そして、これらのトリガーを入力した場合に活性化するノードの重みを削除することで、トリガーを無効化します。

以下の図は、Neural Cleanseを適用した場合の攻撃精度の推移を表しています。

Neural Cleanseを適用した場合の攻撃精度の推移
(出典:Neural Cleanse: Identifying and Mitigating Backdoor Attacks in Neural Networks, IEEE Security and Privacy 2019

このグラフは、左側の縦軸はモデルの分類精度(Classification Accuracy)、右側の縦軸は攻撃精度(Attack Success Rate)、横軸はノードの重みを削除する割合(Ratio of Neurons Pruned)、黒い実線は正常データの分類精度の推移、赤と青の破線は攻撃精度の推移を表しています。

グラフを見て分かるとおり、ノードの重みの削除割合が増えるにつれて攻撃精度が大幅に下がっており(90%以上から0%まで低下)、一方で正常データの分類精度は殆ど変わらないことが分かります。このように、トリガーを入力した場合に活性化するノードの重みを削除することで、モデルの分類精度を殆ど落とさずにトリガーを無効化することができます。


以上、汚染攻撃の防御手法を幾つか見てきました。

なお、防御手法を破る攻撃手法は常に生み出されていますので、一つの防御手法のみを採用するのではなく、自動運転車に搭載されている意思決定モデルの特性に合わせて、複数の防御手法を組み合わせる多層防御の観点が重要であると言えます。

おわりに

本ブログでは、自動運転車に搭載される意思決定モデルに対する汚染攻撃と防御手法を紹介しました。

意思決定モデルに対する汚染攻撃は多岐にわたり、現実的な脅威となり得る攻撃手法も存在することが分かりました。また、汚染データやトリガーのステルス性を高める手法も研究されており、開発者の目でこれらを見破ることは現実的ではありません。

また、本ブログでは代表的な防御手法をピックアップして紹介しましたが、これらの防御手法を破る研究は盛んに行われており、しばらくは攻撃側と防御側のイタチごっこが続くと思われます。よって、常に最新の攻撃手法と防御手法を追いながら、なるべく多層防御の観点で意思決定モデルを守る必要があるでしょう。

これまで5回にわたり掲載してきた「自動運転車セキュリティ入門」は本ブログで終了となります。 今後も弊社は自動運転車のセキュリティをウォッチし続けてまいりますので、有用な情報があれば本ブログで紹介する予定です。

AIセキュリティのトレーニング

弊社は株式会社ChillStackと共同で、AIの開発・提供・利用を安全に行うためのトレーニングを提供しています。

本トレーニングでは、ディープラーニング・モデルに対する様々な攻撃手法(汚染攻撃・回避攻撃など)とその対策を、ハンズオントレーニングとeラーニングを通じて理解することができます。

本トレーニングの詳細やお問い合わせにつきましては、弊社窓口、または、AIディフェンス研究所をご覧ください。

AIディフェンス研究所

最後までご覧いただき、誠にありがとうございました。

以上

R&D部

高江洲 勲

シェアする ツイートする