図1 ライフサイクルの各フェーズにおけるセキュリティー課題の例
図1 ライフサイクルの各フェーズにおけるセキュリティー課題の例
[画像のクリックで拡大表示]

 組み込みシステムのセキュリティーを確保するためには、情報を取り扱う各部位について、それぞれの情報資産の価値に応じた適切な対策を講じることが有効となる。そのためには、開発ライフサイクルのそれぞれのフェーズでどのようなリスクが存在し、それに対してどのような対策が有効なのかを分析することが大切だ。

 組み込みシステムのライフサイクルは、一般的には「企画」、「開発」、「運用」、「廃棄」の四つのフェーズに分けて考えられる。図1は、それぞれのフェーズにおけるおもなセキュリティー課題についてまとめた図である。

 組み込みシステムの脆弱性を狙った直接的な攻撃は運用フェーズで発生することが多いため、運用フェーズにおけるセキュリティー対策に目が向けられがちである。しかし、実際にはその他のフェーズでも対策を行うべき事項が存在するため、ライフサイクル全体に渡って総合的に対策を講じなければならない。ここからは、それぞれのフェーズ別にセキュリティー対策を実施する上でのポイントを解説していきたい。

保護すべき資産を具体的に意識して開発する

 最初に、開発フェーズにおけるセキュリティー対策を取り上げる。セキュリティー対策の第一目的は情報資産の保護にある。しかし守るべき対象が不明瞭なままでは効果的な対策を施すことはできない。従って、開発フェーズにおいて守るべき資産がどんなものなのかを分析した上で、それに対してどのような攻撃が想定され、どのような対策が有効なのかを具体的に意識することが重要となる。組み込みシステムにおいて保護すべき資産の例としては表1のようなものが挙げられる。

表1●組み込みシステムで保護すべき資産の例
資産 具体例
コンテンツ 音声、画像、動画などのマルチメディア・データ/コンテンツ利用履歴など
ユーザー情報 ユーザーの個人情報/ユーザー認証情報/利用履歴・操作履歴など
機器情報 情報家電そのものに関する情報/機器認証情報など
ソフトウエアの状態データ 各ソフトウエアに固有の状態データ(動作状態、ネットワーク利用状態など)
組み込みシステムの制御機構 各ソフトウエアに固有の設定データ(動作設定、ネットワーク設定、権限設定など)
ソフトウエアの設定データ アクチュエーターの制御機構など
設計データの内部ロジック 企画・設計フェーズで発生する仕様書・設計書などの設計情報

 では、具体的にどのような取り組みを行なえば効果的なセキュリティー対策が可能になるのだろうか。開発フェーズで考慮すべきセキュリティーへの取り組みとしては、大きく分けると次の2種類がある。

●開発現場における取り組み
●開発を取り巻く環境に対する取り組み

 前者は、設計から実装、テスト、デバッグに至るまでの一連の開発作業を担当する現場で具体的に実施すべき取り組みである。主に脆弱性が作り込まれ難い設計や、攻撃に対する対策を施した実装を行うことなどが挙げられる。

 後者はシステム開発の外部委託や、工場での生産管理、ユーザーに対策を促すためのユーザーガイドの整備などといった取り組みが挙げられる。これらに加えて、HTML5などのWeb関連技術やIPv5などの新しいプロトコルなど、次々と登場する組み込みシステムで取り組むべき新しい技術への対応を考慮した体制を整える必要もある。