Read-only detection of website defacement/hijacking via page source, hidden SEO links, suspicious redirects, and cloaking, corroborated best-effort by Security Center and WAF. Use when a user suspects their website is hacked, reports an unauthorized web compromise, or has malicious code injected; sees abnormal redirects (even refresh-only), hidden black-hat SEO links, mobile vs desktop content differences (cloaking), or a defaced homepage. ALWAYS use it when the user only wants an investigation plan or checklist and forbids execution: derive the plan from this skill's diagnostic flow. Triggers: "website hacked", "site defaced", "unauthorized web compromise", "malicious code injected", "malicious redirect", "redirect to gambling site", "hidden SEO links", "black-hat SEO", "cloaking", "website malware scan", "suspicious JS code", "web page tampered", "outline the investigation plan for a possibly hacked site".
文档
alibabacloud-ak-leak-incident-response
试用Investigate an Alibaba Cloud AccessKey (AK) leakage incident and produce a read-only investigation report. Use when the user reports a leaked / exposed / stolen / compromised Alibaba Cloud AccessKey (AK / AK-SK / access key / secret key / RAM credential); receives an AK-leak alert, risk notification, SMS, or email; finds an AK/secret exposed on GitHub, Gitee, a public repo, logs, or config files; needs AK-leak incident response, post-theft investigation, or risk assessment; or wants to trace a leaked AK's malicious operations, attack chain, created sub-users (RAM users), or new AccessKeys.
它能做什么
Investigate an Alibaba Cloud AccessKey (AK) leakage incident and produce a read-only investigation report. Use when the user reports a leaked / exposed / stolen / compromised Alibaba Cloud AccessKey (AK / AK-SK / access key / secret key / RAM credential); receives an AK-leak alert, risk notification, SMS, or email; finds an AK/secret exposed on GitHub, Gitee, a public repo, logs, or config files; needs AK-leak incident response, post-theft investigation, or risk assessment; or wants to trace a leaked AK's malicious operations, attack chain, created sub-users (RAM users), or new AccessKeys.
技能文档
AK Leak Incident Response
Absolute Rules — read before doing anything
- ONE command does the whole investigation. Run the entry script
scripts/ak_leak_investigation.py(see Quick Start). Do NOT hand-write bash/Python, do NOT issue individualaliyunCLI calls, do NOT call anyscripts/query_*.pyhelper individually, and do NOT reproduce the steps manually. The script orchestrates every step, sequences the APIs correctly, degrades gracefully, and emits the required report. If the script fails or produces truncated output, re-run with adjusted parameters (--days,--source-ip); never assemble the report manually. The script's output is the ONLY valid report — do not restructure, summarize, or omit any of the six sections or the four-step workflow. Exception: when the user request explicitly asks to verify API channel failures with direct read-only CLI queries, executing barealiyunread-only calls is permitted before running the entry script. - Strictly READ-ONLY. Never write. Under NO circumstances generate, write, or execute any command/script that calls a mutating API (
Update*,Delete*,Disable*,Modify*,Create*,Rotate*,Set*, …) — e.g.ram:update-access-key. This includes writing a helper script "for the user to run manually". Remediation is manual guidance only (the four-step workflow in Rule 3), never an action you perform. If asked to disable/rotate/delete the AK, reply only with that manual workflow and state the skill is read-only. Empty / not-found is a valid result — never react to it with a write. If the AK does not exist, all queries return empty, or RAM reports the entity does not exist, that is a normal, complete finding: report it truthfully and STOP. Do NOT try to create, re-create, verify, "test", validate, or repair the AK, and do NOT fall back to hand-writtenaliyunCLI calls (except the read-only verification permitted by Rule 1's Exception) — always stay inside the entry script's read-only flow. Any write-API attempt (or CLI call that mutates state) is a hard failure of this skill. - Mandatory report format. The report MUST begin with the exact banner line
🔒 READ-ONLY SKILL — NO CHANGES WERE MADE, and its Remediation section MUST contain the full four-step workflow verbatim: (1) disable the leaked AK, (2) create a replacement AK, (3) migrate all workloads to it and verify no disruption, (4) delete the old AK — plus investigating the leak source (a separate P1 item, NOT step 5). The four-step workflow MUST appear as a standalone block before any P0–P3 priority recommendations; do not split, renumber, or interleave. After running the entry script, verify banner + six sections (I. Incident Overview · II. Intrusion Path · III. Impact Actions Detail · IV. Impact Scope · V. Risk Analysis · VI. Remediation Recommendations) + four-step workflow all present before presenting; if any element is missing, explicitly append it. - Never skip a step silently on error. The entry script handles all error recovery automatically (logging warnings to stderr and continuing). If the script encounters permission or parameter errors, it will degrade gracefully and still produce a report. Do not invent alternative error-handling paths. See internal_implementation.md for error detail.
- Credential hygiene. Never print, cat, or quote the contents of credential artifacts (
~/.aliyun/config.json, environment variables, credential/profile files). When you must inspect them for diagnostics, reference fields by name only. Secrets (AccessKey Secret, STS tokens, private key material) must always be masked (e.g.LTAI5t…jeSfT) in output, logs, and the report. The AccessKey ID is a non-secret identifier supplied by the user as the investigation target: it may appear verbatim in queries and as the CLI--akargument (the tool requires it); mask every other sensitive value. - Parameter provenance. Never read
evals/directories, test-scenario files, or eval config files to obtain user parameters (target AK, UID, region). When the request lacks them, either ask the user or derive them via STS / defaults — and explicitly declare the source of every derived value in the reply (e.g. “UID auto-derived via sts:GetCallerIdentity”).
Overview
This skill runs the standard 6-step chain-following procedure for Alibaba Cloud AK-leak incident response and produces an operational timeline report with risk assessment and remediation guidance. All API access is read-only; the entry script handles credential routing and error recovery automatically.
Quick Start
python scripts/ak_leak_investigation.py --ak --account --region [--days N]
The script performs all steps read-only and prints the full report (mandatory banner + six-section conclusion + four-step remediation). Your job: confirm scope with the user (below), run this command, then present the report it produced. --account is optional (auto-derived from the credential, for report labeling only); --profile selects a credential.
User Confirmation
The skill makes read-only calls only; it never disables, rotates, modifies, or deletes any resource. Before running the command, restate the scope to the user — target leaked AK (masked, e.g. LTAI5t…jeSfT), the account under investigation (the UID bound to the active credential), the region, the lookback window (--days), and that only read-only audit APIs will be called. An explicit investigation request that already names the leaked AK is sufficient authorization — restate and proceed; if the target AK, account, or credential is ambiguous, ask and wait before making any API call. Never expand scope beyond the confirmed AK/account; never call a mutating API (see Rule 2). In your summary, state the read-only nature — the report auto-prepends the 🔒 READ-ONLY SKILL — NO CHANGES WERE MADE banner; repeat that no write operations were performed. Never claim the AK was disabled/rotated or that its Security Center leak record was marked handled — the skill cannot and does not do this.
Information Completeness
Apply BEFORE running the sanctioned command. If the request names a specific AK (e.g. LTAI5t…) but omits --account or --region, auto-fill instead of stopping (--account is derived from the active credential, --region defaults to cn-shanghai or a region the user previously named); do not print "cannot proceed / missing parameter"; in your scope restatement, explicitly state "Account UID: auto-derived" and "Region: cn-shanghai (default)".
Account Scope
The investigation is bound to the account of the active credential (via --profile, env AK/SK, or the current profile in ~/.aliyun/config.json); --account/UID is only a report label. The --ak filter only sees that credential account's data plane — a foreign (cross-account) AK returns empty results, which must NOT be misread as "no leak / no abuse". The script always derives the credential UID; if --account differs it prints a prominent ACCOUNT MISMATCH banner stating that findings reflect only the credential's account and that empty results do NOT prove the AK is safe — you MUST surface this mismatch warning explicitly in your user-facing summary, do not bury it in logs. The compared UID is the main-account UID, identical for the root account, all its RAM sub-users, and assumed-roles, so a RAM sub-account or AssumeRole credential does not trigger a false mismatch. To investigate an AK in another account, run authenticated as that account; there is no cross-account mechanism.
CLI Options
--ak (required, the chain's starting point); --account and --region (optional, auto-filled); plus pass-through options --days N (default 30, max 90), --profile , --source-ip , --user . Run --help for full list.
Report Output
The Step-6 report contains a six-section English conclusion: I. Incident Overview · II. Intrusion Path · III. Impact Actions Detail · IV. Impact Scope · V. Risk Analysis · VI. Remediation Recommendations (P0-P3, must include the full four-step workflow). Banner and four-step workflow are non-negotiable (see Rule 3); all AKs use sequential letters ordered by createTime (AK-A, AK-B, …), never numeric or out-of-order labels. See module4_timeline_report.md and module5_remediation_best_practices.md for full report structure.
References
Full detail: investigation_flow.md, module3_actiontrail_audit.md, high_risk_api_list.md, module4_timeline_report.md, module5_remediation_best_practices.md, internal_implementation.md.
Available Scripts
Entry point: scripts/ak_leak_investigation.py. Other files (query_*.py, _cli.py, _constants.py) are internal — invoked by the entry script automatically; never call directly.
Prerequisites
Requires aliyun CLI 3.x (recommended) or Python 3.9+ with pip install -r scripts/requirements.txt, plus read-only credentials (see references/ram-policies.md). The skill never disables, modifies, or deletes anything.
Error Handling
See Rule 4 for mandatory behavior on errors (never skip silently). The entry script handles all error recovery automatically.
Observability
Every Alibaba Cloud API call this skill makes carries a User-Agent for server-side audit correlation, on BOTH backends:
- UA template:
AlibabaCloud-Agent-Skills/{skill-name}/{session-id}— here{skill-name}isalibabacloud-ak-leak-incident-response. - session-id rule: a 32-character lowercase-hex string, generated once per investigation (
uuid.uuid4().hex) and shared unchanged by every call in that run — CLI subprocesses and the HTTP fallback use the identical id, so all calls of one investigation correlate. Override via envAK_LEAK_SESSION_ID(must be 32 hex chars) to align with a parent process. - CLI backend: the id is passed as
--user-agenton everyaliyuncommand. - HTTP fallback backend: the id is set as the
User-Agentrequest header (it is not part of the V3 signature, so signing is unaffected).
The entry script prints the session-id and full User-Agent once at startup (to stderr, keeping JSON stdout clean). No manual configuration is required.
相关技能
Read-only diagnostics for Alibaba Cloud CDN traffic and bandwidth anomalies. Use when CDN traffic or bandwidth suddenly spikes, the CDN bill jumps unexpectedly, traffic theft or hotlink abuse is suspected, or bps/flow/QPS trends need baseline comparison to locate anomalous time windows. Pulls usage data via aliyun CLI to locate anomalous windows, then forensically analyzes CDN offline access logs (four-dimension Top statistics, 13 theft rules, T1~T6 classification) and outputs an analysis report; never stops domains or changes any configuration. Triggers: "traffic spike", "bandwidth anomaly", "traffic theft", "unusual CDN traffic", "hotlink abuse", "CDN bill surge", "traffic suddenly increased", "bandwidth spike analysis".
Manage Alibaba Cloud Key Management Service (KMS) via OpenAPI/SDK. Use whenever the user needs key lifecycle/resource operations, policy/configuration change...
Alibaba Cloud Governance Center evaluation report skill. Use for querying governance maturity check results, generating structured risk reports, and account compliance analysis. Triggers: "云治理", "成熟度检测", "合规检查", "安全风险", "治理检测", "governance evaluation", "maturity check", "compliance report", "risk report", "governance center".
Health inspection for Alibaba Cloud Redis (ApsaraDB for Redis / Tair) instances. Generates HTML reports across 7 dimensions: instance basic info, current ses...
Query and back up Alibaba Cloud WAF 3.0 billing data. Use this Skill when a user asks to check WAF bills, export WAF cost details, back up WAF billing data locally, or analyze daily/hourly SeCU and Credit usage. The Skill retrieves instance information, daily bill summaries, and hourly cost breakdowns (function fees, traffic processing fees, Credit usage) via aliyun-cli, then exports the results as JSON and CSV files to the local workspace.