mcpField
A
alibabacloud-ddoscoo-intercept-query

alibabacloud-ddoscoo-intercept-query

github.com/aliyunセキュリティ28196 回インストール1 日前に更新
リポジトリ

alibabacloud-ddoscoo-intercept-query について

Alibaba Cloud の DDoS Pro によるブロックを、SLS のフルログから調査するエージェントスキルです。Request ID による検索やルール分析を行い、推奨事項を含むレポートを作成します。

主な機能

  1. 01DDoS Pro インスタンスとドメインの検出
  2. 02SLS とフルログ設定の確認
  3. 03Request ID によるブロックログ検索
  4. 04ルール分析とレポート作成
  5. 05ログ内の機密データのマスキング

活用シーン

  1. 01DDoS Pro のブロックページの調査
  2. 02Request ID を使ったリクエストの追跡
  3. 03フルログが有効かどうかの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aliyun/alibabacloud-aiops-skills --skill alibabacloud-ddoscoo-intercept-query

インストール後、Claude Code で/alibabacloud-ddoscoo-intercept-queryを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
acceptance-criteria.md
cli-installation-guide.md
common-block-reasons.md
domain-security-policy.md
ram-policies.md
related-commands.md
rule-config-details.md
rule-operations.md
verification-method.md
scripts/
get_ddos_logs.py

詳細

DDoS Pro(Anti-DDoS Pro)インターセプトのクエリ

シナリオの説明

SLS のフルログと ddoscoo CLI コマンドを使用して、DDoS Pro(ddoscoo)のブロック/インターセプトイベントをクエリして分析します。ユーザーから DDoS Pro によってブロックされたと報告された場合や、ブロックページが表示された場合、このスキルは DDoS インスタンスを検出し、フルログの設定を確認して、Request ID で SLS ログをクエリし、ルールの詳細を取得して、推奨事項を含む構造化された分析レポートを出力します。

アーキテクチャ:DDoS Pro Instance → Full Log (SLS) → Log Query → Rule Analysis → Report

インストール

事前確認:Aliyun CLI >= 3.3.3 が必要です

aliyun version を実行して、バージョンが 3.3.3 以上であることを確認してください。インストールされていない場合、またはバージョンが古い場合は、 インストール手順について references/cli-installation-guide.md を参照してください。

事前確認:Aliyun CLI プラグインの更新が必要です

[MUST] aliyun configure set --auto-plugin-install true を実行して、自動プラグインインストールを有効にしてください。 [MUST] aliyun plugin update を実行して、既存のプラグインを常に最新の状態にしてください。

事前確認:AI-Mode のライフサイクル

コアワークフローの開始時(CLI を呼び出す前)に: [MUST] AI-Mode を有効にする — エージェントスキルの実行には AI-mode が必要です。 CLI を呼び出す前に、次のコマンドを実行してください:

aliyun configure ai-mode enable
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query"

[MUST] すべての終了時点で AI-Mode を無効にする — ワークフローの成功、失敗、エラー、ユーザーによるキャンセル、セッション終了など、理由を問わず、最終応答を返す前に必ず AI-mode を無効にしてください。AI-mode はエージェントスキルの呼び出し時のみ使用し、スキルの実行停止後も有効なままにしてはなりません。

aliyun configure ai-mode disable

事前確認:SLS CLI プラグインが必要です

[MUST] ログのクエリ操作を行う前に、SLS CLI プラグインをインストールしてください:

aliyun component install sls

プラグインが使用可能であることを確認してください:

aliyun sls --help

aliyun component install が使用できない場合は、従来のコマンドを使用してください:

aliyun plugin install --names aliyun-cli-sls

環境変数

追加の環境変数は必要ありません。認証は Aliyun CLI の認証情報チェーンを通じて処理されます。

認証

事前確認:Alibaba Cloud の認証情報が必要です

セキュリティルール:

  • 絶対に AK/SK の値を読み取ったり、エコーしたり、表示したりしないでください(例:echo $ALIBABA_CLOUD_ACCESS_KEY_ID は禁止です)
  • 絶対に 会話やコマンドラインで AK/SK を直接入力するようユーザーに求めないでください
  • 絶対に リテラルの認証情報を指定して aliyun configure set を使用しないでください
  • 認証情報の状態確認には 必ず aliyun configure list のみを使用してください
aliyun configure list

出力を確認し、有効なプロファイル(AK、STS、または OAuth ID)があることを確認してください。

有効なプロファイルがない場合は、ここで停止してください。

  1. Alibaba Cloud コンソール から認証情報を取得します
  2. このセッションの外部で認証情報を設定します(ターミナルで aliyun configure を実行するか、シェルプロファイルで環境変数を設定します)
  3. aliyun configure list に有効なプロファイルが表示されたら、戻って再実行します

401 Unauthorized エラーに関する注意:401 The security token has expired エラーは、STS の一時認証情報の有効期限が切れたことを意味します。これは RAM 権限の問題ではありません。このセッションの外部で aliyun configure を使用して認証情報を更新してから、再試行するようユーザーに依頼してください。

RAM ポリシー

必要な権限の全一覧については、references/ram-policies.md を参照してください。

[MUST] 権限エラーへの対応: 実行中のいずれかの時点で、コマンドまたは API 呼び出しが権限エラーにより失敗した場合は、次の手順に従ってください。

  1. references/ram-policies.md を読み、この SKILL に必要な権限の全一覧を確認します
  2. ram-permission-diagnose スキルを使用して、必要な権限を申請する方法をユーザーに案内します
  3. 必要な権限が付与されたことをユーザーが確認するまで、一時停止して待ちます

パラメーターの確認

重要:パラメーターの確認 — コマンドまたは API 呼び出しを実行する前に、 ユーザーがカスタマイズできるすべてのパラメーター(例:RegionId、インスタンス名、CIDR ブロック、 パスワード、ドメイン名、リソース仕様など)をユーザーに確認する必要があります。 明示的な承認なしに、デフォルト値を推測したり使用したりしないでください。

パラメーター名必須/任意説明デフォルト値
Request ID必須DDoS Pro のブロック応答ページに表示される traceidなし
Domain任意DDoS Pro で設定されたウェブサイトのドメイン(指定がない場合は自動検出)自動検出
DDoS Instance ID任意DDoS Pro インスタンス ID(指定がない場合は自動検出)自動検出
SLS Project任意SLS プロジェクト名(指定がない場合は自動検出)自動検出
SLS Logstore任意SLS Logstore 名(指定がない場合は自動検出)自動検出
RegionId任意DDoS Pro のリージョン:cn-hangzhou(中国本土)または ap-southeast-1(海外)cn-hangzhou

コアワークフロー

[MUST] 必須の API 呼び出し順序 — このスキルを呼び出すたびに、次の API 呼び出しを順番どおりに実行する必要があります。結果があらかじめわかっていると思われる場合でも、手順を省略しないでください。

  1. Step 2a → ddoscoo DescribeInstances(両方のリージョン)+ ドメインが不明な場合のみ、ドメイン検出のために DescribeWebAccessLogDispatchStatus
  2. Step 2b → ddoscoo DescribeSlsOpenStatus + DescribeLogStoreExistStatus + DescribeSlsLogstoreInfo
  3. Step 2c → ddoscoo DescribeWebAccessLogStatus のみ(ドメインはユーザーまたは Step 2a で確認済みである必要があります。この手順で DescribeWebAccessLogDispatchStatus を使用することはできません)
  4. Step 3 → sls GetLogs(Request ID でブロックログを検索)
  5. Step 5 → 分析レポートを出力

[MUST] User-Agent ヘッダー — このスキル内のすべての aliyun CLI コマンドには、呼び出し元を識別するために --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query を含める必要があります。

[MUST] 機密データのマスキング — 全体ルール、すべての出力に適用 — 以下のルールは、最終レポート、中間分析、ログの引用、補足説明など、ワークフロー内のすべての出力に適用されます。マスキング済みのデータを、どの箇所でも元に戻してはなりません。

  • クライアント IP:最初のセグメントだけを残し、それ以外を * に置き換えます。すべての出力形式に適用します(JSON フィールドとプレーンテキストの段落のいずれもマスキングが必要です)。
    • プレーンテキストの段落:140.205.11.30 → 140.*.*.*;「IP 140.205.11.30 からのリクエスト」→「IP 140...* からのリクエスト」
    • JSON フィールドの引用:"real_client_ip": "140.205.11.30" → "real_client_ip": "140.*.*.*"
  • Cookie/Authorization/Token:元のログフィールドを引用する場合も含め、値全体を [MASKED] に置き換えます
  • クエリパラメーター:すべてのパラメーター値を *** に置き換えます。例:?token=abc&name=test → ?token=***&name=***
  • User-Agent 文字列:先頭から 32 文字を切り出します
Step 1: 情報収集

Request ID(traceid)をユーザーに確認します。次の場所から取得するよう案内してください。

  1. ブラウザーに表示されたブロックページ(Request ID が直接表示されています)
  2. DDoS Pro のブロック(インターセプト)応答の HTML 本文(traceid が含まれています)

ユーザーがブロックされたウェブサイトを把握している場合は、ドメイン名も任意で確認します。

Step 2: DDoS Pro インスタンスの検出とフルログサービスの確認
ステップ 2a:DDoS Pro インスタンスと保護対象ドメインを検出する
# Query DDoS Pro instances (API endpoint region: cn-hangzhou for China, ap-southeast-1 for International)
aliyun ddoscoo describe-instances --page-number 1 --page-size 50 --region cn-hangzhou --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
aliyun ddoscoo describe-instances --page-number 1 --page-size 50 --region ap-southeast-1 --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

[MUST] インスタンス検出の検証 — describe-instances を呼び出した後、レスポンスを確認します。

  • Instances が空ではない配列の場合 → インスタンスを記録し、ステップ 2b に進みます。
  • いずれかのリージョンで Instances が空([])の場合 → 先にもう一方のリージョンで再試行してから進みます。
  • 両方のリージョンで空が返された場合 → 処理を停止し、ユーザーに次のように伝えます:「このアカウントに DDoS Pro インスタンスが見つかりませんでした。認証情報とリージョンを確認してください。」
  • describe-instances の結果がない場合は、ステップ 2b 以降に進まないでください。 インスタンスリストが空の場合、その後の SLS とログのクエリも失敗します。続行すると、空または不正確なレポートが生成されます。

[MUST] ドメイン検出 — ステップ 2c で describe-web-access-log-status を呼び出すには、ドメイン名が必要です。ユーザーのメッセージにドメインが指定されていない場合は、続行する前にこのステップ 2a で検出してください。

# 保護対象ドメインをすべて検出します(ドメインの検出のみ — このレスポンスのログステータスは使用しないでください)
aliyun ddoscoo describe-web-access-log-dispatch-status --page-number 1 --page-size 10 --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

レスポンスからドメイン名を抽出し、記録します。この API はドメイン名の検出にのみ使用し、ログステータスの確認には使用しません。実際のログステータスの確認は、ステップ 2c で describe-web-access-log-status を使用して行います。

[MUST] 国際リージョンの API エラーからの復旧:ap-southeast-1 への API 呼び出しで InvalidRosettaRegionId、400 Bad Request、または同様のリージョンレベルのエラーが返された場合:

  1. ワークフローを中断しないでください — 利用可能なデータを使って続行します。
  2. SLS 関連の操作では、国際 DDoS Pro の SLS プロジェクトは通常 ap-southeast-1 ではなく cn-hangzhou でホストされ、プロジェクト名は ddosdip-project-<uid>-ap-southeast-1 のようになります。SLS リージョンとして、必ず cn-hangzhou を試してください。
  3. ルールクエリ API(例:describe-web-precise-access-rule、describe-l7-global-rule)では、ap-southeast-1 で失敗した場合、cn-hangzhou エンドポイントを使用して同じ API 呼び出しを再試行します。
  4. [MUST] リージョン API のエラーを理由に、ユーザーが依頼したクエリの手順を決して省略しないでください — 失敗を報告する前に、必ず別のリージョンを使った復旧を試みます。
ステップ 2b:SLS とすべてのログステータスを確認する

まず、SLS が有効になっているか、ログストアが存在するかを確認します。

aliyun ddoscoo describe-sls-open-status --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
aliyun ddoscoo describe-log-store-exist-status --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

次に、SLS のログストア情報(プロジェクト、ログストア、容量、TTL)を取得します。

aliyun ddoscoo describe-sls-logstore-info --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

[IMPORTANT] SLS 情報取得時のフォールバック:describe-sls-logstore-info がエラーを返した場合(例:ap-southeast-1 で 400 InvalidRosettaRegionId)、次のフォールバック方法を順番に使用します。

フォールバック 1 — ドメインのログステータスから SLS 情報を取得します(ドメインが必要です)。

aliyun ddoscoo describe-web-access-log-status --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

レスポンスから SlsProject と SlsLogstore を抽出します。

フォールバック 2 — すべての SLS プロジェクトを一覧表示し、ddoscoo のものを探します。

aliyun sls list-project --region cn-hangzhou --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

名前に ddoscoo または ddosdip が含まれるプロジェクトを探します。注:国際 DDoS Pro の SLS プロジェクトも cn-hangzhou でホストされている場合があります。

ステップ 2c:ドメインの全ログのステータスを確認する

⛔ 禁止:このステップでは describe-web-access-log-dispatch-status を使用しません。 ドメインの検出はステップ 2a で完了しています。このステップで許可される API 呼び出しは 1 回のみです。

この時点で、ドメイン名が判明している必要があります(ユーザーから提供されているか、ステップ 2a で検出済みです)。次を呼び出します。

aliyun ddoscoo describe-web-access-log-status --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
  • SlsConfigStatus=true が返された場合は、有効になっているため、そのままステップ 3 に進みます。
  • 有効になっていない場合は、ユーザーに知らせて同意を得たうえで有効にします。
aliyun ddoscoo enable-web-access-log-config --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

制約:このスキルでサポートされるのは、全ログの有効化(enable-web-access-log-config)のみです。このスキルで無効化することは許可されていません。disable-web-access-log-config は絶対に呼び出さないでください。

[IMPORTANT] 有効化時のエラー処理:enable-web-access-log-config がエラーを返した場合:

  • DomainDoNotBelongToYou — このドメインは、この DDoS Pro インスタンスに設定されていません。ドメインがこのインスタンスに属していることを確認するか、もう一方のリージョン(cn-hangzhou ↔ ap-southeast-1)を試してください。
  • 403 Forbidden / RAM 権限エラー — references/ram-policies.md を参照してください。

[IMPORTANT] 過去のログ:全ログを有効にすると、有効化後のリクエストのみが記録されます。有効化前にブロックイベントが発生していた場合、その Request ID の SLS ログは存在しません。ユーザーに次のように伝えてください:「全ログは有効になりましたが、過去のブロックイベントは SLS から照会できません。ブロックを再現し、新しい Request ID で再試行してください。」

ステップ 3:SLS ログを照会する

[MUST] すべてのログ照会には、SLS CLI プラグイン(aliyun sls get-logs)を使用します。

ステップ 2 で取得した SLS プロジェクト/ログストアを使用して、ブロックログを照会します。

# Query SLS logs via plugin-mode call
TO_TIME=$(python3 -c "import time; print(int(time.time()))")
FROM_TIME=$((TO_TIME - 86400))
aliyun sls get-logs \
  --project <project-name> \
  --logstore <logstore-name> \
  --from $FROM_TIME \
  --to $TO_TIME \
  --query "<request-id>" \
  --reverse true \
  --lines 100 \
  --region <sls-region> \
  --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

過去 24 時間に結果が見つからない場合は、時間範囲を段階的に広げます。

  • 過去 3 日間:FROM_TIME=$((TO_TIME - 86400 * 3))
  • 過去 7 日間:FROM_TIME=$((TO_TIME - 86400 * 7))
  • 過去 30 日間:FROM_TIME=$((TO_TIME - 86400 * 30))
  • 最大(TTL に基づく):FROM_TIME=$((TO_TIME - 86400 * <ttl_days>))

フォールバック方法 — 上記の SLS プラグインコマンドが失敗した場合(例:プラグインがインストールされていない場合)、Python スクリプトを使用します。

python3 scripts/get_ddos_logs.py \
  --project <project-name> \
  --logstore <logstore-name> \
  --request-id <request-id> \
  --region <sls-region>

注:DDoS Pro の全ログにおける SLS リージョンの対応関係:

  • 中国本土のインスタンス(cn-hangzhou):SLS プロジェクトは cn-hangzhou にあります。
  • 国際インスタンス(ap-southeast-1):SLS プロジェクトは通常、cn-hangzhou にもあります(ap-southeast-1 ではありません)。プロジェクト名は ddosdip-project-<uid>-ap-southeast-1 のようになります。

[MUST] SLS プロジェクト名を推測しないでください。必ずステップ 2b で取得した正確なプロジェクト/ログストアの値(describe-sls-logstore-info またはそのフォールバック)を使用してください。両方の API が失敗した場合は、aliyun sls list-project --region cn-hangzhou --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query を使用して、ddoscoo または ddosdip を含むプロジェクトを見つけてください。

ステップ 4:ルールの詳細を照会する

SLS ログを取得した後、主要フィールドを抽出してブロックの種類を特定し、該当するルール設定を照会します。

ステップ 4a:ログフィールドからブロックタイプを特定する

ブロックタイプの特定に最も重要なログフィールドは、次の 2 つです。

  • cc_phase — ブロックを発生させた保護モジュールを特定します
  • last_owner — <rule_name>|<source> の形式です。source は manual(ユーザー作成)または clover(自動生成)です

cc_phase → ブロックタイプ → クエリ API の対応:

cc_phase の値ブロックタイプルール詳細のクエリコマンド
gfcc / ccCC 保護(频率控制自定义规则)describe-web-cc-rules-v2
gfacl / acl精密アクセス制御(精确访问控制)describe-web-precise-access-rule
gfai / aiAI スマート保護(AI智能防护)describe-web-cc-protect-switch
gfglobal / global / gf_ruleグローバル防御ポリシー(全局防护策略)describe-l7-global-rule
gfbwip / blacklistIP ブラックリスト(IP黑名单)describe-web-rules(BlackList フィールド)
gfareaban / region / geo地域ブロック(区域封禁)describe-web-area-block-configs

その他の便利なログフィールド:

ログフィールド説明
cc_action実行されたアクション:block、captcha、close、watch
cc_rule_id発動した特定のルール ID
cc_blocksリクエストがブロックされたかどうか(1 = はい)
final_actionリクエストに対して最終的に実行されたアクション
final_pluginブロックプラグイン識別子
traceidリクエストのトレース ID(ブロックページの Request ID と同じ)
matched_hostリクエストと一致したドメイン
hostリクエストの Host ヘッダー
real_client_ipクライアントの実 IP アドレス
last_owner<rule_name>|<source> — ルールとその発生元を特定します
isp_lineDDoS Pro の接続回線(例:電信、聯通、移動、香港、海外など)。注意:このフィールドが示すのは DDoS Pro の接続回線であり、クライアントの物理的な所在地とは異なります。レポートでは「リクエストは {isp_line} 回線経由で接続」と表現してください。クライアントの所在地と直接同一視しないでください
ステップ 4b:ポリシーのスイッチ状態を確認する(ポリシーの事前チェック)

[必須]特定のルールをクエリする前に、まず有効になっている保護モジュールを確認してください。

aliyun ddoscoo describe-web-cc-protect-switch --domains.1 '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

すべてのスイッチ状態が返されます。主なフィールドは次のとおりです。

フィールド説明値
CcEnableCC 保護のマスタースイッチ0(オフ)/ 1(オン)
CcCustomRuleEnableカスタム CC ルールのスイッチ0 / 1
PreciseRuleEnable精密アクセス制御(ACL)のスイッチ0 / 1
CcGlobalSwitchグローバル防御のスイッチclose / open
AiRuleEnableAI スマート保護のスイッチ0 / 1
AiModeAI モードwatch / defense
AiTemplateAI レベルlevel30 / level60 / level90
BlackWhiteListEnableIP ブラックリスト/ホワイトリストのスイッチ0 / 1
RegionBlockEnable地域ブロックのスイッチ0 / 1
ステップ 4c:特定のルール詳細を照会する

cc_phase に基づいて、対応する API を呼び出し、ルール設定を取得します。

cc_phase = cc の場合 → CC 保護ルール:

# Query all CC rules for the domain; use --owner manual for user rules, clover for auto rules
aliyun ddoscoo describe-web-cc-rules-v2 --domain '<domain>' --offset 0 --page-size 30 --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

次に、last_owner のルール名(| より前の部分)を、応答内のルールの name フィールドと照合して、該当するルールを見つけます。

cc_phase = gfacl の場合 → 詳細アクセス制御(ACL)ルール:

aliyun ddoscoo describe-web-precise-access-rule --domains.1 '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

次に、last_owner のルール名を、応答内のルールの Name フィールドと照合して、該当するルールを見つけます。

cc_phase = ai の場合 → AI スマート保護:

# AI protection has no individual rules; check mode and level from switch status
aliyun ddoscoo describe-web-cc-protect-switch --domains.1 '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

AiMode(watch/defense)、AiTemplate(level30/60/90)、および AiRuleEnable のステータスを報告します。

cc_phase = global または gf_rule の場合 → グローバル防御ポリシー:

# Get global rule list with RuleId, Action, Enabled, Description
aliyun ddoscoo describe-l7-global-rule --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

cc_phase = blacklist の場合 → IP ブラックリスト/ホワイトリスト:

# Get blacklist and whitelist IPs from domain web rules
aliyun ddoscoo describe-web-rules --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

応答から BlackList と WhiteList の配列を抽出します。

cc_phase = region または geo の場合 → 地域ブロック:

aliyun ddoscoo describe-web-area-block-configs --domains.1 '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

Block = 1 に設定されている地域を確認します。

[IMPORTANT] ドメインが見つからない場合:ドメインの照会で DomainNotExist が返された場合、ブロックイベントの後にドメインが DDoS Pro から削除された可能性があります。このことをユーザーに報告してください。ログは引き続き有効ですが、ルール詳細は取得できません。

ルールの作成、変更、削除、およびフィールドの参照表を含むドメインセキュリティポリシー管理の完全なリファレンスについては、references/domain-security-policy.md を参照してください。

ステップ 5:分析レポートを出力する

[MUST] 機密データのマスキング — 補足の段落を含む、このレポート内のすべてのフィールドに、Core Workflow で定義されたグローバルなマスキングルールを適用します。どのセクションでも、マスキングされたデータを復元してはなりません。

## DDoS Pro Intercept Analysis Report

### Request Information
- Request ID: {request_traceid}
- Block Time: {time}
- Client IP: {masked_real_client_ip, e.g. 192.***.***.***}
- ISP Line: {isp_line}(DDoS Pro 接入线路,非客户端实际位置)
- Domain: {matched_host}
- Request URL: {host}{request_path}?{masked_query_params}

### Block Details
- Rule ID: {final_rule_id 或 cc_rule_id;若日志中两个字段均不存在,输出 "N/A - 日志中未记录规则 ID",不可省略此行}
- Block Type: {final_plugin / cc_phase}
- Action: {final_action or cc_action}

### Recommendations
{Based on block type, refer to references/common-block-reasons.md}

トラブルシューティング

ログが見つからない
  1. SLS とログストアのステータスを再確認します(ステップ 2b)
  2. ドメインの完全ログスイッチを確認します:
    aliyun ddoscoo describe-web-access-log-status --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
    
  3. 無効になっている場合は有効にします(確認してから実行):
    aliyun ddoscoo enable-web-access-log-config --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
    
  4. すべてのドメインログのディスパッチステータスを確認します:
    aliyun ddoscoo describe-web-access-log-dispatch-status --page-number 1 --page-size 50 --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query
    
リクエスト ID が見つからない
  1. リクエスト ID の形式を確認します(通常は 30 文字以上の 16 進数です)
  2. スクリプトは検索範囲を最大 90 日まで自動的に拡張します
  3. 両方のリージョン(cn-hangzhou と ap-southeast-1)を試します
  4. describe-sls-logstore-info でログの保持期間(TTL)を確認します
複数インスタンスのシナリオ

DDoS Pro のインスタンスは両方のリージョンにまたがる場合があります。リクエスト ID が見つかるまで、検出されたすべての SLS プロジェクトのログを照会します。

ルール操作の制約

詳しい手順については、references/rule-operations.md を参照してください。

ユーザーからルールの無効化を依頼された場合:

  1. まず現在のステータスを確認します(冪等性を考慮し、確認してから実行)
  2. 無効化のみ許可されます。ルールを削除してはなりません
  3. 実行前にユーザーの確認を得ます

CC ルールを無効化する:

aliyun ddoscoo disable-web-cc-rule --domain '<domain>' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

詳細アクセス制御を無効化する:

aliyun ddoscoo modify-web-precise-access-switch --domain '<domain>' --config '{"PreciseRuleEnable": 0}' --region <region-id> --header User-Agent=AlibabaCloud-Agent-Skills/alibabacloud-ddoscoo-intercept-query

成功確認方法

詳細な確認手順については、references/verification-method.md を参照してください。

期待される結果:リクエスト情報、ルール詳細、実行可能な推奨事項をすべて含む、インターセプト分析レポートが生成されます。

確認方法:既知のリクエスト ID で照会した後、出力にレポートテンプレート内のすべてのフィールドが含まれていることを確認します。

クリーンアップ

このスキルはデフォルトで読み取り専用であり、永続的なリソースは作成しません。次の場合を除き、クリーンアップは不要です。

  • 実行中にドメインの完全ログを有効にした(ユーザーに知らせてください。このスキルは有効化のみを行い、無効化はしません)
  • CC ルールを無効化した(enable-web-cc-rule で再有効化できます)

ベストプラクティス

  1. インスタンスを検出する際は、必ず両方のリージョン(cn-hangzhou と ap-southeast-1)を照会してください
  2. [MUST] SLS のログを照会する際は、aliyun sls get-logs(プラグインモード、ケバブケース)を使用してください
  3. SLS のプロジェクト名やログストア名を推測しないでください。必ず describe-sls-logstore-info または describe-web-access-log-status から取得してください
  4. 結果が空になるのを防ぐため、照会前にドメインのフルログステータスを確認してください
  5. [MUST] 出力レポート内の機密データをマスキングしてください。クライアント IP → first_octet.*.*.*、クエリパラメーター → ***、Cookie/トークン → [MASKED]
  6. 書き込み操作の前には、必ず冪等な確認してから実行するパターンを使用してください
  7. ルールは削除せず、無効化/有効化操作のみを許可してください

参考リンク

参考資料説明
references/ram-policies.mdRAM の権限要件
references/common-block-reasons.md一般的なブロック理由と推奨事項
references/rule-config-details.mdルール設定フィールドの説明
references/rule-operations.mdルール操作のポリシーと制約
references/domain-security-policy.mdドメインセキュリティポリシーの管理(ルールの照会、作成、変更、削除)
references/related-commands.mdこのスキルで使用するすべての CLI コマンド
references/verification-method.md成功確認の手順
references/cli-installation-guide.mdAliyun CLI のインストールとアップグレードガイド

コメント