

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 検出結果を AWS Security Finding Format (ASFF) にマッピングするためのガイドライン
<a name="guidelines-asff-mapping"></a>

結果を ASFF にマッピングするには、以下のガイドラインに従います。各 ASFF フィールドとオブジェクトの詳細については、*AWS Security Hub ユーザーガイド*の「[AWS Security Finding 形式 (ASFF)](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html)」を参照してください。

## 識別情報
<a name="asff-identifying-information"></a>

`SchemaVersion` は常に `2018-10-08` です。

`ProductArn` は、 がユーザー AWS Security Hub CSPM に割り当てる ARN です。

`Id` は、Security Hub CSPM が検出結果のインデックス作成に使用する値です。他の結果が上書きされないように、結果識別子は一意である必要があります。結果を更新するには、同じ識別子を使用して結果を再送信します。

`GeneratorId` は `Id` と同じ、または Amazon GuardDuty ディテクタ ID、 AWS Config レコーダー ID、または IAM アクセスアナライザー ID など、論理の離散単位を参照するものです。

## Title および Description
<a name="asff-title-description"></a>

`Title` は影響を受けるリ出典に関する情報をいくつか含める必要があります。`Title` は 256 文字に制限されています。

より長い詳細情報を `Description` に追加します。`Description` は 1024 文字に制限されています。説明に切り捨てを追加することを検討できます。例を示します。

```
"Title": "Instance i-12345678901 is vulnerable to CVE-2019-1234",
"Description": "Instance i-12345678901 is vulnerable to CVE-2019-1234. This vulnerability affects version 1.0.1 of widget-1 and earlier, and can lead to buffer overflow when someone sends a ping.",
```

## 結果タイプ
<a name="asff-finding-types"></a>

`FindingProviderFields.Types` の結果タイプの情報を提供します。

`Types` は [ASFF のタイプ分類](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format-type-taxonomy.html) と一致する必要があります。

必要に応じて、カスタム分類子 (3 番目の名前空間) を指定できます。

## タイムスタンプ
<a name="asff-timestamps"></a>

ASFF 形式には、いくつかの異なるタイムスタンプが含まれています。

**`CreatedAt` および `UpdatedAt`**  
[https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_BatchImportFindings.html](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_BatchImportFindings.html) をコールするたびにそれぞれの結果について `CreatedAt` および `UpdatedAt` を送信する必要があります。  
値は Python 3.8 の ISO8601 形式と一致する必要があります。  

```
datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc).isoformat()
```

**`FirstObservedAt` および `LastObservedAt`**  
`FirstObservedAt` および `LastObservedAt` はシステムが結果を観察したときと一致する必要があります。この情報をレコードしない場合は、これらのタイムスタンプを送信する必要はありません。  
値は Python 3.8 の ISO8601 形式と一致します。  

```
datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc).isoformat()
```

## Severity
<a name="asff-severity"></a>

`FindingProviderFields.Severity` オブジェクトの重要値情報には、次のフィールドが含まれます。

**`Original`**  
システムの重要値値。`Original` は、使用するシステムに対応するために、任意の文字列にすることができます。

**`Label`**  
検出結果の重要度を示す必須の Security Hub CSPM インジケータ。許容値は、次のとおりです。  
+ `INFORMATIONAL` – 問題は見つかりませんでした。
+ `LOW` - この問題は独自のアクションを必要としません。
+ `MEDIUM` - この問題は対処する必要がありますが、緊急ではありません。
+ `HIGH` – この問題は優先事項として対処する必要があります。
+ `CRITICAL` – さらなる危害を防ぐために、問題を直ちに修復する必要があります。
準拠している結果は、常に `Label` が `INFORMATIONAL` に設定されている必要があります。`INFORMATIONAL` 検出結果の例は、合格したセキュリティチェックの結果と修正された AWS Firewall Manager 検出結果です。  
お客様は、セキュリティ運用チームに ToDo リストを提供するために、重要値で結果を並べ替えることがよくあります。結果の重要値を `HIGH` または `CRITICAL` に設定するときは慎重に行ってください。

統合ドキュメントには、マッピングの理論的根拠が含まれている必要があります。

## Remediation
<a name="asff-remediation"></a>

`Remediation` には 2 つの要素があります。これらの要素は Security Hub CSPM コンソールで結合されます。

`Remediation.Recommendation.Text` は結果詳細の **修復** セクションに表示されます。これは、`Remediation.Recommendation.Url` の値にハイパーリンクされています。

現在、Security Hub CSPM 標準、IAM Access Analyzer、Firewall Manager の検出結果のみが、検出結果の修正方法に関するドキュメントへのハイパーリンクを表示します。

## SourceUrl
<a name="asff-sourceurl"></a>

その特定の結果のために、コンソールにディープリンク URL を提供できる場合、`SourceUrl` のみを使用します。それ以外の場合は、マッピングから省略します。

Security Hub CSPM はこのフィールドからのハイパーリンクをサポートしていませんが、Security Hub CSPM コンソールで公開されています。

## Malware, Network, Process, ThreatIntelIndicators
<a name="asff-malware-network-process-threatintel"></a>

該当する場合、`Malware`、`Network`、`Process`、または`ThreatIntelIndicators` を使用します。これらの各オブジェクトは Security Hub CSPM コンソールで公開されます。これらのオブジェクトは、送信する結果のコンテキストで使用します。

たとえば、既知のコマンドおよびコントロールノードへのアウトバウンド接続を行うマルウェアを検出した場合は、`Resource.Details.AwsEc2Instance` の EC2 インスタンスの詳細を提供します。その EC2 インスタンスの関連する `Malware`、`Network`、および `ThreatIntelIndicator` オブジェクトを提供します。

### Malware
<a name="asff-malware"></a>

`Malware` は、最大 5 つのマルウェア情報の配列を受け入れるリストです。マルウェアエントリをリ出典と結果に関連づけるようにします。

各エントリには以下のフィールドがあります。

**`Name`**  
マルウェアの名前。値は最大 64 文字の文字列です。  
`Name` は検査済みの脅威インテリジェンスまたは研究者の情報である必要があります。

**`Path`**  
マルウェアへのパス。値は 512 文字以内の文字列です。`Path` は次の場合を除き、Linux または Windows のシステムファイルパスにする必要があります。  
+ S3 バケットまたは EFS 共有内のオブジェクトを YARA ルールに対してスキャンする場合、`Path` は S3:// または HTTPS オブジェクトパスです。
+ Git リポジトリ内のファイルをスキャンすると、`Path` は Git URL またはクローンのパスです。

**`State`**  
マルウェアのステータス。指定できる値は `OBSERVED` \$1` REMOVAL_FAILED` \$1 `REMOVED` です。  
結果のタイトルと説明で、マルウェアで何が起こったかのコンテキストを提供していることを確認します。  
たとえば、`Malware.State` が `REMOVED` の場合、結果タイトルと説明に、パス上にあるマルウェアを製品が除去したことを反映させる必要があります。  
`Malware.State` が `OBSERVED` の場合、結果タイトルと説明に、パス上にあるこのマルウェアに製品が遭遇したことを反映させる必要があります。

**`Type`**  
マルウェアのタイプを示します。指定できる値は、`ADWARE` \$1 `BLENDED_THREAT` \$1 `BOTNET_AGENT` \$1 `COIN_MINER` \$1 `EXPLOIT_KIT` \$1 `KEYLOGGER` \$1 `MACRO` \$1 `POTENTIALLY_UNWANTED` \$1 `SPYWARE` \$1 `RANSOMWARE` \$1 `REMOTE_ACCESS` \$1 `ROOTKIT` \$1 `TROJAN` \$1 `VIRUS` \$1 `WORM` です。  
に追加の値が必要な場合は`Type`、Security Hub CSPM チームにお問い合わせください。

### Network
<a name="asff-network"></a>

`Network` は単一オブジェクトです。複数のネットワーク関連の詳細を追加することはできません。フィールドをマッピングする場合は、以下のガイドラインに従います。

**デスティネーションと出典情報**  
デスティネーションと出典は、TCP または VPC フローログ、または WAF ログを簡単にマッピングできます。攻撃に関する結果のネットワーク情報を記述しているとき、使用するのがより困難です。  
通常、出典は攻撃が発生した場所ですが、以下に示すような他の出典がある可能性があります。ドキュメントで出典を説明し、結果タイトルと詳細にも説明する必要があります。  
+ EC2 インスタンスに対する DDoS 攻撃の場合、出典は攻撃者ですが、実際の DDoS 攻撃では何百万ものホストが使用される可能性があります。デスティネーションは EC2 インスタンスの公開 IPv4 アドレスです。`Direction` は IN です。
+ EC2 インスタンスから既知のコマンドおよびコントロールノードへの通信が観察されるマルウェアの場合、出典は EC2 インスタンスの IPV4 アドレスです。デスティネーションは、コマンドおよびコントロールノードです。`Direction` は `OUT` です。また、`Malware` および `ThreatIntelIndicators` を提供します。

**`Protocol`**  
`Protocol` は特定のプロトコルを提供できる場合を除き、常にインターネット割り当て番号局 (IANA) のメンバー名にマッピングします。常にこれを使用し、ポート情報を提供してください。  
`Protocol` は、デスティネーションと出典情報から独立しています。そうするのが理にかなっているときのみ提供します。

**`Direction`**  
`Direction` は常に AWS ネットワーク境界に対して相対的です。  
+ `IN` は AWS 、(VPC、サービス) を入力していることを意味します。
+ `OUT` は、 AWS ネットワーク境界を出ることを意味します。

### Process
<a name="asff-process"></a>

`Process` は単一オブジェクトです。複数のプロセス関連の詳細を追加することはできません。フィールドをマッピングする場合は、以下のガイドラインに従います。

**`Name`**  
`Name` は、実行可能ファイルの名前と一致する必要があります。最大 64 文字まで使用できます。

****`Path`****  
`Path` は、実行可能プロセスへのファイルシステムパスです。最大 512 文字まで使用できます。

**`Pid`, `ParentPid`**  
`Pid` および `ParentPid` は Linux プロセス識別子 (PID) または Windows イベント ID と一致する必要があります。区別するには、EC2 Amazon マシンイメージ (AMI) を使用して情報を提供します。お客様はおそらく Windows と Linux を区別できます。

**タイムスタンプ (`LaunchedAt` および `TerminatedAt`)**  
この情報を確実に取得できず、ミリ秒単位で正確でない場合は、提供しないでください。  
お客様がフォレンジック調査でタイムスタンプに依存している場合は、タイムスタンプがない方が間違ったタイムスタンプを持つよりも優れています。

### ThreatIntelIndicators
<a name="asff-threatintelindicators"></a>

`ThreatIntelIndicators` は最大 5 個の脅威インテリジェンスオブジェクトの配列を受け入れます。

エントリごとに、`Type` は、特定の脅威のコンテキストにあります。指定できる値は、`DOMAIN` \$1 `EMAIL_ADDRESS` \$1 `HASH_MD5` \$1 `HASH_SHA1` \$1 `HASH_SHA256` \$1 `HASH_SHA512` \$1 `IPV4_ADDRESS` \$1 `IPV6_ADDRESS` \$1 `MUTEX` \$1 `PROCESS` \$1 `URL` です。

脅威インテリジェンスインジケータをマッピングする方法の例をいくつか以下に示します。
+ Cobalt Strike に関連付けられていることがわかっているプロセスが見つかりました。これを FireEye のブログから知りました。

  `Type` を `PROCESS` に設定します。また、プロセスの `Process` オブジェクトを作成します。
+ メールフィルターによって、既知の悪意のあるドメインから既知のハッシュ化されたパッケージを送信している人が見つかりました。

  2 つの `ThreatIntelIndicator` オブジェクトを作成します。1 つのオブジェクトは、`DOMAIN` のためです。もう 1 つは、`HASH_SHA1` のためです。
+ Yara ルール (Loki、Fenrir、awss3VirusScan、BinaryAlert) でマルウェアが見つかりました。

  2 つの `ThreatIntelIndicator` オブジェクトを作成します。1 つはマルウェアのためです。もう 1 つは、`HASH_SHA1` のためです。

## Resources
<a name="asff-resources"></a>

`Resources` の場合、可能な限り提供されているリ出典タイプと詳細フィールドを使用します。Security Hub CSPM は、ASFF に新しいリソースを常に追加しています。ASFF の変更の月次ログを受け取るには、securityhub-partners@amazon.com に問い合わせます。

モデル化されたリ出典タイプの詳細フィールドに情報を収められない場合は、残りの詳細を`Details.Other` にマッピングします。

ASFF でモデル化されていないリ出典については、`Type` を `Other` に設定します。詳細については、「`Details.Other`」を使用してください。

AWS 検出結果以外の`Other`リソースタイプを使用することもできます。

## ProductFields
<a name="asff-productfields"></a>

`Resources` の別のキュレーションフィールドまたは `ThreatIntelIndicators`、`Network`、または `Malware` などの説明的なオブジェクトを使用できない場合、`ProductFields` のみを使用します。

`ProductFields` を使っている場合、この決定には厳密な根拠を提供する必要があります。

## コンプライアンス
<a name="asff-compliance"></a>

結果がコンプライアンスに関連している場合、`Compliance` のみを使用します。

Security Hub CSPM は、コントロールに基づいて生成する検出結果`Compliance`に を使用します。

Firewall Manager はコンプライアンスに関連しているため、`Compliance` を使用します。

## 制限されているフィールド
<a name="asff-restricted-fields"></a>

これらのフィールドは、お客様が結果の調査を追跡できるようにするためのものです。

これらのフィールドまたはオブジェクトにはマップしないでください。
+ `Note`
+ `UserDefinedFields`
+ `VerificationState`
+ `Workflow`

これらのフィールドについては、`FindingProviderFields` オブジェクト内のフィールドにマップします。最上位フィールドにはマッピングしないでください。
+ `Confidence` – サービスに同様の特徴がある場合、または結果が 100% 残っている場合にのみ、信頼スコア (0～99) を含めます。
+ `Criticality` – 重要値スコア (0～99) は、結果に関連するリ出典の重要性を表すことを目的としています。
+ `RelatedFindings` – 同じリ出典または結果タイプに関連する結果を追跡できる場合にのみ、関連する結果を提供します。関連する検出結果を特定するには、Security Hub CSPM に既に存在する検出結果の検出結果識別子を参照する必要があります。