「つながるクルマ」が変えるモビリティの未来像
連載
» 2020年10月16日 06時00分 公開

セキュアな車載ソフトウェア開発の在り方(1):避けて通れぬ自動車のセキュリティ、ソフトウェア開発は何をすべきか (2/2)

[岡デニス健五,MONOist]
前のページへ 1|2       

人材不足ならば自動化ソリューションの活用を

 上記の3つの課題、つまりコーディング、テストおよびオープンソースソフトウェアに基づいて、自動車業界の組織がソフトウェア開発ライフサイクル中に利用でき、脆弱性を早期に特定し修正するのに役立つソリューションを簡単に紹介していこう。

 自動車業界の組織ではセキュリティの人材が限られていることが多いため、この記事では手動ソリューションより自動化ソリューションを取り上げる。図3は、これら3つの課題に対処するための関連ソリューションがV字モデルにどのようにマッピングされているかを示している。

図3:課題に対処するための関連ソリューション(クリックして拡大) 出典:シノプシス

 コーディングに関して、コードの弱点と脆弱性を特定する適切な自動ソリューションは、静的解析を使用することだ。静的解析ツール、例えば「Coverity(※6)」を使用すると、対象ソフトウェアを実行せずにソースコードのみの解析が可能だ。つまり、テストケースを定義する必要もない。これらのツールは、バッファオーバーフロー、リソースリーク、メモリ破損およびコード内の他の問題を見つけるのにも役立つ。

 さらに、安全上の目的だけでなくセキュリティ上の理由からもコーディング規約に従うことがますます一般的になっている。静的解析ツールは、開発者が対象コードをスキャンして、MISRA C/C++、AUTOSAR C++、CERT C/C++などのコーディング規約への違反の特定に役立つ。

 テストに関しては、機能的セキュリティテスト、脆弱性スキャン、ファズテスト、侵入テストなど、さまざまなアプローチがある。通常、機能セキュリティテストでは、あるセキュリティ機能の実装をテストして、正確性、堅牢性およびパフォーマンスを確認するための専用のツールが必要だ。例えば、暗号や認証機能の実装をテストするための特有なツールが該当する。

 脆弱性スキャンは、ターゲットシステムに関連する既知の脆弱性または既知の攻撃パターンの知識を使用して、ターゲットシステムの脆弱性を特定する。ファズテストツール、例えば「Defensics(※7)」は、ターゲットシステムに不正なデータを入力した上、堅牢性をテストし、未知の脆弱性を特定することを目的としたネガティブテストアプローチのツールだ。

 車載システムの場合、ファズテストはCANやCAN-FD、車載イーサネット、Wi-Fi、Bluetoothなどのさまざまな通信プロトコルの実装およびISO-TP、UDS、DoIP、gPTP、WPA3、IP、TCP、RFCOMM、A2DPなどの上位層プロトコルを対象にしている。

 機能的セキュリティテストと、脆弱性スキャン、ファズテストは一般に自動ツールを使用して実行できる。しかし、侵入テストは自動ツールを使用する場合もあるが、手動ベースのアプローチであるため、セキュリティ人材のペンテスターが「実際の攻撃者」を模倣してターゲットシステムのセキュリティ目標を攻撃する必要がある(※8)

(※7)Synopsys, “Defensicsファジングテスト”,
https://www.synopsys.com/ja-jp/software-integrity/security-testing/fuzz-testing.html
(※8)Stephanie Bayer, Thomas Enderle, Dennis Kengo Oka, Marko Wolf, “Security Crash Test ―― Practical Security Evaluations of Automotive Onboard IT Component”, Automotive Safety & Security, 2015

 オープンソースソフトウェアに関して、自動車業界の組織の目標は、サプライチェーンでソフトウェアの透明性を達成することだ。この目標達成のために、自動ソリューションのソフトウェアコンポジション解析ツール、例えば「Black Duck(※9)」を使用することができる。

 ソフトウェアコンポジション解析ツールは、対象ソフトウェアのソースコードまたはバイナリをスキャンして、対象ソフトウェアに含まれるオープンソースソフトウェアコンポーネントを特定することができる。また、この情報からSPDX(ソフトウェアパッケージデータエクスチェンジ)などの定義されている形式でSBOMを生成することができる。また、ソフトウェアコンポジション解析ツールは、NVD(national vulnerability database)などのデータベースを使用して、特定されたオープンソースソフトウェアコンポーネントに関連する既知の脆弱性をマッピングすることも可能だ。

 最後に、セキュリティに特に関連してはいないが、ライセンスコンプライアンスの観点からも重要なのは、自動車業界の組織がソフトウェアコンポジション解析ツールを使用しOSSに該当するライセンスタイプを特定して、ライセンス条項に準拠しているかを確認できることだ。

(※9)Synopsys, “Black Duckソフトウェアコンポジション解析”,
https://www.synopsys.com/ja-jp/software-integrity/security-testing/software-composition-analysis.html

まとめ

 CASEの絶え間ない進歩、ソフトウェアの増加、新しいサイバーセキュリティ規格と規制の導入などにより、サイバーセキュリティは自動車業界の要になりつつある。特に車載ソフトウェアの開発に関しては、コーディング、テスト、オープンソースソフトウェアという3つの課題事項がある。これら3つの事項に対処するために、自動車業界の組織は、静的解析ツール、ファズテストツール、ソフトウェアコンポジション解析ツールなどの自動ソリューションを効果的に使用することが有効だ。

 次回の記事では、これら3つの課題事項とソリューションをさらに詳しく解説する。

著者プロフィール

岡 デニス 健五

 日本シノプシス合同会社のソフトウェアインテグリティグループにてプリンシパルオートモーティブセキュリティストラテジストとしてセキュリティソリューション業務に従事。2006年より車載セキュリティを専門としている。

 過去にはスウェーデンでボルボの自動車セキュリティ研究を始め、リモート診断やOTA(over-the-air)アップデートを専門としていた。前職のBoschグループでは国内とグローバルの顧客対応に従事。日本とAPACのエンジニアリング及びコンサルティングマネージャーとして特に車載セキュリティの部署(ESCRYPT)の設立に協力し貢献した。

 現在、日本シノプシスでは自動車セキュリティのソリューション、主にソフトウェア開発ライフサイクルとサプライチェーンに特化したソリューションを提供しており、60以上の執筆を手掛け、世界中で講演も多数行っている。

→その他の「セキュアな車載ソフトウェア開発の在り方」はこちら

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.