AWS Security Hub
ユーザーガイド

AWS Security Finding 形式

AWS Security Hub は、AWS セキュリティサービスおよびサードパーティー製品の統合からの検出結果を使用、集計、整理、および優先順位付けします。Security Hub は、AWS Security Finding 形式と呼ばれる標準的な検出結果形式を使用してこれらの検出結果を処理するため、時間のかかるデータ変換作業が不要になります。その後、複数の製品から取り込まれた検出結果を相関させて、最も重要なものに優先順位を付けます。

AWS Security Finding 形式の構文

以下は、AWS Security Finding 形式における完全な検出結果の JSON の構文です。

"Findings": [ { "AwsAccountId": "string", "Compliance": { "Status": "string" }, "Confidence": number, "CreatedAt": "string", "Criticality": number, "Description": "string", "FirstObservedAt": "string", "GeneratorId": "string", "Id": "string", "LastObservedAt": "string", "Malware": [ { "Name": "string", "Path": "string", "State": "string", "Type": "string" } ], "Network": { "DestinationDomain": "string", "DestinationIpV4": "string", "DestinationIpV6": "string", "DestinationPort": number, "Direction": "string", "Protocol": "string", "SourceDomain": "string", "SourceIpV4": "string", "SourceIpV6": "string", "SourceMac": "string", "SourcePort": number }, "Note": { "Text": "string", "UpdatedAt": "string", "UpdatedBy": "string" }, "Process": { "LaunchedAt": "string", "Name": "string", "ParentPid": number, "Path": "string", "Pid": number, "TerminatedAt": "string" }, "ProductArn": "string", "ProductFields": { "string" : "string" }, "RecordState": "string", "RelatedFindings": [ { "Id": "string", "ProductArn": "string" } ], "Remediation": { "Recommendation": { "Text": "string", "Url": "string" } }, "Resources": [ { "Details": { "AwsEc2Instance": { "IamInstanceProfileArn": "string", "ImageId": "string", "IpV4Addresses": [ "string" ], "IpV6Addresses": [ "string" ], "KeyName": "string", "LaunchedAt": "string", "SubnetId": "string", "Type": "string", "VpcId": "string" }, "AwsIamAccessKey": { "CreatedAt": "string", "Status": "string", "UserName": "string" }, "AwsS3Bucket": { "OwnerId": "string", "OwnerName": "string" }, "Container": { "ImageId": "string", "ImageName": "string", "LaunchedAt": "string", "Name": "string" }, "Other": { "string" : "string" } }, "Id": "string", "Partition": "string", "Region": "string", "Tags": { "string" : "string" }, "Type": "string" } ], "SchemaVersion": "string", "Severity": { "Normalized": number, "Product": number }, "SourceUrl": "string", "ThreatIntelIndicators": [ { "Category": "string", "LastObservedAt": "string", "Source": "string", "SourceUrl": "string", "Type": "string", "Value": "string" } ], "Title": "string", "Types": [ "string" ], "UpdatedAt": "string", "UserDefinedFields": { "string" : "string" }, "VerificationState": "string", "WorkflowState": "string" } ]

AWS Security Finding 形式の属性

次の表に、AWS Security Finding 形式の属性の説明と例を示します。

属性 必須 説明
AwsAccountId はい

検出結果が生成される AWS アカウント ID。

タイプ: 文字列 (最大 12 桁)

例:

"AwsAccountId": "111111111111"
Compliance いいえ

サポートされている標準の特定のルールに対してチェックを実行した結果として生成された検出結果専用 (CIS AWS Foundations など)。コンプライアンス関連の検出結果の詳細が格納されます。

タイプ: オブジェクト

例:

"Compliance": { "Status": "PASSED" }
Compliance.Status いいえ

コンプライアンスチェックの結果。

タイプ: enum

  • 許容値は以下のとおりです。

    • PASSED – チェックされたすべてのリソースが、チェックに従って評価されました。

    • WARNING – 提供する必要がある設定情報が欠落しています。

    • FAILED – チェックされたすべてのリソースがチェックに失敗しました。

    • NOT_AVAILABLE – サービスの停止または何らかの API エラーが原因でチェックを実行できませんでした。

例:

"Status": "PASSED"
Confidence いいえ

検出結果の信頼度。信頼度は、検出結果が、識別することが意図されていた動作や問題を正確に識別する可能性として定義されます。信頼度には、比率スケールを使用して 0 ~ 100 の基準でスコアが付けられます。0 は信頼度が 0 パーセント、100 は信頼度が 100 パーセントであることを示します。ただし、ネットワークトラフィックの統計的偏差に基づくデータの不正引き出しは、実際の不正引き出しが確認されていないため、信頼性がはるかに低くなります。

タイプ: 整数 (範囲 0 ~ 100)

例:

"Confidence": 42
CreatedAt はい

検出結果でキャプチャされた潜在的なセキュリティ上の問題が作成された日時を示す ISO 8601 形式のタイムスタンプ (RFC-3339 Date and Time on the Internet: Timestamps で定義)。

CreatedAt タイムスタンプは、検出結果レコードが作成された時刻を反映するため、イベントまたは脆弱性が最初に検出された時刻を反映する FirstObservedAt タイムスタンプとは異なる場合があります。

このタイムスタンプは、検出結果の最初の生成時に提供する必要があり、検出結果に対するそれ以降の更新時に変更することはできません

タイプ: タイムスタンプ

例:

"CreatedAt": "2017-03-22T13:22:13.933Z"

注記

検出結果は、最新の更新から 90 日後、または更新が行われない場合は作成日から 90 日後に削除されます。検出結果を90 日間以上保存するには、検出結果を Amazon S3 バケットにルーティングする CloudWatch イベント でルールを設定できます。

Criticality いいえ

検出結果に関連付けられているリソースに割り当てられている重要度。スコア 0 は、基になるリソースに重要性がなく、スコア 100 は最も重要なリソース用に予約されています。

タイプ: 整数 (範囲 0 ~ 100)

重要度には、完全な整数のみをサポートする比率スケールを使用して、0 ~ 100 の基準でスコアが付けられます。つまり、他のリソースより重要度の高いリソースに影響を与える検出結果がどれであるかだけでなく、それらのリソースが他のリソースと比較してどれほど重要度が高いかを評価する必要があります。スコア 0 は、基になるリソースに重要性がなく、スコア 100 は最も重要なリソース用に予約されています。

検出結果の重要性を評価するときには、以下の点を考慮してください。

  • 影響を受けたリソースに機密データ (PII を含む S3 バケットなど) が含まれているか?

  • 影響を受けたリソースにより、攻撃者はアクセスレベルを深めたり、機能を拡張して悪意のあるアクティビティ (sysadmin アカウントへの侵入など) を追加で実行したりすることができるか?

  • そのリソースはビジネスクリティカルなアセット (不正なアクセスを受けた場合、収益に大きな影響を与える可能性がある主要なビジネスシステム) であるか?

以下のガイドラインを使用できます。

  • ミッションクリティカルなシステムを駆動するリソース、または機密性の高いデータを含むリソースには、75 〜 100 の範囲でスコアを付けることができます。

  • 重要度の高いリソース (ただしクリティカルなシステムではない)、または重要度がそれほど高くないデータを含むリソースには、25 ~ 75 の範囲でスコアを付けることができます。

  • 重要でないシステムを駆動するリソース、または機密ではないデータを含むリソースには、0 ~ 24 の範囲でスコアを付ける必要があります。

例:

"Criticality": 99
Description はい

検出結果の説明。このフィールドに指定できるのは、固有ではない共通のテキストまたは検出結果のこのインスタンスに固有の詳細です。

タイプ: 文字列 (1,024 文字以内)

例:

"Description": "The version of openssl found on instance i-abcd1234 is known to contain a vulnerability."
FirstObservedAt いいえ

検出結果でキャプチャされた潜在的なセキュリティ上の問題が最初に検出された日時を示す ISO 8601 形式のタイムスタンプ (RFC-3339 Date and Time on the Internet: Timestamps で定義)。

タイプ: タイムスタンプ

このタイムスタンプは、イベントまたは脆弱性が最初に検出された時刻を反映するため、この検出結果レコードが作成された時刻を反映する CreatedAt タイムスタンプとは異なる場合があります。

このタイムスタンプは、検出結果レコードが次に更新されるまで不変である必要がありますが、より正確なタイムスタンプがあると判別された場合は更新できます。

例:

"FirstObservedAt": "2017-03-22T13:22:13.933Z"
GeneratorId はい

検出結果を生成したソリューション固有のコンポーネント (個別のロジックの単位) の識別子。セキュリティ検索結果製品のさまざまなソリューションでは、このジェネレーターをルール、チェック、ディテクター、プラグインなどと呼ぶことができます。

タイプ: 文字列 (512 文字以内) または Amazon リソースネーム (ARN)

例:

"GeneratorId": "acme-vuln-9ab348"
Id はい

検出結果の製品固有の識別子。

タイプ: 文字列 (512 文字以内) または ARN

検出結果 ID は、以下の制約を満たす必要があります。

  • ID は製品内でグローバルに一意である必要があります。一意性を強制するために、パブリック AWS リージョン名とアカウント ID を識別子に組み込むことができます。

  • 以前の検出結果がすでに存在していないかどうかにかかわらず、識別子をリサイクルすることはできません

  • この ID には、RFC-3986 Uniform Resource Identifier (URI): Generic Syntax のセクション 2.3 で定義されている、予約されていない文字セットの文字のみを含める必要があります。

  • AWS 以外のサービスの場合、ID の前にリテラル文字列 "arn:" を付けることはできません

  • AWS サービスの場合、ID は検出結果の ARN (使用可能な場合) である必要があります。それ以外の場合は、他の一意の識別子を使用できます。

これらの制約は、1 つの検出製品内に保持されることが期待されますが、複数の検出製品に保持される必要はありません。

例:

"Id": "us-west-2/111111111111/98aebb2207407c87f51e89943f12b1ef"
LastObservedAt いいえ

検出結果でキャプチャされた潜在的なセキュリティ上の問題がセキュリティ検出製品によって最近検出された日時を示す ISO 8601 形式のタイムスタンプ (RFC-3339 Date and Time on the Internet: Timestamps で定義)。

タイプ: タイムスタンプ

このタイムスタンプは、イベントまたは脆弱性が最後に検出された時刻を反映するため、この検出レコードが最後に更新された時刻を反映する UpdatedAt タイムスタンプとは異なる場合があります。

このタイムスタンプを提供することはできますが、最初の検出時には必要ありません。このような場合にフィールドを指定する場合は、タイムスタンプが FirstObservedAt タイムスタンプと同じである必要があります。検出結果が検出されるたびに、最後に検出されたタイムスタンプを反映するようにこのフィールドを更新する必要があります。

例:

"LastObservedAt": "2017-03-23T13:22:13.933Z"
Malware いいえ

検出結果に関連するマルウェアのリスト。

タイプ: 最大 5 つのマルウェアオブジェクトの配列

例:

"Malware": [ { "Name": "Stringler", "Type": "COIN_MINER", "Path": "/usr/sbin/stringler", "State": "OBSERVED" }
Malware.Name はい

検出されたマルウェアの名前。

タイプ: 文字列 (64 文字以内)

例:

"Name": "Stringler"
Malware.Path いいえ

検出されたマルウェアのファイルシステムパス。

タイプ: 文字列 (512 文字以内)

例:

"Path": "/usr/sbin/stringler"
Malware.State いいえ

検出されたマルウェアの状態。有効な値は OBSERVED | REMOVAL_FAILED | REMOVED です。

タイプ: enum

例:

"State": "OBSERVED"
Malware.Type いいえ

検出されたマルウェアのタイプ。有効な値は ADWARE | BLENDED_THREAT | BOTNET_AGENT | COIN_MINER | EXPLOIT_KIT | KEYLOGGER | MACRO | POTENTIALLY_UNWANTED | SPYWARE | RANSOMWARE | REMOTE_ACCESS | ROOTKIT | TROJAN | VIRUS | WORM です。

タイプ: enum

例:

"Type": "COIN_MINER"
Network いいえ

検出結果に関するネットワーク関連情報の詳細。

タイプ: オブジェクト

例:

"Network": { "Direction": "IN", "Protocol": "TCP", "SourceIpV4": "1.2.3.4", "SourceIpV6": "FE80:CD00:0000:0CDE:1257:0000:211E:729C", "SourcePort": "42", "SourceDomain": "here.com", "SourceMac": "00:0d:83:b1:c0:8e", "DestinationIpV4": "2.3.4.5", "DestinationIpV6": "FE80:CD00:0000:0CDE:1257:0000:211E:729C", "DestinationPort": "80", "DestinationDomain": "there.com" }
Network.DestinationDomain いいえ

検出結果に関するネットワーク関連情報の送信先ドメイン。

タイプ: 文字列 (128 文字以内)

例:

"DestinationDomain": "there.com"
Network.DestinationIpV4 いいえ

検出結果に関するネットワーク関連情報の送信先 IPv4 アドレス。

タイプ: IPv4

例:

"DestinationIpV4": "2.3.4.5"
Network.DestinationIpV6 いいえ

検出結果に関するネットワーク関連情報の送信先 IPv6 アドレス。

タイプ: IPv6

例:

"DestinationIpV6": "FE80:CD00:0000:0CDE:1257:0000:211E:729C"
Network.DestinationPort いいえ

検出結果に関するネットワーク関連情報の送信先ポート。

タイプ: 数値 (0 ~ 65535 の範囲)

例:

"DestinationPort": "80"
Network.Direction いいえ

検出結果に関連付けられているネットワークトラフィックの方向。有効な値は IN | OUT です。

タイプ: enum

例:

"Direction": "IN"
Network.Protocol いいえ

検出結果に関するネットワーク関連情報のプロトコル。

タイプ: 文字列 (16 文字以内)

検出製品がより正確なプロトコルを判別できる場合を除き、名前は関連付けられているポートの IANA 登録名である必要があります。

例:

"Protocol": "TCP"
Network.SourceDomain いいえ

検出結果に関するネットワーク関連情報の送信元ドメイン。

タイプ: 文字列 (128 文字以内)

例:

"SourceDomain": "here.com"
Network.SourceIpV4 いいえ

検出結果に関するネットワーク関連情報の送信元 IPv4 アドレス。

タイプ: IPv4

例:

"SourceIpV4": "1.2.3.4"
Network.SourceIpV6 いいえ

検出結果に関するネットワーク関連情報の送信元 IPv6 アドレス。

タイプ: IPv6

例:

"SourceIpV6": "FE80:CD00:0000:0CDE:1257:0000:211E:729C"
Network.SourceMac いいえ

検出結果に関するネットワーク関連情報の送信元メディアアクセスコントロール (MAC) アドレス。

タイプ: 文字列 (MM:MM:MM:SS:SS:SSと一致する必要がある)

例:

"SourceMac": "00:0d:83:b1:c0:8e"
Network.SourcePort いいえ

検索結果に関するネットワーク関連情報の送信元ポート。

タイプ: 数値 (0 ~ 65535 の範囲)

例:

"SourcePort": "80"
Note いいえ

検出結果に追加されるユーザー定義のメモ。

タイプ: オブジェクト

例:

"Note": { "Text": "Don't forget to check under the mat.", "UpdatedBy": "jsmith", "UpdatedAt": "2018-08-31T00:15:09Z" }
Note.Text はい

検索結果メモのテキスト。

タイプ: 文字列 (512 文字以内)

例:

"Text": "Example text."
Note.UpdatedAt はい

メモが更新された日時を示すタイムスタンプ。

タイプ: タイムスタンプ

例:

"UpdatedAt": "2018-08-31T00:15:09Z"
Note.UpdatedBy はい

メモを作成したプリンシパル。

タイプ: 文字列 (512 文字以内) または ARN

例:

"UpdatedBy": "jsmith"
Process いいえ

検出結果に関するプロセス関連情報の詳細。

タイプ: オブジェクト

例:

"Process": { "Name": "syslogd", "Path": "/usr/sbin/syslogd", "Pid": 12345, "ParentPid": 56789, "LaunchedAt": "2018-09-27T22:37:31Z", "TerminatedAt": "2018-09-27T23:37:31Z" }
Process.LaunchedAt いいえ

プロセスが開始された日時を示すタイムスタンプ。

タイプ: タイムスタンプ

例:

"LaunchedAt": "2018-09-27T22:37:31Z"
Process.Name いいえ

プロセスの名前。

タイプ: 文字列 (64 文字以内)

例:

"Name": "syslogd"
Process.ParentPid いいえ

親プロセス ID。

タイプ: 数値

例:

"ParentPid": 56789
Process.Path いいえ

実行可能プロセスへのパス。

タイプ: 文字列 (512 文字以内)

例:

"Path": "/usr/sbin/syslogd"
Process.Pid いいえ

プロセス ID。

タイプ: 数値

例:

"Pid": 12345
Process.TerminatedAt いいえ

プロセスが終了した日時を示すタイムスタンプ。

タイプ: タイムスタンプ

例:

"TerminatedAt": "2018-09-27T23:37:31Z"
ProductArn はい

サードパーティーの検出製品が Security Hub に登録された後でその製品を一意に識別する、Security Hub によって生成された ARN。

Type (タイプ): ARN

このフィールドの形式は arn:partition:securityhub:region:account-id:product/company-id/product-id です。

  • Security Hub と統合されている AWS サービスの場合、company-id は "aws" である必要があり、product-id は AWS パブリックサービス名である必要があります。AWS 製品およびサービスはアカウントに関連付けられていないため、ARN の account-id セクションは空です。まだ Security Hub と統合されていない AWS サービスは、サードパーティー製品と見なされます。

  • パブリック製品の場合、company-id および product-id は登録時に指定された ID 値である必要があります。

  • プライベート製品の場合、company-id はアカウント ID である必要があります。product-id は、予約語の "default"、または登録時に指定された ID である必要があります。

例:

// Private ARN "ProductArn": "arn:aws:securityhub:us-east-1:111111111111:product/111111111111/default" // Public ARN "ProductArn": "arn:aws:securityhub:us-west-2::product/aws/guardduty" "ProductArn": "arn:aws:securityhub:us-west-2:222222222222:product/generico/secure-pro"
ProductFields いいえ

定義済みの AWS Security Finding 形式の一部ではないソリューション固有の詳細をセキュリティ検出製品に追加で含めることができるデータ型。

タイプ: 最大 50 個のキー/値ペアのマップ

このフィールドには冗長データを含めないでください。また、AWS Security Finding 形式フィールドと競合するデータを含めることはできません。プレフィックス "aws/" は、AWS 製品およびサービス専用の予約された名前空間を表します。このプレフィックスを、パートナー製品からの検出結果とともに送信しないでください。必須ではありませんが、製品はフィールド名を company-id/product-id/field-name として形式設定することが推奨されます。ここで、company-idproduct-id は、検出結果の ProductArn に指定されているものと一致します。フィールド名には、英数字、空白、および記号 _ . / = + \ - @ を含めることができます。

例:

"ProductFields": { "generico/secure-pro/Count": "6", "generico/secure-pro/Action.Type", "AWS_API_CALL", "API", "DeleteTrail", "Service_Name": "cloudtrail.amazonaws.com", "aws/inspector/AssessmentTemplateName": "My daily CVE assessment", "aws/inspector/AssessmentTargetName": "My prod env", "aws/inspector/RulesPackageName": "Common Vulnerabilities and Exposures" }
RecordState いいえ

検出結果の記録状態。有効な値は、ACTIVE および ARCHIVED です。

タイプ: enum

デフォルトでは、サービスによって最初に生成されたときの検出結果は ACTIVE と見なされます。ARCHIVED 状態は、検出結果がビューで非表示になることを示します。アーカイブされた検出結果は削除されず、サービスに履歴として残り、いつでも検索、レビュー、レポートすることができます。

例:

"RecordState": "ACTIVE"
RelatedFindings いいえ

関連する検出結果のリスト。

タイプ: 最大 10 RelatedFinding 個のオブジェクトの配列

例:

"RelatedFindings": [ { "ProductArn": "arn:aws:securityhub:us-west-2::product/aws/guardduty", "Id": "123e4567-e89b-12d3-a456-426655440000" }, { "ProductArn": "arn:aws:securityhub:us-west-2::product/aws/guardduty", "Id": "AcmeNerfHerder-111111111111-x189dx7824" } ]
RelatedFindings.Id はい

関連する検出結果の、製品によって生成された識別子。

タイプ: 文字列 (512 文字以内) または ARN

例:

"Id": "123e4567-e89b-12d3-a456-426655440000"
RelatedFindings.ProductArn はい

関連する検出結果を生成した製品の ARN。

Type (タイプ): ARN

例:

"ProductArn": "arn:aws:securityhub:us-west-2::product/aws/guardduty"
Remediation いいえ

検出結果の修復オプション。

タイプ: オブジェクト

例:

"Remediation": { "Recommendation": { "Text": "Run sudo yum update and cross your fingers and toes.", "Url": "http://myfp.com/recommendations/dangerous_things_and_how_to_fix_them.html" } }
Remediation.Recommendation いいえ

検出結果内で特定された問題の修正方法に関する推奨事項。

推奨オブジェクトが存在する場合は、Text フィールドと Url フィールドの両方が存在することができ、データを入力できますが、いずれか一方のフィールドのみが存在し、データが入力されている必要があります。Recommendation フィールドは、検出結果を解決するための手動の手順または詳細を容易にするためのものです。

タイプ: オブジェクト

例:

"Recommendation": { "Text": "Example text.", "Url": "http://myfp.com/recommendations/dangerous_things_and_how_to_fix_them.html" }
Recommendation.Text いいえ

ユーザーに向けて表示する、検出結果への対処法の推奨事項を記述する自由形式の文字列。このフィールドに指定できるのは、固有ではない共通のテキストまたは検出結果のこのインスタンスに固有の詳細です。

タイプ: 文字列 (512 文字以内)

例:

"Text": "Example text."
Recommendation.Url いいえ

その検出結果タイプの一般的な修復の情報にリンクする URL。

この URL は、アクセスするために資格情報を求めないこと、パブリックインターネットからアクセス可能であること、およびいかなるコンテキストやセッションも期待しないことが必要です。

タイプ: URL

例:

"Url": "http://myfp.com/recommendations/example_domain.html"
Resources はい

検出結果が参照するリソースを記述する、一連のリソースデータタイプ。

タイプ: 最大 10 個のリソースオブジェクトの配列

例:

"Resources": [ { "Type": "AwsEc2Instance", "Id": "i-cafebabe", "Partition": "aws", "Region": "us-west-2", "Tags": { "billingCode": "Lotus-1-2-3", "needsPatching": "true" }, "Details": { "AwsEc2Instance": { "Type": "i3.xlarge", "ImageId": "ami-abcd1234", "IpV4Addresses": [ "54.194.252.215", "192.168.1.88" ], "IpV6Addresses": [ "2001:db8:1234:1a2b::123" ], "KeyName": "my_keypair", "IamInstanceProfileArn": "arn:aws:iam::111111111111:instance-profile/AdminRole", "VpcId": "vpc-11112222", "SubnetId": "subnet-56f5f633", "LaunchedAt": "2018-05-08T16:46:19.000Z" } } } ]
Resource.Details いいえ

このフィールドは、そのサブフィールドの 1 つ (1 つのみ) を通じて、リソースに関する追加の詳細を提供します。Resource.Type フィールドは、どのサブフィールドにデータを含める必要があるかを示します。このフィールドはオプションであるため、Resource.Type 値が設定されている可能性がありますが、どのサブフィールドにも詳細が含まれていない可能性もあります。サブフィールドが定義されている場合、Resource.Type はサブフィールド名と一致する必要があります。たとえば、AwsS3Bucket サブフィールドにデータが設定される場合は、Resource.TypeAwsS3Bucket に設定する必要があります。

1 つの検出結果に定義できるサブフィールドは 1 つだけです。検出結果の詳細を含む他のすべてのサブフィールド (Resource.Type で定義されたサブフィールドを除く) は、すべてのプロセッサーで無視されます。

Amazon EC2 インスタンスや Amazon S3 バケットなど、複数のリソースが存在する場合は、Resources フィールドで 2 つの個別の Resource オブジェクトを作成する必要があります。

リソースが既存のサブフィールドのいずれにも適合しない場合は、Other フィールドを使用してリソースの詳細を提供できます。Other サブフィールドに詳細を入力するときには、Resource.TypeOther に設定する必要があります。既存のサブフィールドが定義しているリソースにより適している場合は、Other フィールドを使用しないでください。Other フィールドを他のサブフィールドと一緒に使用しないでください。たとえば、AwsEc2Instance フィールドを使用するときには、Other フィールドに EC2 インスタンスに関する追加の詳細を入力しないでください。さらに、EC2 インスタンスに関する詳細を提供するときに、AwsEc2Instance フィールドではなく Other フィールドを使用することはできません。

タイプ: オブジェクト

例:

"Details": { "AwsEc2Instance": { "Type": "i3.xlarge", "ImageId": "ami-abcd1234", "IpV4Addresses": [ "54.194.252.215", "192.168.1.88" ], "IpV6Addresses": [ "2001:db8:1234:1a2b::123" ], "KeyName": "my_keypair", "IamInstanceProfileArn": "arn:aws:iam::111111111111:instance-profile/AdminRole", "VpcId": "vpc-11112222", "SubnetId": "subnet-56f5f633", "LaunchedAt": "2018-05-08T16:46:19.000Z" }, "AwsS3Bucket": { "OwnerId": "da4d66eac431652a4d44d490a00500bded52c97d235b7b4752f9f688566fe6de", "OwnerName": "acmes3bucketowner" }, "Other": [ { "Key": "LightPen", "Value": "blinky" }, { "Key": "SerialNo", "Value": "1234abcd" } ] }
Resource.Details.AwsEc2Instance いいえ

Amazon EC2 インスタンスの詳細。

タイプ: オブジェクト

Resource.Details.AwsEc2Instance.IamInstanceProfileArn いいえ

インスタンスの IAM プロファイルの ARN。

Resource.Details.AwsEc2Instance.ImageId いいえ

インスタンスの Amazon Machine Image (AMI) の ID。

タイプ: 文字列 (64 文字以内)

Resource.Details.AwsEc2Instance.IpV4Addresses いいえ

インスタンスに関連付けられている IPv4 アドレス。

タイプ: 最大 10 個の IPv4 アドレスの配列

Resource.Details.AwsEc2Instance.IpV6Addresses いいえ

インスタンスに関連付けられている IPv6 アドレス。

タイプ: 最大 10 個の IPv6 アドレスの配列

Resource.Details.AwsEc2Instance.KeyName いいえ

インスタンスに関連付けられているキー名。

タイプ: 文字列 (128 文字以内)

Resource.Details.AwsEc2Instance.LaunchedAt いいえ

インスタンスが起動された日時。

タイプ: タイムスタンプ

Resource.Details.AwsEc2Instance.SubnetId いいえ

インスタンスが作成されたサブネットの識別子。

タイプ: 文字列 (32 文字以内)

Resource.Details.AwsEc2Instance.Type いいえ

インスタンスのインスタンスタイプ。これは有効な EC2 インスタンスタイプである必要があります。

タイプ: 文字列 (16 文字以内)

Resource.Details.AwsEc2Instance.VpcId いいえ

インスタンスが起動された VPC の識別子。

タイプ: 文字列 (32 文字以内)

Resource.Details.AwsIamAccessKey いいえ

検出結果に関連する IAM アクセスキーの詳細。

タイプ: オブジェクト

Resource.Details.AwsIamAccessKey.CreatedAt いいえ

検出結果に関連する IAM アクセスキーの作成日時。

タイプ: タイムスタンプ

Resource.Details.AwsIamAccessKey.Status いいえ

検出結果に関連する IAM アクセスキーのステータス。有効な値は、ACTIVE および INACTIVE です。

タイプ: enum

Resource.Details.AwsIamAccessKey.UserName いいえ

検出結果に関連する IAM アクセスキーに関連付けられたユーザー。

タイプ: 文字列 (128 文字以内)

Resource.Details.AwsS3Bucket いいえ

Amazon S3 バケットの詳細。

タイプ: オブジェクト

Resource.Details.AwsS3Bucket.OwnerId いいえ

Amazon S3 バケット所有者の正規ユーザー ID。

タイプ: 文字列 (6 文字以内)

Resource.Details.AwsS3Bucket.OwnerName いいえ

Amazon S3 バケット所有者の表示名。

タイプ: 文字列 (128 文字以内)

Resource.Details.Container いいえ

検出結果に関連するコンテナの詳細。

タイプ: オブジェクト

例:

"Container": { "Name": "Secret Service Container", "ImageId": "image12", "ImageName": "SecSvc v1.2 Image", "LaunchedAt": "2018-09-29T01:25:54Z" }
Resource.Details.Container.ImageId いいえ

検出結果に関連するイメージの識別子。

タイプ: 文字列 (128 文字以内)

Resource.Details.Container.ImageName いいえ

検出結果に関連するイメージの名前。

タイプ: 文字列 (128 文字以内)

Resource.Details.Container.LaunchedAt いいえ

コンテナが開始された日時。

タイプ: タイムスタンプ

Resource.Details.Container.Name いいえ

検出結果に関連するコンテナの名前。

タイプ: 文字列 (128 文字以内)

Resource.Details.Other いいえ

Resource.Details で定義されているリソースタイプの特定のサブフィールドを含まないリソースの詳細。このフィールドに入力するには、Resource.Type.Other を設定する必要があります。

タイプ: 最大 50 個のキー/値ペアのマップ

キー/値のペアごとに、キーは 128 文字未満であり、値は 1,024 文字未満であることが必要です。

Resource.Id はい

指定されたリソースタイプの正規の識別子。ARN で識別される AWS リソースの場合、これは ARN である必要があります。ARN が欠落している他のすべての AWS リソースタイプの場合、これはリソースを作成した AWS サービスで定義されている識別子である必要があります。AWS 以外のリソースの場合、これはリソースに関連付けられている一意の識別子である必要があります。

タイプ: 文字列 (512 文字以内) または ARN

例:

"Id": "arn:aws:s3:::example-bucket"
Resource.Partition いいえ

リージョンが割り当てられている正規の AWS パーティション名。

タイプ: enum

有効な値には次のようなものがあります。

パーティション 説明
aws 商用
aws-cn 中国
aws-us-gov AWS GovCloud (US)

例:

"Partition": "aws"
Resource.Region いいえ

このリソースが配置されている正規の AWS 外部リージョン名。

タイプ: 文字列 (16 文字以内)

例:

"Region": "us-west-2"
Resource.Tags いいえ

検出結果が処理された時点でリソースに関連付けられていた AWS タグのリスト。タグが関連付けられているリソースの場合のみ、Resource.Tags 属性を含めます。リソースにタグが関連付けられていない場合は、検出結果に Resource.Tags 属性を含めないでください。

タイプ: 最大 50 個のタグのマップ (値は 256 文字以内)

タグには以下のような基本制限があります。

  • このフィールドには、AWS リソースに実際に存在するタグのみを指定できます。AWS Security Finding 形式で定義されていないリソースタイプのデータを提供するには、Resource.Detail.Other フィールドを使用します。

  • 値に使用できるのは、英数字、スペース、+、-、=、.、_、:、/、@ のみです。

  • 値の最大長は、AWS タグ値の長さである 256 文字です。

例:

"Tags": { "billingCode": "Lotus-1-2-3", "needsPatching": "true" }
Resource.Type はい

詳細を提供しているリソースのタイプ。

タイプ: 文字列 (32 文字以内)

有効な値は次のとおりです。

  • AwsEc2Instance

  • AwsS3Bucket

  • Container

  • AwsIamAccessKey

  • AwsIamUser

  • AwsAccount

  • AwsIamPolicy

  • AwsCloudTrailTrail

  • AwsKmsKey

  • AwsEc2Vpc

  • AwsEc2SecurityGroup

  • Other

例:

"Type": "AwsS3Bucket"
SchemaVersion はい

検出結果が形式設定されているスキーマのバージョン。このフィールドの値は、AWS で識別された正式公開バージョンの 1 つである必要があります。現在のリリースでは、AWS Security Finding 形式スキーマのバージョンは 2018-10-08 です。

タイプ: 文字列 (10 文字以内、YYYY-MM-DD に準拠)

例:

"SchemaVersion": "2018-10-08"
Severity はい

検出結果の重要度。

タイプ: オブジェクト

例:

"Severity": { "Product": 8.3, "Normalized": 25 }
Severity.Normalized はい 検出結果の正規化された重大度。サポートされている AWS サービスによって生成された検出結果の場合、Security Hub は、以下のガイダンスに基づいて、ネイティブの重大度を正規化された重大度に自動的に変換します。サポートされているサードパーティーパートナー製品によって生成された検出結果の場合、パートナーは、これらの検出結果を Security Hub に送信する前に、このガイダンスを使用して、AWS Security Finding 形式で要求される正規化された重大度を判別できます。

AWS Security Finding 形式における検出結果の重大度では、この検出結果が出される原因となったアクティビティに関与しているアセットの重要度は考慮されません。実際のデータの損失やサービス拒否に関連付けられている検出結果は、最も重大と見なされます。アクティブなセキュリティ侵害に関連付けられているが、データの損失やその他の悪影響が発生したことを示してない検出結果は、2 番目に重大であると見なされます。今後のセキュリティ侵害の可能性を示す問題に関連付けられている検出結果は、3 番目に重大であると見なされます。

重大度には、完全な整数のみをサポートする比率スケールを使用して、0 ~ 100 の基準でスコアが付けられます。つまり、正規化された重大度を判別する際には、どの検出結果が他の検出結果より重大であるかだけでなく、ある検出結果が別の検出結果よりもどの程度重大であるかを評価する必要があります。0 は該当する重大度がない (たとえば、重大度が "情報" である) ことを示し、100 は検出結果が最大の重大度であることを示します。検出結果のネイティブの重大度スコアを AWS Security Finding 形式の正規化された重大度に変換する際には、次のガイダンスを使用することをお勧めします。

  • 情報の検出結果 (たとえば、“成功” したコンプライアンスチェックまたは機密データ識別に関連付けられている検出結果)。推奨スコア: 0。これらの検出結果には、重大度ラベル Low が表示されます。

  • 今後のセキュリティ侵害 (脆弱性、構成の脆弱性、パスワードの公開など) につながる可能性のある問題に関連付けられている検出結果。これは一般的に、検出結果のタイプに基づいて、名前空間 Software and Configuration Checks に合わせられます。推奨スコア: 1 ~ 39。これらの検出結果には、重大度ラベル Low が表示されます。

  • アクティブなセキュリティ侵害を示しているが、攻撃者が目標を達成した兆候 (たとえば、マルウェアアクティビティ、ハッキングアクティビティ、または異常な動作の検出) は示していない問題に関連付けられている検出結果。これは一般的に、検出結果のタイプに基づいて、名前空間 Threat Detections および Unusual Behavior に合わせられます。推奨スコア: 40 ~ 69。これらの検出結果には、重大度ラベル Medium が表示されます。

  • 攻撃者がアクティブなデータの損失、漏洩、またはサービス拒否などの目標を達成したことに関連付けられている検出結果。これは一般的に、検出結果のタイプに基づいて Effects (効果) 名前空間に合わせられます。推奨スコア: 70 ~ 100。これらの検出結果には、重大度ラベル High または Critical が表示されます。

Security Hub では、正規化された重大度スコアは、次の変換表を使用して、数値形式と変換された重大度ラベルの両方で確認できます。Severity.Label を使用して洞察を管理する際に、Filters ステートメントと Group By ステートメントで重大度ラベルを使用できます。

重大度ラベル 重大度スコアの範囲
Informational 0
Low 1–39
Medium 40–69
High 70–89
Critical 90–100
Severity.Product いいえ

検出結果を生成した検出製品で定義されているネイティブの重大度。

タイプ: 数値 (単精度 32 ビット IEEE 754 浮動小数点数、有限値に制限)

SourceUrl いいえ

検出製品内の現在の検出結果に関するページにリンクする URL。

タイプ: URL

ThreatIntelIndicators いいえ

検出結果に関連する脅威インテリジェンスの詳細。

タイプ: 最大 5 個の脅威インテリジェンスインジケータオブジェクトの配列

例:

"ThreatIntelIndicators": [ { "Type": "IPV4_ADDRESS", "Value": "8.8.8.8", "Category": "BACKDOOR", "LastObservedAt": "2018-09-27T23:37:31Z", "Source": "Threat Intel Weekly", "SourceUrl": "http://threatintelweekly.org/backdoors/8888" } ]
ThreatIntelIndicators.Category いいえ

脅威インテリジェンスインジケータのカテゴリ。有効な値は BACKDOOR | CARD_STEALER | COMMAND_AND_CONTROL | DROP_SITE | EXPLOIT_SITE | KEYLOGGER です。

タイプ: enum

ThreatIntelIndicators.LastObservedAt いいえ

脅威インテリジェンスインジケータが最後に検出された日時。

タイプ: タイムスタンプ

ThreatIntelIndicators.Source いいえ

脅威インテリジェンスのソース。

タイプ: 文字列 (64 文字以内)

ThreatIntelIndicators.SourceUrl いいえ

脅威インテリジェンスのソースからの詳細情報の URL。

タイプ: URL

ThreatIntelIndicators.Type いいえ

脅威インテリジェンスインジケータのタイプ。有効な値は DOMAIN | EMAIL_ADDRESS | HASH_MD5 | HASH_SHA1 | HASH_SHA256 | HASH_SHA512 | IPV4_ADDRESS | IPV6_ADDRESS | MUTEX | PROCESS | URL です。

タイプ: enum

ThreatIntelIndicators.Value いいえ

脅威インテリジェンスインジケータの値。

タイプ: 文字列 (512 文字以内)

Title はい

検出結果のタイトル。このフィールドに指定できるのは、固有ではない共通のテキストまたは検出結果のこのインスタンスに固有の詳細です。

タイプ: 文字列 (256 文字以内)

Types はい

検出結果を分類する、namespace/category/classifier の形式の 1 つ以上の検出結果タイプ。

タイプ: 最大 50 個の文字列の配列

有効な名前空間値は Software and Configuration Checks | TTPs | Effects | Unusual Behaviors | Sensitive Data Identifications です。

  • 名前空間は、定義済みの名前空間値のセットに含まれる値である必要があります。

  • カテゴリはどのような値でも構いませんが、検出製品では AWS Security Finding のタイプ分類 の検出タイプの分類に含まれるカテゴリを使用することをお勧めします。

  • 分類子はどのような値でも構いませんが、可能であれば、公開された標準で定義されている識別子をそのまま FP で使用することをお勧めします。

名前空間はすべての検出結果タイプに必須ですが、カテゴリと分類子はオプションです。分類子を指定した場合は、カテゴリも指定する必要があります。'/' 文字は予約されているため、カテゴリや分類子に使用しないでください。'/' 文字のエスケープはサポートされていません。

例:

"Types": [ "Software and Configuration Checks/Vulnerabilities/CVE" ]
UpdatedAt はい

検出製品が最後に検出結果レコードを更新した日時を示す ISO 8601 形式のタイムスタンプ (RFC-3339 Date and Time on the Internet: Timestamps で定義)。このタイムスタンプは、検出結果レコードが最後に更新された時刻を反映するため、イベントまたは脆弱性が最後に検出された時刻を反映する LastObservedAt タイムスタンプとは異なる場合があります。

検出結果レコードを更新する際には、このタイムスタンプを現在のタイムスタンプに更新する必要があります。検出結果レコードの作成時には、CreatedAtUpdatedAt のタイムスタンプが同じタイムスタンプである必要があります。検出結果レコードを更新した後、このフィールドの値は、それに含まれていたすべての以前の値より大きい値である必要があります。

タイプ: タイムスタンプ

検出結果は、最新の更新から 90 日後、または更新が行われない場合は作成日から 90 日後に削除されます。検出結果を90 日間以上保存するには、検出結果を Amazon S3 バケットにルーティングする CloudWatch イベント でルールを設定できます。

UserDefinedFields いいえ

検出結果に関連付けられている名前と値の文字列のペアのリスト。これらは、検出結果に追加されるカスタムのユーザー定義フィールドです。これらのフィールドは、特定の設定によって自動的に生成されることがあります。検出製品では、このフィールドを製品で生成されるデータに使用しないでください。検出製品では ProductFields フィールドを、標準の AWS フィールドにマップされていないデータに使用できます。

タイプ: 最大 50 個のキー/値ペアのマップ

例:

"UserDefinedFields": { "reviewedByCio": "true", "comeBackToLater": "Check this again on Monday" }
VerificationState いいえ

結果の信憑性。検出製品は、このフィールドに値 UNKNOWN を設定できます。検出製品のシステムに有意のアナログが存在する場合、検出製品はこの値を設定する必要があります。このフィールドは一般的に、検出結果調査後のユーザーの決定またはアクションに従って入力されます。

タイプ: enum

有効な値は次のとおりです。

  • UNKNOWN – セキュリティ検出結果のデフォルトの処理 (ただし、ユーザーが変更していない場合)。

  • TRUE_POSITIVE – セキュリティの検出結果が確認された場合は、ユーザーがこの値を設定します。

  • FALSE_POSITIVE – セキュリティの検出結果が不正なアラームであると判別された場合は、ユーザーがこの値を設定します。

  • BENIGN_POSITIVE – ユーザーはこの値を TRUE_POSITIVE の特別なケースとして設定します。特別なケースとは、検出結果が脅威を提供しない、予期される、またはその両方が発生する場合です。

WorkflowState いいえ

検出結果のワークフローの状態。検出製品は、このフィールドに値 NEW を設定できます。検出製品のシステムに有意のアナログが存在する場合、検出製品はこのフィールドに値を設定できます。

タイプ: enum

有効な値は次のとおりです。

  • NEW – これは、レコード状態が Active である検出結果に関連付けることができます。これは、新しい検出結果のデフォルトのワークフロー状態です。

  • ASSIGNED – これは、レコード状態が Active である検出結果に関連付けることができます。検出結果が確認され、レビューまたは対処のために担当者に提供されました。

  • IN_PROGRESS – これは、レコード状態が Active である検出結果に関連付けることができます。チームメンバーがこの検出結果に対処中です。

  • RESOLVED – これは、レコード状態が Archive である検出結果に関連付けることができます。これは、その検出結果が再度発生する (ネイティブサービスによって更新される) 場合、またはこれに一致する新しい検出結果がある場合に、検出結果が新しいアクティブな検出結果として顧客に表示されるという点で、DEFERRED の検出結果と異なります。

  • DEFERRED – これは、レコード状態が Archive である検出結果に関連付けることができ、この検出結果に一致する追加の検出結果が、一定期間または無期限に表示されないことを意味します。顧客がその検出結果を適用可能と見なしていないか、またはその検出結果がアクティブなデータセットに含める必要のない既知の問題です。

  • DUPLICATE – これは、レコード状態が Archive である検出結果に関連付けることができ、その検出結果が別の検出結果と重複していることを意味します。

例:

"WorkflowState": "NEW"

AWS Security Finding のタイプ分類

Types パスの最初の 3 つのレベルについて説明します。最上位の項目は名前空間、2 番目のレベルの項目はカテゴリ、3 番目のレベルの項目 (Software and Configuration Checks の場合にのみ表示) は Classifiers です。

  • 名前空間

    • カテゴリ

      • 分類子

検出製品では分類子を定義できます。検出製品では部分パスを定義できることがあります。たとえば、TTP、TTPs/Defense Evasion、および TTPs/Defense Evasion/CloudTrailStopped はすべて有効な検出結果タイプです。

TTP は Tactics、Techniques、Procedures の略です。次のリストの TTP カテゴリは、MITRE ATT&CK MatrixTM に対応します。Unusual Behaviors は、一般的な異常な動作 (一般的な統計的異常など) を反映し、特定の TTP と一致しないため、TTP とは異なります。ただし、Unusual Behaviors と TTP の両方の検出結果タイプを持つ検出結果として分類できます。

  • Software and Configuration Checks

    • Vulnerabilities

      • CVE

    • AWS Security Best Practices

      • Network Reachability

      • Runtime Behavior Analysis

    • Industry and Regulatory Standards

      • CIS Host Hardening Benchmarks

      • CIS AWS Foundations Benchmark

      • PCI-DSS Controls

      • Cloud Security Alliance Controls

      • ISO 90001 Controls

      • ISO 27001 Controls

      • ISO 27017 Controls

      • ISO 27018 Controls

      • SOC 1

      • SOC 2

      • HIPAA Controls (USA)

      • NIST 800-53 Controls (USA)

      • NIST CSF Controls (USA)

      • IRAP Controls (Australia)

      • K-ISMS Controls (Korea)

      • MTCS Controls (Singapore)

      • FISC Controls (Japan)

      • My Number Act Controls (Japan)

      • ENS Controls (Spain)

      • Cyber Essentials Plus Controls (UK)

      • G-Cloud Controls (UK)

      • C5 Controls (Germany)

      • IT-Grundschutz Controls (Germany)

      • GDPR Controls (Europe)

      • TISAX Controls (Europe)

  • TTPs

    • Initial Access

    • Execution

    • Persistence

    • Privilege Escalation

    • Defense Evasion

    • Credential Access

    • Discovery

    • Lateral Movement

    • Collection

    • Command and Control

  • Effects

    • Data Exposure

    • Data Exfiltration

    • Data Destruction

    • Denial of Service

    • Resource Consumption

  • Unusual Behaviors

    • Application

    • Network Flow

    • IP address

    • User

    • VM

    • Container

    • Serverless

    • Process

    • Database

    • Data

  • Sensitive Data Identifications

    • PII

    • Passwords

    • Legal

    • Financial

    • Security

    • Business