IoT ソリューションのセキュリティ アーキテクチャ
IoT ソリューションを設計して設計するときは、潜在的な脅威を理解し、適切な防御を含める必要があります。 攻撃者がシステムを侵害する可能性がある方法を理解することは、適切な軽減策が最初から実施されていることを確認するのに役立ちます。
脅威モデリング
Microsoft では、IoT ソリューション設計の一部として脅威モデリング プロセスを使用することをお勧めします。 脅威モデリングとセキュリティで保護された開発ライフサイクルに慣れていない場合は、次を参照してください。
IoT のセキュリティ
脅威モデリングの演習の一環として、IoT アーキテクチャを複数のゾーンに分割すると便利です。
- Device
- フィールド ゲートウェイ
- クラウド ゲートウェイ
- サービス
各ゾーンには、多くの場合、独自のデータと認証と承認の要件があります。 ゾーンを使用して損害を分離し、高信頼ゾーンに対する低信頼ゾーンの影響を制限することもできます。
各ゾーンは 信頼境界で区切られます。次の図では、赤い点線で示されています。 これは、あるソースから別のソースへのデータの遷移を表します。 この移行中に、データが次の脅威の対象になる可能性があります。
- スプーフィング
- 改ざん
- 否認
- 情報漏えい
- サービス拒否
- 特権の昇格
詳細については、 STRIDE モデルに関するページを参照してください。
STRIDE を使用して、各ゾーン内の各コンポーネントに対する脅威をモデル化できます。 以下の各セクションで、それぞれの構成要素について詳しく説明すると共に、セキュリティ上の具体的な懸念事項と導入すべき解決策について取り上げます。
この記事の残りの部分では、これらのゾーンとコンポーネントの脅威と軽減策について詳しく説明します。
デバイス ゾーン
デバイス環境とは、デバイスへの物理アクセスとローカル ネットワークのデジタル アクセスが可能なデバイスの周りの領域です。 ローカル ネットワークは、パブリック インターネットとは異なり、絶縁されていると見なされますが、ブリッジされる可能性があります。 デバイス環境には、デバイスのピアツーピア通信を可能にする短距離ワイヤレス無線テクノロジが含まれています。 このようなローカル ネットワークの錯覚を生み出すネットワーク仮想化テクノロジは含まれていません。 ピアツーピア通信関係に入る場合、2 つのデバイスがパブリック ネットワーク空間間で通信する必要があるパブリック オペレーター ネットワークは含まれません。
フィールド ゲートウェイ ゾーン
フィールド ゲートウェイは、通信イネーブラーとして機能し、場合によってはデバイス制御システムおよびデバイス データ処理ハブとして機能するデバイス、アプライアンス、または汎用サーバー コンピューター ソフトウェアです。 フィールド ゲートウェイ ゾーンには、フィールド ゲートウェイ自体と、それに接続されているすべてのデバイスが含まれます。 フィールド ゲートウェイは、専用のデータ処理機能の外部で動作し、通常は場所にバインドされ、物理的な侵入の影響を受ける可能性があり、運用の冗長性が制限されます。 フィールド ゲートウェイは通常、攻撃者が物理的なアクセスを得た場合に物理的に妨害する可能性のあるものです。
フィールド ゲートウェイは、アクセスと情報フローの管理にアクティブな役割を持っているという点で、トラフィック ルーターとは異なります。 フィールド ゲートウェイには、2 種類の攻撃対象領域があります。 1 つは、それに接続されているデバイスに直面し、ゾーンの内側を表します。 もう一方は、すべての外部関係者に直面し、ゾーンの端です。
クラウド ゲートウェイ ゾーン
クラウド ゲートウェイは、複数のサイトに展開されたデバイスまたはフィールド ゲートウェイとの間のリモート通信を可能にするシステムです。 クラウド ゲートウェイを使用すると、通常、クラウドベースの制御とデータ分析システム、またはそのようなシステムのフェデレーションが可能になります。 場合によっては、タブレットやスマートフォンなどの端末から特殊用途のデバイスへのアクセスをクラウド ゲートウェイが直接つかさどるケースもあります。 クラウド ゲートウェイ ゾーンでは、運用対策によって対象となる物理アクセスが防止され、必ずしもパブリック クラウド インフラストラクチャに公開されるとは限りません。
クラウド ゲートウェイをネットワーク仮想化オーバーレイにマップして、クラウド ゲートウェイとそのすべての接続デバイスまたはフィールド ゲートウェイを他のネットワーク トラフィックから絶縁できます。 クラウド ゲートウェイ自体は、デバイス制御システムや、デバイス データの処理またはストレージ機能ではありません。これらの機能は、クラウド ゲートウェイとインターフェイスします。 クラウド ゲートウェイ ゾーンには、クラウド ゲートウェイ自体のほか、そこに直接または間接的に接続されているすべてのフィールド ゲートウェイとデバイスが含まれます。 ゾーンの端は、すべての外部関係者が通信する個別のサーフェス領域です。
サービス ゾーン
このコンテキストのサービスは、フィールドまたはクラウド ゲートウェイを介してデバイスとインターフェイスするソフトウェア コンポーネントまたはモジュールです。 サービスは、デバイスからデータを収集し、それらのデバイスをコマンドおよび制御できます。 サービスは、ゲートウェイやその他のサブシステムに対する ID の下で次の処理を行うメディエーターです。
- データの格納と分析
- データ分析情報またはスケジュールに基づいてデバイスにコマンドを発行する
- 承認されたエンド ユーザーに情報と制御機能を公開する
IoT デバイス
IoT デバイスは、多くの場合、単純な温度センサーから、何千ものコンポーネントが含まれる複雑な工場生産ラインまで、特殊な用途のデバイスです。 IoT デバイス機能の例を次に示します。
- 環境条件の測定と報告
- 回転バルブ
- サーボの制御
- アラームを鳴らす
- ライトのオンとオフの切り替え
これらのデバイスの目的によって、技術的な設計と、運用とスケジュールされた有効期間の運用に使用できる予算が決まります。 これらの要因の組み合わせにより、使用可能な運用エネルギー予算、物理フットプリント、使用可能なストレージ、コンピューティング、およびセキュリティ機能が制限されます。
自動化またはリモート制御の IoT デバイスで問題が発生する可能性がある点は次のとおりです。
- 物理的な欠陥
- ロジックの欠陥を制御する
- 不正な不正な侵入と操作。
これらの障害の結果は、生産ロットの破壊、建物の焼失、けがや死亡など、深刻な結果になる可能性があります。 そのため、移動させるデバイスやセンサー データを報告するデバイスのセキュリティ バーが高いため、移動の原因となるコマンドが発生します。
デバイス制御とデバイス データの対話
特殊な用途をもって接続されるデバイスには、膨大な数の対話領域と対話パターンがあり、デバイスへのデジタル アクセスのセキュリティを確保するうえでは、そのすべてを、基本的な枠組みを形成するものとして捉える必要があります。 デジタル アクセス とは、デバイスに直接物理的にアクセスするのではなく、ソフトウェアとハードウェアを介して実行される操作を指します。 たとえば、物理的なアクセスは、デバイスをドアのロック付きの部屋に配置することで制御できます。 物理的アクセスをソフトウェアやハードウェアによって防止することはできませんが、物理的なアクセスがシステム障害に発展するのを防ぐための対策を講じることはできます。
相互作用パターンを調べる際には、同じレベルの注意を払って デバイス制御 と デバイス データ を確認します。 デバイス制御とは、デバイスの動作を変更する目的でデバイスに提供されるすべての情報を指します。 デバイス データとは、デバイスの状態とその環境の観察された状態に関して、デバイスが他のユーザーに出力する情報を指します。
Azure IoT 参照アーキテクチャの脅威モデリング
このセクションでは、 Azure IoT 参照アーキテクチャ を使用して、IoT の脅威モデリングについて考える方法と、特定された脅威に対処する方法を示します。
次の図は、データ フロー図モデルを使用して参照アーキテクチャの簡略化されたビューを示しています。
このアーキテクチャでは、デバイスとフィールド ゲートウェイの機能が分離されています。 この方法では、より安全なフィールド ゲートウェイ デバイスを使用できます。 フィールド ゲートウェイ デバイスは、セキュリティで保護されたプロトコルを使用してクラウド ゲートウェイと通信できます。通常は、サーモスタットなどの単純なデバイスが独自に提供できるよりも大きな処理能力が必要です。 図の Azure Services ゾーンでは、Azure IoT Hub サービスはクラウド ゲートウェイです。
前に説明したアーキテクチャに基づいて、次のセクションでは、脅威モデリングの例をいくつか示します。 この例では、脅威モデルのコア要素に焦点を当てています。
- 処理
- 通信
- ストレージ
処理
プロセス カテゴリの脅威の例をいくつか次に示します。 脅威は STRIDE モデルに基づいて分類されます。
スプーフィング: 攻撃者は、ソフトウェアまたはハードウェア レベルで、デバイスから暗号化キーを抽出する可能性があります。 攻撃を受けたユーザーは、これらのキーを使用して、元のデバイスの ID を使用して、別の物理デバイスまたは仮想デバイスからシステムにアクセスします。
サービス拒否:妨害電波やケーブルの切断によって、デバイスの機能が停止したり、通信できない状態になったりする可能性があります。 たとえば、電源やネットワーク接続が意図的にノックアウトされた監視カメラでは、データをまったく報告できません。
改ざん: 攻撃者は、デバイス上のソフトウェアを部分的または完全に置き換える可能性があります。 攻撃者のコードがデバイスの暗号化キーを使用できる場合は、デバイスの ID を使用できます。
改ざん: 空の廊下の可視スペクトル画像を示す監視カメラは、このような廊下の写真を対象にすることができます。 発煙センサーや火災感知器の下で何者かがライターを点火したことによって、警報が鳴ることも考えられます。 いずれの場合も、デバイスのシステムとしては、技術的に十分な信頼性が確保されているかもしれませんが、報告される情報は改変されています。
改ざん: 攻撃者は、抽出された暗号化キーを使用して、デバイスから送信されたデータを傍受して抑制し、盗まれたキーで認証された偽のデータに置き換える可能性があります。
情報漏えい:デバイス上で実行されるソフトウェアが改変されていた場合、その改変されたソフトウェアから、許可していない相手にデータが漏えいするおそれがあります。
情報漏えい: 攻撃者は、抽出された暗号化キーを使用して、デバイスとフィールド ゲートウェイまたはクラウド ゲートウェイの間の通信パスにコードを挿入して、情報をサイフォンオフする可能性があります。
サービス拒否: デバイスをオフにしたり、通信できないモードにしたりすることができます (多くの産業用マシンでは意図的です)。
改ざん:制御システムにとって未知の状態 (既知のキャリブレーション パラメーターの範囲外) で動作するようにデバイスの構成が変更され、間違った解釈につながりうるデータがデバイスから出力される可能性があります
特権の昇格:特定の機能を実行するデバイスが、他の目的に利用される可能性があります。 たとえば半開状態となるようにプログラムされているバルブが、意図的に全開にされる可能性があります。
スプーフィング/改ざん/否認:民生用のリモコンでまれにあることですが、セキュリティが確保されていない場合、攻撃者がデバイスの状態を匿名で操作することができます。 良い図は、任意のテレビをオフにすることができるリモコンです。
次の表は、これらの脅威に対する軽減策の例を示しています。 脅威列の値は省略形です。
- スプーフィング (S)
- 改ざん (T)
- 否認 (R)
- 情報開示 (I)
- サービス拒否 (D)
- 特権の昇格 (E)
コンポーネント | 脅威 | 対応策 | リスク | 実装 |
---|---|---|---|---|
Device | S | デバイスに ID を割り当てて本物であることを確認します。 | デバイスまたはその一部が他のデバイスに差し替えられます。 適切なデバイスと通信していることがわかります。 | トランスポート層セキュリティ (TLS) または IPSec を使ってデバイスを認証します。 インフラストラクチャでは、完全な非対称暗号化を処理できないデバイスでの事前共有キー (PSK) の使用をサポートする必要があります。 Azure AD、 OAuth を使用します。 |
TRID | 改ざん防止機構をデバイスに適用します。たとえば、デバイスからキーや他の暗号マテリアルを抽出することが困難または不可能となるようにします。 | 何者かによってデバイスが改ざんされた場合にリスクが発生します (物理的干渉)。 デバイスが改ざんされていないことをどのように確認していますか。 | 最も効果的な軽減策は、トラステッド プラットフォーム モジュール (TPM) です。 TPM は、キーを読み取ることができない特殊なオンチップ回線にキーを格納しますが、キーを使用する暗号化操作にのみ使用できます。 デバイスのメモリの暗号化、 デバイスのキー管理、 コード署名を行います。 | |
E | デバイスのアクセス制御を行います。 承認スキームを設けます。 | 外部ソース (または侵害されたセンサー) からのコマンドによってデバイスの操作を別途実行できた場合、本来であれば利用できない操作を攻撃者に許すことになります。 | デバイスに認可スキームを適用します。 | |
フィールド ゲートウェイ | S | クラウド ゲートウェイに対してフィールド ゲートウェイが本物であることを証明します (証明書、PSK、要求など)。 | 何者かがフィールド ゲートウェイになりすました場合、任意のデバイスに見せかけることができます。 | TLS RSA/PSK、IPSec、RFC 4279。 キーの保存と認証に関してはデバイスの場合とまったく同じです。TPM を使用することが最善の方法となります。 IPSec の 6LowPAN 拡張によってワイヤレス センサー ネットワーク (WSN) をサポートします。 |
TRID | 改ざんされないようにフィールド ゲートウェイを保護します (TPM を使用するなど)。 | フィールド ゲートウェイと通信していると考えてクラウド ゲートウェイをだますスプーフィング攻撃により、情報漏えいとデータ改ざんが発生する可能性がある | メモリ暗号化、TPM、認証。 | |
E | フィールド ゲートウェイにアクセス制御機構を導入します。 |
通信
通信カテゴリの脅威の例をいくつか次に示します。 脅威は STRIDE モデルに基づいて分類されます。
サービス拒否: 制約付きデバイスは、通常、ネットワーク上で受信接続または未承諾のデータグラムをアクティブにリッスンする場合に DoS 脅威にさらされます。 攻撃者は、多数の接続を並列で開き、サービスを提供したり、低速にサービスを提供したり、未承諾のトラフィックでデバイスにフラッディングを行ったりする可能性があります。 どちらの場合もデバイスは事実上、ネットワークで機能不全の状態となります。
スプーフィング、情報漏えい: 制約付きデバイスと特殊な目的のデバイスには、多くの場合、パスワードや PIN 保護などの 1 対 1 のセキュリティ機能があります。 ネットワークの信頼に完全に依存し、同じネットワーク上にあるデバイスへの情報へのアクセスを許可する場合があります。 ネットワークが公開される共有キーによって保護されている場合、攻撃者はデバイスを制御したり、送信するデータを観察したりする可能性があります。
スプーフィング: 攻撃者はブロードキャストを傍受または部分的にオーバーライドし、発信元をスプーフィングする可能性があります。
改ざん: 攻撃者はブロードキャストを傍受または部分的にオーバーライドし、偽の情報を送信する可能性があります。
情報漏えい: 攻撃者はブロードキャストを傍受し、承認なしで情報を取得する可能性があります。
サービス拒否: 攻撃者はブロードキャスト信号を妨害し、情報の配布を拒否する可能性があります。
次の表は、これらの脅威に対する軽減策の例を示しています。
コンポーネント | 脅威 | 対応策 | リスク | 実装 |
---|---|---|---|---|
デバイス対 IoT Hub | TID | (D)TLS (PSK/RSA) によってトラフィックを暗号化します。 | デバイスとゲートウェイとの間の通信を傍受または妨害します。 | プロトコル レベルでセキュリティを確保します。 カスタム プロトコルの場合は、その保護方法を把握する必要があります。 ほとんどの場合、通信は、デバイスと IoT Hub との間で行われます (デバイス側から接続が開始されます)。 |
デバイス対デバイス | TID | (D)TLS (PSK/RSA) によってトラフィックを暗号化します。 | デバイス間で転送されているデータが読み取られます。 データが改ざんされます。 デバイスに対する新規接続が過剰に繰り返されます。 | プロトコル レベルでセキュリティを確保します (MQTT/AMQP/HTTP/CoAP)。 カスタム プロトコルの場合は、その保護方法を把握する必要があります。 DoS の脅威を軽減するには、クラウド ゲートウェイまたはフィールド ゲートウェイを介してデバイスをピアリングし、それらのデバイスがネットワークに対するクライアントとしてのみ動作するように徹底します。 ゲートウェイがピアリングを仲介した後、ピア間に直接接続が存在する可能性があります。 |
外部エンティティ対デバイス | TID | 外部エンティティをデバイスに対して強力にペアリングします。 | デバイスへの接続が傍受されます。 デバイスとの通信が妨害されます。 | 外部エンティティをデバイスの NFC/Bluetooth LE に対して確実にペアリングします。 デバイス (物理) の操作パネルを制御します。 |
フィールド ゲートウェイ対クラウド ゲートウェイ | TID | TLS (PSK/RSA) によってトラフィックを暗号化します。 | デバイスとゲートウェイとの間の通信を傍受または妨害します。 | プロトコル レベルでセキュリティを確保します (MQTT/AMQP/HTTP/CoAP)。 カスタム プロトコルの場合は、その保護方法を把握する必要があります。 |
デバイス対クラウド ゲートウェイ | TID | TLS (PSK/RSA) によってトラフィックを暗号化します。 | デバイスとゲートウェイとの間の通信を傍受または妨害します。 | プロトコル レベルでセキュリティを確保します (MQTT/AMQP/HTTP/CoAP)。 カスタム プロトコルの場合は、その保護方法を把握する必要があります。 |
ストレージ
次の表は、ストレージの脅威に対する軽減策の例を示しています。
コンポーネント | 脅威 | 対応策 | リスク | 実装 |
---|---|---|---|---|
デバイスの記憶域 | TRID | 記憶域を暗号化し、ログに署名します。 | ストレージからのデータの読み取り、テレメトリ データの改ざん。 キューやキャッシュに格納されたコマンド制御データが改ざんされます。 構成の更新パッケージやファームウェアの更新パッケージが、ローカルにキャッシュされるかローカルのキューに格納されている間に改ざんされた場合、OS やシステム コンポーネントのセキュリティ侵害につながる可能性があります | 暗号化、メッセージ認証コード (MAC)、またはデジタル署名を導入します。 可能であれば、アクセス許可またはリソース アクセス制御リスト (ACL) を使った強力なアクセス制御を導入します。 |
デバイスの OS イメージ | TRID | OS が改ざんされたり、OS コンポーネントが差し替えられたりします。 | 読み取り専用 OS パーティション、署名された OS イメージ、暗号化 | |
フィールド ゲートウェイの記憶域 (データのキューイング) | TRID | 記憶域を暗号化し、ログに署名します。 | ストレージからのデータの読み取り、テレメトリ データの改ざん、キューまたはキャッシュされたコマンド制御データの改ざん。 (デバイスまたはフィールド ゲートウェイに対する) 構成の更新パッケージやファームウェアの更新パッケージが、ローカルにキャッシュされるかローカルのキューに格納されている間に改ざんされた場合、OS やシステム コンポーネントのセキュリティ侵害につながる可能性があります | BitLocker |
フィールド ゲートウェイの OS イメージ | TRID | OS が改ざんされたり、OS コンポーネントが差し替えられたりします。 | OS パーティションの読み取り専用化、OS イメージの署名、暗号化を行います。 |
次のステップ
IoT セキュリティの詳細については、次を参照してください。