組込みシステムのセキュリティとは?
組込みシステムのセキュリティは、企業が構築するデバイスやこれらのデバイスが生成するデータが暴露される脅威を抑えるために採用する、設計手法、実装、取り組みです。組込みデバイスのセキュリティは、ライフサイクル全体に関わる責任です。それは、最初のコードが書かれるかなり前に始まり、デバイスが攻撃者の手に落ちた場合の保護を含み、デバイスが廃棄されるまで継続します。
IDCは、2025年までに550億台以上のコネクテッドデバイスが存在すると予測しています。
すべての組込みまたはIoTプロジェクトチームのための
最初のセキュリティステップ
すべての企業は、組込みプロジェクトが承認され開始される前に、セキュリティポリシーを策定しておく必要があります。セキュリティポリシーとは、設計、テスト、納品、メンテナンス、使用終了時の廃棄など、製品とそのデータのライフサイクル全般にわたるセキュリティニーズに対応するための、文書化され合意された戦略と計画です。プロジェクトチームは、製品に影響を及ぼすセキュリティ侵害に関連するリスクを完全に理解する必要があります。さらに、個々の機器、機器間の通信、ネットワーク、データのセキュリティ要件について合意しておく必要があります。
CIAトライアドと組込み型セキュリティポリシーへの貢献
ITシステムと同様に、組込みセキュリティポリシーでも、CIAトライアドをモデルとしてポリシーを策定しています。CIAトライアドとは、不正なアクセス、使用、開示、妨害、変更、破壊からデバイスを保護するために必要な原則を定義したものです。このモデルは、開発チームがプロジェクトにおけるセキュリティのさまざまな側面について考えるのに役立ちます。CIAは、Confidentiality(機密性)、Integrity(完全性)、Availability(可用性)の頭文字をとったものです。
機密性
機密性の実装は、組込みシステムにおけるデータのプライバシーを保護するために使用されます。これには、転送中のデータ、保存中のデータ、デバイスに格納されているデータ、デバイスで処理中のデータ、デバイス間で受け渡しされるデータが含まれます。
完全性
完全性の実装は、組込みデバイスのデータが攻撃者によって変更または削除されていないことを保証します。これには、組込みデバイスによって生成または消費されるデータ、およびそのプログラミングデータ(オペレーティングシステム、アプリケーション、設定データなど)が含まれます。
可用性
可用性の実装は、組込みデバイスが意図された機能を実行することを保証します。つまり、攻撃者はデバイスの意図している機能の目的を変更することができません。これは、ライフタスク、クリティカルタスクやミッションクリティカルなタスクを実行するデバイスにとって最も重要なことです。
セキュリティアセスメントは、プロジェクトのさまざまな資産に対する保護を定義するための体系的なアプローチを提供します。ウインドリバープロフェッショナルサービスでは、新規プロジェクトを開始する組込み機器のお客様にセキュリティアセスメントを提供しており、これらのアセスメントにはさまざまなセキュリティ特性が含まれます。
- ウインドリバーは、ソフトウェアの構築、テスト、リリースに、継続的インテグレーションとDevOpsのための業界のベストプラクティスを使用しています。
- ウインドリバーは、Linuxのベンダーで唯一、OpenChainを使用してコンプライアンスを認証しています。OpenChainは、企業のディストリビューションで使用されているオープンソースライセンスのコンプライアンスを認証・検証するツールです。これは、監査の際に、サプライチェーンの整合性を証明することができるため重要です。
- ウインドリバーは、ソフトウェアの構築、テスト、リリースに、継続的インテグレーションとDevOpsのための業界のベストプラクティスを使用しています。
- ウインドリバーは、ISO 9001認証を取得した開発およびリリースプロセスを持つ唯一のエッジ向け Linuxです。
今日の組込みシステムのためのセキュリティ
組込みシステム、IoTデバイス、インテリジェントエッジの導入数や新しいユースケースが増えるにつれ、攻撃対象やセキュリティ侵害の可能性も増えています。小型のIoTホームサーモスタットから最も高度なシステム・オブ・システムズに至るまで、あらゆる接続デバイスには、サイバー攻撃によって悪用される可能性のある侵入口が1つ以上存在します。すでに数十億台のデバイスが接続され、今後さらに数百億台が接続されるため、デバイスを保護し、デバイスが生成するデータを保護することが不可欠です。
組込み業界では、企業がセキュリティ要件や機能に関する最新の規格を遵守し、実装していることに高い信頼性があります。ミッションクリティカルなアプリケーションやセーフティクリティカルなアプリケーションを持つ組込みシステムには、包括的でライフサイクル全体をカバーするセキュリティアーキテクチャが必要不可欠です。セキュリティ優先のポリシーがなければ、いかなるデバイスも真に安全で、ライフサイクルを通じて安全性を維持することはできません。
セキュリティライフサイクルの5つのワークフロー
-
ソフトウェア開発のためのセキュリティ
コードの開発、テスト、コンパイルが行われるソフトウェア開発インフラストラクチャでは、内部および外部の悪意ある攻撃者に機会を与えないようにするために、特別なセキュリティ保護措置が必要です。多くの組込み開発者は、複数のソースから入手したDevOpsツールやビルディングブロックを使用しています。これらのツールやビルディングブロックは、信頼できるソースからのみ提供され、ソフトウェア部品表が含まれている必要があります。開発環境のコンポーネントは、CVEやシステムのセキュリティポリシーに違反するイベントがないか、積極的に監視されるべきです。さらに、開発インフラは厳密なID管理を行い、許可された個人のみへのアクセス保護を提供する必要があります。システム内の特権的な行動には、複数の関係者の承認と実行が必要です。
安全な組込みシステムの設計は、最初の1行のコードが書かれる前から始まる、完全なライフサイクルプロセスです。
-
デバイスのセキュリティ - ハードウェアとオペレーティングシステムソフトウェア
組込み機器に使用されるソフトウェアやハードウェアには、セキュリティ機能が組み込まれていることがあります。最も一般的なハードウェアセキュリティ機能としては、セキュアブート、認証、暗号処理、乱数生成、セキュアキーストレージ、物理的改ざん監視、JTAG保護などが挙げられます。ハードウェアの機能をフルに活用するには、オペレーティングシステムソフトウェアに、基盤となるプロセッサのアーキテクチャに特化したデバイスドライバが必要です。
オペレーティングシステムソフトウェアには、セキュリティ機能が組み込まれていることもあります。VxWorks®RTOSには、セキュアブート(デジタル署名付きイメージ)、デジタル署名付きアプリケーション用のセキュアELFローダ、暗号化コンテナとフルディスク暗号化用のセキュアストレージ、カーネルハードニングなどのセキュリティ機能が組み込まれています。(完全なリストは VxWorksのデータシート を参照してください)。
Linux OSは、開発者がOSプラットフォーム構築の安全性を確保するために使用できるセキュリティパッケージも多数提供しています。商業的に提供されているYocto ProjectベースのビルドシステムであるWind River Linuxには、250以上の検証済みおよび妥当性確認済みのセキュリティパッケージが含まれています。また、Linux OSは、アンチタンパーやサイバーセキュリティの機能を提供するためにハード化することができます。
-
組込みアプリケーションとコンテナ型アプリケーションのセキュリティ
組込みアプリケーションは、組込みシステムの機能や特定のタスクを実行するために設計されたソフトウェアです。組込みアプリケーションは、組込みOSの上で実行されます。たとえ基盤となるOSが安全であっても、アプリケーションには、セキュリティテスト、セキュリティ向上のためのコードスキャンツールの使用、セキュリティ問題の常時監視と迅速な修正など、さらなるセキュリティ機能が要求されることがあります。
コンテナベースのアプリケーションは、組込みシステムで使用され始めています。これらのアプリケーションは、常にデータの処理、ログファイルの生成、ファイルのキャッシュを行っています。アプリケーションの動作が悪意のあるものでないことを保証するために、重要なセキュリティコントロールの適用が行われています。.
-
データを保護するセキュリティ
組込みシステム、IoTデバイス、インテリジェントエッジシステムは、すべてデータを処理、保存、転送します。ミッションクリティカルなアプリケーションやセーフティクリティカルなアプリケーションは、データの完全性に依存して意図した機能を実行するため、または、データの漏洩を防ぐために、組込みシステムに適切なセキュリティ機能を持たせることが必要不可欠です。つまり、データは転送中、保存中、使用中にかかわらず、完全に暗号化され保護されているのです。
-
セキュリティサービス
セキュリティは、組込みシステムにとって継続的な取り組みです。それは、設計から廃棄に至るまで、ライフサイクル全般にわたる活動です。多くの企業にとって、デバイスの全ライフサイクルに渡ってセキュリティ状態を監視・維持するには、サードパーティのエンティティを活用することが最善の方法となります。マネージドセキュリティサービスやサービスとしてのセキュリティは、リソースに制約のある企業が、脅威の検出と対応、デプロイ作業の継続的な監視と分析、攻撃防止のためのデータに基づく意思決定を行うために必要な支援を得るための現実的な選択肢として急速に普及しつつあります。
組込み型セキュリティとサイバーセキュリティの違い
組込み型セキュリティは、デバイスのコンポーネントとソフトウェアを保護するために設計されています。ハードウェア、オペレーティングシステム、アプリケーション、データを保護するための機能が含まれます。サイバーセキュリティは、ネットワークを介した攻撃からデバイスを保護するための追加のセキュリティ機能を指します。組込みシステム、IoT製品、インテリジェントエッジデバイスには、どちらのセキュリティも必要です。
組込みシステムセキュリティの規格と要件のソース
組込みセキュリティとサイバーセキュリティの両方は、さまざまな業界で信頼性の高い組込みデバイスのパフォーマンスを実現するために必要です。
国防総省 (DOD)
DoD は、デバイスセキュリティとサイバーセキュリティの両方に関するガイドラインを提供しています。
食品医薬品局 (FDA)
FDAは、医療機器メーカー向けにサイバーセキュリティのベストプラクティスを提供しています(www.fda.gov/medical-devices/digital-health-center-excellence/cybersecurity) 。接続された医療機器のFDA承認を得るためには、セキュリティ要件を満たしていることを証明する必要がある場合があります。
米国国立標準技術研究所 (NIST)
NIST は、エレクトロニクス、エネルギー、製造、輸送など、さまざまな組込み分野向けのセキュリティ標準およびガイドラインを提供しています。
連邦情報処理標準規格(FIPS)
FIPSは、暗号アルゴリズムの要件を規定した米国政府のコンピュータセキュリティ基準です。組込み業界ではFIPS 140-3が一般的です。
セキュリティ技術導入ガイド(STIG)
STIGは、特定の技術に対するサイバーセキュリティの要件で構成される構成基準です。
ウインドリバーのアプローチ
ウインドリバーは、組込みデバイスのライフサイクル全体に対応する包括的なセキュリティフレームワークを提供します。このフレームワークには、セキュリティ技術とサービスの組み合わせが含まれており、開発環境、DevOpsパイプラインビルディングブロック、組込みOSセキュリティ機能、OSおよびアプリケーションのハードニング、データ暗号化、継続的な脆弱性監視と修正などのセキュリティ機能の強化が可能になっています。
VxWorks
市場をリードするリアルタイムオペレーティングシステムには、組込みデバイスの機密性、完全性、可用性を保護するための多数のセキュリティ機能が組み込まれています。これらの機能により、お客様は商用展開の承認に必要な、目的に応じた重要な安全認証や標準を達成することができます。
ウインドリバーは、組込み機器のライフサイクル全体に対応する包括的なセキュリティを提供します。
Wind River Linux
組込みシステム向けの主要な商用LinuxビルドシステムであるWind River Linuxには、数百もの妥当性確認済みおよび検証済みのセキュリティパッケージが含まれています。Wind River Linuxは完全にサポートされており、アクティブな監視とCVEの修正が付属しています。
Wind River Helix Virtualization Platform
Wind River Helix™ Virtualization Platformは、マルチOSや重要度の異なるアプリケーションを単一のエッジコンピューティングソフトウェアプラットフォームに統合し、航空宇宙、防衛、産業、医療、自動車市場のクリティカルインフラストラクチャソリューションを簡素化し、安全性と将来性を確保します。
Wind River Simics
Wind River Simics® は、ハードウェアと複雑な電子システムのフルシステムシミュレータです。Wind River Simicsは、安全かつ制御された環境で、セキュリティの脆弱性やセキュリティ侵害シナリオをテストするために使用することができます。
ウインドリバー プロフェッショナルサービス
プロフェッショナルサービスは、組込みシステムのライフサイクル全体にセキュリティを計画・設計するための深い業界エクスペリエンスを提供します。
組込みシステムのセキュリティに関するFAQ
- 認証: このステップは、デバイスが他のデバイスに接続され、双方の身元が確認されることを想定
- 認可: 認証された対象(デバイス)がシステムリソースにアクセスし利用するための、定義された一連の権限
- アカウンティング(Accounting): 必要に応じて監査やフォレンジック分析に使用される、システム運用時のセキュリティ関連イベントの収集