AWS Elastic Load Balancing のログを収集する
このドキュメントでは、Google Security Operations フィードを設定して AWS Elastic Load Balancing ログを収集する方法について説明します。パーサーはログを UDM 形式に変換します。Grok パターンを使用して CEF 形式と CEF 以外の形式の両方のメッセージからフィールドを抽出し、UDM フィールドにマッピングします。HTTP、TLS、セキュリティ関連のフィールドに固有のロジックなど、さまざまなデータ変換を処理します。また、特定のフィールドの有無や形式に基づいて条件付き処理を行い、UDM で正確に表現できるようにします。
始める前に {: #before-you-begin }
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス
- AWS への特権アクセス
AWS Elastic Load Balancing を構成する
- アクセス ロギングを有効にして、アクセスログを S3 ストレージ バケットに送信する
- Amazon Simple Queue Service(SQS)を作成し、S3 ストレージ バケットに接続します。
Amazon S3 バケットを構成する
- AWS コンソールにログインします。
- バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
- 後で使用できるように、バケットの名前(
elb-logs
など)とリージョンを保存します。 - IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
- 作成した [ユーザー] を選択します。
- [セキュリティ認証情報] タブを選択します。
- [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
- [ユースケース] として [サードパーティ サービス] を選択します。
- [次へ] をクリックします。
- 省略可: 説明タグを追加します。
- [アクセスキーを作成] をクリックします。
- [CSV ファイルをダウンロード] をクリックして、[アクセスキー] と [シークレット アクセスキー] を保存し、後で使用できるようにします。
- [完了] をクリックします。
- [権限] タブを選択します。
- [権限ポリシー] セクションで、[権限を追加] をクリックします。
- [権限を追加] を選択します。
- [ポリシーを直接アタッチする] を選択します。
- AmazonS3FullAccess ポリシーを検索して選択します。
- [次へ] をクリックします。
- [権限を追加] をクリックします。
AWS Elastic Load Balancer でアクセスログを有効にする方法
- AWS Management Console にログインします。
- EC2 を検索して選択します。
- ナビゲーション メニューで [ロードバランサ] を選択します。
- ロギングを有効にするロードバランサを選択します。
- [説明] タブで、[属性] までスクロールします。
- [属性を編集] をクリックします。
- [有効にする] を選択して、アクセスログを有効にします。
- 先ほど作成した S3 バケット(例:
elb-logs
)を選択します。 - 省略可: ログを簡単に識別できるように、ログ接頭辞を設定します(例:
elb/access-logs/
)。 - [保存] をクリックします。
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード]
- [Content Hub] > [Content Packs]
[SIEM 設定] > [フィード] でフィードを設定する
このプロダクト ファミリー内で異なるログタイプに対して複数のフィードを構成するには、プロダクトごとにフィードを構成するをご覧ください。
1 つのフィードを設定する手順は次のとおりです。
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで、[単一フィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: AWS Elastic Load Balancer Logs)。
- [ソースタイプ] として [Amazon S3] を選択します。
- [Log type] で [AWS Elastic Load Balancer] を選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
- リージョン: Amazon S3 バケットが配置されているリージョン。
- S3 URI: バケット URI。
s3:/BUCKET_NAME
BUCKET_NAME
は、実際の S3 バケットの名前に置き換えます。
- URI is a: ログストリームの構成([単一ファイル] | [ディレクトリ] | [サブディレクトリを含むディレクトリ])に応じて URI タイプを選択します。
- Source deletion options: 取り込みの設定に応じて削除オプションを選択します。
アクセスキー ID: S3 バケットから読み取る権限を持つユーザーのアクセスキー。
シークレット アクセスキー: S3 バケットから読み取る権限を持つユーザーのシークレット キー。
アセットの名前空間: アセットの名前空間。
Ingestion labels: このフィードのイベントに適用されるラベル。
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
コンテンツ ハブからフィードを設定する
次のフィールドに値を指定します。
- リージョン: Amazon S3 バケットが配置されているリージョン。
- S3 URI: バケット URI。
s3:/BUCKET_NAME
BUCKET_NAME
は、実際の S3 バケットの名前に置き換えます。
- URI is a: ログストリームの構成([単一ファイル] | [ディレクトリ] | [サブディレクトリを含むディレクトリ])に応じて URI タイプを選択します。
- Source deletion options: 取り込みの設定に応じて削除オプションを選択します。
アクセスキー ID: S3 バケットから読み取る権限を持つユーザーのアクセスキー。
シークレット アクセスキー: S3 バケットから読み取る権限を持つユーザーのシークレット キー。
詳細オプション
- フィード名: フィードを識別する事前入力された値。
- ソースタイプ: Google SecOps にログを収集するために使用される方法。
- Asset Namespace: フィードに関連付けられた名前空間。
- Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
actions_executed |
security_result.action |
actions_executed が「waf,forward」または「waf,redirect」の場合は、「ALLOW」に設定します。actions_executed が「waf」の場合は、「BLOCK」に設定します。 |
chosen_cert_arn |
principal.user.attribute.labels |
chosen_cert_arn に「session」が含まれている場合は、その値を security_result.description にマッピングします。それ以外の場合は、キーが「ARN」、値が chosen_cert_arn のラベルを作成し、principal.user.attribute.labels 配列に追加します。 |
chosen_cert_arn |
security_result.description |
chosen_cert_arn に「session」が含まれている場合は、その値をこのフィールドにマッピングします。 |
client_ip |
principal.asset.ip |
直接マッピングされます。 |
client_ip |
principal.ip |
直接マッピングされます。 |
client_port |
principal.port |
直接マッピングされます。 |
classification |
security_result.rule_name |
空でないか「-」でない場合、直接マッピングされます。 |
classification_reason |
security_result.summary |
空でないか「-」でない場合、直接マッピングされます。 |
Customer (CEF) |
principal.user.user_display_name |
CEF フィールドから直接マッピングされます。 |
data |
各種 | Grok パターンを使用して解析され、複数のフィールドが抽出されます。特定のマッピングについては、他の行をご覧ください。 |
data.act (CEF) |
security_result.action_details |
CEF フィールドから直接マッピングされます。 |
data.app (CEF) |
principal.application |
CEF フィールドから直接マッピングされます。 |
data.ccode (CEF) |
principal.location.country |
CEF フィールドから直接マッピングされます。 |
data.cicode (CEF) |
principal.location.city |
CEF フィールドから直接マッピングされます。 |
data.cn1 (CEF) |
network.http.response_code |
CEF フィールドから直接マッピングされます。 |
data.cpt (CEF) |
principal.port |
CEF フィールドから直接マッピングされます。 |
data.cs1Label (CEF) |
additional.fields |
キー「Cap Support」と cs1Label の値を含む Key-Value ペアを作成します。 |
data.cs2Label (CEF) |
additional.fields |
キー「Javascript Support」と cs2Label の値で Key-Value ペアを作成します。 |
data.cs3Label (CEF) |
additional.fields |
キー「CO Support」と cs3Label の値を含む Key-Value ペアを作成します。 |
data.cs4Label (CEF) |
additional.fields |
キー「VID」と cs4Label の値を含む Key-Value ペアを作成します。 |
data.cs5Label (CEF) |
additional.fields |
キー「clappsig」と cs5Label の値を含む Key-Value ペアを作成します。 |
data.cs6Label (CEF) |
additional.fields |
キー「clapp」と cs6Label の値を含む Key-Value ペアを作成します。 |
data.cs7Label (CEF) |
additional.fields |
キー「latitude」と cs7Label の値を含む Key-Value ペアを作成します。 |
data.deviceExternalId (CEF) |
about.asset.asset_id |
アセット ID の一部として使用されます: Incapsula.SIEMintegration:deviceExternalId 。 |
data.deviceFacility (CEF) |
principal.location.region |
CEF フィールドから直接マッピングされます。 |
data.dproc (CEF) |
target.process.command_line |
CEF フィールドから直接マッピングされます。 |
data.dst_ip |
target.asset.ip |
直接マッピングされます。 |
data.dst_ip |
target.ip |
直接マッピングされます。 |
data.dst_port |
target.port |
直接マッピングされます。 |
data.elb |
target.resource.id |
直接マッピングされます。 |
data.fileId (CEF) |
security_result.detection_fields |
キー「fileId」と fileId の値を含む Key-Value ペアを作成します。 |
data.in (CEF) |
network.received_bytes |
CEF フィールドから直接マッピングされます。 |
data.request (CEF) |
target.url |
CEF フィールドから直接マッピングされます。 |
data.requestClientApplication (CEF) |
network.http.user_agent |
CEF フィールドから直接マッピングされます。 |
data.requestMethod (CEF) |
network.http.method |
CEF フィールドから直接マッピングされます。 |
data.severity (CEF) |
security_result.severity |
重大度が 0 の場合は LOW にマッピングされます。 |
data.sip (CEF) |
principal.asset.ip |
CEF フィールドから直接マッピングされます。 |
data.sip (CEF) |
principal.ip |
CEF フィールドから直接マッピングされます。 |
data.siteid (CEF) |
security_result.detection_fields |
キー「siteid」と siteid の値で Key-Value ペアを作成します。 |
data.sourceServiceName (CEF) |
principal.application |
CEF フィールドから直接マッピングされます。 |
data.spt (CEF) |
principal.port |
CEF フィールドから直接マッピングされます。 |
data.src (CEF) |
principal.ip |
CEF フィールドから直接マッピングされます。 |
data.suid (CEF) |
principal.user.userid |
CEF フィールドから直接マッピングされます。 |
data.ver (CEF) |
network.tls.version |
バージョン部分は Grok を使用して抽出され、マッピングされます。 |
data.ver (CEF) |
network.tls.cipher |
暗号部分は Grok を使用して抽出され、マッピングされます。 |
data.xff (CEF) |
principal.ip |
CEF フィールドから直接マッピングされます。 |
domain_name |
principal.administrative_domain |
直接マッピングされます。 |
http_method |
network.http.method |
直接マッピングされます。 |
log_type |
metadata.log_type |
直接マッピングされます。 |
message |
各種 | Grok パターンを使用して解析され、複数のフィールドが抽出されます。特定のマッピングについては、他の行をご覧ください。 |
received_bytes |
network.received_bytes |
直接マッピングされます。 |
redirect_url |
network.application_protocol |
redirect_url が「http」で始まる場合、プロトコルが抽出されてマッピングされます。 |
redirect_url |
target.asset.hostname |
redirect_url が「http」で始まる場合、ホスト名が抽出されてマッピングされます。 |
redirect_url |
target.hostname |
redirect_url が「http」で始まる場合、ホスト名が抽出されてマッピングされます。 |
redirect_url |
target.port |
redirect_url が「http」で始まる場合、ポートが抽出されてマッピングされます。 |
request_creation_time |
metadata.collected_timestamp |
日付の解析後に直接マッピングされます。 |
request_processing_time |
security_result.detection_fields |
キー「request_processing_time」とこのフィールドの値で Key-Value ペアを作成します。 |
response_processing_time |
security_result.detection_fields |
キー「response_processing_time」とこのフィールドの値で Key-Value ペアを作成します。 |
sent_bytes |
network.sent_bytes |
直接マッピングされます。 |
ssl_cipher |
network.tls.cipher |
直接マッピングされます。 |
ssl_protocol |
network.tls.version |
直接マッピングされます。 |
target_group_arn |
target.group.group_display_name |
直接マッピングされます。 |
target_processing_time |
security_result.detection_fields |
キー「target_processing_time」とこのフィールドの値で Key-Value ペアを作成します。 |
target_status_code |
target.labels |
キー「target_status_code」とこのフィールドの値でラベルを作成し、target.labels 配列に追加します。 |
time |
metadata.event_timestamp |
日付の解析後に直接マッピングされます。 |
trace_id |
metadata.product_log_id |
「Root=」を削除した後、直接マッピングされます。 |
url |
network.http.referral_url |
直接マッピングされます。 |
user_agent |
network.http.user_agent |
直接マッピングされます。 |
(パーサー) | metadata.event_type |
プリンシパルとターゲット マシンの ID が存在する場合は「NETWORK_HTTP」に設定します。プリンシパル マシンの ID のみが存在する場合は「STATUS_UPDATE」に設定します。ターゲット IP、ホスト名、宛先 IP が存在しない場合は「GENERIC_EVENT」に設定します。それ以外の場合は「NETWORK_HTTP」に設定します。 |
(パーサー) | metadata.product_name |
「AWS Elastic Load Balancer」に設定します。 |
(パーサー) | metadata.vendor_name |
「AMAZON」に設定します。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。