はじめに

動機

Internet of Things (IoT) に向けた多種多様なデバイスのネットワーク化は、各ソリューションの製造業者や事業者に新たな課題を突きつけます。多種多様なテクノロジ、標準、プロトコルを相互接続しているため、ネットワークセキュリティ、データセキュリティ、IT セキュリティ全般の均質なレベルを構築して維持するには、かなりの労力が必要です。さらに、IoT 分野は急速に変化し発展しているため、製造業者や事業者はデバイスやネットワークに対する潜在的な脅威を継続的に監視しなければなりません。

従来のネットワーク化されたコンピュータシステムは、ネットワークや重要なシステムへの物理アクセスや認可アクセスを制限するなど、確立された方法で保護できますが、上述の異質性と新しいネットワークレイアウトのため、これらの方法を IoT デバイスやエコシステムへの適用するのは困難となることがあります。従来のコンピュータネットワークと比較すると、IoT インフラストラクチャは非常に広範囲に及ぶ可能性があります。バックエンドインフラストラクチャは従来のコンピュータネットワークと同様であっても、IoT デバイスは任意の場所に配置される可能性があり、場合によっては事業者のセキュアゾーンの外側に配置されることもあります。場合によっては、コネクテッドカー、スマートホームデバイス、パッケージステーションなど、サードパーティや潜在的な攻撃者がデバイスに物理的にアクセスできることもあります。そのため、操作されたデバイス一台でもエコシステム全体を危険にさらすのに十分であるため、すべての IoT デバイスはユーザーデータやインフラストラクチャ全体への潜在的な脅威となります。

攻撃が成功するリスクを軽減するために、製造業者や事業者は IoT ソリューションのセキュリティレベルを定期的に評価すべきです。この目的のための手段がペネトレーションテストです。ペネトレーションテストの目標は IoT ソリューション内のセキュリティ脆弱性を特定することです。その結果を使用して、検出した脆弱性を対処し、セキュリティレベルを強化できます。

課題

ペネトレーションテストのコンテキストでは、テスト手順が透明であることが重要です。さもないと、製造業者や事業者はテスト結果の意味を完全には理解できないかもしれず、誤った結論を導き出す可能性があります。さらに、テスト結果は再現可能にする必要があり、一方では、開発者が脆弱性がどのように悪用されたかを再現して十分な修正を作成できるように、他方では、修正が適用された後に適切な再テストを実行できるようにします。

テスト方法論は、テスト手順と結果を比較できるようにし、同じターゲットに対して同じテストを実行する二人以上のテスト担当者の結果に相違がないようにするために開発されてきました。これらのよく知られた方法論は、テスト中に考慮する必要があるテストとテストケースの重要な側面を含む、テストを実行するための共通のアプローチを定義しています。残念ながら、このガイドを執筆している時点では、IoT ペネトレーションテストのテスト方法論はいくつかあるもののまだ完全なものではありません。さらに、これらの方法論は特定の技術領域のみに焦点を当てているか、現在は初期開発段階にあります。

目標

上述の課題を解決するために、このガイドの目的は、テストの一般的な重要な側面を含む、IoT 分野におけるエンドデバイスのペネトレーションテストの方法論を開発することです。

方法論は以下のようにあるべきです。

  • 柔軟に拡張可能にし、特定のテクノロジに対してより詳細なテストケースを後から追加できるようにします (拡張性 (expandability)) 。

  • 特定のテクノロジやデバイスタイプに関わらず、テスト手順 (テストステップ/ケース) と結果を比較できるようにします (比較可能性 (comparability)) 。

  • 製造業者/事業者とペネトレーションテストサービスプロバイダの間の共通言語としての目的を果たします。つまり、わかりやすい用語を確立して、両者間のコミュニケーションを促進できるようにします (理解可能性 (comprehensibility)) 。

  • 効率的にし、確立されたワークフローに大きな変更を加えたり、新しいステップやテストフェーズを追加することなく、ペネトレーションテストチームがサポート手段として使用できるようします (効率性 (efficiency))。

想定読者

その名前が示すように、OWASP IoT セキュリティテストガイドは主に IoT、ハードウェア、組み込み分野のペネトレーションテスト担当者やセキュリティアナリストが使用することを意図しています。しかし、他の人たちもこのガイドで紹介されているコンセプトとテストケースから恩恵を受けるかもしれません。

構築者 (Builder)

  • IoT デバイスの製造業者 (アーキテクト、エンジニア、開発者、管理者など) はこのガイドの内容を使用して、製品に影響を及ぼす可能性のある潜在的な問題や脆弱性を理解できます。脆弱な製品は製造業者にさまざまな種類の損害 (経済的損失、評判の低下など) をもたらす可能性があり、特定の製品が特定の状況や運用環境でどのように脆弱になる可能性があるかを理解することに関心が必要です。設計および開発プロセスの早期に意識と理解を高めることで、長期的に製品セキュリティを向上させながら、それぞれのコストを可能な限り低く抑えることができます。

攻撃者 (Breaker)

  • ペネトレーションテスト担当者とバグバウンティ研究者2. IoT セキュリティテストフレームワーク で紹介されているコンセプトを使用して、テストを計画し、テスト範囲、テスト条件、テストアプローチを定義します。テストを実行する際、3. テストケースカタログ のテストケースとそれぞれの チェックリスト を使用できます。

    • a) どの側面をテストすべきか、なぜテストすべきか、どのようにテストすべきか、潜在的な問題をどのように軽減できるかを示すガイドとして

    • b) テスト完了ステータスを追跡し、関連するすべての側面が検査されたことを確認するため

  • セキュリティコンサルタントとセキュリティ管理者 はこのガイドとその内容を、チームやクライアントと協働したり、上述の利害関係者とコミュニケーションする際の共通の基盤として使用できます。特に、このガイドで定義されている用語と構成は、さまざまなチームや組織間のコラボレーションを促進するのに役立つはずです。

防御者 (Defender)

  • IoT デバイスの事業者 (ユーザーなど) は製造業者と同様にこのガイドを使用できます。しかし、IoT デバイスを実行する事業者は、通常、設計および開発プロセスにまったくあるいはほとんど影響力を持ちません。そのため、特定の運用環境でデバイスがどのように脆弱になる可能性があるか、デバイスが侵害されたり安全でない場合にこの環境がどのような影響を受けるかを理解することに関心が向けられます。

キーコンセプトとしてのモジュール性

このガイドは IoT デバイスペネトレーションテストのためのモノリシックで包括的な取扱説明書ではありません。それよりも、IoT デバイスに関連するさまざまなテクノロジに対する動的で成長するテストケースのコレクションとして見るべきです。

現時点では、このガイドは非常に高度で一般的なレベルのテストケースで構成しています。このガイドの基本バージョンは可能な限り多くの異なる IoT デバイスに適用できるべきである (比較可能性 (comparability)) ため、これは意図的なものです。しかし、長期的な目標は、特定のテクノロジに対するより詳細なテストケースを含むモジュールを追加して、このガイドを時間の経過とともに拡張すること (拡張性 (expandability)) です。これにより、ガイドは時間とともに進化し、より詳細なものになっていきます。

ソリューションアプローチ

ペネトレーションテストの準備の際に、一連の重要な決定を下す必要があり、テスト手順ひいてはテスト結果に大きな影響を与えます。これらの決定の一部として、何をテストすべきか (テストの範囲 (scope of the test)) およびどのようにテストを実行するか (テスト観点 (test perspective)) を明確にすることがあります。

提案されたソリューションを実現するために、以下のアプローチを選択しました。

  1. 抽象的で一般化された IoT デバイスを表す IoT デバイスモデルの作成:

    IoT デバイスペネトレーションテストのテスト範囲を特定する前に、まず IoT デバイスとは何か、どの部品で構成されているかを定義しなければなりません。テスト範囲の定義をサポートするには、テスト範囲に含めたり除外できるデバイスコンポーネントをデバイスモデルに含める必要があります。このガイドはデバイス自体に直接属するコンポーネントのみに焦点を当てます。ウェブアプリケーション、モバイルアプリケーション、バックエンドサーバーなどのすべてのデバイス外部の要素はこのガイドの一部ではありませんが、姉妹の OWASP テストガイドでこれらの領域をカバーしています。デバイスモデルは IoT デバイスの一般的な構造を示す一般化されたスキームとして機能し、それによってこのガイドで説明されている方法論の理解可能性と比較可能性が高まります。このガイドの以降のすべての部分はこの基礎に依存するため、デバイスモデルの作成は必須かつ重要な最初のステップです。

  2. 潜在的な攻撃者を表現および分類する攻撃者モデルの作成:

    このガイドはデバイスモデルの各コンポーネントに対するテストの重要な側面で構成します。したがって、すべてのデバイスコンポーネントに対する潜在的なテストケースのカタログを含みます。特定の種類の IoT デバイスに対してこれらのテストケースのすべてを実行する必要はないかもしれませんので、特定のデバイスの要件と意図された運用環境に基づいて、適用可能なテストケースを選択する体系的なアプローチが必要です。攻撃モデルはテスト観点の定義をサポートし、攻撃者の共通のグループ/タイプを定義することにより、理解可能性と比較可能性を提供します。効率性を維持するために、攻撃者モデルには広範な脅威およびリスクの分析モデルは組み込みません。これはさまざまなデバイス実装間での比較可能性にも役立ちます。

  3. テストの一般的で重要な側面を含むテスト方法論の作成:

    IoT デバイスモデルに基づいて、テストの一般的で重要な側面を含むテスト方法論を開発します。これらの一般的で重要な側面は、デバイスコンポーネントに関連するセキュリティ問題を表しており、特定のコンポーネントやテクノロジの特定の模範事例に対するより詳細なテストケースから導き出されます。この導出は、方法論をできるだけ多くの異なる IoT デバイス実装に対して使用できるようにする (比較可能性 (comparability)) ために、模範事例の重要な側面と特定の側面を切り離すべきです。とはいえ、方法論の構造は、デバイスコンポーネントの特定の模範事例に対するテストのより詳細な重要な側面を後から追加できるため、拡張性を提供します。

Last updated