

# ML 検出
<a name="dd-detect-ml"></a>

**注記**  
ML Detect は、以下のリージョンではご利用いただけません。  
アジアパシフィック (マレーシア)

ML Detect では、デバイス履歴データに基づいてモデルを自動的に作成することで、機械学習を使用して想定されるデバイスの動作を学習するセキュリティプロファイルを作成し、これらのプロファイルをデバイスのグループまたはフリート内のすべてのデバイスに割り当てます。そして、AWS IoT Device Defender は異常を識別し ML モデルを使用してアラームをトリガーします。

ML Detect の開始方法の詳細については、[ML Detect ガイド](dd-detect-ml-getting-started.md) を参照してください。

**Topics**
+ [ML Detect のユースケース](#dd-detect-ml-use-cases)
+ [ML Detect の仕組み](#dd-detect-ml-how-it-works)
+ [最小要件](#dd-detect-ml-requirements)
+ [制限](#dd-detect-ml-limitations)
+ [アラームでの誤検とその他の検証状態のマーキング](#dd-detect-ml-mark-false-positives)
+ [サポートされるメトリクス](#dd-detect-ml-metrics)
+ [サービスクォータ](#dd-detect-ml-quotas)
+ [ML Detect CLI コマンド](#dd-detect-ml-cli-commands)
+ [ML Detect API](#dd-detect-ml-apis)
+ [ML Detect セキュリティプロファイルを一時停止または削除する](#dd-detect-ml-disable-feature)

## ML Detect のユースケース
<a name="dd-detect-ml-use-cases"></a>

ML Detect を使用すると、想定されるデバイスの動作を設定することが困難な場合に、フリートデバイスを監視できます。例えば、切断数のメトリクスを監視する場合、許容可能なしきい値とみなされる値が明確でない場合があります。この場合、ML Detect を有効にして、デバイスから報告された履歴データに基づいて、異常な切断メトリクスデータポイントを特定できます。

ML Detect のもう 1 つのユースケースは、時間の経過とともに動的に変化するデバイスの動作を監視することです。ML Detect は、デバイスからのデータパターンの変化に基づいて、想定される動的なデバイス動作を定期的に学習します。例えば、デバイスメッセージの送信量は、平日と週末の間で変化し、ML Detect はこの動的な動作を学習します。

## ML Detect の仕組み
<a name="dd-detect-ml-how-it-works"></a>

ML Detect を使用すると、[6 個のクラウド側メトリクス](#dd-detect-ml-metrics)と [7 個のデバイス側メトリクス](#dd-detect-ml-metrics)で運用およびセキュリティの異常を識別するための動作を作成できます。初期モデルトレーニング期間後、ML Detect は、後続の 14 日間のデータに基づいてモデルを毎日更新します。ML モデルでこれらのメトリクスのデータポイントを監視し、異常が検出されるとアラームをトリガーします。

ML Detect は、想定される動作が似ている一連のデバイスにセキュリティプロファイルをアタッチする場合に最適です。例えば、一部のデバイスが顧客の自宅で使用され、その他のデバイスが事業所で使用されている場合、デバイスの動作パターンが 2 つのグループ間で大きく異なる場合があります。デバイスを *home-device* のモノのグループと *office-device* のモノグループに整理できます。異常検出を適切なものとするためには、各モノのグループを個別の ML Detect セキュリティプロファイルにアタッチします。

ML Detect が初期モデルを構築している間、モデルを生成するには、後続の 14 日間で、メトリクスあたり 14 日間以上、かつ少なくとも 25,000 のデータポイントが必要です。その後、最小数のメトリクスデータポイントがあるモデルを毎日更新します。最小要件が満たされない場合、ML Detect はモデルの作成を翌日に試行し、評価のためのモデルの使用を中止する前に、次の 30 日間毎日再試行します。

## 最小要件
<a name="dd-detect-ml-requirements"></a>

ML Detect の初期モデルのトレーニングと作成のために、ML Detect は次の最小要件を満たす必要があります。

**最小トレーニング期間**  
初期モデルの構築には 14 日かかります。その後、モデルは 14 日間の追跡期間のメトリクスデータで毎日更新されます。

**データポイントの合計**  
ML モデルを構築するために必要なデータポイントの最小数は、過去 14 日間でメトリクスあたり 25,000 データポイントです。モデルの継続的なトレーニングと更新のために、ML Detect では、監視対象デバイスからの最小データポイントが必要です。これは、次の設定とほぼ同等です。  
+ 60 台のデバイスが AWS IoT 上で45 分間隔で接続しアクティビティを実行
+ 40 台のデバイスによる30 分間隔での接続と実行
+ 15 台のデバイスによる10 分間隔での接続と実行
+ 7 台のデバイスによる5 分間隔での接続と実行

**デバイスグループのターゲット**  
データを収集するには、セキュリティプロファイルにおけるターゲットのモノのグループにモノが含まれている必要があります。

初期モデルが作成されると、ML モデルは毎日更新され、14 日間の後続期間に少なくとも 25,000 のデータポイントが必要になります。

## 制限
<a name="dd-detect-ml-limitations"></a>

次のクラウド側のメトリクスのディメンションで ML Detect を使用できます。
+ [認可の失敗 (aws:num-authorization-failures)](detect-cloud-side-metrics.md#detect-auth-failures)
+ [受信したメッセージ (aws:num-messages-received)](detect-cloud-side-metrics.md#detect-messages-received)
+ [送信されたメッセージ (aws:num-messages-sent)](detect-cloud-side-metrics.md#detect-messages-sent)
+ [メッセージサイズ (aws:message-byte-size)](detect-cloud-side-metrics.md#detect-message-size)

次のメトリクスは、ML Detect ではサポートされていません。

**ML Detect でサポートされていないクラウド側のメトリクス:**
+ [送信元 IP (aws:source-ip-address)](detect-cloud-side-metrics.md#detect-ip-address)

**ML Detect でサポートされていないデバイス側のメトリクス:**
+ [送信先 IP (`aws:destination-ip-addresses`)](detect-device-side-metrics.md#detect-destination-ip-addresses)
+ [リッスンする TCP ポート (`aws:listening-tcp-ports`)](detect-device-side-metrics.md#detect-listening-tcp-ports)
+ [リッスンする UDP ポート (`aws:listening-udp-ports`)](detect-device-side-metrics.md#detect-listening-udp-ports)

カスタムメトリクスは、**数値**タイプのみをサポートします。

## アラームでの誤検とその他の検証状態のマーキング
<a name="dd-detect-ml-mark-false-positives"></a>

 調査を通じて ML Detect アラームが誤検出であることを確認した場合は、アラームの検証状態を False positive に設定できます。これは、ユーザーとユーザーチームが、応答する必要のないアラームを特定するのに役立ちます。またアラームを真正、良性正、または未知としてマークすることもできます。

[AWS IoT Device Defenderconsole](https://docs.aws.amazon.com//iot/latest/developerguide/detect-HowToHowTo.html)を使用するか、[PutVerificationStateon違反](https://docs.aws.amazon.com/iot/latest/apireference/API_PutVerificationStateOnViolation.html)API アクションを使用して、アラームをマークする事ができます。

## サポートされるメトリクス
<a name="dd-detect-ml-metrics"></a>

ML Detect では、次のクラウド側のメトリクスを使用できます。
+ [認可の失敗 (aws:num-authorization-failures)](detect-cloud-side-metrics.md#detect-auth-failures)
+ [接続試行 (aws:num-connection-attempts)](detect-cloud-side-metrics.md#detect-num-connection-attempts)
+ [切断 (aws:num-disconnects)](detect-cloud-side-metrics.md#detect-num-disconnects)
+ [メッセージサイズ (aws:message-byte-size)](detect-cloud-side-metrics.md#detect-message-size)
+ [送信されたメッセージ (aws:num-messages-sent)](detect-cloud-side-metrics.md#detect-messages-sent)
+ [受信したメッセージ (aws:num-messages-received)](detect-cloud-side-metrics.md#detect-messages-received)

ML Detect では、次のデバイス側のメトリクスを使用できます。
+ [出力バイト数 (`aws:all-bytes-out`)](detect-device-side-metrics.md#detect-all-bytes-out)
+ [入力バイト数 (`aws:all-bytes-in`)](detect-device-side-metrics.md#detect-all-bytes-in)
+ [リスニング TCP ポート数 (`aws:num-listening-tcp-ports`)](detect-device-side-metrics.md#detect-num-listening-tcp-ports)
+ [リスニング UDP ポート数 (`aws:num-listening-udp-ports`)](detect-device-side-metrics.md#detect-num-listening-udp-ports)
+ [出力パケット (`aws:all-packets-out`)](detect-device-side-metrics.md#detect-all-packets-out)
+ [入力パケット (`aws:all-packets-in`)](detect-device-side-metrics.md#detect-all-packets-in)
+ [確立された TCP 接続数 (`aws:num-established-tcp-connections`)](detect-device-side-metrics.md#detect-num-established-tcp-connections)

## サービスクォータ
<a name="dd-detect-ml-quotas"></a>

ML Detect サービスのクォータと制限については、「[AWS IoT Device Defender のエンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/iot_device_defender.html)」を参照してください。

## ML Detect CLI コマンド
<a name="dd-detect-ml-cli-commands"></a>

以下の CLI コマンドを使用して ML Detect を作成および管理できます。
+ [create-security-profile](https://docs.aws.amazon.com/cli/latest/reference/iot/create-security-profile.html)
+ [attach-security-profile](https://docs.aws.amazon.com/cli/latest/reference/iot/attach-security-profile.html)
+ [list-security-profiles](https://docs.aws.amazon.com/cli/latest/reference/iot/list-security-profiles.html)
+ [describe-security-profile](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-security-profile.html)
+ [update-security-profile](https://docs.aws.amazon.com/cli/latest/reference/iot/update-security-profile.html)
+ [delete-security-profile](https://docs.aws.amazon.com/cli/latest/reference/iot/delete-security-profile.html)
+ [get-behavior-model-training-summaries](https://docs.aws.amazon.com/cli/latest/reference/iot/get-behavior-model-training-summaries.html)
+ [list-active-violations](https://docs.aws.amazon.com/cli/latest/reference/iot/list-active-violations.html)
+ [list-violation-events](https://docs.aws.amazon.com/cli/latest/reference/iot/list-violation-events.html)

## ML Detect API
<a name="dd-detect-ml-apis"></a>

ML Detect セキュリティプロファイルの作成と管理には、次の API を使用できます。
+ [CreateSecurityProfile](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateSecurityProfile.html)
+ [AttachSecurityProfile](https://docs.aws.amazon.com/iot/latest/apireference/API_AttachSecurityProfile.html)
+ [ListSecurityProfiles](https://docs.aws.amazon.com/iot/latest/apireference/API_ListSecurityProfiles.html)
+ [DescribeSecurityProfile](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeSecurityProfile.html)
+ [UpdateSecurityProfile](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateSecurityProfile.html)
+ [DeleteSecurityProfile](https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteSecurityProfile.html)
+ [GetBehaviorModelTrainingSummaries](https://docs.aws.amazon.com/iot/latest/apireference/API_GetBehaviorModelTrainingSummaries.html)
+ [ListActiveViolations](https://docs.aws.amazon.com/iot/latest/apireference/API_ListActiveViolations.html)
+ [ListViolationEvents](https://docs.aws.amazon.com/iot/latest/apireference/API_ListViolationEvents.html)
+ [PutVerificationStateon違反](https://docs.aws.amazon.com/iot/latest/apireference/API_PutVerificationStateOnViolation.html)

## ML Detect セキュリティプロファイルを一時停止または削除する
<a name="dd-detect-ml-disable-feature"></a>

ML Detect セキュリティプロファイルを一時停止してデバイス動作の監視を一時的に停止したり、ML Detect セキュリティプロファイルを削除してデバイス動作の監視を長期間停止したりできます。

**コンソールを使用して ML Detect セキュリティプロファイルを一時停止する**  
コンソールを使用して ML Detect セキュリティプロファイルを一時停止するには、まず空のモノのグループが必要です。空のモノのグループを作成するには、「**AWS IoT Core デベロッパーガイド」の「[モノの静的グループ](https://docs.aws.amazon.com/iot/latest/developerguide/thing-groups.html)」を参照してください。空のモノのグループを作成した場合は、空のモノのグループを ML Detect セキュリティプロファイルのターゲットとして設定します。  
 セキュリティプロファイルのターゲットを 30 日以内にデバイスを持つデバイスグループに戻すよう設定する必要があります。この設定を行わない場合、セキュリティプロファイルを再度有効化できません。

**コンソールを使用して ML Detect セキュリティプロファイルを削除する**  

セキュリティプロファイルを削除するには、次の手順を実行します。

1.  AWS IoT コンソールでサイドバーに移動し、[**Defend**] (防御) セクションを選択します。

1. [**Defend**] (防御) で、[**Detect**] (検出)、[**Security Profiles**] (セキュリティプロファイル) の順に選択します。

1. 削除する ML Detect セキュリティプロファイルを選択します。

1. [**Actions**] (アクション) を選択し、オプションから [**Delete**] (削除) を選択します。
ML Detect セキュリティプロファイルを削除すると、セキュリティプロファイルを再度有効化できなくなります。

**CLI を使用して ML Detect セキュリティプロファイルを一時停止する**  
CLI を使用して ML Detect セキュリティプロファイルを一時停止するには、`detach-security-security-profile` コマンドを使用します。  

```
$aws iot detach-security-profile --security-profile-name SecurityProfileName --security-profile-target-arn arn:aws:iot:us-east-1:123456789012:all/registered-things
```
このオプションは、AWS CLI でのみ使用できます。コンソールのワークフローと同様に、セキュリティプロファイルのターゲットを 30 日以内にデバイスを持つデバイスグループに戻すよう設定する必要があります。この設定を行わない場合、セキュリティプロファイルを再度有効化できません。セキュリティプロファイルをデバイスグループにアタッチするには、[https://docs.aws.amazon.com/cli/latest/reference/iot/attach-security-profile.html](https://docs.aws.amazon.com/cli/latest/reference/iot/attach-security-profile.html)コマンドを使用します。

**CLI を使用して ML Detect セキュリティプロファイルを削除する**  
以下の `delete-security-profile` コマンドを実行することで、セキュリティプロファイルを削除できます。  

```
delete-security-profile --security-profile-name SecurityProfileName
```
ML Detect セキュリティプロファイルを削除すると、セキュリティプロファイルを再度有効化できなくなります。