市販の自動車ハッキングキットを解剖する
興味深いデバイス
最近、PlaxidityXの研究チームは、興味深いデバイスをみつけました。それは、PSPのようにスタイリッシュで持ち運べる程度のサイズの端末で、7つのボタンが便利に配置され、洗練されたデザインと謎めいた名前がついています。このデバイスのパンフレットには、OEMの承認なしに、多くの車両に対してリモートエントリーやパッシブキーエントリー用の新しいキーを登録できる機能を備えていると記載されていました。
このデバイスの本来の目的は、無認可の自動車修理店が正規のサービスステーションよりも安価にサービスを提供できるようにすることです。しかし、言うまでもなく、この説明通りのことが可能であれば、このデバイスは悪意のある者によって車両を盗むために悪用される可能性があります(コンピュータゲームのグランドセフトオート、GTAのように)。その方法は非常に単純です。
- 車両に対して物理的に侵入する
- デバイスをOBDポートに接続する
- 自分のキーを登録する
- イグニッションをオンにし、誰にも気づかれないうちに走り去る
- 盗難車を入手
当然のことですが、このデバイスを起動すると、法的責任は使用者に転嫁するという免責事項が表示されます。自動車セキュリティリサーチャーとして、このデバイスは興味深く、プロフェッショナルな理由から調査する必要がありました。
お気づきの通り、意図的にこのデバイスの名前は伏せています。というのも、このデバイスには少々後ろめたいところがあるものの、いわゆる“闇ルートを経由した”ものではなく、完全に合法的な手段で入手できたからです。実際、これはeBayで購入しました。ただし、このブログ記事の主旨が『この魔法のデバイスを使えば車の盗難が簡単にできる』という印象を与えたくないので、この情報は今後も公開しない方針です(しかも、筆者は車の盗難は簡単ではないと考えています)。オンライン上で自動車サイバーセキュリティに関するブログ記事を誰が読んでいるか分からない以上、慎重なアプローチが必要だからです。
とはいうものの、簡単な検索で同様の機能を持つ多くのデバイスが見つかります。その中には、手頃な価格で月次アップデートやカスタマーサポートを提供しているものもあります。しかし、ご心配なく。このデバイスが引き起こしそうな問題は、以下に説明する方法で容易に無効化できます。
このツールを試す
デバイスがラボに届いた際、チームは大いに盛り上がり、すぐに作業に取り掛かりました。まず初めに、そのユーザーインターフェース(UI)を詳しく調べました。予想通り、多くのOEMから提供されている多種多様な車両モデルが対応可能であることが確認できました。中にはパンフレットに記載されていなかった最新モデルも含まれており、同年に市場に投入された車両もありました(さらに多くのモデルを追加するアップデートも入手可能です)。さらに、このデバイスはキーの登録や登録解除以上の機能を備えています。一部のモデルでは、「イグニッションをオンにする」という機能まで備わっています。これらは必ずしも安価なモデルだけではありません。明らかに、イグニッションをオンにできれば、キー登録の手順を省略でき、車両の盗難がさらに容易になります。
PlaxidityXの業務が忙しいため、このデバイスを分解してファームウェアを抽出し、リバースエンジニアリングを行う(ECUに対して行うような)手間を省き、完全なブラックボックスアプローチを採用することにしました。このデバイスは車両のOBDポートに接続することを前提としているため、それをシミュレートし、デバイスと通信を試みました。リストにあるいくつかの車両モデルを適当に選び、キーの登録や登録解除、イグニッションのオン、その他の機能も含め、試してみました。
この作業を行うためには、デバイスが送信するさまざまなCANメッセージに対して、車両の応答を真似する必要がありました。多くの場合、この作業は比較的簡単でした。というのも、大半のケースで使用されていたプロトコルがUDSであり、メッセージのやり取りが各アクションにつき2~3回程度と短かったからです。ほとんどの場合、正しい応答が予測できるか、ブルートフォースの方法が通用し、目的を達成しました。(つまり、「キーが正常に登録されました」というメッセージがデバイスの画面に表示されました)。ただし、実際の車両でこのデバイスをテストしたわけではないため、これがすべて見せかけだけの動作である可能性もあります(とはいえ、このデバイスが実際に機能することを示すYouTube動画もいくつか確認しましたが)。
課題と発見
このデバイスには多くの機密情報、しかも、デバイス開発者自身のものではない機密情報が含まれています。この種のデバイスは、疑わしい動作を検出するとロックされる保護メカニズムを備えている場合が多いです。しかし、私たちはリスクを承知の上で作業を進めることにしました。そして、デバイスのメッセージに対する正しい応答を見つけるためにスキャンを実行していた際に問題が発生しました。そのスキャンでは、デバイスの「キーを登録する」ボタンを何度も押す必要がありましたが、結果としてデバイスがロックされてしまいました。新しい画面が表示され、パスワードの入力を要求されました。エスケープもできず、リセット操作を試みても解除できませんでした。
さて、次はどうするべきでしょうか? デバイスをリバースエンジニアリングして解決策を見つけることもできますが、もっと簡単な方法を試してみるのはどうでしょうか? つまり、販売者にサポートを求めてみることです。正直なところ、この方法には懐疑的でした。というのも、これは合法スレスレのデバイスであり、我々が聞いたことのないよく知らない会社によって製造されているものだからです。しかし、数時間後に販売者から返信がありました。「なぜロックされたのですか? ソフトウェアを開発していますか?」と尋ねられました。「いいえ」と私たちは答えました(ただのリサーチです)。すると、「それならOKです。こちらが解除用のパスワードです。ご不便をおかけして申し訳ありません」と販売者は答え、パスワードを教えてくれました。カスタマーサポートの対応には感心しました。星5つです。
リサーチに戻りましょう。多くの場合、キー登録プロセスは以下の2段階で構成されていました。
- 「PINコードの読み取り」機能を使用してPINコードを抽出します。この段階では通常、UDSセキュリティアクセスをパスする必要がありますが、デバイスはこれをクリアすることができました。どうやら、このデバイスは車両のセキュリティアクセス機構が提示するランダムシードに対応する正しい応答をすべて把握しているようです。
- 「キーの登録」機能を使用して新しいキーを登録します。通常、この段階では、手動でPINコードを入力するよう求められました(何らかの理由で、ユーザーの利便性を考慮して2つの段階を統合していませんでした)。さらに、車両によっては、「ドアを開ける」「キーをイグニッションボタンに置く」などの指示がデバイスから提示されました。
では、この謎のデバイスの開発者は、どのようにしてセキュリティアクセスやキー登録プロセスを突破する方法を知ったのでしょうか? 正確な方法は分かりませんが、以下のように推測されます(繰り返しますが、これは車両盗難デバイスの開発方法を指南するものではありません)。私たちの仮説では、開発者は認可されたサービスステーションから正規のOEMテスターを入手し、合法的なキー登録プロセスを記録してそれをコピーした可能性があります。これにより、一般的なプロセスについての知識を得たと考えられます。しかし、それだけではセキュリティアクセスを突破する方法についての説明がつきません。
確かに、一部のケースではセキュリティアクセスが非常に単純で、わずかなケースからそのアルゴリズム全体を推測することができました。しかし、他のケースではより複雑なものも見られました。一つの可能性として、開発者がすべての可能なシードをテスターに送り、その応答を記録したという方法が考えられます(シードの長さが十分に短ければこれは可能であり、実際多くの場合あてはまりました)。しかし、この方法では大量のストレージスペースが必要となり、実現可能性は低くなります。より現実的な説明としては、一部の車両モデルにおいて、開発者がOEMテスターまたはキー登録に関係するECUを調査した可能性があります。この方法は手間がかかるものの、セキュリティアクセスキーの計算アルゴリズムを抽出するだけで十分である点を考えると、十分に実行可能です。例えば、毎月異なる車両をレンタルし、関連するECUを取り外し、そのファームウェアを抽出、コードを少し調査してキー登録のPoCを開発した後、すべてを元通りに戻し、車両を返却する(もちろん燃料満タンで)というシナリオが容易に想像できます。多くの車両モデルが同じシステムを使用していることを考慮すると、1つのモデルを調査するだけで、多くの車両を開錠するための知識を得ることができます。
結論と安全対策
では、このデバイスを使って実際に車を盗むことは可能なのでしょうか? 一部のケースでは不可能でした。新しいキーを登録するには、事前にPINコードまたはその他の情報を知っている必要があったからです。しかし、多くのケースでは、実行可能であるように思われます。ただし、実際の車両でこのデバイスを使用していないため、100%確実とは言い切れません。しかし、顧客のレビューや多数のYouTube動画を見る限り、このデバイスが確かに宣伝どおりに機能するようです。OEMがこの事実を認識し、FOTAアップデートを通じて脆弱な車両モデルを修正していることを願っています。しかし、一部の車両はアップデートされないまま残り、依然としてこの方法による盗難のリスクがあります。
では、OEMはどのようにしてこのような盗難の可能性を回避できるのでしょうか? 以下は、OEMがこのデバイスを無効化するために採用できる比較的簡単な方法です。
- UDSセキュリティアクセスプロセスでより長いシードを使用し、正規のOEMテスターの通信記録からシードキーのディクショナリを作成することを不可能にします。もちろん、シードはランダムである必要があり、シードの重複が発生しないようにする必要があります。
- セキュリティアクセスアルゴリズムにHSM(ハードウェアセキュリティモジュール)に保存された秘密要素を含めることで、デバイスがセキュリティアクセスを突破することを防ぎます。一方で、正規のOEMテスターは、OEMのサーバーにアクセスしてこの情報を取得することが可能となります。当然ながら、アルゴリズムは十分に複雑である必要があり、少数のサンプルから推測されることがないようにする必要があります。
- 現在では、このような目的でセキュリティアクセスサービスを使用する必要はありません。より安全な暗号化方式(対称鍵および非対称鍵の両方)に基づいた、UDSサービス0x29やSecOCのようなより優れた方法が存在します。
- キーを登録するために必要な唯一の秘密情報として4桁のPINコードを使用するのは避けるべきです(それ自体が脆弱な仕組みです)。もしPINコードを使用する必要がある場合は、そのコードが車両から抽出されないようにしてください。正規のサービスステーションのみが、OEMのバックエンドからPINコードに安全な方法でアクセスできるようにするべきです。
- JTAGのような物理インターフェースを保護し、ファームウェアを外部フラッシュに保存しないことで、ファームウェアの抽出やリバースエンジニアリングを困難にすることができます。同じ理由から、アップデートパッケージは常に暗号化する必要があります。
これらのシンプルな対策により、無許可のデバイスによる車両盗難のリスクを軽減することが可能です。
PlaxidityXリサーチグループについて
PlaxidityXリサーチグループは、数十年にわたるサイバーセキュリティと自動車分野の専門知識を活用し、OEMやTier 1サプライヤーの数多くのペネトレーションテストや研究プロジェクトを行ってきました。その結果、OEMやTier 1サプライヤーらのサイバーセキュリティ体制を検証・強化し、UNR 155、UNR 156、ISO 21434標準への準拠をサポートしています。自動車のアーキテクチャ、プロトコル、規格に関して深い理解があり、PlaxidityXリサーチグループは、包括的な自動車サイバーセキュリティサービスを提供しています。これには、自動車向けペネトレーションテスト、TARA(脅威分析とリスク評価)、サイバーセキュリティアーキテクチャデザイン、そしてUNR 155およびISO 21434標準へのサイバーセキュリティ準拠支援が含まれます。