本サイトは、快適にご利用いただくためにクッキー(Cookie)を使用しております。
Cookieの使用に同意いただける場合は「同意する」ボタンを押してください。
なお本サイトのCookie使用については、「個人情報保護方針」をご覧ください。

最新情報

2021.05.31

自動運転車セキュリティ入門 第1回:自動運転車セキュリティの概要

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

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

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

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

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

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

連載一覧

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

  • 第1回:自動運転車セキュリティの概要
  • 第2回:センサー・カメラに対する物理的攻撃
  • 第3回:クラウド連携に対するサイバー攻撃
  • 第4回:意思決定モデルに対する敵対的攻撃 - 回避攻撃 -
  • 第5回:意思決定モデルに対する敵対的攻撃 - 汚染攻撃 -

はじめに

本ブログは第1回「自動運転車セキュリティの概要」です。
本ブログでは、自動運転車の概要や構成要素、そして、各構成要素に対する攻撃手法を解説していきます。

    なお、本ブログで解説する「攻撃手法」は概要を述べるに留め、詳細は第2回以降のブログで解説していきます。

    自動運転車とは?

    自動運転車は、人間が運転操作を行わなくとも自動で走行できる自動車です。
    ドライビング環境の認識や経路計画、そして運転操作に至るすべてを自律的に行います。

    自動運転車の試みは古くから行われており、1987年から1995年にかけて欧州で実施された「EUREKAプロメテウス計画」は、自動運転の先駆的なプロジェクトの一つです。プロジェクトの最盛期には、自立走行可能なように改造した商用車を用いて約1,600kmの走破に成功しています。このプロジェクトの成果は、後の自動運転車の開発プロジェクトの基礎となっています。

    20210531_autonomous-car-jWpfBjF.jpg約1,600kmを自律走行したメルセデス・Sクラス
    (出典:The Prometheus project: The story behind one of AV’s greatest developments, Autonomous Vehicle International

    また、2004年から2007年にかけて、国防高等研究計画局(DARPA)による「DARPA Grand Challenge」と呼ばれるロボットカー(自動運転車)のレースが全3回開催されました。このレースは、砂漠や市街地を想定したコースを自動運転車で走破し、そのタイムを競うもので、第2回のレースでは、スタンフォード大学の「Stanford Racing Team」が約212kmのコースを6時間54分で走破することに成功し、優勝を果たしています。

    20210531_autonomous-car-A4gZnYS.jpgスタンフォード大学のロボットカー
    (出典:The Drive for Autonomous Vehicles: The DARPA Grand Challenge, HeroX

    なお、このレースに参加したチームの後援企業はGoogle, キャタピラ, Intel, MobilEyeなどであり、その後、自動運転技術の開発を加速させていきました。それ以来、自動運転車の開発・改善が数多く提案されており、現在に至っています。

    現在、自動運転車は、自動化の度合いに応じて幾つかのレベルが定義されています。
    例えば、国土交通省や米国運輸省道路交通安全局(NHTSA)などは、自動化のレベルを以下のように6段階に定義しています。

    20210531_autonomous-car-CR9j69r.png自動化のレベル
    (出典:Automated Vehicles for Safety, NHTSA

    上図は、右に行くほど自動化のレベルが上がり、人間のドライバーが運転操作に関与する度合いが低くなっていくことを表しています。それでは、各レベルを詳細に見ていきましょう。

    自動化レベル
    レベル0 自動運転なし。
    ドライバーが常にすべての運転操作(加速、操舵、制動)を行います。
    レベル1 運転支援。
    ドライバーが運転操作を行いますが、システムが運転操作(加速・操舵・制動)のいずれか一つを支援します。例えば、自動でブレーキをかける、前の車に追従する、車線を維持する、などです。
    レベル2 部分的な自動運転。
    ドライバーが運転操作を行いますが、ドライビング環境に応じて、システムが複数の運転操作(加速・操舵・制動)を支援します。例えば、車線を維持しながら前の車に追従して走る、などです。ただし、ドライバーは常にドライビング環境を監視し、システムが支援する操作以外の運転操作を行います。
    レベル3 条件付き自動運転。
    特定のドライビング環境下(高速道路の走行、低速での走行など)において、システムが運転操作を行います。ただし、緊急時やシステムが対応できないドライビング環境下では、システムからの運転操作切り替え要請に応じてドライバーが運転操作を行う必要があります。
    レベル4 高度自動運転。
    特定のドライビング環境下や極限環境(雷雨、大雨、大雪、あられ、台風など、正常な運転操作に支障をきたす環境)以外において、システムがすべての運転操作を行います。しかし、自動運転の条件から外れた場合は、ドライバーが運転操作を行う必要があります。
    レベル5 完全自動運転。
    考え得るあらゆるドライビング環境下や極限環境において、システムが全ての運転操作を行います。自動車の乗員は単なる乗客となり、運転操作とドライビング環境の監視をすべてシステムに委ねます。

    現在のところ、レベル5(完全自動運転)を実現した商用の自動運転車は存在しません。
    自動運転車を開発している企業の多くは、特定のドライビング環境下において自動運転を実現する「レベル3(条件付き自動運転)」に焦点を当てています。日本においても、2020年11月、本田技研工業が開発した「Traffic Jam Pilot」と呼ばれる自動運転システムを搭載した車両(レベル3)に対し、国土交通省が型式指定を行いました

    一方、自動運転車の先進企業であるアルファベット傘下のWaymoは、現在「レベル4(高度自動運転)」の自動運転車の商用化に焦点を当てています。また、BaiduAutoXなどの中国企業も自動運転車の研究開発を進めており、既に一部の都市でレベル4相当の無人運転タクシーの運行を開始しています。

    なぜ自動運転車が必要なのか?

    このように世界各国で盛んに研究開発が行われている自動運転車ですが、そもそもなぜ自動運転車が必要なのでしょうか?
    米国運輸省道路交通安全局(NHTSA)によると、自動運転車によって4つの利益がもたらされるとしています。

    1. 安全性

      米国では毎年約3万5千人以上が自動車関連の事故で亡くなっています。重大な自動車事故の94%がヒューマンエラーによるものであり、ドライバーによる運転操作を自動運転に切り替えることで、事故の件数を減らすことができるとしています。

    2. 経済性・社会の利益

      米国において、2010年の自動車事故による経済活動の損失は2,420億ドルに上ります。また、自動車事故の影響で生活の質が低下することにより、5,940億ドルの損失も発生しています。自動運転車によって自動車事故の大部分をなくすことができれば、これらの経済損失を解消することができるとしています。

    3. 効率性・利便性

      2014年に米国人が交通渋滞に費やした時間は69億時間と推定されており、これにより仕事や家族との時間が削られ、また燃料費や自動車の排出量の増加ももたらします。自動運転車は互いに協調して交通の流れをスムーズにし、交通渋滞を解消することができます。自動運転車を導入することで、これまで運転に充てられていた時間のうち、一人あたり一日50分程度の時間を節約できるとしています。

    4. モビリティ

      自動運転車は、何百万人もの米国人に新たなモビリティの選択肢を提供できる可能性があります。現在、65歳以上の米国人は4,900万人、何らかの障害を持つ米国人は5,300万人います。米国の多くの地域では、雇用や自立した生活を送ることは、自動車を運転できるかどうかにかかっています。自動運転車があれば、このような移動の自由を何百万人もの人々に広げることができます。ある調査によると、自動運転車は約200万人の障害を持つ人々に新たな雇用の機会を創出すると言われています。

    上記は米国における利益ですが、道路交通網が高度に発達した日本においても同等もしくはそれ以上の利益をもたらすかもしれません。自動運転車の普及により、自動車事故の減少や都市部における交通渋滞の解消に加え、過疎によって公共交通が撤退あるいは縮小した地域に住む人々にモビリティの選択肢を与えることが可能になると思われます。

    自動運転車は安全なのか?

    このように多くの人々に大きな利益をもたらすと考えられている自動運転車ですが、その安全性に一抹の不安を感じる方も多いのではないでしょうか?人間のドライバーによる運転に慣れた私達にとって、システムがほとんどの運転操作を行うレベル4(高度自動運転)やレベル5(完全自動運転)は未知の世界であり、安全性に不安を持つのは当然のことかもしれません。また、時折ニュースに上がる自動運転車の事故も不安を掻き立てる一要因となっています。

    自動運転車はまだ黎明期にあり、本格的な商用化を進める前に、人々の不安を解消する上でも安全性に関する幾つかの問題を解決する必要があります。

    20210531_autonomous-car-el5ALwL.png自動運転車のアーキテクチャ
    (出典:Deep Learning-Based Autonomous Driving Systems, arXiv.org

    上図は、ディープラーニング・ベースの自動運転車のプロセス(処理の流れ)とアーキテクチャを表しています。ディープラーニングは自動運転車に広く応用されており、道路標識や路上の物体検出に留まらず、運転操作のリアルタイムな意思決定にも利用されています。このような自動運転車のプロセスを1〜4のステップで表すと以下のようになります。

    1. センサーを使用してドライビング環境のデータを取得(Sensing layer)

      GPSやカメラ、LiDARなどのセンサー類を使用し、自動運転車の位置情報や周囲の情報を生データとして取り込みます。

    2. 高精細な地図情報の作成(Cloud service)

      V2Xネットワークを通じ、複数の自動運転車のセンサー類から取得した生データを基に、高精細な地図情報(HD Map:High-Definition Map)を作成します。なお、V2Xとは「Vehicle to Everything」の略で、自動車からクラウドなどの外部システムへ接続する事を意味します。

    3. 自動運転車のドライビング環境情報の抽出(Perception layer)

      センサー類で収集した生データと、クラウドから取得したHD Mapをディープラーニング・モデルに入力し、ドライビングの環境情報(自動運転車の周囲環境の情報)を抽出します。この時、車両の位置情報の特定や、道路標識/路上の物体検出および認識、そして、認識された物体の意味付け(一時停止標識、道路を横断中の歩行者など)が行われます。

    4. 運転操作の意思決定(Decision layer)

      ディープラーニング・モデルが抽出した環境情報を基に、深層強化学習モデルによって運転操作の意思決定が行われます。

    例えば、Baidu Go Robotaxiで採用されている自動運転システム「Baidu Apollo」では、Perception layerとDecision layerに複数のディープラーニング・モデルが採用されています。また、Teslaは自動運転を実現するために、物体検出用のディープラーニング・モデルを採用しています。

    20210531_autonomous-car-zaIm8zs.pngTeslaのオートパイロット
    (出典:オートパイロットAI, テスラ ジャパン

    しかし、このようなアーキテクチャを採用したディープラーニング・ベースの自動運転車を普及させていくためには、幾つかのセキュリティ上の問題を解決する必要があります。

    まず、センサーやカメラなどのSensing layerは、自動運転車とドライビング環境とを繋ぐインタフェースの役割を果たすため、外部からの物理的攻撃に晒される危険性があります。センサー類が攻撃を受け、自動運転車に搭載されている多くのセンサーが良質な生データを収集できなくなる、または、偽のデータを収集した場合、後続のディープラーニング・モデルの性能が著しく低下してしまいます。

    また、最近の研究では、ディープラーニング・モデルは敵対的攻撃に対して脆弱であることが知られています。特に、Adversarial Examplesと呼ばれる特殊な入力データを使用した「回避攻撃」は敵対的攻撃の代表格であり、自動運転車にとって大きな脅威となります。攻撃者は、オリジナルの入力データに僅かな変化(摂動と呼ぶ)を加えたAdversarial Examplesを作成し、これをディープラーニング・モデルに入力することで、ディープラーニング・モデルの出力(予測結果)を誤らせることができます。

    20210531_autonomous-car-hNOH2rN.pngAdversarial Examplesによる誤分類の一例
    (出典:敵対的サンプル -標的型の回避攻撃-, AIディフェンス研究所

    仮に、自動運転車に対して回避攻撃が行われた場合、道路標識や路上の物体(歩行者や他の車両など)を誤認識することで、重大な自動車事故に繋がるおそれがあります。

    以下のグラフに示すように、Adversarial Examplesの研究は年々増加しています。これは自動運転車の開発において、敵対的攻撃の対策をとることの重要性を示唆しています。

    20210531_autonomous-car-vuPfczQ.pngAdversarial Examplesの研究論文数の推移
    (出典:A Complete List of All (arXiv) Adversarial Example Papers, Nicholas Carlini

    現在、商用化が加速している自動運転車ですが、前述したセキュリティ・リスクは、自動運転車の開発・商用化に大きな影響を与える可能性があります。自動運転車の安全性に対する不安を払拭できなければ、自動運転車は消費者に受け入れられないかもしれません。

    消費者の不安を払拭するためには、自動運転車が攻撃に対して脆弱か否か、どのような攻撃に晒される可能性があるのか、攻撃を受けた場合どの程度の損害が発生するか、また、これらの攻撃を防御・検知することができるか、などを把握し、問題を解決することが不可欠です。

    自動運転車の仕組み

    攻撃手法の解説に入る前に、自動運転車のアーキテクチャを改めておさらいしましょう。

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

    上図に示すように、一般的な自動運転車は「Sensing layer」「Perception layer」「Decision layer」、そして「Cloud service」で構成されています。

    Sensing layer

    Sensing layerでは、GPS/IMUやカメラ、LiDARなどのセンサー類を使用し、車両の現在位置や空間・時間データ(時系列の画像フレーム)など、ドライビング環境を把握するためのデータをリアルタイムに収集します。一例として、Baiduの自動運転車では、以下のようなセンサー類が搭載されています。

    • GPS/IMU
      GPSは車両の位置情報を取得するために使用されます。
      また、IMU(慣性計測装置)は加速度センサーやジャイロ・センサーを組み合わせたものであり、車両の方位・速度・加速度を取得するために使用されます。
    • カメラ
      カメラは車両の周辺画像(道路標識や路上の物体など)を取得するために使用されます。取得されたデータは「Perception layer」に送られ、道路標識や障害物などの認識に利用されます。
    • LiDAR
      LiDARはレーザー光の反射を利用して車両と物体間の距離や、物体の形状を正確に計測するために使用されます。なお、回転制御によってレーザー光を垂直・水平方向に照射することで、立体形状を把握することもできます。

    • レーダー/超音波センサー

      レーダーや超音波センサーは、電磁パルスや超音波によって物体を検出するために使用されます。

    このように、自動運転車には数多くのセンサーが搭載されています。
    これにより、車両の位置やドライビング環境を正確に把握できるようになります。

    Cloud service

    Cloud serviceは、自動運転車に必要なデータを保管・配信するために使用されます。
    自動運転車を提供する企業は、あらかじめLiDARなどのセンサー類から収集したデータを基に、クラウド上に高精細の「HD Map」を作成します。このHD Mapには、車線や道路標識・障害物(中央分離帯など)など、自動運転車にとって重要な情報が多く含まれます。これにより、自動運転車はHD Mapを利用することで、走行経路の計画やドライビング環境の把握を正確に行うことができます。

    20210531_autonomous-car-jOHBqqn.pngHD Mapの一例
    (出典:Baidu Apollo HD Map, UN-GGIM

    また、他の自動運転車が取得したセンサーのデータは、V2Xネットワークを通じてCloud serviceにアップロードされ、HD Mapの更新に利用されます。これにより、HD Mapは、同じ道路を走行する他の車両といった、自車両に密接に関連する情報を自動運転車に提供できるようになります。

    なお、自動運転車に搭載されるディープラーニング・モデルは、クラウド上の自動運転シミュレーション環境で学習されます。モデルの学習と検証が完了すると、Cloud serviceは自動運転車にOTAアップデートを提供し、自動運転車のソフトウェアとディープラーニング・モデルをアップグレードします。なお、OTAは「Over-the-Air」の略で、無線通信を経由してデータを送受信する事を意味します。

    Perception layer

    Perception layerではディープラーニング・モデルを使用し、Sensing layerから取得したデータやCloud serviceから取得したHD Mapを基に、運転操作の意思決定に必要な情報を抽出します。

    一般的には、Perception layerは以下に示す3つのタスクを行います。

    • Localization
      車両の現在位置を特定します。
      センサーフュージョン技術により、GPS・IMU・LiDAR・カメラなどのセンサー類とHD Mapが融合され、自動運転車の位置推定や(車両周囲の)地図の再構築が行われます。Localizationの結果は、自動運転車の走行経路の計画に使用されます。
    • Object detection and recognition
      路上や路肩の物体を検出します。
      このタスクでは、車線・道路標識・他の車両・歩行者など、形状の異なる物体をリアルタイムに、かつ、正しく検出する必要があるため、自動運転車にとって非常に重要なタスクの一つです。物体検出の代表的なディープラーニング・アルゴリズムとして、Faster R-CNNYOLOなどが挙げられます。これらのアルゴリズムは、カメラから取得した画像データを入力に取り、車や人などをほぼ同時にリアルタイムに検出することができます。

      20210531_autonomous-car-KMQzHZ9.pngYOLOv3による物体検出
      (出典:YOLOv3, Youtube

      また、LiDARのデータを入力に取り、物体を検出するディープラーニング・モデルも盛んに研究が行われており、VoxelNetが代表的なモデルです。その他にも、LiDARで取得した点群から物体を検出するディープラーニング・モデルも提案されています。

    • Semantic segmentation
      カメラから取得した画像を車両・歩行者・地面などのクラスに分割します。
      クラス分割により、車両の位置推定・物体検出・車線の把握、そして、地図の再構築などを行うことが可能となります。Semantic segmentationの代表的なアルゴリズムとして、Fully Convolutional Network(FCN)PSPNetなどが挙げられます。
      以下の図は、FCNとPSPNetでクラス分割した様子を表しています。
      一枚の画像を、家・林・空、ベッド・枕・机というように、ほぼ正確に分割できていることが分かります。

      20210531_autonomous-car-rDBVipb.pngクラス分割の一例
      (出典:Pyramid Scene Parsing Network, arXiv.org

    このように、Perception layerでは様々なディープラーニング・モデルを使用し、車両位置の特定や物体検出、そして、物体のクラス分割などを行うことで、運転操作の意思決定に必要な情報を抽出します。

    Decision layer

    Decision layerでは、Perception layerで抽出した情報を基に、運転操作の意思決定を行います。
    Decision layerでは、主に以下に示す3つのタスクを行います。

    1. Path planning and object trajectory prediction

      効率的な走行や衝突回避のために、走行経路計画と物体の軌道予測を行います。

      走行経路計画は、自動運転車の出発地から目的地までの効率的な走行経路を決定するタスクです。
      このタスクを実現するために、様々な取り組みが行われています。例えば、人間のドライバーによる走行を深層強化学習モデル(ディープラーニングと強化学習を組み合わせたモデル)に学習させることで、走行経路計画を人間に近づける研究が行われています。学習が上手く進んだ場合、より人間に近い走行経路を計画できるようになります。

      物体の軌道予測は、路上の障害物の検知・回避を行うタスクです。
      このタスクでは、Perception layerで抽出した情報を基に、ディープラーニング・モデルで障害物の軌道を予測する必要があります。このタスクを実現するために、様々な取り組みが行われています。例えば、時系列データを学習できるディープラーニング・モデル「Social GAN」が提案されています。

      以下の図は、Social GANで歩行者の軌道を予測した実験結果を表しています。

      破線が実際の軌道、実線がモデルが予測した軌道であり、別々の人が歩道上で交差する場合や、複数人の歩行者がすれ違う場合など、複数のシナリオで複数回検証を行っています。なお、図中の「SLOW」「FAST」は歩行者が衝突を避けるために歩みを加減速させたことを意味しており、「DIR」は同じく歩く方向を変えたことを意味しています。「BEST」は実際の軌道と予測が殆ど一致した検証例を意味しています。この検証結果から、ある程度正確に歩行者の軌道を予測できていることが分かります。

    2. Vehicle control via deep reinforcement learning

      自動運転車の最適な運転操作を行います。

      従来のルールベースのアルゴリズムでは、無数の状況が存在する複雑な運転シナリオをすべてカバーすることはほぼ不可能です。この課題を解決するために、様々な状況下において最適な行動をとるようにエージェントを学習させる「深層強化学習」が注目されています。

      例えば、人間のドライバーによる走行で収集された2Dおよび3Dデータを学習することで走行経路を計画する、逆強化学習モデルの研究が行われています。その他にも、元々はクラッシックゲームを自律的にプレイすることを目的に開発された「Deep Q-Network(DQN)」を、自動運転車の操舵制御に応用した深層強化学習モデルも提案されています。


      DQNによるゲーム操作の学習
      (出典:Deep Q network learning to play Breakout, Youtube

    3. End-to-End driving

      センサー類で取得した情報に基づいて、現在の走行速度や操舵角を予測します。

      End-to-End drivingは、Perception layerとDecision layerを組み合わせたディープラーニング・モデルであり、NVIDIAのDAVE-2が代表的なモデルです。以下のデモ動画では、車両のフロントカメラから取得した画像をディープラーニング・モデルに入力することで、道路状況に適した操舵角を正確に予測しています。


      DAVE-2による自動走行
      (出典:Dave-2 A Neural Network Drives A Car, Youtube

    このように、Decision layerでは、Perception layerで抽出された情報を基に、様々なディープラーニング・モデルを使用して自動運転車の走行経路や運転操作を決定します。

    自動運転車に対する攻撃

    ここからは、自動運転車に対する具体的な攻撃手法を取り上げていきます。

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

    上図は、自動運転車の攻撃経路であり、青い四角が自動運転車の構成要素、赤い破線四角が各構成要素に対する攻撃を表しています。ほぼ全ての構成要素に攻撃経路が存在することが分かります。

    以下、構成要素ごとに攻撃手法を見ていきましょう。

    Sensing layerに対する物理的攻撃

    自動運転車とドライビング環境とを繋ぐインタフェースの役割を果たすSensing layerは、攻撃者にとっても攻撃の入り口になるため、外部からの物理的攻撃に晒される危険性が高くなります。センサー類が攻撃を受け、多くのセンサーが良質な生データを収集できなくなる、または、偽のデータを収集させられるなどした場合、後続のディープラーニング・モデルの性能が著しく低下することになります。

    Sensing layerに対する物理的攻撃は、センサーによるデータの収集を妨害する「Jamming attacks」と、センサーに偽の信号を送信する「Spoofing attacks」の2種類に分けられます。

    Jamming attack

    Jamming attackは専用のハードウェアを使用してノイズをばら撒き、センサーのデータ品質を低下させることで物体検出などのタスクを妨害します。

    上図に示すように、Jamming attackは電波妨害を引き起こすイメージが強いですが、自動運転車に搭載されているカメラやLiDARなどに対するJamming attackも数多く存在します。

    以下の図は、カメラ「MobilEye C2-270」に強い光を照射することでカメラの目を"くらませる"Jamming attackの検証例を表しています。

    カメラに周囲環境よりも強い光が照射されると、カメラの自動露出機能が正常に作動しなくなります。これにより、撮影された画像は露出過多に陥ります。上図の(a)は光を照射していない状態、(b)は光を照射した状態を表しています。また、(c)はそれぞれの状態における黒色のカラートーン分布を表しています(赤が光を照射した場合の分布、青が照射していない場合の分布)。この結果から、光を照射することで白色に対応する分布が増大していることから、撮影された画像はほとんど白くなります。当然ながら、この画像をディープラーニング・モデルに入力しても、物体の検出を正確に行うことはできなくなります。

    また、LiDAR「Velodyne VLP-16など」に対するJamming attackも実証されています。

    上図は、標的のLiDAR(Victim lidar)に対して同じ波長の強い光を照射することで、LiDARの物体検出を不能(飽和状態)にする攻撃例を表しています。攻撃者(Attacker vehicle)が照射した光が標的のLiDARの受信部に入射すると飽和状態になり、距離の測定や物体検出ができなくなります。

    なお、LiDARの受信角度は狭いため、受信部に直接攻撃用の光が入射しないこともあります。しかし、上図のように湾曲した受光ガラスを採用したLiDARにおいては、受光ガラスに強い光が斜めから入射することで、攻撃側の光源とは別の方向に偽のドット(Multiple induced fake dots)を作り出すことができます。このように、攻撃によって飽和状態や偽のドットを作り出すことで、物体検出を不能にされたり、妨害されたりします。

    Spoofing attack

    Spoofing attackは、攻撃者が偽装した信号をセンサーに注入する攻撃です。
    偽装された信号は自動運転車のドライビング環境の把握に影響を与え、その結果事故が誘発されることになります。

    以下の図は、LiDAR「ibeo LUX 3」に対するSpoofing attackの検証例を表しています。
    LiDARは、レーザー光が物体に反射して返ってくるまでの時間を計測することで物体までの距離や形状を検出しますが、この検証では、反射される信号を遅延させることで、LiDARに物体までの距離を誤って計測させることに成功しています。

    上図は、本検証の実験環境を表しています。
    この検証では、LiDAR(A)から1mの距離にトランシーバ(B)を設置しています。トランシーバには2つのパルス生成器(P1, P2)が接続されており、トランシーバがLiDARの入力信号を受け取ると、P1->P2->Bの順に信号が伝搬され、この伝搬の過程で遅延が発生します。また、パルス生成器が生成した(LiDARの受信信号に似た)信号をトランシーバ経由でLiDARに送信する仕組みになっています。

    以下が本検証の結果です。

    結果(a)に示す通り、LiDARは約50m離れた場所に(壁のような)物体が存在すると誤検出しています。また、(b)に示すように、パルス生成器で複数の偽信号を生成することで、複数の偽物体を誤検出させることにも成功しています。

    Spoofing attackは、カメラに対しても実行することができます。
    以下の図は、カメラ「Mobileye 630 PRO」に対するSpoofing attackの検証例を表しています。

    20210531_autonomous-car-zMu0Baq.pngカメラが偽の道路標識を検出した様子
    (出典:MobilBye: Attacking ADAS with Camera Spoofing, arXiv.org

    本検証では、ドローン(DJI Matrice 600)に搭載したプロジェクタを使用し、壁に偽の「時速90km速度制限標識」を投影しています。その結果、カメラに本物の道路標識として認識させることに成功しています。

    本ブログではJamming attackとSpoofing attackの一例を紹介するに留めましたが、他にも超音波センサーやIMU、GPSに対する攻撃手法も数多く提案されています。これらについては、「第2回:センサー・カメラに対する物理的攻撃」で詳しく解説していきます。

    Cloud serviceに対するサイバー攻撃

    Cloud serviceと自動運転車間では頻繁に通信が行われますが、この通信を標的とした攻撃手法が数多く提案されています。
    以下の図は、GPSナビゲーションシステム「WAZE」を標的とした攻撃検証例を表しています。

    20210531_autonomous-car-Mu2RlZy.png偽ドライバーによって偽の交通渋滞が引き起こされた様子
    (出典:Exploiting Social Navigation, arXiv.org

    本検証では、WAZEのデータ検証不備を利用し、偽のGPS情報を持つ「偽ドライバー」を大量に作り出すことで、WAZEに「偽の交通渋滞」を認識させることに成功しています。これにより、本来ならばWAZEは目的地まで3分で到着する最短ルート(a)を提案すべきところ、(偽の交通渋滞により)遠回りのルート(b)を提案しています。

    その他にも、DoS(Denial of Service)やDDoS(Distributed DoS)を行うことでV2Xネットワークを遅延させる攻撃や、Cloud serviceと自動運転車間のデータ転送チャネルを乗っ取ることで、車両にマルウェアを注入する攻撃なども提案されています。これらについては、「第3回:クラウド連携に対するサイバー攻撃」において詳しく解説していきます。

    Perception/Decision layerに対する敵対的攻撃

    Perception layerとDecision layerでは、多くのディープラーニング・モデルが採用されています。
    しかし、近年の研究により、ディープラーニング・モデルはAdversarial Examplesを使用した回避攻撃や、学習データに細工したデータを注入する汚染攻撃に対して脆弱であることが分かっています。

    回避攻撃

    以下の図は、左側のパンダ(panda)の画像に摂動を加え、特徴量をテナガザル(gibbon)に変化させたAdversarial Examplesを表しています。

    20210531_autonomous-car-Mbzw9jE.pngパンダをテナガザルに偽装したAdversarial Examples
    (出典:Attacking Machine Learning with Adversarial Examples, OpenAI

    オリジナルのパンダ画像をディープラーニング・モデルに入力すると、正しく「panda」と判定するのに対し、見た目はパンダに見える右側のAdversarial Examplesをディープラーニング・モデルに入力すると「gibbon」と誤って判定しています。このように、Adversarial Examplesを使用してディープラーニング・モデルの誤分類を誘発する攻撃を「回避攻撃(Evasion attack)」と呼びます。

    この回避攻撃を自動運転車に適用した攻撃検証例は数多く存在します。
    以下の図は、路肩に設置されたオリジナルの看板に摂動を加えることで、自動運転車の操舵角を決定するディープラーニング・モデルを攻撃する検証例を表しています。

    20210531_autonomous-car-obJEjxo.jpg路肩の看板に摂動を加えて操舵角を狂わせる攻撃「DeepBillboard」
    (出典:DeepBillboard: Systematic Physical-World Testing of Autonomous Driving Systems, arXiv.org

    本検証では、異なる位置や角度で看板が配置されている複数のシナリオを用意し、摂動を加えた看板がディープラーニング・モデルの操舵角の決定に及ぼす影響を確認しました。上図の青い線は正しい操舵角、赤い線がディープラーニング・モデルの操舵角の予測を表しています。上図の通り、攻撃によって操舵角の判断に誤りが生じており、最大で23度ずれるケースも確認されました。

    また、路上や路肩の物体検出に使用されるディープラーニング・モデル「YOLO」を攻撃する手法も提案されています。

    20210531_autonomous-car-G0uDrNy.png特殊なパッチ柄で物体検出を回避する攻撃「Adversarial Patch」
    (出典:Fooling automated surveillance cameras: adversarial patches to attack person detection, arXiv.org

    上図は、特殊なパッチ柄をプリントしたボードを使用することで、YOLOによる物体検出を回避する検証例を表しています。本来であれば、カメラに映る人間は「person」として検出されるべきところ、ボードを持った人間はいっさい検出されていないことが分かります。

    このように、Adversarial Examplesを使用することで、自動運転車に搭載されるディープラーニング・モデルを「騙す」ことができます。当然ながら、ディープラーニング・モデルの判断に誤りが生じることで、重大な事故に繋がるおそれがあります。

    本ブログでは回避攻撃の一例を紹介するに留めましたが、他にも、車両や道路標識にAdversarial Examplesのステッカーを貼ることで物体検出を誤らせる攻撃や、本物の看板とは見分けがつかない摂動を加えた看板を使用することで、操舵角を誤らせる攻撃なども提案されています。これらについては、「第4回:意思決定モデルに対する敵対的攻撃 - 回避攻撃編 -」において詳しく解説していきます。

    汚染攻撃

    敵対的攻撃には、学習データに細工したデータを注入し、これを学習させることでディープラーニング・モデルの決定境界を歪める「汚染攻撃(Poisoning attack)」と呼ばれる手法も存在します。

    以下の図は、汚染攻撃の概要を表しています。

    20210531_autonomous-car-6Q8uU7B.pngディープラーニング・モデルにバックドアを設置する「汚染攻撃」
    (出典:AIを乗っ取る攻撃 – 学習データ汚染 -, AIディフェンス研究所

    上図は、細工したデータを学習することで、入力データを分類するための決定境界(赤線)が歪められた様子を表しています。このため、本来であれば入力データ(蛙画像)を蛙(Frog)クラスに分類すべきところを、誤って船(Ship)クラスに誤分類することになります。このように、細工したデータをディープラーニング・モデルの学習データに注入することで、バックドアを設置することができます。※本ブログでは、特定の入力データをディープラーニング・モデルに誤分類させる仕組みを「バックドア」と呼称します。

    この汚染攻撃を自動運転車に適用することは可能です。
    例えば、(前述したように)ディープラーニング・モデルはクラウド上で学習が行われますが、この際に汚染攻撃を受けてバックドアが設置された場合、OTA経由で自動運転車のディープラーニング・モデルをアップデートするタイミングで、自動運転車にバックドアが設置されることになります。

    これらについては、「第5回:意思決定モデルに対する敵対的攻撃 - 汚染攻撃編 -」において詳しく解説していきます。


    ここまで、Sensing layerやCloud service、そして、Perception/Decision layerに対する攻撃手法の一例を紹介してきました。
    おそらく、自動運転車に対する攻撃手法の多さに驚かれたのではないでしょうか。攻撃による自動車事故を防ぐためには、攻撃を正確に認識し、自動運転車の開発において適切な防御機構を実装することは非常に重要であると言えるでしょう。

    なお、本ブログでは攻撃手法の概要説明に留めましたが、第2回以降のブログにて詳細な攻撃手法と防御手法を解説していきます。

    さいごに

    本ブログでは、ディープラーニング・ベースの自動運転車の概要と攻撃手法の一例を紹介しました。

    自動運転車を構成する各layerには、数多くの攻撃経路が存在することがご理解いただけたのではないでしょうか。特に、ディープラーニング・モデルに対する敵対的攻撃は、日本語の文献も少なく、歴史も浅いため、ご存知でない読者の方も多かったのではないでしょうか。

    自動運転車に関するニュースを見る限り、自動運転者の開発や成果に焦点が当てられるあまり、セキュリティの議論が置き去りになっていると感じます。車両の開発に加えてセキュリティを考慮することは「追加のコスト」と考えられがちですが、自動運転車は人命に直接関係するものであるため、走行性能に加え、セキュリティも十分に考慮されるべきと考えます。

    本ブログはこれで終了となります。
    次回以降は各layerの攻撃手法と防御手法を深堀していきます。

    次回は「第2回:センサー・カメラに対する物理的攻撃」となります。

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

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

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

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

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

    以上

    おすすめ記事