ブログ

組み込みシステムにおいてエンドツーエンドのセキュリティが重要な理由

August 19, 2021
Secure Code Warrior
建物とカメラを構えた人物が映り込んでいる、円形の防犯カメラのレンズのクローズアップ。

組み込みシステムは、現代のテクノロジーの多くを支えています。自動車の追従クルーズコントロールからスマート冷蔵庫のWi-Fiまで、その用途は多岐にわたります。サイバー攻撃が増加する中、これらのシステムのセキュリティ確保は極めて重要になっています。

組み込みデバイスはハッキングの主要な標的です。攻撃が成功すれば、デバイスが生成、受信、処理するデータに侵入者がアクセスできてしまうためです。これは多くの場合、その組み込みデバイスが制御するシステム全体に深刻な影響を及ぼします。例えば、F-15戦闘機内の組み込みデバイスを停止させれば、さまざまなカメラやセンサーから収集されるデータが遮断され、戦闘機の防衛能力が著しく低下する可能性があります。

本記事は、セキュアな組み込みシステムの開発を始めるために必要なすべてを網羅しています。内容は以下の通りです。

  • 組み込みセキュリティとは何か
  • 組み込みセキュリティの実装における課題
  • 「セキュア」な組み込みシステムとは
  • 組み込みエコシステムにおいてエンドツーエンドのセキュリティが重要な理由
  • 組み込みセキュリティツール
  • 一般的な組み込みソリューションに欠けているもの
  • 組み込みセキュリティの未来

組み込みセキュリティとは何か

組み込みセキュリティとは、組み込みデバイスのソフトウェアとハードウェアを保護するためのツール、プロセス、およびベストプラクティスの総称です。

組み込みシステムのハードウェアモジュールは小型であるため、メモリやストレージにさまざまな制限があります。そのため、セキュリティ対策を組み込むことは設計上の大きな課題となります。しかし、困難であっても、今まさに求められている不可欠な要素です。

組み込みデバイスで動作するガジェットや機械の多くはインターネットに接続されています。つまり、ハッカーが不正にアクセスし、悪意のあるコードを実行するリスクがあるということです。

組み込みデバイスへのハッキングは、他の接続コンポーネントに波及したり、システム全体を機能不全に陥らせたりすることがあります。例えば、自動車の自動運転を制御する組み込みデバイスが攻撃者に乗っ取られたとします。ハッカーが車を道路から逸脱させたり、交通の流れに突っ込ませたりすれば、甚大な被害をもたらす恐れがあります。

組み込みシステムにおける重要なセキュリティ課題

組み込みシステムのセキュリティは、本来受けるべき注目を集めていません。その理由は以下の通りです。

  1. 開発者の意識不足:

開発者は通常、セキュアな組み込みデバイスを開発するためのベストプラクティスを十分に把握していません。これは後述する標準化の欠如も一因ですが、組み込みアプリケーションが従来のソフトウェアアプリケーションよりもはるかに複雑であることも理由です。限られたリソースのマイクロコンピュータ環境において、セキュリティへの影響を理解し、安全かつ高性能なコードをあらゆるユースケースに対して記述することは非常に困難です。

  1. 標準化の欠如:

組み込みシステム向けのサイバーセキュリティ標準は不足しています。自動車業界では徐々に改善の動きが見られ、ここ数年でスマート車両のサイバーセキュリティに関する研究論文がいくつか発表されています。注目すべきものとして、SAE J3061「サイバーフィジカル車両システムのためのサイバーセキュリティガイドブック」や、UNECE WP.29「サイバーセキュリティおよびソフトウェアアップデートプロセスに関する規則」などが挙げられます。

  1. サードパーティ製コンポーネントの使用

多くの組み込みデバイスは、機能するためにサードパーティ製のハードウェアやソフトウェアコンポーネントを必要とします。多くの場合、これらのコンポーネントはセキュリティ上の欠陥や脆弱性のテストが行われないまま使用されています。

  1. 古いソフトウェア

古いファームウェアには、通常、バグや悪用可能な脆弱性が多く含まれています。小型の組み込みデバイスでファームウェアを定期的に更新することは特に困難な場合がありますが、決して無視できる問題ではありません。

  1. 直接的なインターネット接続

多くの組み込みシステムやデバイスは、インターネットに直接接続されています。つまり、ネットワーク攻撃を検知・防止できるエンタープライズレベルのファイアウォールの保護を受けていないということです。リソースが限られている環境では、厳格なセキュリティ対策を実装することは非常に困難です。

  1. 大規模な攻撃

組み込みデバイスは通常、大量生産されます。そのため、1つの脆弱性や欠陥が世界中で数百万台ものデバイスに影響を及ぼす可能性があります。したがって、組み込みシステムへの攻撃による影響を封じ込めることは、非常に大きな課題となります。

組み込みシステムを安全にするには?

以下のセクションでは、安全な組み込みシステムにおけるソフトウェアおよびハードウェアの特性について見ていきます。

ハードウェアセキュリティのベストプラクティス

安全な組み込みシステムには、以下の要素が必要です。

  • 信頼できる実行環境(TEE)

信頼できる実行環境(TEE)は、セキュリティ上重要な操作をハードウェアレベルで分離することを可能にします。例えば、ユーザー認証を隔離された領域で実行することで、機密情報をより確実に保護できます。

  • 適切にパーティション分割されたハードウェアリソース

プロセッサ、キャッシュ、メモリ、ネットワークインターフェースなどの異なるハードウェアコンポーネントは適切に分離し、それぞれの機能を可能な限り独立させるべきです。これにより、あるコンポーネントで発生したエラーが他のコンポーネントに波及するのを防ぐことができます。

  • 実行可能空間保護(ESP)

実行可能空間保護(ESP)とは、特定のメモリ領域を実行不可としてマークする手法です。これらのマークされた領域内でコードを実行しようとすると、例外が発生します。

ソフトウェアセキュリティのベストプラクティス

組み込みソフトウェアを構築する際は、以下のベストプラクティスを念頭に置く必要があります。

  • セキュアブートの使用:

組み込みデバイスが起動する際、ブートイメージは暗号化アルゴリズムを用いて検証されます。これにより、ブートシーケンスが正常であること、およびソフトウェア(ファームウェアやその他の関連データ)が改ざんされていないことが保証されます。

  • マイクロカーネルOSの採用

マイクロカーネルOSは従来のOSよりもはるかに軽量で、機能が最小限に抑えられています。カーネル空間は非常に小さく、ファイルシステム管理などの多くのユーザーサービスは「ユーザー空間」と呼ばれる別の領域に配置されます。カーネル空間で実行されるコードや操作が少ないため、攻撃対象領域(アタックサーフェス)が大幅に削減されます。

  • 適切にパッケージ化されたソフトウェアの使用

すべてのソフトウェアアプリケーションは、自己完結型であり、適切にパッケージ化されている必要があります。例えば、アプリケーションがサードパーティの依存関係を必要とする場合、それをオペレーティングシステム全体にインストールするのではなく、アプリケーションパッケージやコンテナの一部として含めるべきです。

  • すべての入力の検証

外部や信頼できないソースから受信したすべてのデータは、重要なソフトウェアやハードウェアコンポーネントに渡される前に、適切にサニタイズおよび検証される必要があります。

アプリケーションが外部API連携からデータを取得し、それに基づいて設定を切り替える場合、設定を変更する前に受信したデータを厳密に検証する必要があります。

  • 保存データの保護:

組み込みデバイスに保存される機密性の高いソフトウェア、データ、設定ファイル、セキュアキー、パスワードなどはすべて保護される必要があります。これには通常、暗号化が用いられます。データを暗号化するための秘密鍵は、専用のセキュリティハードウェアに格納しなければなりません。

セキュリティピラミッド:組み込みシステムにおけるエンドツーエンドのセキュリティ

セキュリティを後付けの非機能要件として扱う時代は終わりました。今日、セキュリティは本質的な要素でなければなりません。デバイスは「設計段階からのセキュリティ(Secure by Design)」を備える必要があります。そのためには、組み込み環境においてエンドツーエンドのセキュリティ要件を実装することが不可欠です。つまり、ハードウェアの選定、システムアーキテクチャの定義、システム設計、そしてもちろんコーディングの段階から、常にセキュリティを考慮する必要があります。

ハードウェアから始める

ソフトウェアのセキュリティがいかに堅牢であっても、ハードウェアに欠陥があれば攻撃に対して脆弱になります。オンチップのセキュリティ技術を活用すれば、セキュアブートの実現や、暗号化機能および秘密情報の効率的な管理が可能になります。また、一部のハードウェアコンポーネントは、システムコール異常検知、ファイルシステム暗号化、アクセス制御ポリシーといった多様なセキュリティ機能をオペレーティングシステムが提供することを可能にします。

フォールトトレラントなシステム

フォールトトレラントなシステムを構築する理由は数多くあり、差分故障解析攻撃の回避はその一つに過ぎません。このような攻撃では、攻撃者が故障注入技術を用いて組み込みデバイスにエラーを発生させようとします。しかし、こうした故障を検知し保護するための方法はいくつか存在します。

  • 最も重要な操作を複製し、常に異なる出力を比較することで、故障の注入を検知する。
  • デフォルトでの失敗:複数の条件を処理する場合(if文やswitchブロック内)、デフォルトケース、つまり他のいずれにも一致しない場合には必ず失敗するようにする。
  • ランダムな動作の導入:重要な操作の前にわずかなランダムな遅延を加えることで、タイミングを予測不可能にする。これは侵入検知において重要であり、攻撃者が動作パターンを特定したり、タイミング攻撃を行ったりすることを非常に困難にする。
  • 保護シールド:メーカーはシールドを使用して最も重要なコンポーネントを覆い、外部からの操作から保護する必要がある。
  • 異常な変動の検知:電圧、電流、その他の値の異常な変動を感知し、それに応じて例外を発生させる。

アプリケーションとオペレーティングシステムの保護

アプリケーションレベルでデバイスの防御を構築するには、以下の取り組みが必要です。

  • 定期的にアップデート可能な、実績のある信頼性の高いサードパーティ製ソフトウェアおよびハードウェアコンポーネントを選択する。
  • 組み込みシステムセキュリティに関するベストプラクティスを開発者に習得させる。
  • マイクロカーネルオペレーティングシステムを使用し、カーネル空間で実行される操作を最小限に抑える。
  • ウイルス、トロイの木馬、マルウェアなどのソフトウェア攻撃を監視し、保護する。
  • 不要なサービスはすべて削除する。ファームウェアには絶対に必要なものだけを含めるべきである。例えば、ファイル転送やパケットキャプチャが不要であれば、ファイル転送プロトコルやtelnetなどのネットワークパッケージを無効にする。
  • SFTP、IPsec、SSL、TLS、SSH、DNSSECなどのセキュアなプロトコルを使用する。

組み込みシステムセキュリティのためのツール

組み込みシステムのセキュリティ確保に役立つツールをいくつか紹介します(網羅的なリストではありません)。

  • Bus Blaster:ハードウェアデバッグポートと対話可能な高速デバッグプラットフォーム。
  • Saleae:シリアル、SPI、I2Cなどのさまざまなプロトコルをデコードします。コミュニティが作成したプロトコルアナライザーを使用することも、独自に構築することも可能です。
  • HydraBus:組み込みハードウェアのデバッグ、ハッキング、ペネトレーションテストに使用できるオープンソースのマルチツール。
  • Exploit:IoT(モノのインターネット)セキュリティテストおよびエクスプロイト用のオープンソースフレームワーク。
  • FACT (Firmware Analysis and Comparison Tool):ファームウェアのセキュリティ分析を自動化するためのフレームワーク。
  • Routersploit:組み込みデバイス向けのオープンソースエクスプロイトフレームワーク。
  • Firmadyne:Linuxベースの組み込みファームウェアのエミュレーションおよび動的分析を行うためのオープンソースシステム。

現代の組み込みセキュリティソリューションの課題とは?

組み込みソリューションのデバッグ、エクスプロイト、ペネトレーションテストのためのツールは数多く存在しますが、それらが十分に活用されているとは言えません。依然として物理的なデバイスの保護に重点が置かれており、ソフトウェア関連の攻撃に対する対策は不十分です。回避可能なはずの単純なアプリケーションセキュリティリスクや脆弱性でさえ、現代の組み込みデバイスでは依然として一般的です。

その大きな理由は、開発者の組み込みセキュリティに対する意識の低さにあります。Tripwireが実施した調査によると、IT専門家の68%が、自社の従業員は潜在的な脆弱性について十分に認識していないと考えています。

開発者は、どのセキュリティプロトコルを選択すべきか、どのフレームワークを避けるべきか、どのハードウェアコンポーネントを分離すべきか、機密データをどう扱うべきか、どの暗号化アルゴリズムが最も安全かを判断する方法を知りません。このような知識不足とベストプラクティスへの軽視が、組み込みデバイスで動作するアプリケーションを侵害のリスクにさらしています。

組み込みセキュリティの未来

組み込みセキュリティ市場では多くの取り組みが進められています。専門家は、同市場の年平均成長率(CAGR)が2021年から2026年の期間に5.5%に達する可能性があると予測しています。IoTデバイスの普及に伴い、新たな組み込みセキュリティ標準が確立されることが期待されます。

ウェアラブル医療機器の採用拡大も、信頼性の高い組み込みセキュリティソリューションへの需要を高めるでしょう。医療機器が機密データを保持・処理するためには、特定のセキュリティチェックリストを通過する必要があり、これがベンダーやエンジニアのセキュリティに対する意識向上につながることを期待しています。

将来的には、組み込みデバイスの主要なソフトウェアおよびハードウェアコンポーネントをリモートで可視化、監視、制御できるソリューションが登場するかもしれません。これは、組み込みシステムセキュリティの世界において真のゲームチェンジャーとなるでしょう。

結局のところ、デジタル署名、データ暗号化、ファイアウォール、アクセス制御、操作のランダム化だけでは限界があります。真に安全なデバイスを構築するには、開発者がセキュアなコードを書くためのトレーニングを受ける必要があります。潜在的なセキュリティリスクを特定し、アプリケーション設計段階でそれらを軽減することは、システムを本質的に安全にするために非常に重要です。

Secure Code Warriorが提供できる支援

Secure Code Warriorの主力製品である学習プラットフォームには、安全なC/C++コードを書くためのトレーニングに役立つ、数多くのインタラクティブな課題、コース、評価が用意されています。プラットフォーム上のコンテンツはフレームワーク固有であり、非常に魅力的です。当社の「C/C++:Embed」コーディング課題は、MISRA C、AUTOSAR C++(MISRA C++)、およびIECから着想を得ています。

開発者はパーソナライズされた学習の旅に出ることができ、C/C++特有の脆弱性を特定し、さらに重要なこととして、それらのバグを修正する方法を学ぶことができます。このプロセスを通じて、開発者は自身の進捗状況を追跡して弱点を把握し、同僚との友好的なコーディングコンペティションを楽しむことさえ可能です。当社のソリューションが自動車・輸送業界をどのように支援しているかについて、詳しくはこちらをご覧ください。

当社のチャレンジがいかにインタラクティブで、組み込み開発に特化しているかをご確認いただけます。ぜひC/C++:Embedチャレンジを学習プラットフォームでお試しください!

タグライン

AI主導の開発をリリース前にガバナンスする

AIを活用したリスク測定、コミット時のセキュアコーディングポリシーの強制、そしてSDLC全体を通じたセキュアなデリバリーの加速を実現します。

デモを予約する
リソースライブラリ

他のブログ記事を見る

セキュアコーディング、AIガバナンス、ソフトウェアリスク管理に関する専門的なコンテンツをご覧ください。

すべて表示
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

詳細はこちら
導入事例
フィルターラベル
これはdivブロック内のテキストです。

セキュリティ文化の統一:Sageはいかにしてチャンピオンプログラムを構築したか

Sageがどのようにして柔軟かつ関係性を重視したアプローチでセキュリティを強化し、200名以上のセキュリティチャンピオンを育成して、目に見えるリスク低減を実現したのかをご紹介します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

2026年サイバーセキュリティ意識向上月間:企業防衛に不可欠なAIセキュリティの理解

主要なAI企業の多くが、安全対策が追いつくまでの間、AI開発を世界的に減速させるよう公に呼びかける事態となっています。しかし現実には、深刻なセキュリティ問題はすでに顕在化しています。AI導入に伴う金銭的コストやリスクが増大し続ける中、多くのセキュリティリーダーや経営陣は差し迫った状況に追い込まれています。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

イネーブラー8:プログラムのブランディング

セキュアコーディングプログラムを成功させるには、優れたコンテンツ以上のものが必要です。イネーブラー8では、ブランディングによって参加を「憧れのステータスを得る体験」へと変える方法を解説します。

詳細はこちら
ブログ
フィルターラベル
これはdivブロック内のテキストです。

すべての従業員が今、AIサイバーセキュリティの最前線に立っている

エンタープライズテクノロジーの状況は、手遅れになるまで誰も予測できなかったほどの速さで変化しています。私たちは今、人間が書いたコードと基本的なコパイロット支援の時代から、エージェント型開発ライフサイクル(ADLC)の時代へと正式に足を踏み入れました。自律型AIエージェントは、複数の機能にわたってかつてない効率性をもたらす一方で、全く新しい種類のセキュリティリスクや規制リスクも引き起こしています。

詳細はこちら

AIを活用した開発をリリース前にセキュアに

開発者のリスクを可視化し、ポリシーを適用することで、ソフトウェア開発ライフサイクル全体における脆弱性を未然に防ぎます。

デモを予約する
該当する項目が見つかりません。