LoginSignup
1
3

More than 1 year has passed since last update.

Route53 クエリログの監視

Last updated at Posted at 2021-06-27

 こんにちは。弁護士ドットコム SRE 室のテイです。

 前回は、Amazon Route 53 Resolver DNS Firewall の検証を紹介しましたが、今回はブロック対象のドメインへアクセスすることが検知され、Slack へ通知する監視設定を紹介させていただきます。

Route53 クエリログの設定

 まず、クエリログを有効するよう設定します。
 Route53 のコンソール画面で、「クエリのログ記録」→「クエリログ記録の設定」の順でクリックして、設定名を記入します。
スクリーンショット 2021-06-11 15.02.17.png

 次はクエリログの転送先を設定します。今回は Lambda 関数を利用して、Cloudwatch Logs のログを datadog へ転送するため、クエリログの転送先を Cloudwatch Logs を選択します。「Create log group」を選択して、グループの名前を記入します。
スクリーンショット 2021-06-11 15.02.26.png

 次は「VPC を追加」ボタンをクリックして、記録したい VPC を追加します。
スクリーンショット 2021-06-11 15.02.51.png

 最後、「クエリログの設定」ボタンをクリックして、設定を反映します。反映した後、JSON 形式のクエリログが記録されました。
名称未設定.png

Lambda でログ転送

 クエリログの記録設定が完了した後、Lambda 関数で Datadog への転送設定を実施します。
 本記事は Lambda 関数が作成済の前提として紹介しますので、作成方法や IAM ロールの作成などを割愛させていただきます。

 作成済の Lambda 関数に下記のように、クエリログの Cloudwatch Log group を選択して、トリガーを設定します。
スクリーンショット 2021-06-23 12.31.27.png

 すべてのクエリログを Datadog へ転送するのは無駄なので、DNS FireWall のアラートモードやブロックモードで検知されたログのみ、Datadog へ転送するようフォルターをかけます。
 前回 DNS FireWall を動作確認した時のログは以下の JSON 形式となるため、フォルターパターンは { $.firewall_rule_action = "ALERT" || $.firewall_rule_action = "BLOCK" } となります。

{
    "version": "1.100000",
    "account_id": "54**********",
    "region": "ap-northeast-1",
    "vpc_id": "vpc-0172***********",
    "query_timestamp": "2021-06-11T06:17:16Z",
    "query_name": "www.google.co.jp.",
    "query_type": "A",
    "query_class": "IN",
    "rcode": "NOERROR",
    "answers": [],
    "srcaddr": "10.50.**.**",
    "srcport": "51923",
    "transport": "UDP",
    "srcids": {
        "instance": "i-012b2************"
    },
    "firewall_rule_action": "BLOCK",
    "firewall_rule_group_id": "rslvr-frg-d78************",
    "firewall_domain_list_id": "rslvr-fdl-de2e************"
}

監視設定

 Datadog で route53 のクエリログを収集するため、AWS インテグレーションで、route53 をチェックする必要があります。収集されたログを Log Explorer で確認できます。
 また、監視や閲覧がわかりやすくするため、「QUESTION NAME」と「FIREWALL_RULE_ACTION」を facet として、登録しました。
スクリーンショット 2021-06-23 14.48.29.png

 ログを監視するため、Logs タイプの Monitor を選択します。
スクリーンショット 2021-06-23 16.37.39.png

 検索クエリでは service:route53@firewall_rule_action:ALERT を入れます。当社はアラートモードで運用しているため、ALERTのアクションのみ条件として設定されています。
 また、通知メッセージには検知されたドメイン名も表示させるため、Question Name でグループ化します。
スクリーンショット 2021-06-23 16.28.11.png

 次はアラート条件を設定します。
スクリーンショット 2021-06-23 16.28.23.png

 最後、メッセージの文言と通知する Slack のチャンネルを設定します。
 ログもメッセージと一緒に Slack へ送らせるため、Include a table of the top 10 breaching values をチェックします。
スクリーンショット 2021-06-23 16.30.18.png

 実際にアラートモードで対象ドメインへアクセスして、検知された時の通知結果はこちらです。
スクリーンショット 2021-06-23 16.34.48.png

 以上、DNS Firewall のクエリログの監視設定を紹介させていただきました。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3