自動車のセキュリティって何をすればいいんですか?いまさら聞けないクルマのあの話(5)(1/2 ページ)

自動車の通信機能やインフォテインメントシステムが充実することで、セキュリティの重要性が高まっている。さまざまな開発課題に対応するため、自動車のセキュリティに十分にリソースを割くことができていない現状もある。日本シノプシス ソフトウェアインテグリティグループ シニアソリューションアーキテクトの岡デニス健五氏に話を聞いた。

» 2019年02月27日 06時00分 公開
[齊藤由希MONOist]
日本シノプシスの岡デニス健五氏(クリックして拡大)

 自動車の通信機能やインフォテインメントシステムが充実することで、セキュリティの重要性が高まっている。大手サプライヤーはIT企業と連携を強化し、協業や共同出資会社の設立といった取り組みを推進する。しかし、さまざまな開発課題に対応するため、自動車のセキュリティに十分にリソースを割くことができていない現状もある。

 日本シノプシス ソフトウェアインテグリティグループ シニアソリューションアーキテクトの岡デニス健五氏は、「セキュリティを自動車のソフトウェア開発ライフサイクルに取り込むべきだ」と指摘する。同氏に話を聞いた。

MONOist 自動車のセキュリティには何が求められていますか。

岡氏 クルマは長期間にわたってセキュアでなければならない。自動車は長ければ10年以上使われるが、時間経過とともに組み込みソフトウェアは相対的に脆弱になる。あるソフトウェアは、リリース当初の2008年ではクリティカルでない22個の脆弱性しかなかった。しかし、アップデートなしで世の中に存在していた結果、オープンソースソフトウェアが使われていたこともあり、7年間で脆弱性が582個に増えた。それらの中には新たに見つかった74個のクリティカルな脆弱性も含んでいた。同様に、クルマも販売当初は安全でも、数年後に同じようになる可能性がある。

 長い製品ライフサイクルの間、ずっとセキュアであるにはアップデートの仕組みが簡単でなければならない。2015年夏の“ジープハッキング”※)の後、フィアットクライスラー(FCA)は脆弱性に対策するためソフトウェアアップデート用のUSBメモリをユーザーに配布したが、ほとんど誰もやらなかったのでリコールに至った。簡単にアップデートできなかったことがリコールに至った要因の1つだ。

※)関連記事:クライスラーの車載情報機器「Uconnect」に脆弱性、「不正侵入の報告ない」

 自動車とつながるバックエンドもセキュアでなければならない。車両を乗っ取る事例としては、Tesla(テスラ)の車両が2016年にブラウザからハッキングされた例がある。ローカル権限をとって、ゲートウェイ、CANバスにアクセスし、クルマの制御を乗っ取ることが可能になった。キーパッド経由のユーザーデータの傍受やCANバス攻撃などもある。

 テスラはサーバも攻撃を受けた。アプリケーションをデプロイするソフトウェア「Kubernetes」を通じて、パスワードなしでテスラが使うAWSのクラウドサービスにアクセス。さまざまなデータを不正にダウンロードしたことに加えて、クリプトマイニングに流用した。

 また、インフォテインメントを中心にソフトウェアの大規模化が進んでいる。モデルイヤーごとの開発スケジュールは厳しく、その中でセキュリティを取り入れることが負担となっている。そのため、セキュリティを取り入れるコストを下げることも課題だ。

MONOist セキュリティ対策は開発のどの段階で実施しますか。

岡氏 セキュリティは自動車開発で広く用いられているV字プロセスの全ての段階に組み込める。要件定義や設計フェーズといった開発の早い段階でリスクや脆弱性を評価していくことが重要だ。これにより、適切なセキュリティ対策を実施でき、本番リリース後にセキュリティ対策を実施するよりも高いレベルのセキュリティを実現できる。

 例えば、仕様を決める段階では、ソフトウェアにどんな要件を持たせるかを決める。自動車メーカーやサプライヤーが決めた要件を第三者のセキュリティチームにレビューしてもらうことが必要だ。アーキテクチャの設計ではインフォテインメントシステムとスマートフォンをどのようにつなげるか、バックエンドとの接続などに関してどのようなリスクや脅威があるか、分析する。

MONOist セキュリティと言えば、脆弱性を探すことが思い浮かびます。どのような方法がありますか。

岡氏 脆弱性を探す具体的な手段としては、ソフトウェアの単体試験で行う静的解析、結合試験で行うソフトウェアコンポジション解析、セキュリティ試験で行うファジングテストがある。

 それぞれの解析で探す対象は異なる。例えば、ソフトウェアの中には悪用されて脆弱性となりうる“弱点”があり、弱点の中に脆弱性が含まれている。弱点を洗い出すのは静的解析だ。脆弱性は、既知のものと未知のものに分かれており、既知の脆弱性はソフトウェアコンポジション解析で、未知の脆弱性はファジングテストで見つけ出す。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.