Amazon Web Services ブログ
AWS IoT Device Defender と Splunk を使用した IoT アプリケーションのセキュリティ体制をモニタリング
ヘルスケアなどの規制の厳しい業界でモノのインターネット (IoT) アプリケーションの運用が増えるにつれ、IoT セキュリティデバイスの強化が必須となっています。バックエンドシステムの耐障害性を確保することに加えて、ゼロトラストの原則に基づいて従来の企業境界外のデバイスを保護するための取り組みが増えています。たとえば、コネクテッド医療機器を扱うデバイス運用事業者は、製品が設計通り機能し、異常な挙動を示さないことを確認する必要があります。デバイスのセキュリティ体制が侵害された場合、一元化されたセキュリティチームがこれらのイベントを効率的に特定、分析、管理して、エンドツーエンドの患者ケアの提供を保護することが重要です。
完全マネージド型のクラウドサービスである AWS IoT Device Defender は、IoT デバイスを継続的に監視して、デバイスの異常な動作を検出し、セキュリティアラートをトリガーし、組み込みの緩和アクションを提供します。このサービスでは、デバイス関連のリソースを AWS IoT セキュリティのベストプラクティスに照らして監査し、デバイス側とクラウド側のメトリクスを事前定義された閾値に照らしてほぼリアルタイムで評価できます。その後、AWS IoT Device Defender が逸脱を検出したときにアラートを受け取ることができます。AWS IoT Device Defender には、メトリクスをほぼリアルタイムでモニタリングし、機械学習 (ML) アルゴリズムを適用して異常を検出し、アラートを出す機能もあります。
Splunk などの AWS パートナーは、組織がインシデントをほぼリアルタイムで検出して対応できるようにする Security information and event management (SIEM) ソリューションを提供しています。AWS IoT Device Defender と Splunk Platform を統合するセキュリティソリューションでは、エンドツーエンドの IoT アプリケーションにデータ主導型のサイバーセキュリティを提供することで、組織のセキュリティ体制を強化できます。
このブログでは、AWS IoT Device Defender、Amazon Data Firehose、Splunk Platform を使用して、IoT デバイスからセキュリティ関連のメトリクスを一元化された SIEM に取り込む方法を説明します。また、リスクを迅速に特定し、その影響を体系的に計測するセキュリティシステムを構成する方法についても説明します。
ソリューション概要
これは、AWS IoT Core、AWS IoT Device Defender、Amazon Data Firehose、Splunk Platform で構成される完全なサーバーレスのソリューションです。
図 1: ソリューションアーキテクチャ図
ソリューションの主な対象者:
- IoT アプリケーション開発者は、新機能を開発してリリースする責任があります。彼らの目標は、ビジネス価値をもたらす堅牢なコードを書くことに最大限の時間をかけることです。セキュリティは最優先事項ですが、セキュリティ専門家がシステム運用を分析するために必要なメトリクスを抽出、処理、送信するカスタムコードの作成には時間をかけたくありません。
- セキュリティオペレーションセンター (SOC) のアナリストは、セキュリティの脅威を特定して対応し、事業運営を保護する責任があります。一元化された SIEM ツールを使用して、ほぼリアルタイムでリスクを監視し、情報を収集します。また、組織のセキュリティ体制を強化するために、手動および自動プロセスを導入します。
このソリューションの仕組み
- この IoT アプリケーションは AWS IoT Device Client を使用して構築されており、サポートされているデバイス側のメトリクスは自動的に送信されます。本 SDK は、これらのメトリクスを AWS IoT Device Defender 専用の AWS IoT Core Message Queuing Telemetry Transport protocol (MQTT) トピックに発行します。サポートされているデバイス側のメトリクスには、確立された TCP 接続数、リスニング TCP ポート、宛先 IP アドレス、および送信パケット数が含まれます。
- AWS IoT Device Defender は、デバイス側のメトリクスをクラウド側のメトリクスと一緒に処理します。サポートされているクラウド側のメトリクスには、認証エラーの数、送信元 IP アドレス数、接続試行数、メッセージサイズ、送信メッセージ数、受信メッセージ数、切断数、切断時間などがあります。クラウド側のメトリクスは、デバイス側のメトリクスが存在するかどうかに関係なく生成されます。
- AWS IoT Device Defender の検出機能のセキュリティプロファイルは、ユーザー定義の MQTT トピックにメトリクスを発行するように設定されています。この機能を使用して、メトリクスを処理して他のイベントコンシューマーに転送するルールとアクションを AWS IoT Core に設定できます。
- 次に、AWS IoT Core のルールとアクションが MQTT トピックに設定され、メトリクスが Amazon Data Firehose 配信ストリームに送信されます。この設計では、Firehose はペイロードのバッチ処理、バッファリング、変換が可能なスケーラブルなデータストリーミングパイプラインを提供します。
- AWS IoT Device Defender の監査機能では、監査結果を Amazon Simple Notification Service (Amazon SNS) トピックに送信できます。Amazon Data Firehose 配信ストリームは Amazon SNS トピックをサブスクライブし、そのストリームで監査レポートを受け取ります。サポートされている監査チェックには、過度に権限のあるロール、デバイス証明書の共有、および MQTT クライアント ID の競合の監視が含まれます。
- 次に、本ソリューションはストリーミングパイプライン内の AWS Lambda 関数を使用して、ソースレコードを SIEM ソリューションが理解できる形式に変換します。この例では、ペイロードに一意の
sourcetype
キーを追加し、event
キーの下に再構築します。これにより、Splunk の Search Processing Language (SPL) で検索するときに、イベントのインデックス作成と識別が容易になります。Lambda では、ダウンストリームのコンシューマーの要件に合わせてデータ構造を柔軟に変更できます。たとえば、Lambda 関数は構成管理データベース (CMDB) からデバイス所有者情報を取得することで、データをさらに充実させることができます。 - Amazon Data Firehose は、サポートされている宛先にイベントを送信します。デバイス側とクライアント側のメトリクスの両方、および監査結果は、Amazon Data Firehose 配信ストリームを介して SIEM ソリューションに取り込まれます。
- Splunk などの SIEM ソリューションは、他の AWS サービス、クラウドワークロード、オンプレミスワークロードなど、多数のソースからのログの取り込みをサポートしています。このような総合的なデータ集約により、SOC は、アクセスできる部分の情報だけでなく、組織のセキュリティ体制の完全な可視化を可能にします。
- SOCアナリストは、包括的な SIEM ソリューションで利用できるさまざまな機能を使用できます。たとえば、Splunk Platform を使用すると、Enterprise Security と Security Orchestration, Automation and Response (SOAR) を使用して、受信データを調査、分析、対応できます。ダッシュボードを使用して、デバイス側とクラウド側のメトリクスを他のログと一緒に可視化できます。クエリを使用して、メトリクスを集約、強化、および検索できます。プレイブックを使用して対応を自動化することもできます。例えば、ネットワークポートが意図せず開いたままになっている場合、デバイスのセキュリティ体制が弱まっているかどうかを検出できます。そして弱まっている場合は、より広い環境でのリスクを評価できます。
ソリューションのデプロイ
AWS サーバーレスアプリケーションモデル (SAM) テンプレートを使用して、このソリューションに必要な全ての AWS リソース (Lambda 関数で使用される Python コードを含む) をデプロイできます。このテンプレートは aws-iot-device-defender-and-splunk の GitHub リポジトリにあります。
必要な前提条件、デプロイ手順、およびソリューションのテスト方法については、README ファイルを参照してください。
AWS IoT デバイスディフェンダー設定
ソリューションがデプロイされると、AWS IoT Device Defender の設定により、メトリクスと監査レポートを Firehose に簡単に発行できます。
メトリクス
AWS IoT コンソールに移動します。ナビゲーションペインの[検出]を展開し、[セキュリティプロファイル]を選択します。セキュリティプロファイルが用意されていることに注目してください。[保持する追加のメトリクス]タブには、事前設定されたメトリクスのリストが含まれています。
図 2: 保持する追加のメトリクスの表示
[エクスポートされたメトリクス]タブでは、これらのメトリクスが事前に定義された MQTT トピックにエクスポートされていることも確認できます。
図 3: エクスポートされたメトリクスの表示
監査
[監査]の [設定]ページに移動します。このソリューションではすべての監査チェックが可能になり、結果は指定された SNS トピックに発行されます。
図 4: 監査設定の表示
イベントの分析
セキュリティデータが SIEM ソリューションに取り込まれると、SOC アナリストは環境内に存在するリスクの理解と評価に取り組みます。この例では、Splunk の Search Processing Language (SPL) を使用してこの分析を実行します。
メトリクス
ソリューションがデータを生成したら、Splunk コンソールの Search & Reporting Splunk App に移動し、次の SPL クエリを使用します。
index="<YOUR INDEX>" sourcetype="<YOUR SPLUNK SOURCE TYPE>"
この検索では、AWS IoT Device Defender によって生成されたクラウド側とクライアント側のメトリクスがすべて返され、選択したインデックスにデータが取り込まれていることが確認できます。
次に、新しい SPL クエリを作成して、デバイス毎に aws:num-listening-tcp-ports
値を継続的に監視します。次のクエリを使用してください。
index="<YOUR INDEX>" sourcetype="<YOUR SPLUNK SOURCE TYPE>" | spath name | search name="aws:num-listening-tcp-ports"
| chart max(value.count) as tcp_count over _time by thing
このクエリは、1 つのデバイスで開いている TCP ポートの合計数が変化していることを示しています。セキュリティアナリストによる詳細な調査が必要です。
図 5: 開いている TCP ポートの総数の表示
疑わしい動作をしているデバイスの名前を使用して、別の SPL クエリを実行して、どのポートが開いているかを判断します。
index="<YOUR INDEX>" sourcetype="<YOUR SPLUNK SOURCE TYPE>" | where thing="<YOUR THING NAME>"
| spath name
| search name="aws:listening-tcp-ports"
| spath value.ports{} output=open-ports
| mvexpand open-ports
| chart count(open-ports) over _time by open-ports
図 6: デバイスで開いている TCP ポートの表示
セキュリティアナリストは、aws:all-packets-out
や aws:all-bytes-out
等の他のデータポイントを更に調べ、他のデータ漏洩メトリクスがないかを確認できるようになります。これらのデータポイントは、他のデバイス (ネットワークスイッチ、ルーター、ワークステーションなど) からのデータと一緒に評価することで、そのデバイスに何が起こったのか、組織にもたらされたリスクのレベルを包括的に把握できます。
監査
監査はスケジュール設定することも、すぐに実行することもできます。AWS IoT Core コンソールで、[監査]、[結果] の順に移動し、[作成] を選択します。[利用可能なチェック] を選択し、[スケジュールの設定] で [今すぐ監査を実行 (1回)] を選択し、[作成] を選択します。
セキュリティアナリストは、次のような SPL を使用して、過去の監査レポートのステータスを継続的にトラックできます。
index="<YOUR INDEX>" sourcetype="<YOUR SPLUNK SOURCE TYPE>" | where isnotnull(checkName)
図 7: 監査レポートの表示
まとめ
この投稿では、AWS IoT Device Defender のエクスポートメトリクスと監査機能を、Amazon Data Firehose と Splunk Platform と組み合わせて使用して、IoT デバイスからセキュリティデータを大規模に取り込む方法について説明しました。Splunk Platform などの SIEM ソリューションを使用することで、SOC アナリストは導入された IoT デバイスによるビジネスへのリスクを評価し、事業継続性を最大限に保護する方法について情報に基づいた意思決定を行うことができます。AWS IoT Device Defender を使用して IoT デバイスのセキュリティを管理する方法の詳細については、AWS IoT Device Defender を参照してください。
著者紹介
この記事は Use AWS IoT Device Defender and Splunk to monitor the security posture of your IoT application の日本語訳です。IoT Consultant の正村 雄介が翻訳しました。