いろんな技術に触れたい

日頃色々触れた技術を自分なりにまとめておきたいと思ってます。難しいものほどブログ書く時間がかかるのが問題・・・

バスオフ攻撃(bus-off attack)について解説します

f:id:Tokina:20180119033302p:plain

こんにちは。

どうも、(バーチャル)論文読みおじさんです(適当)。

突然ですが、今回は自動車への攻撃手法の一つであるバスオフ攻撃(bus-off attack)についての解説をします。


といっても、バスオフ攻撃を初めて発表した論文についてまとめたので、そちらのスライドとその補足といった形になります。

この論文についてまとめている人がいないようでしたので、もしかしたら誰かの参考になると期待して・・・



早速ですが、バスオフ攻撃についてまとめたスライドを貼っておきます。


バスオフ攻撃の論文について / Where does it available?

バスオフ攻撃についての論文ですが、(ACM) CCSというセキュリティに関するカンファレンスの2016年にて発表されたError handling of in-vehicle networks makes them vulnerableがそれになります。


下記リンクのAgendaより参照できます。
ACM CCS 2016 | ACM CCS 2016 Website

Cho, Kyong-Tak, and Kang G. Shin, "Error handling of in-vehicle networks makes them vulnerable," Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, ACM, 2016.


また、以下でその論文のPDFを入手することが可能です。
Error Handling of In-vehicle Networks Makes Them Vulnerable


アブスト / Abstract

Contemporary vehicles are getting equipped with an increasing number of Electronic Control Units (ECUs) and wireless connectivities. Although these have enhanced vehicle safety and efficiency, they are accompanied with new vulnerabilities. In this paper, we unveil a new important vulnerability applicable to several in-vehicle networks including Control Area Network (CAN), the de facto standard in-vehicle network protocol. Specifically, we propose a new type of Denial-of-Service (DoS), called the bus-off attack, which exploits the error-handling scheme of in-vehicle networks to disconnect or shut down good/uncompromised ECUs. This is an important attack that must be thwarted, since the attack, once an ECU is compromised, is easy to be mounted on safety-critical ECUs while its prevention is very difficult. In addition to the discovery of this new vulnerability, we analyze its feasibility using actual in-vehicle network traffic, and demonstrate the attack on a CAN bus prototype as well as on two real vehicles. Based on our analysis and experimental results, we also propose and evaluate a mechanism to detect and prevent the bus-off attack.

つまり、私達は新しい攻撃可能性であるバスオフ攻撃を発見したよ、実際に実験してその防御の手法を考えてみたよ、ということです。

バスオフ攻撃ってなんですか? / What's the bus-off attack on vehicle?

バスオフ攻撃を理解する前に、CAN(Controller Area Network)とそのエラー処理について理解をしなければなりません。

ここではその理解を助けるための補足のリンクを紹介しておきます。

monoist.atmarkit.co.jp


上記記事にて、バスオフについての記載があります。(以下、引用です)

送信エラーカウンタの値
•0~96:警告リミット以下の『アクティブ』。エラーカウンタ値が「96」を超えるとCANコントローラは警告(エラーフラグのセット、割り込み)を発する。
•97~127:ノードは『アクティブ』。エラーカウンタ値がこのエリアにある場合、バスは重度の障害を持っていることになる。
•128~255:ノードは『パッシブ』(ほとんどのCANコントローラはこの領域への変化についてマイコンに報告しない)。また、送信待機を行う。
•255:エラーカウンタがこの値への到達後、ノードは『バスオフ』となりバスから切り離される(バスへの送信アクセスが不可となる)。マイコンはこの領域への移行を知ることができる。


これが大事です。
ECUは通常Active Error modeにいるのですが、送信エラーカウンタ(TEC)が127を超えるとPassive Error modeになります。
さらにエラーカウンタが255を超えるとバスオフ状態になってしまうのです。

f:id:Tokina:20180119032900p:plain
ECUの送信エラーカウンタによる状態遷移

このバスオフ状態になると、ネットワークから切断され、ECUのシャットダウンなどにつながってしまいます。

これを強制的に引き起こすのがバスオフ攻撃です。

この論文の攻撃手法 / The new method to bus-off attack


実際、このバスオフ攻撃の実現の可能性はもともと考えられていました。

この論文の”新規性”はバスオフ攻撃を実現するための新しい手法を提案していることにあります。

それはバスオフ攻撃を行う際のメッセージ衝突のタイミングです。
私のスライドの34ページ目(4.3 Tx Synchronization)からがそれに該当します。


簡単に言うと、強制的にノードのメッセージ送信をバッファさせ、アイドル状態になるのを待たせます。
バスがアイドルになると同時に攻撃者もメッセージを送信することでエラーを起こします。

これにより、攻撃対象のノードの送信エラーカウンタ(TEC)を増加させ、バスオフ状態にします。

実車での評価について / Evaluation using Actually Car

こちらの論文ではOBDポートから実際にバスオフ攻撃を行った評価まで行っています。

実車は以下の2台です。

  • 2013 Honda Accord
  • 2016 Hyundai Sonata

実車トラフィックは流れているメッセージの周期などが複雑であるため、プロトタイプほどうまくはいっていません。

しかしそれでもかなり実用性(?)のある結果となっています。



おまけ(その他バスオフ攻撃に関する論文について)

  • SCIS 2016 1E2-2

ラズベリーパイからのスタッフエラー注入によるCAN ECUへのバスオフ攻撃
◎亀岡 良太(立命館大学)、久保田 貴也(立命館大学)、汐崎 充(立命館大学)、白畑 正芳(立命館大学)、倉地 亮(名古屋大学)、藤野 毅(立命館大学)

プログラム|SCIS2017 暗号と情報セキュリティシンポジウム

  • マルチメディア,分散,協調とモバイル(DICOMO2017)シンポジウム 2017 pp. 1163-1168

特定のCANメッセージを送信するECUに対するバスオフ攻撃を利用したなりすまし攻撃
◎家平 和輝 (広島市立大学情報科学部), 井上 博之 (広島市立大学大学院情報科学研究科/CCDS), 石田 賢治 (広島市立大学大学院情報科学研究科)

DICOMO2017 プログラム





以上が自動車の攻撃手法の一つであるバスオフ攻撃についての紹介になります。

スライドが長いですが、興味のある方は目を通して見てください。

参考になれば幸いです。