AWS Inspector のログを収集する
パーサーのバージョン: 1.0
このドキュメントでは、Amazon S3 を使用して AWS Inspector ログを Google Security Operations に取り込む方法について説明します。
Amazon Inspector は、ワークロードを自動的に検出して、ソフトウェアの脆弱性や意図しないネットワークへの露出を継続的にスキャンする脆弱性管理サービスです。Amazon EC2 インスタンス、Amazon ECR のコンテナ イメージ、AWS Lambda 関数をスキャンし、重大度スコアと修正の推奨事項を含む詳細な結果を生成します。この統合では、Amazon Inspector の組み込みの検出結果エクスポート機能を使用して、JSON 形式の検出結果レポートを S3 バケットに配信します。Google SecOps は、Amazon S3 V2 フィードを使用してこのレポートを取り込みます。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- 次の管理権限を持つ AWS Management Console への特権アクセス権:
- Amazon Inspector(検出結果、レポート)
- Amazon S3(バケット、バケット ポリシー)
- AWS KMS(鍵ポリシー)
- AWS IAM(ロール、ポリシー、ユーザー)
Amazon Inspector の検出結果のエクスポート用に S3 バケットを構成する
Amazon Inspector は、検出結果レポートを AWS KMS 鍵で暗号化してから S3 バケットに保存します。Amazon Inspector のアクセスを許可するには、S3 バケット ポリシーと KMS 鍵ポリシーの両方を構成する必要があります。
S3 バケットを作成して構成する
- バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
バケットの名前とリージョンを保存して、後で参照できるようにします(例:
inspector-findings-to-secops)。https://console.aws.amazon.com/s3 の Amazon S3 コンソールで、作成したバケットを選択します。
[権限] タブを選択します。
[バケット ポリシー] セクションで、[編集] をクリックします。
バケット ポリシーに次のステートメントを追加します(
inspector-findings-to-secopsはバケット名、111122223333は AWS アカウント ID、us-east-1は AWS リージョンに置き換えます)。{ "Version": "2012-10-17", "Statement": [ { "Sid": "allow-inspector", "Effect": "Allow", "Principal": { "Service": "inspector2.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::inspector-findings-to-secops/*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:inspector2:us-east-1:111122223333:report/*" } } } ] }[変更を保存] をクリックします。
AWS KMS 鍵を構成する
Amazon Inspector では、検出結果レポートを暗号化するために、S3 バケットと同じリージョンに顧客管理の対称暗号化 AWS KMS 鍵が必要です。
- https://console.aws.amazon.com/kms で AWS KMS コンソールを開きます。
- ナビゲーション パネルで [顧客管理鍵] を選択します。
- 使用する KMS 鍵を選択します(または、新しい対称暗号鍵を作成します)。
- [キーポリシー] タブを選択し、[編集] をクリックします。
次のステートメントをキーポリシーに追加します(
111122223333は AWS アカウント ID に、us-east-1は AWS リージョンに置き換えます)。{ "Sid": "Allow Amazon Inspector to use the key", "Effect": "Allow", "Principal": { "Service": "inspector2.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:inspector2:us-east-1:111122223333:report/*" } } }[変更を保存] をクリックします。
Amazon Inspector の検出結果を S3 にエクスポートする
- https://console.aws.amazon.com/inspector/v2/home で Amazon Inspector コンソールにログインします。
- ナビゲーション パネルで、[検出結果] > [すべての検出結果] に移動します。
省略可: [検出結果] テーブルの上にあるフィルタバーを使用して、レポートに含める検出結果を指定します。
[検出結果をエクスポート] をクリックします。
[エクスポート設定] セクションの [エクスポート ファイル形式] で、[JSON] を選択します。
[Export location] の [S3 URI] で、[Browse S3] をクリックし、S3 バケット
inspector-findings-to-secopsを選択します。[KMS key] で、構成した AWS KMS 鍵を選択します。
[エクスポート] をクリックします。
AWS CLI を使用して検出結果のエクスポートを自動化する
検出結果レポートを定期的にエクスポートするには、AWS CLI create-findings-report コマンドを使用します。このコマンドは、Amazon EventBridge Scheduler または cron ジョブを使用してスケジュールできます。
コマンドの例:
aws inspector2 create-findings-report \ --report-format JSON \ --s3-destination bucketName=inspector-findings-to-secops,keyPrefix=findings/,kmsKeyArn=arn:aws:kms:us-east-1:111122223333:key/your-kms-key-id
詳細については、create-findings-report AWS CLI リファレンスをご覧ください。
Google SecOps 用に IAM ユーザーを構成する
Google SecOps は、エクスポートされた結果を取り込むために、S3 バケットに対する読み取りアクセス権を持つ IAM ユーザーを必要とします。
- IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
- 作成したユーザーを選択します。
- [セキュリティ認証情報] タブを選択します。
- [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
- [ユースケース] として [サードパーティ サービス] を選択します。
- [Next] をクリックします。
- 省略可: 説明タグを追加します。
- [アクセスキーを作成] をクリックします。
- [.csv ファイルをダウンロード] をクリックして、[アクセスキー] と [シークレット アクセスキー] を保存し、今後の参照に備えます。
- [完了] をクリックします。
- [権限] タブを選択します。
- [権限ポリシー] セクションで [権限を追加] をクリックします。
- [権限を追加] を選択します。
- [ポリシーを直接アタッチする] を選択します。
- AmazonS3FullAccess ポリシーを検索します。
- ポリシーを選択します。
- [次へ] をクリックします。
- [権限を追加] をクリックします。
AWS Inspector のログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで、[単一のフィードを設定] をクリックします。
- [Feed name] に一意の名前を入力します。
- [ソースタイプ] として [Amazon S3 V2] を選択します。
- [Log type] で [AWS Inspector] を選択します。
- [次へ] をクリックしてから、[送信] をクリックします。
次のフィールドに値を指定します。
- S3 URI:
s3://inspector-findings-to-secops/findings/ - Source deletion option: 必要に応じて削除オプションを選択します。
- ファイルの最大経過日数: 過去の日数以内に変更されたファイルを含めます(デフォルトは 180 日)。
- アクセスキー ID: S3 バケットにアクセスできるユーザー アクセスキー
- シークレット アクセスキー: S3 バケットにアクセスできるユーザーのシークレット キー
- アセットの名前空間: アセットの名前空間
- Ingestion labels: このフィードのイベントに適用されるラベル
- S3 URI:
[次へ] をクリックしてから、[送信] をクリックします。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
duration_ms_label |
additional.fields |
統合済み |
evnt_app_class_label |
additional.fields |
統合済み |
evnt_cloud_application_class_label |
additional.fields |
統合済み |
evnt_cloud_sandbox_md5_label |
additional.fields |
統合済み |
evnt_cloudapp_rule_label |
additional.fields |
統合済み |
evnt_content_type_label |
additional.fields |
統合済み |
evnt_customer_label |
additional.fields |
統合済み |
evnt_department_label |
additional.fields |
統合済み |
evnt_location_label |
additional.fields |
統合済み |
evnt_lpclagg_label |
additional.fields |
統合済み |
evnt_lpcltype_label |
additional.fields |
統合済み |
evnt_network_service_label |
additional.fields |
統合済み |
evnt_tenant_label |
additional.fields |
統合済み |
evnt_url_category_label |
additional.fields |
統合済み |
exception_label |
additional.fields |
統合済み |
function_label |
additional.fields |
統合済み |
id_label |
additional.fields |
統合済み |
level_no_label |
additional.fields |
統合済み |
line_label |
additional.fields |
統合済み |
location_label |
additional.fields |
統合済み |
logger_field |
additional.fields |
統合済み |
msg_location_label |
additional.fields |
統合済み |
msg_record_functionName_label |
additional.fields |
統合済み |
msg_record_functionVersion_label |
additional.fields |
統合済み |
msg_record_initializationType_label |
additional.fields |
統合済み |
msg_record_instancId_label |
additional.fields |
統合済み |
msg_record_instanceMaxMemory_label |
additional.fields |
統合済み |
msg_record_phase_label |
additional.fields |
統合済み |
msg_service_label |
additional.fields |
統合済み |
msg_type_label |
additional.fields |
統合済み |
msg_xray_trace_id_label |
additional.fields |
統合済み |
protocol_label |
additional.fields |
統合済み |
record_version_label |
additional.fields |
統合済み |
repr_label |
additional.fields |
統合済み |
service_label |
additional.fields |
統合済み |
sourcetype_label |
additional.fields |
統合済み |
thread_name_label |
additional.fields |
統合済み |
type_label |
additional.fields |
統合済み |
xray_trace_id_label |
additional.fields |
統合済み |
evnt_device_hostname |
intermediary.hostname |
直接マッピングされます。 |
evnt_fwd_method_label |
intermediary.resource.attribute.labels |
統合済み |
desc_msg |
metadata.description |
直接マッピングされます。 |
message |
metadata.description |
直接マッピングされます。 |
msg |
metadata.description |
直接マッピングされます。 |
msg_desc_msg |
metadata.description |
直接マッピングされます。 |
msg_record_desc_msg |
metadata.description |
直接マッピングされます。 |
msg_text |
metadata.description |
直接マッピングされます。 |
msg.time |
metadata.event_timestamp |
ISO8601 として解析 |
repr_time |
metadata.event_timestamp |
ISO8601 として解析済み |
timestamp |
metadata.event_timestamp |
ISO8601 として解析 |
has_host |
metadata.event_type |
マッピング済み: true → STATUS_UPDATE |
has_user |
metadata.event_type |
マッピング済み: true → USER_COMMUNICATION、true → USER_UNCATEGORIZED |
msg_record_module |
metadata.product_event_type |
直接マッピングされます。 |
id_1 |
metadata.product_log_id |
直接マッピングされます。 |
evnt_bytes_in |
network.received_bytes |
直接マッピングされます。 |
evnt_bytes_out |
network.sent_bytes |
直接マッピングされます。 |
evnt_app_name |
principal.application |
直接マッピングされます。 |
msg_record_process_name |
principal.application |
直接マッピングされます。 |
evnt_device_app_version_label |
principal.asset.attribute.labels |
統合済み |
evnt_ssl_policy_label |
principal.asset.attribute.labels |
統合済み |
evnt_server_ip |
principal.asset.ip |
統合済み |
evnt_src_ip |
principal.asset.ip |
統合済み |
evnt_src_translated_ip |
principal.asset.ip |
統合済み |
msg_record_file_path |
principal.file.full_path |
直接マッピングされます。 |
msg_record_file_name |
principal.file.names |
統合済み |
evnt_hostname |
principal.hostname |
直接マッピングされます。 |
host |
principal.hostname |
直接マッピングされます。 |
evnt_server_ip |
principal.ip |
統合済み |
evnt_src_ip |
principal.ip |
統合済み |
evnt_src_translated_ip |
principal.ip |
統合済み |
evnt_os |
principal.platform |
マッピング: Windows → WINDOWS、Linux → LINUX |
evnt_src_port |
principal.port |
直接マッピングされます。 |
port_number |
principal.port |
直接マッピングされます。 |
msg_record_process_id |
principal.process.pid |
直接マッピングされます。 |
cmd_status_label |
principal.resource.attribute.labels |
統合済み |
evnt_format_label |
principal.resource.attribute.labels |
統合済み |
evnt_os_label |
principal.resource.attribute.labels |
統合済み |
msg_record_runtimeVersionArn_label |
principal.resource.attribute.labels |
統合済み |
msg_record_runtimeVersion_label |
principal.resource.attribute.labels |
統合済み |
record_requestId_labels |
principal.resource.attribute.labels |
統合済み |
requestId_labels |
principal.resource.attribute.labels |
統合済み |
msg_record_name |
principal.resource.name |
直接マッピングされます。 |
id |
principal.resource.product_object_id |
直接マッピングされます。 |
evnt_url |
principal.url |
直接マッピングされます。 |
evnt_device_owner |
principal.user.user_display_name |
直接マッピングされます。 |
evnt_user |
principal.user.userid |
直接マッピングされます。 |
msg_extra_desc_msg_body_account_id |
principal.user.userid |
直接マッピングされます。 |
evnt_action |
security_result.action |
マッピング: allow → security_result_action |
security_result_action |
security_result.action |
統合済み |
security_result_category_details |
security_result.category_details |
統合済み |
security_result_url_super_category |
security_result.category_details |
統合済み |
elapsed_time_label |
security_result.detection_fields |
統合済み |
evnt_session_count_label |
security_result.detection_fields |
統合済み |
evnt_ssl_decrypted_label |
security_result.detection_fields |
統合済み |
evnt_url_class_label |
security_result.detection_fields |
統合済み |
level_icon_label |
security_result.detection_fields |
統合済み |
level |
security_result.severity |
マッピング: INFO → INFORMATIONAL、WARNING → MEDIUM |
msg_level |
security_result.severity |
マッピング: INFO → INFORMATIONAL、WARNING → MEDIUM |
evnt_dest_ip |
target.ip |
統合済み |
evnt_dest_country |
target.location.country_or_region |
直接マッピングされます。 |
evnt_dest_port |
target.port |
直接マッピングされます。 |
dst_url |
target.url |
直接マッピングされます。 |
| なし | metadata.event_type |
定数: USER_COMMUNICATION |
| なし | metadata.product_name |
定数: AWS Inspector |
| なし | metadata.vendor_name |
定数: AWS Inspector |
| なし | network.ip_protocol |
定数: UDP |
| なし | principal.platform |
定数: WINDOWS |
| なし | security_result.detection_fields |
定数: client_tunnel_ip_label |
| なし | security_result.severity |
定数: INFORMATIONAL |
変更ログ
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。