IoTアプリケーションにおける セキュリティ・コンプライアンスの重要性と対応方法
このホワイトペーパーでは、IoTセキュリティで有名な13のベストプラクティスと、それらをIoTアプリケーションに実装して法令遵守を確保する方法を紹介します。13のベストプラクティスには、デフォルトパスワードの運用禁止、安全な更新メカニズム、顧客に共有すべきデバイスのEnd-of-Lifeまで含めた運用ポリシーなどが網羅されます。一方、各IoT関連法は世界的に進化していますが、この13のベストプラクティスと同様の手順が含まれています。
そのため13のベストプラクティスに準じた手順が一旦実装されると、欧州規格であるEN 303 645 [1] やUSのサイバーセキュリティ改善法(NISTIR 8259) [2]で課せられる可能性のある追加要件にも適用ができるはずです。
IoT セキュリティ
ネットワーク内で個人データを共有したり、クラウドサービス上でプライベートな運用を実施したりするうえで、デバイスが信頼できるネットワークで連携しセキュリティを担保することは、最もクリティカルな要件です。またそのセキュリティの更新や管理にも安全性の担保が必要となります。IoTデバイスベンダーは、IPの価値がビジネスの価値に等しいことを認識しています。IP盗難の可能性は非常に現実的であり、実際、欧州連合EUの最新の知的財産権(IPR)の調査レポートによると、その規模は年間600億ドルにもなる可能性があると推定されています[3]。このような経済的影響に加えて、このIPの盗難は、EUだけで約30万人の雇用に影響を与える可能性があるとも報告されています。
消費者を保護するために、世界中でセキュリティ法が推進されはじめています。 たとえば、ヨーロッパに出荷される家庭用電化製品は、ヨーロッパ規格EN 303 645に準拠する必要があります。さらに、IoTデバイスは、GDPR規制におけるプライバシー法の対象となります。この規制にはユーザーの個人データを保護し、製品の提供期間中、または販売または譲渡された場合に削除できるようにするという明確な義務が含まれます。同様に、サービスの一部として提供されるすべてのデータは、コーヒーマシンへの音声コマンドのように単純なものであっても、この規制の範囲に含まれます。
GDPRは、侵害に対して明確なペナルティを提供し、最低でも2,000万ユーロのペナルティが存在し、会社が故意に滞納していることが判明した場合には、その会社の総売上高の4%にまでその額が達する可能性があります。
消費者市場向けの法令
EN 303 645および米国IoTサイバーセキュリティ法(NISTIR 8259)の整備により、セキュリティ標準に準拠するための消費者向けIoT市場への圧力が高まっています。ただし、これはコンシューマーIoT機器に限定されるものではありません。規制は、産業用IoT(Industry 4.0)のIEC 62443要件や、医療および自動車分野でも同様の要件があるなど、他の市場でも急速に進化しています。
EN 303 645と米国のサイバーセキュリティ改善法は非常に類似しており、そのルーツはIoT Security Foundationの活動にまでさかのぼります。[4]
IoT Security Foundationは、既存の「ベストプラクティス」またはセキュリティ対策のベストプラクティスを特定する必要性と、これを新たなIoTの課題にどのように適用するかを特定する必要性から生まれた業界団体です。
消費者向けIoTセキュリティの行動規範の目標は、ライフサイクル全体でIoT製品の開発、生産、および保守中に設計による安全なアプローチを実現する方法に関するガイドラインを提供することです。これらの13のプラクティスは、IoTセキュリティのベストプラクティスと広く見なされているものをまとめたものです。
Code of Practice for Consumer IoT Security – 13 Guidelines
コンシューマーIoTセキュリティの13のポイント(code of practice)
本ガイドラインとベストプラクティスは、セキュアなデバイスの起動、暗号化されたデバイスID、信頼の基点(Root Of Trust)、オペレーティングシステム、各情報の管理と暗号化から、安全なソフトウェアとソフトウェアの更新ポリシーまで、すべてを網羅しています。.
EN 303 645標準は、13のベストプラクティス要件に焦点を合わせており、特に3つの中心仕様があります。「デフォルトパスワードの運用禁止」、「脆弱性の開示」、「ソフトウェア更新の維持」がそれです。
これらのベストセキュリティプラクティスを調べてみましょう。
1. デフォルトパスワードの運用禁止
当たり前のように聞こえますが、適切に運用するには、多くのことが必要です。デフォルトのパスワードは、理想的にはデバイス自体から取得するか、デバイス自体に書き込んでおく必要があります。スマートな考えは、デバイス固有のデータに基づいて、SHA-256のようなハッシュベースのアルゴリズムを使用しパスワードを生成することです。
2. 脆弱性の開示ポリシー
簡単にいえば、これは企業の情報開示ポリシーに関連しています。セキュリティに関する管理者が責任者となり、脆弱性の伝達を行う必要があります。
3. ソフトウェアを最新の状態に保つ
組織で使用されるIoTデバイスの量が増えるにつれて、デバイスを最新の状態に保つことが課題になります。早い段階でIoTソフトウェアの更新戦略を策定するチームは、そうでないチームよりも、デバイスを管理しやすい状況になります。
更新はタイムリーであり、デバイスの機能に影響を与えないようにする必要があります。また古いファームウェアのバージョンが脆弱性を有し、それが攻撃対象となってしまう可能性がないように、ロールバックを防止する機能を適用する必要があります。ソフトウェアの更新ポリシーには、end-of-life ポリシーも含まれるため、指定された期間において、デバイスに対するアップデートをプッシュし続ける必要があります。
4. 機密データをセキュアな領域に格納
本規範においては、機密性の高い情報はサービス内およびデバイスに安全に保存しておく必要があります。セキュリティにセンシティブなデータを保護するには、MCUのデバイス固有のセキュリティ機能とメモリ管理を常に完全に有効にする必要があります。
5. セキュアな通信
IoTデバイスは、トランスポート層セキュリティ(TLS)または軽量暗号化(LWC)を使用した安全な通信方式をフォローし、また常に最新バージョンを使用する必要があります。これは、セキュリティにセンシティブなデータを転送中に暗号化し、キーを安全に管理する必要があることを意味します。
6. 攻撃対象の領域を最小限に抑える
本規範の狙いは、攻撃対象となりうる領域の露出を最小限に抑えることです。つまり、すべてのデバイスとサービスは「最小特権の原則(POLP)」で動作させる必要があります。これは最も重要な原則の1つであり、ハッカーがIoTデバイスを悪用するために使用する入り口となってしまうような、ソフトウェアの欠陥やコードの脆弱性も関連します。
コードの品質は、設計によって実施する必要があります。品質を担保するために利用可能な規格はたくさんありますが、特にCERT C コーディング規格 [6] は、カーネギーメロン大学のソフトウェアエンジニアリング研究所によって開発および所有されており、Cプログラミング言語でのセキュアなコーディングのルールを提供します。
これらのルールと推奨事項の目標は、たとえば、未定義のプログラムの動作や悪用可能な脆弱性につながる可能性のある未定義の動作を排除することにより、信頼性を高め、セキュアなIoTシステムを開発することが可能にすることです。
一般的なセキュリティ脆弱性のほとんどは既知です。また幸いなことに、脆弱性につながるような悪いコーディング作法は、mitre.orgがまとめている Common Weakness Enumeration (CWE) [7]などのコーディング標準で対処されており、データインジェクション、nullポインターの悪用、文字列解析エラーなどの追加の懸念事項を指摘してくれています。MISRA C [8]およびMISRAC ++は、セキュリティの脆弱性がコードに含まれるのを防ぐために、安全で信頼性の高いコーディング手法も促進しています。高品質の静的解析ツールには、CWE、MISRA、およびCERT Cのチェックが含まれているため、コードの品質を毎日実施することが可能です。
7. ソフトウェアの完全性を保証
これはIoTデバイス上のソフトウェアは、安全なブートシーケンスを使用してソフトウェア検証する必要があることを意味しています。不正な変更が検出された場合、デバイスはユーザーへ警告し、ソフトウェアが検証され、保護されていることを確認する必要があります。
IoTデバイスの完全性を確保するには、セキュアな起動手順が重要です。セキュアブートは、信頼の基点(Root Of Trust)としてよく扱われます。信頼の基点(Root Of Trust)は、多くのセキュリティに関わる制御を実行するための信頼できる機能を備えておく必要があります。通常、信頼の基点(Root Of Trust)はセキュアブートローダー/マネージャーを介して実装されます。電源投下した直後の一連の動作にセキュアブートローダーの機能が含まれることで、実行するソフトウェアの完全性の検証を確実に行うことができます。
8. 個人データの保護
本ホワイトペーパーでは、個人データを管理および保護する方法については割愛します。これは、地域の基準やデータ保護法に応じて、地域ごとにわずかに変わる可能性があるためです。とはいえ、このガイドラインは非常に重要であり、企業はユーザーがいつでも情報を引き出すことができるように透明性を担保する必要があります。
9. システムの復元方法の確保
復元する機能をIoTデバイスに組み込んでおけば、もしもデバイスに脆弱性があり誰かがそれをハッキングした場合であっても必ずしもそれをシャットダウンする必要はありません。(特に心臓ペースメーカーのようなものである場合は、シャットダウンは大変なことです!)復元する機能を有することで、制限されたサービスを提供したり、少なくともユーザーにハッキングなど何か異常生じたことを伝えたりすることで、大規模な悪影響が生じないように、適切なプロセスで回復アクションをしていくことが可能になります。
10. システムテレメトリデータの監視
テレメトリは、リモートで収集された測定データです。IoTデバイスやサービスからの使用状況や測定データなどのすべてのテレメトリを監視して、セキュリティの異常を監視する必要があります。
11. 個人データの削除の有効化
IoTデバイスは所有権を変更する可能性があり、長期的には再利用または破棄されます。そのため、製品の設計者はアプリケーションに実装する際に、個人データを簡単に削除できるように構成する必要があります。このようにデータが削除できることで、例えば、所有権を譲渡することもできます。譲渡する人は、譲渡をする前にデータを削除したいのです。
12. デバイスのメンテナンス性
IoTデバイスとサポートサービスのユーザーインターフェイスは、直感的でユーザーフレンドリーであることが望ましいです。またメーカーは、可能な構成の範囲で各デバイスのセキュリティをテストすることをお勧めします。デバイスのメンテナンス性を向上させることで、セキュリティ強度が下がっていくような影響から、積極的に阻止していく必要があります。
13. 入力データの検証
最後のベスト・セキュリティプラクティスは、入力データを検証することです。この原則は、受信したデータを信頼せず、常に相互接続を検証することを示しています。信頼を確立する前に、ネットワークに接続されているデバイスを検出、識別、認証し、信頼できるソリューションとサービスの整合性を維持します。これには、データタイプ、長さ、形式、範囲、信頼性、発信元、頻度のチェックが含まれる可能性があります。なぜなら攻撃を行おうとする第3者データの検証が行われないことによる範囲外エラー、算術エラー、メモリの不整合エラーなどの潜在的な脆弱性を悪用するためです。これらの脆弱性は、ハッカーが必要なコードを実行し、IoTデバイスを不正に制御するために悪用される可能性があります。
コード解析ツールは、開発中に入力データをテストおよび検証するのに非常に役立ち、アプリケーションが現場での不正な操作から保護されます。潜在的な問題を指摘するため、該当のソースコードを調整し、IoTアプリケーションを脆弱性から保護することができます。
Security from Inceptionを実現するために
これまで説明したセキュリティに関するすべてのガイドラインとベストプラクティスに従うことは簡単な作業ではありません。安全なデバイス起動、暗号化デバイスID、信頼のルート、資格管理と暗号化を統合して組み合わせてセキュリティ基盤を実装し、ソフトウェアとトランスポート層セキュリティ(TLS)との通信を保護し、コード品質を強化することは、適切なツールを無くしては難しいでしょう。
IARシステムズが推奨する解決策の1つは、プロジェクトの開始時、つまり設計段階においてセキュリティの要件(セキュリティコンテキスト)を定義することです。Security From Inception とはゼロ段階、つまり設計段階からセキュリティを考えることを指します。IoTアプリケーションを保護するために、各ガイドラインに準拠したセキュリティコンテキストを早期に定義することで、開発者は必要なセキュリティを迅速に実装して、開発作業を削減できます。セキュリティコンテキストは、幅広いIoTアプリケーションに合わせてカスタマイズ可能にします。
セキュリティコンテキストでは、以下の要件を定義する必要があります:
-
堅牢な信頼の基点(Root Of Trust)、デバイスの認証機能
-
暗号化デバイスのIDと証明書
-
デバイスのハードウェアセキュリティの実装
-
セキュアブートローダー/マネージャーによるブート機能の拡張
-
ソフトウェアアップデート、およびその他のライフサイクル管理基準
これらのセキュリティコンテキストは、セキュリティ機能の中心となる基盤を提供し、またガイドラインで要求されているようなセキュリティ仕様を実現します。
セキュリティコンテキストを作成機能が、開発ツールに統合されると、開発プロセスにおいてガイドラインの内容が適用されていくため、プロセスが簡単になり、新しいIoT製品の開発を自然な形で容易にします。
本ホワイトペーパーのまとめ
IoT Security Foundationと英国政府によって開発された13のベストプラクティスガイドラインに基づいて作成された欧州規格であるEN 303 645は、セキュリティ法における標準的なベンチマークとして広く認識されています。この規格とガイドラインには、開発者が実装する必要のある中心となるセキュリティ要件が含まれています。
企業は、セキュリティ法に準拠するために、これらの要件を含んだ形でIoTアプリケーションを開発する必要があります。
このような法令やガイドラインの最終的な目標は、製品が設計上安全であることを保証し、人々がデジタル世界において安全に機器を利用しやすくすることです。
References
- https://www.etsi.org/deliver/etsi_en/303600_303699/303645/02.01.00_30/en_303645v020100v.pdf
- https://www.congress.gov/bill/116th-congress/house-bill/1668
- https://ec.europa.eu/commission/presscorner/detail/en/ip_20_12
- https://www.iotsecurityfoundation.org/best-practice-guidelines-downloads/
- https://www.gov.uk/government/publications/code-of-practice-for-consumer-iot-security
- https://wiki.sei.cmu.edu/confluence/display/c
- https://cwe.mitre.org/
- https://www.misra.org.uk/
IoT機器で重要なセキュリティ対策の基礎をツール面で集中解説
本ウェビナーでは、IARが参照するIoTセキュリティガイドラインおよびEmbedded Trust : セキュリティをシンプルに実現するIAR Embedded Workbenchに完全統合された拡張プラグインをご紹介します。
上のダイジェスト版ビデオをご覧いただき、より詳しくお知りになりたい場合は、以下のリンクよりお客様情報をご登録の上、録画されたウェビナー(約45分)をご覧ください。