自動車の派手な技術革新の陰で、「自動車の安全性」における新たな概念がにわかに登場していたことをご存じでしょうか。「サイバーセキュリティ」です。車両制御機能のほとんどが電子化され、様々な外部デバイスと車が相互に通信する世界において、車載セキュリティ対策無しに安全な次世代のモビリティ社会を作りあげることはできません。
国連組織のWP29は、車両のサイバーセキュリティとソフトウェアアップデートについての新たなセキュリティ基準を検討し、2020年6月24日にCS/SU規則として採択しました。今年の7月からは日本でも規制が開始されています。同時にCS/SU規則への適用が求められる各メーカーには、自動車のライフサイクル全体を通して適切なセキュリティ対策が求められています。
さて、自動車のライフサイクルをサイバーセキュリティの観点から大別すると次のようになります。
本記事では自動車のライフサイクル全体を通して、それぞれのフェーズにおいてどのようなセキュリティ対策が必要なのか、その手法と重要性について解説していきます。
「車輪がついたコンピューター」などと言われるほど電子制御が進んでいる自動車ですが、コンピューターの代名詞でもあるパソコンやスマホなどとは、大きく異なる特徴があります。実は、車両を制御するソフトウェアはホストコンピューター上で集中的に処理動作が行われるのではなく、100を超える電子制御ユニット(ECU)が電気的に相互通信を行うことで調和を図り、分散的に処理を行う形で運用されているのです。あるいは、ECUの構成や種類なども車両のモデルによって異なります。
こういった特徴により、車載セキュリティには従来のサイバーセキュリティ対策よりも粒度の細かい対策が必要になります。つまり、どの車両にも適用できるようなコンピューターウィルス対策ソフトや分析ツールが存在するわけではなく、車両モデルに応じてカスタムした車載セキュリティ対策を、細かく実施していく必要があるのです。
このような背景において、開発段階における車載セキュリティ対策としては「脅威分析とリスク評価(TARA:Threat Assessment and Remediation Analysis)」という工程が極めて重要になります。流れとしては、第一に、特定のOEMや車両モデルのシステム構造を整理して守るべき情報資産や機能資産を洗い出します。第二に、洗い出した資産に対し起こり得るセキュリティ上の脅威や脆弱性やエントリーポイントなどを特定します。最後に、特定したセキュリティリスクに対しリスク評価を行い、リスクを軽減するための対策/製品開発に活かします。
TARAを一言で言い表すならば、システムに潜む脆弱性が「許容できないリスク」かどうか判断するための分析手法です。車載セキュリティの重要性は既述の通りですが、起こり得るリスク全てに対応するのは現実的ではありません。経営上限られたセキュリティリソースを効果的に配分し、効率的なセキュリティ対策を実現する事が重要になります。そういった意味でTARAは、各OEMやモデルごとの資産と脅威の分析やリスク評価を通して、「優先的に対処すべきリスク」を整理することができる、非常に優れた分析手法といえるでしょう。
自動車に限らずなにかしらのシステムを開発したならば、それが安全か否かを確かめるためにセキュリティテストを行います。もし想定したセキュリティリスクに対して有効な対策を行えていない場合は、設計段階から実装をやり直す場合もあるでしょう。
車載セキュリティシステムの開発が一段落したこの段階では、実際のハッキングを想定したシミュレーションを行うことで、作成したセキュリティモデルの有効性を検証します。アウトクリプトでは、「脆弱性スキャン」「ファジングテスト」「ペネトレーションテスト」3つのアプローチでセキュリティテストを実施します。
脆弱性スキャンではソフトウェアの「静的テスト」と「動的テスト」という、2つのアプローチで脆弱性を見つけ出します。事前に想定しうるエラーや脆弱性をリストアップしておき、そのすべてを網羅的に検証していきます。
静的テストでは、開発段階においてリーク、バッファオーバーフローなどのエラーをチェックすることで、開発の初期段階における主要な問題を洗い出します。開発期間の延長の防止などにも役立ちます。
動的テストでは、実際にプログラムを動かすことで意図したとおりにソフトウェアを構築できているかを確認します。実行環境における脆弱性と動的変数の動作をテストできるので、実際のパフォーマンスや仕様の観点からテストすることが可能です。
ファジング(fuzzing)テスト(ファズテスト)とは、ソフトウェアに意図的に攻撃を行い想定外のリスクへの対処法を見つけ出すという手法です。開発者が通常想定していない様々な種類のランダムなデータを入力し、その反応をテストすることができます。
前述の脆弱性スキャンでは事前に見つけ出したい脆弱性を定義するのに対し、ファジングテストでは「予期しない隠れたエラーを見つけ出す」ために、とにかくランダムな値を入力します。これによりクラッシュ、メモリリーク、その他外部からの攻撃に利用できるシステム上の欠陥がないかを調べます。特に、プログラムによって自動化されたハッキング手法などへの対策として有効です。
ペネトレーションテストとは、ハードウェア、ソフトウェア、サービスの仕組みなどを複合的に考慮し、既知のサイバー攻撃手法や脆弱性を利用して、悪意のある攻撃をシミュレーションするテストです。脆弱性診断やファジングテストなどと比較して、最も現実に則したシミュレーションと言っていいでしょう。
ペネトレーションテストの肝は「攻撃達成目標を設定する」という点にあります。脆弱性診断のように網羅的にシステム上の脆弱性や欠陥を洗い出すのではなく、例えば「特定のECUでコードを実行して操作権限を奪う」といった狭く具体的な目標を設定し、攻撃者の視点からハードウェア、ソフトウェア、サービスを観察し、既知の脆弱性を利用して攻撃をシミュレートすることで、システムの欠陥や攻撃経路を洗い出すのです。既知の脆弱性を利用することもあるため、脆弱性診断の対応範囲と一部被ることもあり得ます。
アウトクリプトでは車載セキュリティのプロフェッショナル集団であるレッドチーム(RED TEAM)によってペネトレーションテストが実施されます。最終的な実装の前にテストを実施し、すべてのエラーと脆弱性を修正することで、車両が脆弱な状態で完成・出荷されることを防ぎます。
車載セキュリティは出荷された段階で役目を終えるわけではありません。出荷された車両は消費者の手元へ渡りますが、彼らが安心安全に自動車を利用するためには、日々生まれ、あるいは進化するセキュリティ脅威に対応し続けなければなりません。
車載セキュリティには課題が山積しており、現状でできるだけのセキュリティ対策を施したとしてもハードウェア、ソフトウェアともに「万全なセキュリティ」にはなり得ません。例えば、CANなどの車載通信プロトコルには様々な欠陥が存在しており、盗聴・なりすまし・DOS攻撃に弱い、などのリスクを抱えていることが知られているため対策の必要性が叫ばれています。
生産後の段階における有効な車載セキュリティ対策としては、「車両侵入検知システム(IDS)」や「車両侵入保護システム(IPS)」が知られています。IDS/IPSはアウトクリプトでも提供しており、これらのセキュリティソリューションは外部からの不正な侵入を検知および遮断するだけでなく、CAN通信のメッセージを暗号化することでデータ改ざんを防止するなど、ECUを保護するための最善を尽くします。
その他の対策としては「ゲートウェイの設置」が有効だと考えられています。ECUの通信経路であるCANバス全体と外部ネットワークの間にゲートウェイを設置することで、プログラムや通信の異常な振る舞いについて監視します。あるいは、監視データはOEM(自動車メーカー)によって収集され、分析のために 車両SOC(Vehicle Security Operations Center)に報告されます。車両SOCはそれらのデータを分析し、脅威インテリジェンスの作成・提供することで、OEMによるセキュリティアップデートの開発・提供を支えています。
コネクテッドカー、自動運転、カーシェアリング、電動化など、自動車業界に訪れている新たなる潮流は「車両サイバーセキュリティ」という要素なしには成り立ちません。しかし、時代の流れが早すぎたために、多くのOEMには独自にセキュリティマネジメントを行うノウハウも、あるいは時間的コストを割く余裕がないというのが現状です。
自動車サイバーセキュリティ分野における高い技術力は当社の強みです。2007年に自動車サイバーセキュリティ分野に進出し、情報セキュリティ分野で培った技術力を活かしながら、10年以上に渡ってコネクテッドカー向けセキュリティソリューションの研究開発に取り組んできました。
弊社では、セキュアな社内通信とWP29への完全対応をサポートする「AutoCrypt IVS」を初めとして、セキュリティテスティングツールやコンサルティングまで、様々な自動車サイバーセキュリティのソリューションを提供しています。ご興味のある方はお気軽にお問い合わせください。