EVのサイバーセキュリティ:PlaxidityXがEVerestオープンソースEV充電ファームウェアに重大な脆弱性を発見(CVE-2024-37310)

EVのサイバーセキュリティ:PlaxidityXがEVerestオープンソースEV充電ファームウェアに重大な脆弱性を発見(CVE-2024-37310)

今日の自動車はコネクテッド化、ソフトウェア重視になり、サイバーリスクにさらされています。この点は電気自動車(EV)も変わりません。しかし、EVが特にサイバー脅威にさらされやすいのは、EVがスタンドアロンではないからです。

EVは、充電ステーション、スマートグリッド、その他の車両を含む、より大きな相互接続されたエコシステムの一部です。これらのコンポーネントのひとつにセキュリティ上の欠陥があれば、他のコンポーネントも危険にさらされる可能性があります。例えば、EVと充電ステーション間の通信は、充電ステーションを改ざんする悪意ある行為者によって侵害され、車両を危険にさらす可能性があります。

このような脅威を踏まえ、プラクシディティ エックスのリサーチグループは、EVの充電プロトコルとEVと充電ステーション間の通信について徹底的な研究を行ってきました。私たちの目標は、EVや充電ステーションが充電インターフェースを介して攻撃される可能性がある既知の方法と、これまで公表されていなかった方法を探り、理解することでした。

この記事は、当社のリサーチャーが発見した、攻撃者が充電ステーションを侵害して、コントロールする恐れのあるオープンソース・フレームワークの重大な脆弱性についてまとめたものです。この脆弱性については、すでにプロジェクトの保守担当者に「責任ある開示」がされており、問題は修正されています。

新たに発見された脆弱性はEVメーカーにも関係するものです。なぜなら、これらのプロトコルは双方向通信に使用されるため、EVにも実装する必要があるためです。したがって、仮説ではありますが、この脆弱性を利用して、EV充電に関する車載ECUを侵害することができると考えることができます。

脆弱性の概要 (CVE-2024-37310)

この重大な脆弱性は、EV充電のためのフルスタック環境を構築するためのオープンソースのモジュールフレームワークであるEVerestプロジェクトで発見されました。モビリティ分野の電動化を支援するためにPIONIX GmbHによって開始されたEVerestプロジェクトは、Linux Foundation Energy(LFE)の公式プロジェクトです。この大規模なオープンソース·プロジェクトは、最終的には公共充電ステーションの標準通信スタックになることを目指しています。

私たちは、EVerest フレームワークの EvseV2G モジュールの V2G トランスポートプロトコル (V2GTP) の実装に、整数オーバーフローを発見しました。この脆弱性はヒープオーバーフローを引き起こし、攻撃者がLinuxプロセス上で任意のコードを実行することを可能にします。これにより、充電のための支払いゲートをバイパスしたり、充電ステーション(電気自動車給電装置、Electric Vehicle Supply EquipmentまたはEVSE)に保存されている秘密鍵を侵害したり、侵害されたが信頼できる充電ステーションになりすましてOCPP(Open Charge Point Protocol、充電インフラ通信プロトコル)を使用してベンダーのバックエンドと通信したりすることができます。

この脆弱性は、PlaxidityX Security AutoTesterを使ってEVerestの実装をテストしているときに発見されました。これは、V2Gを含む自動車プロトコルのセキュリティ問題や脆弱性をファジングテストで検出するために設計されたツールです。

プラクシディティ エックスはこの脆弱性をEVerest プロジェクトの保守担当者に慎重に開示し、問題はは迅速に修正され、パッチが適用されたバージョンがリリースされました。  

この脆弱性の特徴について

これまで、EVのサイバーセキュリティに関するセキュリティ研究のほとんどは、充電ステーションにアクセスするために使用される外部通信プロトコル [1](WiFi、Bluetooth、NFCなど)に注目していました。今回のケースでは、よくある通信インターフェースではなく、充電インターフェースに脆弱性があります。この脆弱性に関する私たちの研究は、EVと充電ステーション間のダイレクトな通信を分析するもので、セキュリティ·コミュニティではまだあまり注目されていない分野です。私たちが特に注目したのは、EVが充電ステーションを攻撃するためにどのように使われる可能性があるのか、またその逆もあり得るのかということです。

攻撃シナリオの例

この脆弱性を悪用するには、攻撃者は公共の充電ステーションにアクセスする必要があります。充電ステーションのソフトウェアにアクセスする最も一般的な方法は、物理的な接続です。攻撃者は、通常の充電ケーブルの一端を充電ステーションに差し込み、もう一端を(簡単な修正を加えた上で)ノートパソコンに接続されたPLCモデムに差し込み、脆弱性を悪用すれば充電ステーションを制御することが可能になります。

EVとEVSEの間のハイレベルな通信は、通常、公共の充電ステーションで行われていることに注意が必要です。このような充電ステーションは都心から離れていたり、無人であったり、十分な物理的セキュリティがないことも多いです。このようなシナリオでは、準備されたツールを持った攻撃者は、気づかれることなく充電ステーションを侵害することができるのです。

EVもこの脆弱性の危険にさらされる理由

前述の通り、今回発見された脆弱性は、充電ステーションの通信プロトコルの実装におけるエラーに関連しています。ISO 15118-2とDINSPEC-7012規格は、EVと充電ステーション間の通信を定義していますが、この規格の実装は複雑でエラーが発生しやすいのです。結局のところ、これらのエラーはバグにつながり、ひいてはセキュリティの脆弱性につながる可能性があります。

ここで重要なのは、この同じ規格が車両の電気自動車通信コントローラ(EVCC)ECUにも実装されていることです。EVでは、EVCCが充電ステーションとの通信を担当します。したがって、充電ステーションのソフトウェアで私たちが発見したのと同じ脆弱性が、実装の欠陥によりEVCC自体でも見つかる可能性があると考えるのが妥当です。

このようなシナリオでは、攻撃者がEVCC ECUのこの脆弱性を悪用してECUを侵害し、車両ネットワーク内部の足掛かりを得る可能性があります。極端な場合、攻撃者がCANバスに内部アクセスできるようになり、セーフティクリティカルな車両コンポーネントのセキュリティが脅かされる可能性があります。

EVメーカーにとって重要なこと

私たちの調査によると、他の多くの通信プロトコルと同様に、ISO 15118-2規格の実装にはプログラミングエラーやバグが発生しやすいのです。様々な特殊ケースを検討することは、各EVメーカーの責任です。一律に対応できる解決策はなく、実装を正しく行うには多くの労力が必要です。

我々が発見した脆弱性は、正しく実装することの難しさを物語っています。EVerestは、多くの開発者が関わっている巨大なオープンソース·プロジェクトですが、私たちは実装の欠陥による重大な脆弱性を特定しました。このエラーが多数の開発者の目を逃れることができたとすれば、EVメーカーが自社開発した独自の実装でも同じことが起きると考えるのが妥当でしょう。

要するに、EVメーカーは(オープンソースであろうとなかろうと)充電通信プロトコルを車両に実装する際には、その複雑さと潜在的なセキュリティリスクに留意しなければならないということです。ここでは、実装の誤りがどのような事態を招くかをみてきました。

EVセキュリティのための事前対策

プラクシディティ エックスは、大手グローバルOEMおよびTier1サプライヤーと何十もの量産プロジェクトで協力し、製品のセキュリティ体制を強化し、新しい自動車サイバーセキュリティ規制への準拠を支援した豊富な経験があります。当社のコンサルティング リサーチグループは、自動車およびECUメーカーに、自動車ペネトレーションテストTARAとサイバーセキュリティ·アーキテクチャデザインUNR 155およびISO 21434サイバーセキュリティ·コンプライアンスなどの包括的な自動車サイバーセキュリティサービスを提供しています。

EVのサイバーセキュリティについて、自動車セキュリティの専門家にご相談ください。

[1] https://www.cybersecurity-help.cz/vdb/SB2024062534

[2] https://github.com/klsecservices/Publications/blob/master/chargepoint_home_security_research.pdf