脅威のモデリングと軽減の手法について調べる

完了

Azure IoT 開発者は IoT ソリューションのアーキテクチャ設計に責任を負いませんが、ソリューションに対する脅威を理解することが重要です。

ソリューションのアーキテクチャとセキュリティ

システムを設計する際は、そのシステムに対する脅威のリスクを把握し、設計と構築時にそれに応じた適切な防御措置を講じることが重要となります。 重要なことは、最初からセキュリティを考慮に入れて製品を設計することです。攻撃者がどのような方法でシステムに侵入しうるかを把握しておけば、適切な軽減策を初期段階から講じることができるためです。

設計チームは脅威モデリング手法を使用して軽減策を検討します。システムがデプロイされる前に、システムが設計されるためです。 この点は非常に重要です。なぜなら、現場で稼働している無数のデバイスに対してセキュリティ対策を行うことは現実的ではなく、間違いが起きやすいうえに、利用者を危険にさらすことになるからです。

脅威モデリング

脅威をモデル化する目的は、攻撃者がどのような方法でシステムに侵入しうるかを把握したうえで、適切な軽減策を講じることです。

脅威のモデル化では何を考慮するか

ソリューション全体を検討し、次の点に着目する必要があります。

  • セキュリティとプライバシーの機能。
  • その失敗がセキュリティに関連する機能。
  • 信頼境界に触れる機能。

誰が脅威のモデル化を行うか

脅威のモデル化は、特別なプロセスではありません。 脅威モデル ドキュメントは、ソリューションの他のコンポーネントと同様に扱い、チームとして検証することをお勧めします。 システムのユーザーに利益をもたらす機能的要件を収集することは多くの開発チームが得意とすることです。 しかし漠然と、何者かによって行われるシステム悪用の手法を見極めようとすると、ぐっと難易度が上がります。 攻撃者がどのようなことを、どのような理由で行うのか。その点を開発チームは、脅威のモデル化によって把握することができます。

脅威のモデル化を行う方法

脅威のモデル化プロセスは、次の 4 つのステップから成ります。

  • アプリケーションをモデル化する。
  • 脅威を列挙する。
  • 脅威を軽減する。
  • 軽減策を検証する。

IoT のセキュリティ

特殊な用途をもって接続されるデバイスには、膨大な数の対話領域と対話パターンがあり、デバイスへのデジタル アクセスのセキュリティを確保するうえでは、そのすべてを、基本的な枠組みを形成するものとして捉える必要があります。 デバイスを直接操作することによって実行される操作 (アクセス セキュリティは物理的な立ち入り管理によって確保される) と区別するために、ここでは "デジタル アクセス" という言葉を使用しています。 たとえば施錠された部屋にデバイスを設置することは、物理的な立ち入り管理の領域です。 物理的アクセスをソフトウェアやハードウェアによって防止することはできませんが、物理的なアクセスがシステム障害に発展するのを防ぐための対策を講じることはできます。

脅威のモデル化を実践する過程では、セキュリティのベスト プラクティスを最適な形で適用するために、標準的な IoT アーキテクチャをいくつかのコンポーネント/ゾーンに分割することをお勧めします。 次のゾーンです。

  • Device
  • IoT Edge ゲートウェイ (フィールド ゲートウェイとして使用される IoT Edge デバイス)
  • クラウド ゲートウェイ (IoT Hub)
  • サービス

各ゾーンは、あるソースから別のソースへのデータ/情報の移行を表す信頼境界によって区別されます。 この遷移の過程でデータや情報は STRIDE、つまり Spoofing (スプーフィング)、Tampering (改ざん)、Repudiation (否認)、Information Disclosure (情報漏えい)、Denial of Service (サービス拒否)、Elevation of Privilege (特権の昇格) の影響にさらされることとなります。

Azure IoT 参照アーキテクチャを使用して、IoT の脅威モデリングについての考え方と、特定された脅威への対処方法を示します。 このアプローチでは、主に次の 4 つの領域が識別されます。

  • デバイスとデータ ソース。
  • データ トランスポート。
  • デバイスとイベント処理。
  • プレゼンテーション。

一般的なセキュリティの脅威と軽減策

Azure IoT ソリューションの場合、最も一般的には、脅威は上の簡略化された脅威モデル図で示された物理デバイスまたは信頼境界の 1 つをターゲットとします。

次の STRIDE 定義について考えてください。

  • スプーフィング (S): スプーフィング攻撃は、攻撃者が本人以外になりすましたときに発生します。 スプーフィング攻撃は、ローカルで発生する可能性もあります。 たとえば、攻撃者がソフトウェアまたはハードウェア レベルでデバイスから暗号化キー マテリアルを抽出し、キー マテリアルが取得されたデバイスの ID を使用して、別の物理システムにアクセスする可能性があります。
  • 改ざん (T): 改ざん攻撃は、攻撃者が転送中のデータを変更したときに発生します (IoT の場合、物理デバイスの侵害が含まれる場合があります)。 たとえば、攻撃者が物理デバイスを侵害して暗号化キー マテリアルを取得し、通信パス上のデバイスからデータをインターセプトして抑制し、最後に抽出されたキー マテリアルを使用して、データを、盗んだキー マテリアルで認証された偽のデータに置き換える可能性があります。
  • 否認 (R): 否認は、だれかがアクションを実行した後、実際には実行しなかったことを要求するときに発生します。 否認は通常、ユーザーのアクションを適切に追跡およびログする機能に関連付けられているので、Azure IoT の場合、この脅威は Azure IoT Hub サービスによって軽減されます。 否認は、物理デバイスに対する攻撃には適用されません。
  • 情報漏えい (I): 情報漏えいの脅威はわかりやすいです。攻撃者が、表示されるはずのないデータを表示できるでしょうか? たとえば、あるコンピューターから別のコンピューターにデータを転送し、攻撃者がネットワーク上のデータをスニッフィングできる場合、コンポーネントは情報漏えいの脅威にさらされます。
  • サービス拒否 (D): サービス拒否の脅威は、攻撃者がユーザーに対するサービスを低下させる、または拒否する可能性があるときに発生します。 IoT の場合、この低下には、機能しない、または通信できないデバイスのレンダリングが含まれます。 たとえば、電源またはネットワーク接続が意図的に破損された監視カメラでは、データを報告できません。
  • 特権の昇格 (E): 特権の昇格の脅威は、攻撃者が通常は持てない特権を得られるときに発生します。 IoT の場合、この脅威により、デバイスが目的の機能以外の操作を行う可能性があります。 たとえば半開状態となるようにプログラムされているバルブが、意図的に全開にされる可能性があります。

物理デバイスに対する一般的な脅威

コンポーネント

脅威

軽減策

リスク

実装

Device

S

デバイスに ID を割り当て、デバイスを認証します。

デバイスまたはその一部が他のデバイスに差し替えられます。 意図したデバイスと通信しているという確信はどうすれば得られるでしょうか。

トランスポート層セキュリティ (TLS) または IPSec を使ってデバイスを認証します。 完全な非対称暗号を扱うことのできないデバイスでは、インフラストラクチャが事前共有キー (PSK) の使用をサポートしている必要があります。 Microsoft Entra ID または OAuth を使います。

Device

TID

たとえば、デバイスからキーや他の暗号化マテリアルを抽出できないようにすることで、改ざん防止メカニズムをデバイスに適用します。

何者かによってデバイスが改ざんされた場合にリスクが発生します (物理的干渉)。 デバイスが改ざんされていないという確信はどうすれば得られるでしょうか。

最も効果的な軽減策は、トラステッド プラットフォーム モジュール (TPM) 機能です。基盤に直付けされた特殊な回路にキーを格納することができます。この回路からキーを読み出すことはできません。この回路は、格納されたキーを使う暗号処理にのみ利用でき、そこからキーが漏えいすることは決してありません。 デバイスのメモリの暗号化、 デバイスのキー管理、 コード署名を行います。

Device

E

デバイスのアクセス制御を行います。 承認スキームを設けます。

外部ソース (または侵害されたセンサー) からのコマンドによってデバイスの操作を別途実行できた場合、本来であれば利用できない操作を攻撃者に許すことになります。

デバイスに認可スキームを適用します。

IoT Edge ゲートウェイ (フィールド ゲートウェイ)

S

クラウド ゲートウェイにフィールド ゲートウェイを認証します (証明書ベース、PSK、要求ベースなど)。

何者かがフィールド ゲートウェイになりすました場合、任意のデバイスに見せかけることができます。

TLS RSA/PSK、IPSec、RFC 4279。 キーの保存と認証に関してはデバイスの場合とまったく同じです。TPM を使用することが最善の方法となります。 IPSec の 6LowPAN 拡張によってワイヤレス センサー ネットワーク (WSN) をサポートします。

IoT Edge ゲートウェイ (フィールド ゲートウェイ)

TID

改ざんされないようにフィールド ゲートウェイを保護します (TPM を使用するなど)。

フィールド ゲートウェイと話しているようにクラウド ゲートウェイをだますスプーフィング攻撃により、情報漏えいやデータの改ざんが発生する可能性があります。

メモリの暗号化、TPM、認証。

IoT Edge ゲートウェイ (フィールド ゲートウェイ)

E

フィールド ゲートウェイのアクセスの制御のメカニズム。

物理デバイスに対する脅威の例を次に示します。

  • スプーフィング: 攻撃者がソフトウェアまたはハードウェア レベルでデバイスから暗号化キー マテリアルを抽出し、キー マテリアルが取得されたデバイスの ID で、別の物理または仮想デバイスを使用したシステムにアクセスする可能性があります。
  • サービス拒否:妨害電波やケーブルの切断によって、デバイスの機能が停止したり、通信できない状態になったりする可能性があります。 たとえば、電源やネットワーク接続が意図的に切断された防犯カメラは、データをまったく報告することができなくなります。
  • 改ざん: 攻撃者は、デバイスで実行されているソフトウェアを部分的に、または完全に置き換える可能性があります。キー マテリアルまたはキーマテリアルを保持する暗号化機能が不正なプログラムで使用できる場合、交換されたソフトウェアがデバイスの正規の ID を使用できる可能性があります。
  • 改ざん:たとえば、だれもいない廊下の写真を防犯カメラにかざすことによって、そのような廊下の可視スペクトル画像が表示されることが考えられます。 発煙センサーや火災感知器の下で何者かがライターを点火したことによって、警報が鳴ることも考えられます。 いずれの場合も、デバイスのシステムとしては、技術的に十分な信頼性が確保されているかもしれませんが、報告される情報は改変されています。
  • 改ざん: 攻撃者は、抽出されたキー マテリアルを使用して、通信パス上のデバイスからのデータをインターセプトして抑制し、盗んだキー マテリアルで認証された偽のデータに置き換える可能性があります。
  • 改ざん: 攻撃者は、デバイスで実行されているソフトウェアを部分的に、または完全に置き換える可能性があります。キー マテリアルまたはキーマテリアルを保持する暗号化機能が不正なプログラムで使用できる場合、交換されたソフトウェアがデバイスの正規の ID を使用できる可能性があります。
  • 情報漏えい:デバイス上で実行されるソフトウェアが改変されていた場合、その改変されたソフトウェアから、許可していない相手にデータが漏えいするおそれがあります。
  • 情報漏えい: 攻撃者は、抽出されたキー マテリアルを使用して、デバイスとコントローラーまたはフィールド ゲートウェイまたはクラウド ゲートウェイの間の通信パスに自分自身を挿入して情報を取り出す可能性があります。
  • サービス拒否:さまざまな産業用機械で意図的にデバイスの電源が切られたり、通信ができないモードに設定されたりするおそれがあります。
  • 改ざん:制御システムにとって未知の状態 (既知のキャリブレーション パラメーターの範囲外) で動作するようにデバイスの構成が変更され、間違った解釈につながりうるデータがデバイスから出力される可能性があります。
  • 特権の昇格:特定の機能を実行するデバイスが、他の目的に利用される可能性があります。 たとえば半開状態となるようにプログラムされているバルブが、意図的に全開にされる可能性があります。

通信に対する一般的な脅威

コンポーネント

脅威

軽減策

リスク

実装

デバイスから IoT Hub

TID

(D)TLS (PSK/RSA) によってトラフィックを暗号化します。

デバイスとゲートウェイ間の通信が盗聴または妨害されます。

プロトコル レベルでセキュリティを確保します。 カスタム プロトコルの場合は、その保護方法を把握する必要があります。 ほとんどの場合、通信は、デバイスと IoT Hub との間で行われます (デバイス側から接続が開始されます)。

デバイス対デバイス

TID

(D)TLS (PSK/RSA) によってトラフィックを暗号化します。

デバイス間で転送されているデータが読み取られます。 データが改ざんされます。 新しい接続を使用してデバイスがオーバーロードされます。

プロトコル レベルでセキュリティを確保します (MQTT/AMQP/HTTP/CoAP)。 カスタム プロトコルの場合は、その保護方法を把握する必要があります。 DoS の脅威を軽減するには、クラウド ゲートウェイまたはフィールド ゲートウェイを介してデバイスをピアリングし、それらのデバイスがネットワークに対するクライアントとしてのみ動作するように徹底します。 ピアリングでは、ゲートウェイによって仲介された後、ピア間の直接接続が発生する可能性があります。

外部エンティティからデバイス

TID

外部エンティティをデバイスに対して強力にペアリングします。

デバイスへの接続が傍受されます。 デバイスとの通信が妨げられます。

外部エンティティをデバイスの NFC/Bluetooth LE に対して確実にペアリングします。 デバイス (物理) の操作パネルを制御します。

IoT Edge ゲートウェイからクラウド ゲートウェイ

TID

TLS (PSK/RSA) によってトラフィックを暗号化します。

デバイスとゲートウェイ間の通信が盗聴または妨害されます。

プロトコル レベルでセキュリティを確保します (MQTT/AMQP/HTTP/CoAP)。 カスタム プロトコルの場合は、その保護方法を把握する必要があります。

デバイスからクラウド ゲートウェイ

TID

TLS (PSK/RSA) によってトラフィックを暗号化します。

デバイスとゲートウェイ間の通信が盗聴または妨害されます。

プロトコル レベルでセキュリティを確保します (MQTT/AMQP/HTTP/CoAP)。 カスタム プロトコルの場合は、その保護方法を把握する必要があります。

通信に対する脅威の例を次に示します。

  • サービス拒否:一般に、制約の厳しいデバイスは、受信接続や一方的に送りつけられるデータグラムをネットワーク上で常時待機する形で DoS の脅威にさらされます。攻撃者は、多数の接続を同時に開き、何も処理を行わないか、処理に時間をかけることがあります。また、一方的なトラフィックでデバイスの処理能力をパンクさせる場合もあります。 どちらの場合もデバイスは事実上、ネットワークで機能不全の状態となります。
  • スプーフィング、情報漏えい:制約の厳しいデバイスや特殊用途のデバイスには、パスワードや PIN による保護など、万能型のセキュリティ機構が採用されていたり、ネットワークが信頼できるという前提で動作していたりするケースが少なくありません。デバイスが同じネットワーク上にあれば情報へのアクセスは許可されますが、肝心のネットワークの保護に共有キーしか使われていないケースが多く見られます。 デバイスやネットワークに対する共有シークレットが漏えいした場合、デバイスが制御されたり、デバイスから出力されたデータが傍受されたりする可能性があります。
  • スプーフィング: 攻撃者がブロードキャストをインターセプトまたは部分的にオーバーライドし、発信元になりすます可能性があります。
  • 改ざん: 攻撃者がブロードキャストをインターセプトまたは部分的にオーバーライドし、偽の情報を送信する可能性があります。
  • 情報漏えい: 攻撃者がブロードキャストを盗聴したり、認可なしで情報を取得したりする可能性があります。
  • サービス拒否: 攻撃者がブロードキャスト信号を妨害したり、情報の配信を拒否したりする可能性があります。