Akamai DNS ログを収集する
このパーサーは Akamai DNS ログを処理します。タイムスタンプ、送信元 IP とポート、クエリ、DNS レコードの種類、レスポンスの詳細などのフィールドを抽出します。次に、これらのフィールドを UDM にマッピングし、さまざまな DNS レコードタイプと潜在的な SPF レコードを処理します。パーサーは、プリンシパル情報の有無に基づいて、イベントを NETWORK_DNS
または GENERIC_EVENT
に分類します。
始める前に
- Google SecOps インスタンスがあることを確認します。
- AWS IAM と S3 への特権アクセス権があることを確認します。
- Akamai アカウントが Log Delivery Service にアクセスできることを確認します。
Amazon S3 バケットを構成する
- バケットの作成のユーザーガイドに沿って、Amazon S3 バケットを作成します。
- バケットの名前とリージョンを保存して、後で参照できるようにします。
- IAM ユーザーの作成のユーザーガイドに沿って、ユーザーを作成します。
- 作成したユーザーを選択します。
- [セキュリティ認証情報] タブを選択します。
- [アクセスキー] セクションで [アクセスキーを作成] をクリックします。
- [ユースケース] として [サードパーティ サービス] を選択します。
- [次へ] をクリックします。
- 省略可: 説明タグを追加します。
- [アクセスキーを作成] をクリックします。
- [.csv ファイルをダウンロード] をクリックし、[アクセスキー] と [シークレット アクセスキー] を保存して、今後の参照に備えます。
- [完了] をクリックします。
- [権限] タブを選択します。
- [権限ポリシー] セクションで [権限を追加] をクリックします。
- [権限を追加] を選択します。
- [ポリシーを直接アタッチする] を選択します。
- AmazonS3FullAccess ポリシーを検索して選択します。
- [次へ] をクリックします。
- [権限を追加] をクリックします。
Akamai でログ配信サービスを構成する
- Akamai コントロール センターにログインします。
- [データ サービス] の [ログ配信サービス] に移動します。
- [新しい構成を追加] をクリックします。
- [構成名] フィールドに、構成の名前を指定します(例: Edge DNS Logs to S3)。
- [ログソース] として [Edge DNS] を選択します。
- [配信先] として [AWS S3] を選択します。
- 以下の詳細を入力します。
- バケット名: S3 バケットの名前。
- リージョン: バケットがホストされている AWS リージョン。
- アクセスキー ID: IAM ユーザーのアクセスキー ID。
- シークレット アクセスキー: IAM ユーザーのシークレット アクセスキー。
- 省略可: ディレクトリ構造を指定します。(例:
logs/akamai-dns/YYYY/MM/DD/HH/
)。 - 省略可: ファイル名の規則を設定します。(例:
edge-dns-logs-{timestamp}.log
)。
- 含めるログ形式を選択します。
- DNS クエリ
- DNS レスポンス
- [配信頻度] を選択します。
- オプションには、1 時間ごと、1 日ごと、特定のファイルサイズ(100 MB など)に達したときなどがあります。
- 省略可: [フィルタを追加] をクリックして、特定の条件(ホスト名やレコードタイプなど)に基づいて特定のログを含めるか、除外します。
- 構成の詳細を確認し、[保存して有効にする] をクリックします。
Akamai DNS ログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [新しく追加] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Akamai DNS Logs)。
- [ソースタイプ] として [Amazon S3] を選択します。
- [ログタイプ] として [Akamai DNS] を選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
- リージョン: Amazon S3 バケットが配置されているリージョン。
S3 URI: バケットの URI。
s3://BUCKET_NAME
以下を置き換えます。
- BUCKET_NAME: バケットの名前。
URI is a: ログストリームの構成([単一ファイル] | [ディレクトリ] | [サブディレクトリを含むディレクトリ])に応じて
URI_TYPE
を選択します。ソース削除オプション: 必要に応じて削除オプションを選択します。
アクセスキー ID: s3 バケットにアクセスできるユーザー アクセスキー。
シークレット アクセスキー: s3 バケットにアクセスできるユーザーのシークレット キー。
アセットの名前空間: アセットの名前空間。
取り込みラベル: このフィードのイベントに適用されるラベル。
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | 論理 |
---|---|---|
クラス | read_only_udm.network.dns.questions.class |
クラスが「IN」の場合は 1 に設定します。それ以外の場合は、符号なし整数への変換を試みます。 |
column11 | read_only_udm.target.hostname |
ホスト名が含まれ、特定のパターン(「ip4」、「="」、「.net」、「10 mx0」など)が含まれていない場合は、マッピングされます。また、さまざまなパターンに基づいて IP アドレス、メールアドレス、DNS 認証局データを抽出するためにも使用されます。 |
column11 | read_only_udm.target.ip |
SPF レコード内の IP アドレスのパターンと一致する場合は、column11 から抽出されます。 |
column11 | read_only_udm.target.user.email_addresses |
DMARC レコード内のメールアドレスのパターンと一致する場合は、column11 から抽出されます。 |
column11 | read_only_udm.network.dns.authority.data |
さまざまなレコードタイプ内のドメイン名のパターンと一致する場合は、column11 から抽出されます。 |
column11 | read_only_udm.network.dns.response_code |
column11 に「NXDOMAIN」が含まれている場合は 3 に設定します。 |
column2 | read_only_udm.principal.ip |
有効な IP アドレスの場合にマッピングされます。 |
column3 | read_only_udm.principal.port |
有効な整数の場合にマッピングされます。 |
column4 | read_only_udm.network.dns.questions.name |
直接マッピングされます。 |
column6 | read_only_udm.network.dns.questions.type |
type の値に基づいてマッピングされ、条件ロジックを使用して対応する数値が割り当てられます。 |
column8 | read_only_udm.network.sent_bytes |
符号なし整数に変換され、マッピングされます。 |
read_only_udm.metadata.event_timestamp |
column1 から抽出されたdate フィールドと time フィールドから作成されます。 | |
read_only_udm.event_type |
principal.ip が存在する場合は NETWORK_DNS に設定し、存在しない場合は GENERIC_EVENT に設定します。 |
|
read_only_udm.product_name |
AKAMAI_DNS にハードコードされています。 | |
read_only_udm.vendor_name |
AKAMAI_DNS にハードコードされています。 | |
read_only_udm.dataset |
AKAMAI_DNS にハードコードされています。 | |
read_only_udm.event_subtype |
DNS にハードコードされています。 |
変更
2024-05-28
- バグの修正: ログ メッセージから二重引用符を削除する
gsub
関数を追加しました。 - マッピング前に IP アドレスとポート値を検証するための Grok パターンを追加しました。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps の専門家から回答を得る。