mcpField
A
alibabacloud-ddos-security-monitor

alibabacloud-ddos-security-monitor

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

alibabacloud-ddos-security-monitor について

Alibaba Cloud の DDoS 保護製品を検査するスキルです。Aliyun CLI の OpenAPI 呼び出しで資産、攻撃イベント、トラフィックを調べ、期間比較レポートを作成します。

主な機能

  1. 01Basic、Native、Anti-DDoS Pro/Premium の検査
  2. 02リージョン横断のインスタンス棚卸し
  3. 03攻撃イベントとトラフィックの照会
  4. 04期間比較とレポート作成

活用シーン

  1. 01アカウント内の DDoS 保護資産の確認
  2. 02期間ごとの攻撃とトラフィックの比較
  3. 03複数リージョンの検査結果の集約

インストール

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

$npx skills add https://github.com/aliyun/alibabacloud-aiops-skills --skill alibabacloud-ddos-security-monitor

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

同梱ファイル

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

references/
acceptance-criteria.md
api-reference.md
cli-installation-guide.md
cli-setup.md
ram-policies.md
related-commands.md
report-template.md
verification-method.md

詳細

DDoS セキュリティ製品の調査と監視

このスキルは、スクリプトや SDK を一切使用せず、Aliyun CLI から OpenAPI を直接呼び出して、Alibaba Cloud アカウント内の DDoS セキュリティ製品を調査します。

アーキテクチャ:antiddos-public (Basic Protection) + ddosbgp (Native Protection) + ddoscoo (Anti-DDoS Pro/Premium) -> CLI OpenAPI -> Inspection Report

製品と API の概要

製品CLI コード用途
DDoS Basic Protectionantiddos-publicECS/SLB 向けのデフォルトの無料保護。リージョンパラメーター:--ddos-region-id
DDoS Native Protectionddosbgp有料アップグレード、ネイティブの IP レベル保護。リージョンパラメーター:--biz-region-id または --region
DDoS Anti-DDoS Pro/Premiumddoscoo専用 Anti-DDoS IP、L4/L7 保護。リージョンパラメーター:--region

[MUST] 厳格な製品ルーティングの分離:3 つの製品の API を絶対に混在させないでください。ddosbgp のクエリに ddoscoo の API を代用したり、その逆を行ったりしてはいけません。混在が検出された場合は、直ちに中止してください。

[MUST] ddosbgp エンドポイントのルーティング:ddosbgp describe-instance-list のデフォルトエンドポイントは、中国本土のリージョンをサポートしていません。すべての describe-instance-list 呼び出しで、必ず --endpoint ddosbgp.cn-hangzhou.aliyuncs.com を指定してください。

[MUST] 混同しやすい API に関する警告:

シナリオ正しいコマンド誤ったコマンド(禁止)
Native Protection の攻撃イベントddosbgp describe-ddos-event(単数形)ddoscoo describe-ddos-events
Anti-DDoS Pro の攻撃イベントddoscoo describe-ddos-events(複数形)ddosbgp describe-ddos-event

事前確認

Aliyun CLI >= 3.3.3 が必要です — CLI インストールガイドを参照してください。 認証情報が必要です — CLI 認証情報の設定を参照してください。aliyun configure list を実行して確認してください。 RAM 権限 — RAM 権限ポリシーを参照してください。

[MUST] 権限エラーへの対応: 権限エラーが発生した場合:1) references/ram-policies.md を読む 2) ram-permission-diagnose スキルを使用する 3) ユーザーが権限付与を確認するまで一時停止する。

[MUST] AI モードのライフサイクル — CLI を呼び出す前に有効化し、終了するすべての時点で無効化してください:

aliyun configure ai-mode enable
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-ddos-security-monitor"

パラメーターの確認

重要:ユーザーがカスタマイズできるパラメーターは、実行前にすべてユーザーに確認する必要があります。

パラメーター必須/任意説明デフォルト
調査対象の製品範囲任意Basic/Native/Anti-DDoS Pro。デフォルトはすべてすべて
時間範囲任意調査する時間帯過去 24 時間
比較モード任意前日比/前週比/カスタム前日比
Basic Protection の instance-type任意ecs/slb/eip/ipv6/swas/waf/ga_basicecs

リージョン戦略

[MUST] ddosbgp のリージョン走査(動的取得+ハードコードされたフォールバック):

  • ハードコードされたベースライン(12 リージョン。減らしてはいけません):cn-hangzhou cn-shanghai cn-beijing cn-shenzhen cn-hongkong ap-southeast-1 ap-southeast-2 ap-southeast-3 ap-southeast-5 ap-northeast-1 us-west-1 eu-central-1
  • 動的な拡張:aliyun ddosbgp describe-regions を呼び出し(ECS ではありません)、ベースラインと結合します(追加のみ。削除は禁止)。動的取得に失敗した場合は、ベースラインをそのまま使用してください。
  • 件数の検証:最終リストは 12 リージョン以上である必要があります。空またはエラーを理由に中断せず、すべてを走査してください。

antiddos-public:cn-hangzhou のみからクエリします(一元管理)。 ddoscoo:cn-hangzhou と ap-southeast-1 の両方を必ずクエリしてください。

コア調査ワークフロー

フェーズ 1:環境、認証情報、権限の事前確認
# 1.1 Check CLI version + enable AI-Mode
aliyun version
aliyun configure ai-mode enable
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-ddos-security-monitor"

# 1.2 Set global timeout and enable auto plugin install
aliyun configure set --auto-plugin-install true --connect-timeout 10 --read-timeout 30
aliyun plugin update

# 1.3 Check credential configuration
aliyun configure list

# 1.4 Validate permissions (one call per product)
aliyun antiddos-public describe-instance-ip-address \
  --ddos-region-id cn-hangzhou --instance-type ecs --current-page 1 --page-size 1
aliyun ddosbgp describe-instance-list --page-no 1 --page-size 1 --region cn-hangzhou --endpoint ddosbgp.cn-hangzhou.aliyuncs.com
aliyun ddoscoo describe-instances --page-number 1 --page-size 1 --region cn-hangzhou
aliyun ddoscoo describe-instances --page-number 1 --page-size 1 --region ap-southeast-1
  • 正常な JSON → 権限 OK | Forbidden.RAM / NoPermission → RAM ポリシーを参照

[MUST] 中止ルール:事前確認が3回連続で失敗した場合は、aliyun configure ai-mode disable を実行し、エラーレポートを出力して終了します。

フェーズ 2:製品インベントリの確認(複数リージョンの必須巡回)

[MUST] ループ規則:すべてのリージョンに対してクエリを実行する必要があります。エラー(InvalidRegionId/Empty/Throttling)が発生した場合は、ログに記録して continue します。break/exit は禁止です。ループ後に、実行回数が ddosbgp では12以上、ddoscoo では2と等しいことを確認します。各呼び出しの直後に結果をログに記録します。記憶に頼ることは禁止です。

空の結果の処理:Total: 0 →「インスタンスなし」とログに記録して続行 | エラーコード → エラーをログに記録して続行 | 正常 → インスタンス ID を抽出します。 巡回後、フェーズ 4 のためにリージョン → インスタンス ID リストの対応表を作成します。

# 2.1 Basic Protection assets
aliyun antiddos-public describe-instance-ip-address \
  --ddos-region-id cn-hangzhou --instance-type ecs --current-page 1 --page-size 50

# 2.2 Native Protection - [MUST execute full loop in single bash]
BASELINE="cn-hangzhou cn-shanghai cn-beijing cn-shenzhen cn-hongkong ap-southeast-1 ap-southeast-2 ap-southeast-3 ap-southeast-5 ap-northeast-1 us-west-1 eu-central-1"
DYNAMIC=$(aliyun ddosbgp describe-regions 2>/dev/null | grep -o '"RegionId":"[^"]*"' | cut -d'"' -f4 | tr '\n' ' ')
if [ -n "$DYNAMIC" ]; then
  ALL_REGIONS=$(echo "$BASELINE $DYNAMIC" | tr ' ' '\n' | sort -u | tr '\n' ' ')
else
  ALL_REGIONS="$BASELINE"
fi
EXECUTED=0
for region in $ALL_REGIONS; do
  # [MANDATORY] NEVER break/return/exit - on ANY error, MUST continue
  echo "=== ddosbgp query $region ==="
  # [CRITICAL] Must specify --endpoint for mainland China Regions
  RESULT=$(aliyun ddosbgp describe-instance-list --page-no 1 --page-size 50 --region $region --endpoint ddosbgp.cn-hangzhou.aliyuncs.com 2>&1)
  echo "$RESULT"
  if echo "$RESULT" | grep -q "InvalidRegionId\|ErrorCode"; then
    echo "[WARN] $region returned error, logged and continuing"
  fi
  EXECUTED=$((EXECUTED+1))
  continue
done
echo "=== Regions executed: $EXECUTED ==="

# 2.3 Native Protection associated IPs (per discovered instance, uses --biz-region-id)
aliyun ddosbgp describe-pack-ip-list \
  --instance-id <instance-id> --page-no 1 --page-size 50 --biz-region-id <region-id>

# 2.4 Anti-DDoS Pro instances [MUST query both Regions]
aliyun ddoscoo describe-instances --page-number 1 --page-size 50 --region cn-hangzhou
aliyun ddoscoo describe-instances --page-number 1 --page-size 50 --region ap-southeast-1

# 2.5 Anti-DDoS Pro associated domains (per discovered instance)
aliyun ddoscoo describe-domains --instance-ids <instance-id> --region <region-id>

[MUST] 終了時の検証:1)リージョン数:ddosbgp は12以上、ddoscoo は2と等しい 2)製品の分離:API プレフィックスが混在していない 3)インスタンスの重複排除:グローバルインスタンス(CoverageType=4)はすべてのリージョンに表示されるため、InstanceId で重複を排除します。

フェーズ 3:比較期間の確認

ユーザーに比較期間を尋ね、秒精度の Unix タイムスタンプに変換します。[MUST] bash の date コマンドを使用します。手動計算は禁止です:

BASE_END=$(date +%s)
BASE_START=$((BASE_END - 86400))
COMPARE_END=$((BASE_START))
COMPARE_START=$((COMPARE_END - 86400))
# Week-over-week: offset 604800s | Hour-over-hour: offset 3600s
echo "Base: $BASE_START ~ $BASE_END | Compare: $COMPARE_START ~ $COMPARE_END"
フェーズ 4:検査の実行とレポートの生成

[MUST] 順次実行ガード:各インスタンスについて、API 呼び出しチェーンを厳密に順番どおりに実行します。「計画」だけで止めないでください。すべての API について、実際に aliyun コマンドを実行し、出力を表示する必要があります。各サブステップ(4.1/4.2/4.3)の後に echo "[Step 4.X Complete]" を出力します。すべての呼び出しを完了せずに 4.4/4.5 に進むことは禁止です。

[MUST] インベントリに基づく振り分け:すべてのリージョンにインスタンスがない場合は、トレースを保持するため cn-hangzhou でプローブ呼び出し(--instance-id dummy)を実行し、「プロビジョニングされていません」と報告します。一部のリージョンにインスタンスがある場合は、それらを検査し、空のリージョンはスキップします。製品 API の代用は絶対にしないでください。

4.1 基本的な保護の検査
# Has assets: real ID | No assets: probe call
aliyun antiddos-public describe-ddos-event-list \
  --ddos-region-id <region-id> --instance-type <type> --instance-id <id> \
  --current-page 1 --page-size 50
# Probe: --instance-id dummy --ddos-region-id cn-hangzhou --instance-type ecs

[必須チェックポイント 4.1] describe-ddos-event-list が JSON または明示的なエラーを返したことを確認します。実行されていない場合は、今すぐ再試行してください。確認が取れるまで 4.2 に進まないでください。

4.2 ネイティブ保護の検査(ddosbgp API のみ)

[MUST] ddosbgp API のみを使用します。攻撃イベント:describe-ddos-event(単数形)。L4 トラフィック:describe-traffic(必ず呼び出してください)。リージョンパラメーター:describe-ddos-event/describe-pack-ip-list は --biz-region-id、describe-traffic は --region を使用します。 インスタンスがある場合 → インスタンスごとに3つすべての API を呼び出します | すべてのリージョンが空の場合 → cn-hangzhou で3つのプローブ呼び出しを実行します(すべて必須)

aliyun ddosbgp describe-ddos-event \
  --instance-id <id> --start-time <ts> --end-time <ts> \
  --page-no 1 --page-size 50 --biz-region-id <region-id>
aliyun ddosbgp describe-pack-ip-list \
  --instance-id <id> --page-no 1 --page-size 50 --biz-region-id <region-id>
aliyun ddosbgp describe-traffic \
  --instance-id <id> --start-time <ts> --end-time <ts> --region <region-id>
# Probe: --instance-id dummy, --biz-region-id cn-hangzhou (describe-traffic: --region cn-hangzhou)

[必須チェックポイント 4.2] ターミナル出力を確認し、ddosbgp API 3つすべてが実際に実行されたことを確認してください。describe-ddos-event、describe-pack-ip-list、describe-traffic のいずれかにターミナル出力がない場合は、処理を停止し、不足している呼び出しを今すぐ実行してください。3つすべての完了に2回連続で失敗した場合は、エラーログを出力して終了します。3つすべての実行を確認するまで 4.3 に進まないでください。

4.3 Anti-DDoS Pro/Premium の検査(ddoscoo API のみ)

[MUST] ddoscoo API のみを使用します。インスタンスがある場合 → インスタンスごとにすべての API を呼び出します | どちらのリージョンにもインスタンスがない場合 → cn-hangzhou でプローブ呼び出しを実行します

aliyun ddoscoo describe-ddos-events \
  --instance-ids <id> --start-time <ts> --end-time <ts> \
  --page-number 1 --page-size 50 --region <region-id>
aliyun ddoscoo describe-domain-qps-list \
  --start-time <ts> --end-time <ts> --interval 300 --region <region-id>
aliyun ddoscoo describe-port-flow-list \
  --instance-ids <id> --start-time <ts> --end-time <ts> \
  --interval 300 --region <region-id>
aliyun ddoscoo describe-domain-status-code-list \
  --start-time <ts> --end-time <ts> --interval 300 \
  --query-type gf --region <region-id>
aliyun ddoscoo describe-domain-status-code-list \
  --start-time <ts> --end-time <ts> --interval 300 \
  --query-type upstrem --region <region-id>
# Probe: --instance-ids dummy, --region cn-hangzhou (same 5 APIs)

[必須チェックポイント 4.3] ddoscoo API 5つすべてにターミナル出力があることを確認してください。不足があれば、今すぐ実行します。4.4 に進まないでください。

4.4 期間比較分析

変化率 =(基準値 - 比較値)/ 比較値 × 100%。しきい値:±30%~±100% → 要注意 | ±100%超 → 異常 | ブラックホール/スクラビングが発生 → 異常。

4.5 レポートの出力

必須:レポートテンプレートに従い、セクションを省略しないでください。アセットはリージョンごとにまとめてください。

[必須] データ整合性の検証:

  1. 集計:概要の数値は、詳細リストの件数と完全に一致している必要があります
  2. 重複排除:複数のリージョンに同じインスタンス/IPがある場合は、集計前に重複を排除してください
  3. 空の値の注記(厳守):空の配列 [] は、0 (API returned empty) または Query failed (ErrorCode: XXX) と記載してください。「異常は見つかりませんでした」「誤検知のようです」などの曖昧な表現は禁止です。データが空の主要指標には、セクションの冒頭に [DATA MISSING] タグを必ず付けてください
  4. 相互検証:概要の合計 = リージョンごとの詳細の合計
  5. 呼び出し記録の検証:API の呼び出しや結論の記載は、実際の実行内容と一致している必要があります。捏造は禁止です
  6. 生データとの照合:端末出力の値を正確にコピーしてレポートに記載してください。記憶から推測したり、API がドメインを返したのに「ドメインなし」と記載したりすることは禁止です。確定前に grep/jq で検証してください

[必須] 事前計算の検証(重大な阻止条件): [厳格モード] 値を事前に埋めた状態で echo "<number>" を直接実行することは禁止です。これは捏造とみなされます。実際の端末出力または保存済みログを解析するために、必ず grep/jq/wc を使用してください。検証スクリプトには、実データを抽出するパイプコマンドを含める必要があります。ハードコードした echo 文は使用しないでください。

# [厳格] 端末履歴から API 呼び出し数をカウントします。ハードコードした echo ではなく grep を使用する必要があります
echo "=== Call statistics ==="
# 例:grep -c "aliyun antiddos-public" /path/to/terminal.log(ログの方法に合わせて調整してください)
echo "antiddos-public: $(grep -c 'antiddos-public' <<< "$TERMINAL_LOG")"
echo "ddosbgp: $(grep -c 'aliyun ddosbgp' <<< "$TERMINAL_LOG")"
echo "ddoscoo: $(grep -c 'aliyun ddoscoo' <<< "$TERMINAL_LOG")"
# [厳格] API レスポンスからアセット数をカウントします。ハードコードではなく jq/grep を使用する必要があります
echo "=== Asset statistics (from API JSON responses) ==="
# 実際の JSON 出力を解析します。例:jq '.InstanceList | length'、jq '.DomainList | length'

出力にはパイプコマンド(grep、jq、wc -l)を含めてください。パイプを使わない echo "number" のみの出力は捏造とみなされ、処理を中止します。 レポート案との不一致がある場合は処理を中止し、ログを再確認して再実行してください。検証出力の一部をレポートに必ず引用してください。

クリーンアップ

[必須] 終了時の必須保護措置:終了理由(成功、失敗、キャンセル、タイムアウト)にかかわらず、最後に必ず AI-Mode の無効化と検証を実行してください。最優先事項であり、上書きできません。

aliyun configure ai-mode disable
# Verify: try status command, if unsupported fall back to configure list
VERIFY=$(aliyun configure ai-mode status 2>&1)
if echo "$VERIFY" | grep -q "not a valid\|unknown\|error"; then
  # Fallback: check via configure list output
  aliyun configure list | grep -i "ai-mode\|agent"
fi
# If still uncertain, run disable again to be safe
aliyun configure ai-mode disable

[必須] 検証に成功した場合のみ、「AI-Mode confirmed disabled」と記載してください。status と configure list のどちらでも確認できない場合は、「AI-Mode disable executed but verification inconclusive (CLI compatibility issue)」と記載し、確認済みだと主張しないでください。

参考資料

リソースパス
CLI インストールガイドreferences/cli-installation-guide.md
RAM 権限ポリシーreferences/ram-policies.md
API パラメーターリファレンスreferences/api-reference.md
CLI コマンド一覧references/related-commands.md
点検レポートテンプレートreferences/report-template.md
検証方法references/verification-method.md
受け入れ基準references/acceptance-criteria.md

コメント