次の図は、一般的な エッジ接続 IoT ソリューションのコンポーネントの概要を示しています。 この記事では、エッジに接続された IoT ソリューションのセキュリティについて説明します。
エッジに接続された IoT ソリューションでは、セキュリティを次の 4 つの領域に分割できます。
資産のセキュリティ: オンプレミスにデプロイされている間に IoT 資産をセキュリティで保護します。
接続のセキュリティ: 資産、エッジ、クラウド サービス間で転送中のすべてのデータが機密であり、改ざんを防ぎます。
エッジ セキュリティ: データの移動時にデータをセキュリティで保護し、エッジに格納します。
クラウド セキュリティ: データの移動時にデータをセキュリティで保護し、クラウドに格納します。
Microsoft Defender for IoT と Microsoft Defender for Containers
Microsoft Defender for IoTは、IoT および運用テクノロジ (OT) デバイス、脆弱性、脅威を特定するために特別に構築された統合セキュリティ ソリューションです。 Microsoft Defender for Containers は、コンテナー化された資産 (Kubernetes クラスター、Kubernetes ノード、Kubernetes ワークロード、コンテナー レジストリ、コンテナー イメージなど) とそのアプリケーションのセキュリティをマルチクラウドおよびオンプレミス環境全体で向上、監視、および維持するのに役立つクラウドネイティブ ソリューションです。
Defender for IoT と Defender for Containers の両方で、この記事に含まれる推奨事項の一部を自動的に監視できます。 Defender for IoT と Defender for Containers は、エッジ接続されたソリューションを保護するための第一の防御線とすべきです。 詳細については、以下をご覧ください。
OT、IT、クラウドのセキュリティ境界
Azure IoT Operationsにより、組織は OT 資産と産業データ ソースをクラウドベースの管理、分析、自動化サービスに接続できます。
OT 環境を IT およびクラウド システムに接続すると、運用上の大きな利点が得られますが、従来のセキュリティ境界も変更されます。 データ、ID、管理操作、ワークロードは、従来は分離して運用された環境にまたがっている可能性があります。
Azure IoT Operations展開を設計するときは、次の原則を考慮してください。
- OT、IT、クラウドに接続された環境の間でネットワークセグメント化を適用します。 Purdue/ISA-95 セグメント化トポロジの場合は、 レイヤー化されたネットワーク 展開を使用して、隣接するレイヤーへの通信を制限します。
- ユーザー、アプリケーション、管理システムに対して最小特権アクセス制御を使用し、 セキュリティで保護された設定とマネージド ID を使用して専用 ID を構成します。
- 運用上の安全プロセスによって検証されない限り、クラウドに接続された運用データを情報として扱います。
操作エクスペリエンスとダッシュボードを介してルーティングされるデータは、監視に最適です。
- クラウド ダッシュボード、分析、または監視ビューは、安全クリティカルまたは緊急時の運用上の意思決定の唯一の権限として使用しないでください。
- OT 資産をクラウド サービスに接続する場合は、該当する業界標準、規制要件、およびサイト固有の安全ポリシーに従います。
ゼロ トラストセキュリティ原則を適用すると、これらの境界をセキュリティで保護できます。明示的に検証し、最小特権アクセスを使用し、侵害を想定します。 環境内のクラウド統合に適した運用データと制御パスを決定する責任は引き続きお客様にあります。
資産のセキュリティ
このセクションでは、産業機器、センサー、IoT ソリューションの一部であるその他のデバイスなど、資産をセキュリティで保護する方法について説明します。 資産のセキュリティは、生成および送信するデータの整合性と機密性を確保するために重要です。
Azure Key Vaultとシークレット ストア拡張機能を使用する: Azure Key Vaultを使用して、キー、パスワード、証明書、シークレットなどの資産の機密情報を格納および管理します。 Azure IoT Operationsは、クラウドのマネージド コンテナー ソリューションとしてAzure Key Vaultを使用し、Kubernetes 用の Azure Key Vault Secret Store 拡張機能を使用してクラウドからシークレットを同期し、それらを Kubernetes シークレットとしてエッジに格納します。 詳細については、Azure IoT OperationsデプロイのManage シークレットを参照してください。
セキュリティで保護された証明書管理を設定する: 資産とエッジ ランタイム環境の間のセキュリティで保護された通信を確保するには、証明書の管理が重要です。 Azure IoT Operationsには、証明書の発行、更新、取り消しなど、証明書を管理するためのツールが用意されています。 詳細については、Azure IoT Operations展開の証明書の管理に関するページを参照してください。
改ざん防止ハードウェアの選択: デバイス カバーの開口部やデバイスの一部の取り外しなど、物理的な改ざんを検出する組み込みのメカニズムを備えた資産ハードウェアを選択します。 これらの改ざんシグナルは、クラウドにアップロードされたデータ ストリームの一部にすることができ、オペレーターはこれらのイベントにアラートを送信します。
資産ファームウェアのセキュリティで保護された更新プログラムを有効にする: 資産のオンエア更新を有効にするサービスを使用します。 更新プログラムのセキュリティで保護されたパスとファームウェア バージョンの暗号化保証を使用して資産を構築し、更新中および更新後に資産をセキュリティで保護します。
資産ハードウェアを安全に展開する: 資産ハードウェアの展開は、特にパブリックスペースや教師なしロケールなどの安全でない場所で、可能な限り改ざんを防止します。 USB ポートを安全にカバーする必要がない場合など、物理的な攻撃フットプリントを最小限に抑えるために必要な機能のみを有効にします。
デバイス製造元のセキュリティと展開のベスト プラクティスに従います。デバイスの製造元がセキュリティと展開のガイダンスを提供する場合は、この記事の一般的なガイダンスと共に、そのガイダンスに従ってください。
接続のセキュリティ
このセクションでは、資産、エッジ ランタイム環境、クラウド サービス間の接続をセキュリティで保護する方法について説明します。 接続のセキュリティは、送信されるデータの整合性と機密性を確保するために重要です。
接続については Azure IoT Operations の運用環境デプロイ ガイドラインに従ってください: Azure IoT Operations を運用環境にデプロイする場合、運用環境デプロイ ガイドラインには、エンタープライズ PKI で独自の CA 発行元を使用するための詳細な構成、MQTT ブローカーの内部トラフィックの暗号化、BrokerListener の自動 TLS 証明書管理、および OPC UA サーバーへのセキュアな接続についての詳細な構成が記載されています。
トランスポート層セキュリティ (TLS) を使用して資産からの接続をセキュリティで保護する: Azure IoT Operations内のすべての通信は TLS を使用して暗号化されます。 エッジに接続されたソリューションの意図しない攻撃者への露出を最小限に抑える既定のセキュリティで保護されたエクスペリエンスを提供するために、Azure IoT Operationsは TLS サーバー証明書用の既定のルート CA と発行者と共にデプロイされます。 運用環境の展開には、独自の CA 発行者とエンタープライズ PKI ソリューションを使用します。
ネットワークの分離とセグメント化: ネットワークのセグメント化とファイアウォールを使用して、IoT Operations クラスターとエッジ デバイスを他のネットワーク リソースから分離します。 エンタープライズ ファイアウォールまたはプロキシを使用している場合は、必要なエンドポイントを許可リストに追加します。 詳細については、「 運用展開のガイドライン - ネットワーク」を参照してください。
エッジ セキュリティ
このセクションでは、エッジ プラットフォームで実行されるソフトウェアであるエッジ ランタイム環境をセキュリティで保護する方法について説明します。 このソフトウェアは、資産データを処理し、資産とクラウド サービス間の通信を管理します。 エッジ ランタイム環境のセキュリティは、処理および送信されるデータの整合性と機密性を確保するために重要です。
クラウド セキュリティ
このセクションでは、資産データを処理して格納するサービスであるクラウド サービスをセキュリティで保護する方法について説明します。 クラウド サービスのセキュリティは、データの整合性と機密性を確保するために不可欠です。
次の図は、一般的な クラウドに接続された IoT ソリューションのコンポーネントの概要を示しています。 この記事では、クラウドに接続された IoT ソリューションのセキュリティについて説明します。
クラウドに接続された IoT ソリューションでは、セキュリティを次の 3 つの領域に分割できます。
デバイスのセキュリティ: オンプレミスにデプロイされている間に IoT デバイスをセキュリティで保護します。
接続のセキュリティ: IoT デバイスと IoT クラウド サービスの間で送信されるすべてのデータが機密で改ざんされないようにします。
クラウド セキュリティ: データの移動時にデータをセキュリティで保護し、クラウドに格納します。
この記事の推奨事項は、 共有責任モデルで説明されているセキュリティ義務を満たすのに役立ちます。
Microsoft Defender for IoT
Microsoft Defender for IoTは、この記事の推奨事項の一部を自動的に監視します。 Microsoft Defender for IoTは、Azure リソースのセキュリティ状態を定期的に分析して潜在的なセキュリティの脆弱性を特定し、それらに対処する方法に関する推奨事項を提供します。 詳細については、以下をご覧ください。
デバイスのセキュリティ
このセクションでは、データを収集して送信するハードウェア コンポーネントである IoT デバイスをセキュリティで保護する方法について説明します。 デバイスのセキュリティは、生成および送信するデータの整合性と機密性を確保するために重要です。
ハードウェアの最小要件の範囲: 操作に必要な最小限の機能を含めるデバイス ハードウェアを選択します。それ以上は含められません。 たとえば、USB ポートは、ソリューション内のデバイスの操作に必要な場合にのみ含めます。 追加の機能により、デバイスが不要な攻撃ベクトルに公開される可能性があります。
改ざん防止ハードウェアの選択: デバイス カバーの開口部やデバイスの一部の取り外しなど、物理的な改ざんを検出するメカニズムが組み込まれたデバイス ハードウェアを選択します。 これらの改ざんシグナルは、クラウドにアップロードされたデータ ストリームの一部となり、オペレーターにこれらのイベントにアラートを送信できます。
セキュリティで保護されたハードウェアを選択する: 可能な場合は、セキュリティで保護された暗号化されたストレージやブート機能などのセキュリティ機能を含むデバイス ハードウェア を信頼できるプラットフォーム モジュールに基づいて選択します。 これらの機能により、デバイスの安全性が高く、IoT インフラストラクチャ全体の保護に役立ちます。
安全な更新を有効にする: IoT デバイスの無線更新には、Device Update for IoT Hub のようなサービスを使用します。 更新プログラムのセキュリティで保護されたパスを使用してデバイスを構築し、更新中と更新後にデバイスをセキュリティで保護するためのファームウェア バージョンの暗号化保証を行います。
セキュリティで保護されたソフトウェア開発手法に従う: セキュリティで保護されたソフトウェアの開発では、プロジェクトの開始時から実装、テスト、デプロイまで、セキュリティを考慮する必要があります。
Microsoft セキュリティ開発ライフサイクル は、セキュリティで保護されたソフトウェアを構築するための段階的なアプローチを提供します。
可能な限りデバイス SDK を使用する: デバイス SDK は、堅牢で安全なデバイス アプリケーションの開発に役立つ暗号化や認証などのさまざまなセキュリティ機能を実装します。 詳細については、「Azure IoT SDK」を参照してください。
オープンソースソフトウェアを慎重に選択する:オープンソースソフトウェアは、ソリューションをすばやく開発する機会を提供します。 オープン ソース ソフトウェアを選択する場合は、各オープン ソース コンポーネントのコミュニティのアクティビティ レベルを考慮してください。 アクティブなコミュニティは、ソフトウェアがサポートされ、問題が検出され、対処されることを保証します。 あいまいで非アクティブなオープンソース ソフトウェア プロジェクトはサポートされていない可能性があり、問題は検出されない可能性があります。
ハードウェアを安全に展開する: IoT デプロイでは、パブリック スペースや教師なしロケールなど、セキュリティで保護されていない場所にハードウェアを展開することが必要になる場合があります。 このような状況では、ハードウェアの展開を可能な限り改ざん防止し、物理的な攻撃フットプリントを最小限に抑えるために必要な機能のみを有効にします。
ハードウェア セキュリティ モジュール (HSM) に資格情報を格納する: HSM を使用して、秘密キーや証明書などのデバイス シークレットを安全に格納し、抽出や改ざんから保護します。 詳細については、IoT Hub X.509 認証、DPS HSM ガイダンス、および IoT Edge セキュリティ マネージャーを参照してください。
デバイス キーと証明書を定期的にローテーションする: 不正アクセスのリスクを最小限に抑えるために、特に侵害または有効期限が切れた後に資格情報を定期的にローテーションします。 詳細については、「 DPS で証明書をロールする方法」および 「IoT Central X.509 証明書管理」を参照してください。
更新プログラムとパッチ: 最新のセキュリティ パッチと更新プログラムを使用して、すべてのランタイム、SDK、OS コンポーネントを最新の状態に保ちます。 詳細については、IoT Edge更新ガイダンスを参照してください。
悪意のあるアクティビティから保護する: オペレーティング システムで許可されている場合は、各デバイス オペレーティング システムに最新のウイルス対策およびマルウェア対策機能をインストールします。
頻繁に監査する: セキュリティ インシデントに対応できるように、セキュリティの問題について IoT インフラストラクチャを監査します。 ほとんどのオペレーティング システムでは、組み込みのイベント ログが提供されます。 ログを頻繁に確認して、セキュリティ違反を確認します。 デバイスは、監査情報を個別のデータ ストリームとしてクラウド サービスに送信し、そこで分析できます。
デバイス製造元のセキュリティと展開のベスト プラクティスに従います。デバイスの製造元がセキュリティと展開のガイダンスを提供する場合は、この記事の一般的なガイダンスと共に、そのガイダンスに従ってください。
フィールド ゲートウェイを使用して、レガシ デバイスまたは制約付きデバイスのセキュリティ サービスを提供します。レガシ デバイスと制約付きデバイスでは、データの暗号化、インターネットへの接続、高度な監査の提供を行う機能が不足している可能性があります。 このような場合、最新のセキュリティで保護されたフィールド ゲートウェイは、レガシ デバイスからのデータを集計し、インターネット経由でこれらのデバイスを接続するために必要なセキュリティを提供できます。
IoT Edgeデバイスはゲートウェイとして使用できセキュリティで保護された認証、暗号化されたセッションのネゴシエーション、クラウドからのコマンドの受信、およびその他の多くのセキュリティ機能を提供します。
Azure Sphereは、信頼された接続用に設計されていない既存のレガシ システムなど、他のデバイスをセキュリティで保護するためのガーディアン モジュールとして機能できます。
保存データの暗号化: デバイスが紛失または盗難にあった場合にデータを保護するために、デバイスとエッジ ストレージに対して、Windowsに BitLocker などの OS レベルの暗号化を使用します。 詳細については、IoT Edge security を参照してください。
接続のセキュリティ
このセクションでは、IoT デバイスとクラウド サービス間の接続をセキュリティで保護する方法について説明します。 接続のセキュリティは、送信されるデータの整合性と機密性を確保するために重要です。
X.509 証明書を使用して、IoT Hub または IoT Central に対してデバイスを認証する: IoT Hub と IoT Central は、デバイス認証用の X.509 証明書をサポートしています。 X.509 ベースの認証は、対称キーよりも高いセキュリティを提供するため、運用環境で使用します。 詳細については、「デバイスを IoT Hubおよび IoT Central での Device 認証の概念を参照してください。
共有対称キーを使用しない: 対称キーを使用する場合は、デバイス間で対称キーを共有しないでください。 キーが漏洩した場合に広範囲にわたる侵害を防ぐために、各デバイスには一意の資格情報が必要です。 詳細については、 デバイスの製造元のセキュリティ プラクティスに関するページを参照してください。
トランスポート層セキュリティ (TLS) 1.2 を使用してデバイスからの接続をセキュリティで保護します: IoT Hubと IoT Central では、TLS を使用して IoT デバイスとサービスからの接続をセキュリティで保護します。 IoT Hubでは、TLS 1.0、1.1、1.2 がサポートされます。 TLS 1.0 と 1.1 はレガシであり、避ける必要があります。 詳細については、IoT HubTransport Layer Security (TLS) のサポートと>、Azure IoT Hub Device Provisioning Service (DPS) での TLS のサポートに関するページを参照してください。
強力な暗号スイートを使用し、ルート CA 証明書を最新の状態に保つ: セキュリティで保護された接続を維持するために、暗号スイートと信頼されたルート証明書を定期的に更新します。 詳細については、IoT Hub TLS のサポートを参照してください。
デバイス上の TLS ルート証明書を更新する方法があることを確認します。TLS ルート証明書は長い間持続しますが、有効期限が切れたり失効したりする可能性があります。 デバイスで証明書を更新できない場合、デバイスは後で IoT Hub、IoT Central、またはその他のクラウド サービスに接続できない可能性があります。 詳細については、「 X.509 デバイス証明書をロールする方法」を参照してください。
Azure Private Linkの使用を検討してください。Azure Private Linkでは、IoT ハブのパブリック デバイス向けエンドポイントへのアクセスをブロックできるように、デバイスを仮想ネットワーク上のプライベート エンドポイントに接続できます。 詳細については、Azure Private Link を使用したIoT Hubへの Ingress 接続とプライベート エンドポイントを使用した IoT Central のネットワーク セキュリティに関するページを参照してください。
ネットワーク アクセスを制限する: IP フィルターを使用して、信頼できるソースとネットワークへのアクセスを制限します。 詳細については、「IoT Hub IP フィルタリング、IoT Central プライベート エンドポイント、および DPS IP フィルタリングを参照してください。
必要でない場合はパブリック ネットワーク アクセスを無効にする: 可能な場合はパブリック エンドポイントを無効にして、パブリック インターネットへの公開を防止します。 詳細については、「IoT Hubパブリック ネットワーク アクセスおよび DPS パブリック ネットワーク アクセス」を参照してください。
セキュリティで保護されたネットワーク セグメント内のエッジ デバイスとサービスを分離する: ネットワークのセグメント化とファイアウォールを使用して、IoT Edgeデバイスとサービスを他のネットワーク リソースから分離します。 詳細については、IoT Edge for Linux on Windows security を参照してください。
クラウド セキュリティ
このセクションでは、IoT デバイス データを処理して格納するサービスであるクラウド サービスをセキュリティで保護する方法について説明します。 クラウド サービスのセキュリティは、データの整合性と機密性を確保するために不可欠です。
セキュリティで保護されたソフトウェア開発手法に従う: セキュリティで保護されたソフトウェアの開発では、プロジェクトの開始時から実装、テスト、デプロイまで、セキュリティを考慮する必要があります。
Microsoft セキュリティ開発ライフサイクル は、セキュリティで保護されたソフトウェアを構築するための段階的なアプローチを提供します。
オープンソースソフトウェアを慎重に選択する:オープンソースソフトウェアは、ソリューションをすばやく開発する機会を提供します。 オープンソース ソフトウェアを選択する場合は、各オープンソース コンポーネントのコミュニティのアクティビティ レベルを検討してください。 アクティブなコミュニティは、ソフトウェアがサポートされ、問題が検出され、対処されることを保証します。 あいまいで非アクティブなオープンソース ソフトウェア プロジェクトはサポートされていない可能性があり、問題は検出されない可能性があります。
細心の注意を払って統合する: 多くのソフトウェア セキュリティの欠陥がライブラリと API の境界に存在します。 現在のデプロイに必要ない機能も、API レイヤーを通じて利用できる場合があります。 全体的なセキュリティを確保するには、統合コンポーネントのすべてのインターフェイスでセキュリティ上の欠陥がないか確認します。
クラウド資格情報の保護: 攻撃者は、IoT デプロイの構成と運用に使用するクラウド認証資格情報を使用して、IoT システムへのアクセスと侵害を行うことができます。 パスワードを頻繁に変更して資格情報を保護し、共有または管理されていないマシンではこれらの資格情報を使用しないでください。
IoT Hub: サービスと管理 API のアクセスにMicrosoft Entra IDとAzure RBAC を使用して、きめ細かい ID ベースのアクセス制御を有効にします。 詳細については、「IoT Hub Entra ID 認証および DPS Entra ID 認証」を参照>。
必要がない場合は共有アクセス ポリシーを無効にする: 共有アクセス ポリシーとトークンを必要としない場合に無効にすることで、攻撃対象領域を減らします。 詳細については、IoT Hub共有アクセス ポリシーを参照してください。
IoT Central アプリケーションのアクセス制御を定義する: IoT Central アプリケーションに対して有効にするアクセスの種類を理解し、定義します。 詳細については、以下をご覧ください。
バックエンド サービスの既定のアクセス制御: 他のAzure サービスは、IoT Hub または IoT Central アプリケーションがデバイスから取り込むデータを使用できます。 デバイスから他のAzure サービスにメッセージをルーティングできます。 IoT Hubまたは IoT Central がこれらのサービスに接続するための適切なアクセス許可を理解して構成します。 詳細については、以下をご覧ください。
必要な最小限のアクセス許可のみを付与する: ユーザー、アプリ、デバイスにロールとアクセス許可を割り当てるときに、最小限の特権の原則を適用します。 詳細については、 ID 管理のベスト プラクティスに関するページを参照してください。
クラウドから IoT ソリューションを監視する: Azure Monitor または IoT Central アプリケーションの正常性を監視するために、IoT Hub メトリックを使用して、IoT ソリューションの全体的な正常性を監視します。
診断の設定: ソリューションのイベントをログに記録して操作を監視し、診断ログをAzure Monitorに送信します。 詳細については、 IoT ハブでの問題の監視と診断に関するページを参照してください。