日本マイクロソフトは2018年5月22日から23日の2日間、都内で開発者向けカンファレンス「de:code 2018」を開催した。本稿では170を超えるセッションから、「セキュリティマニアックス ~みんなで守ろうコネクテッドカー~」の概要を紹介する。
日本マイクロソフトで長年セキュリティに従事し、現在は自動車のセキュリティに特化したWHITE MOTIONの最高経営責任者(CEO)に就任した蔵本雄一氏は、セキュリティコミュニティ界隈で著名な人物の1人に数えられる。歯に衣着せぬ軽妙な語り口と、聴講者にハッキングという現実の世界を突きつけるリアルなデモンストレーションにひかれる人は少なくない。
WHITE MOTION CEO 蔵本雄一氏
その蔵本氏がテーマに選んだのは「コネクテッドカー(常時接続自動車)」。次世代の自動車は、「Connected( 常時接続)」「Autonomous(自動運転)」「Sharing(自動車のライドシェア)「EV(電気自動車)」の頭文字を取った「CASE」が主流になると言われているが、同時に各分野でセキュリティに関する大きな懸念が残るという。情報を可視化するサイト[Information is Beautiful]のソースコード量を比較する[Million Lines of Code]によれば、Photoshop バージョン1.0でようやく10万行、最新戦闘機のF-35でも2500万行だが、自動車が供えるソフトウェアのコード量は1億行に及ぶ。
既に自動車のソフトウェアが中心のデバイスと述べても過言ではないだろう。だが、蔵本氏は「モダンコネクテッドカーやハイエンドカーと呼ばれる自動車のソースコード量は圧倒的だが、(コード量とバグ発生率は比例するため)バグが侵入する可能性は著しく高い。しかし、セキュリティ保護を施さないケースがある」と警鐘を鳴らす。
一般的な自動車に機能を組み込む際は記述したコードをチップに書き込み、ハンダ付けで組み込む。この一連の流れに対しても蔵本氏は、「ハンダ」「平文&難読化」「コード署名チェック」という落とし穴があると指摘した。例えばサイバー攻撃者がチップを搭載したボードを入手した場合は、ヒートガンでハンダを溶かし、チップを外す。そこから別のボードにチップを取り付ければ、解析はもちろん改ざんしたボードを自動車に取り付けるチャンスもあるだろう。
通常のアプリケーションやゲームのソースコードは、リバースエンジニアリングによる再利用を防ぐため、コードの暗号化や難読化を施すが一般的だ。しかし、自動車用ソフトウェアにはIT業界のそれと比べて停滞している。もちろん、PCやスマートフォンと異なり、車載するチップは熱耐性や防水・防塵といった制限があるため、単純に比較できないものの、セキュリティの観点から見ると心もとないのは事実だ。
バイナリコードの改善をチェックするコード署名は、同じくPCやスマートフォン上のアプリケーションでは標準的なセキュリティ対策に数えられる。だが、車載ソフトウェアがコード署名対策を講じない場合、コードをリバースエンジニアリング(ハードもしくはソフトウェアの動作を解析する手法)し、アセンブラベースで解析すれば、容易にコード内に埋め込んだパスワードの抜き出しや、パスワードの可否を判断するルーチンを潰すことが可能だ。蔵本氏は目の前でその手順を解説しつつ、「プログラムが分かる方なら誰でもできるので、(コード署名がない時点で)セキュリティが担保されたと思わない方がよい」と述べている。
続けて「CAS(Connected、Autonomous、Sharing)」の変遷についてセキュリティの観点から指摘した。例えば自動車単体で見ても、「サプライチェーンリスク」「物理的なハッキング」「脆弱性などを利用した攻撃」「無線通信からの侵入」「アプリからの侵入」「汚染データ/ジャミングなど」といった狙い目がある。