关于 alibabacloud-cfw-ips-event
此只读 Skill 通过 Aliyun CLI 查询和分析 Alibaba Cloud Firewall 的 IPS 告警,可汇总事件模式、受影响资产及 IPS 配置,并提供修复建议。
主要功能
- 01汇总告警数量和严重程度
- 02查看事件及攻击处置状态
- 03排列受攻击资产并分析攻击类型
- 04检查 IPS 模式、规则和规则库版本
- 05提供优先级修复建议
适用场景
- 01审查近期 IPS 告警和威胁
- 02调查涉及源 IP 或目标 IP 的告警
- 03检查 IPS 配置和攻击趋势
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aliyun/ alibabacloud-aiops-skills --skill alibabacloud-cfw-ips-event安装后在 Claude Code 中输入/alibabacloud-cfw-ips-event确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/acceptance-criteria.mdapi-analysis.mdcli-installation-guide.mdram-policies.mdrelated-apis.mdverification-method.md详细介绍
IPS 告警事件分析
技能范围说明:
- 本技能主要使用阿里云 CLI 的
cloudfw命令作为数据源。- 本技能不依赖本地日志文件、SIEM 导出数据或直接访问主机。
- 本技能无需 SSH 或直接连接服务器 IP。
- 对于以 IP 为重点的调查,优先使用
DescribeRiskEventGroup配合--SrcIP或--DstIP。
场景描述
查询和分析阿里云云防火墙检测到的 IPS(入侵防御系统)安全事件和告警,帮助快速定位威胁并提供修复建议。
架构:Cloud Firewall Service → IPS Engine → Event Detection + Attack Analysis + Protection Configuration
能力级别:查询(只读)
数据源:所有数据仅通过阿里云 CLI 命令(aliyun cloudfw ...)获取。不使用日志文件、数据库、服务器访问或 SIEM,只使用 CLI 命令。不要搜索工作区中的文件。不要向用户询问任何信息。只需运行命令。
核心能力:
- 告警概览 — IPS 告警统计信息,包括攻击次数、拦截次数和严重程度分布
- 告警事件详情 — IPS 告警事件详细列表,包含源/目标、攻击类型和处置状态
- 受攻击资产排行 — 受攻击最多的资产排行
- 攻击类型分析 — 攻击类型和应用分布
- IPS 配置状态 — 当前 IPS 运行模式、规则开关和规则库版本
- 修复建议 — 根据告警数据提供按优先级排序的安全建议
前提条件
预检:需要 Aliyun CLI >= 3.3.3 运行
aliyun version以验证版本是否 >= 3.3.3。如果尚未安装或版本过低, 请运行curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash进行安装/更新, 或参阅references/cli-installation-guide.md获取安装说明。
预检:需要更新 Aliyun CLI 插件 [MUST] 运行
aliyun configure set --auto-plugin-install true以启用自动安装插件。 [MUST] 运行aliyun plugin update,确保所有现有插件始终为最新版本。
[MUST] CLI User-Agent — 每次调用 aliyun CLI 命令时都必须包含:
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event
在核心工作流开始时(调用任何 CLI 命令之前): [MUST] 启用 AI-Mode — 执行 Agent Skill 时必须启用 AI-mode。 调用任何 CLI 命令之前,运行以下命令:
aliyun configure ai-mode enable
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event"
[MUST] 在每个退出点禁用 AI-Mode — 无论出于何种原因,在提供最终回复之前,都必须先禁用 AI-mode。此要求适用于所有退出路径:工作流成功、工作流失败、错误/异常、用户取消、会话结束,或任何不会再执行 CLI 命令的其他情况。 AI-mode 仅用于 Agent Skill 调用场景,技能停止运行后不得继续保持启用状态。
aliyun configure ai-mode disable
身份验证
预检:需要 Alibaba Cloud 凭据
安全规则:
- 在任何情况下都不得读取、回显、打印、cat 或显示 AK/SK 值
- 不得要求用户在对话或命令行中直接输入 AK/SK
- 不得使用
aliyun configure set设置明文凭据值- 只能使用
aliyun configure list检查凭据状态aliyun configure list检查输出中是否存在有效配置文件(AK、STS 或 OAuth 身份)。
如果没有有效配置文件,请在此处停止。
- 从 Alibaba Cloud Console 获取凭据
- 在本次会话之外配置凭据(通过终端中的
aliyun configure或 shell 配置文件中的环境变量)- 等
aliyun configure list显示有效配置文件后,返回并重新运行
RAM 策略
[必须] RAM 权限预检查: 执行任何命令前,确认当前用户拥有所需权限。
- 使用
ram-permission-diagnose技能获取当前用户的权限- 对照
references/ram-policies.md- 如果缺少任何权限,停止操作并提示用户
最低所需权限——完整策略 JSON 请参阅 references/ram-policies.md。
或者,附加系统策略:AliyunYundunCloudFirewallReadOnlyAccess
参数确认
重要:参数确认——执行任何命令或 API 调用前, 检查用户是否已在请求中提供必要参数。
- 如果用户的请求明确提及参数值(例如,“检查最近 7 天的 IPS 告警”意味着使用 7 天的时间范围),直接使用该值,无需询问确认。
- 对于有合理默认值的可选参数(PageSize、CurrentPage、时间范围),使用默认值,无需询问,除非用户另有说明。
- 对于用户已明确说明的参数,不要再次询问。
| 参数名称 | 必填/可选 | 说明 | 默认值 |
|---|---|---|---|
| RegionId | 必填 | Cloud Firewall 的 Alibaba Cloud 区域。仅支持两个值:cn-hangzhou 表示中国大陆,ap-southeast-1 表示香港/海外。 | cn-hangzhou(直接使用,无需询问;仅当用户明确提及香港/海外/国际时才使用 ap-southeast-1) |
| StartTime | 大多数 API 必填 | 告警查询的开始时间(Unix 秒级时间戳) | “今天”表示 24 小时前,“最近”/“本周”表示 7 天前(直接使用,无需询问) |
| EndTime | 大多数 API 必填 | 告警查询的结束时间(Unix 秒级时间戳) | 当前时间(直接使用,无需询问) |
| PageSize | 可选 | 分页 API 每页的条目数 | 50(直接使用,无需询问) |
| CurrentPage | 可选 | 分页 API 的页码 | 1(直接使用,无需询问) |
输入验证(必须)
将所有 Agent 提供的输入视为不可信。在构建 CLI 命令前进行验证。
验证规则:
RegionId:必须严格为cn-hangzhou或ap-southeast-1之一。StartTime/EndTime:必须为 10 位 Unix 秒级时间戳(^[0-9]{10}$),且StartTime < EndTime。CurrentPage:正整数(>=1)。PageSize:范围为1-100的整数。SrcIP/DstIP:必须为有效的 IPv4 格式(a.b.c.d,每个八位组的范围为0-255)。
安全命令构建规则:
- 不要将未经处理的用户文本拼接到 shell 命令中。
- 只将经过验证的值传入固定的 CLI 标志模板。
- 如果任何验证失败,停止执行并返回清晰的验证错误。
错误处理和工作流弹性
关键:失败后继续。 如果任何单个 API 调用失败,不要停止整个工作流。 记录该步骤的错误,然后继续下一步。展示已成功收集的数据。
重试逻辑
对于每次 API 调用:
- 如果调用因临时错误(网络超时、限流
Throttling.User、ServiceUnavailable、HTTP 500/502/503)失败,最多重试 2 次,每次重试之间等待 3 秒。 - 如果调用因永久错误(例如
InvalidParameter、Forbidden、InvalidAccessKeyId)失败,不要重试。记录错误并继续。 - 所有重试均失败后,记录“[步骤 X] 失败:{error message}”,然后继续下一步。
超时策略(必须)
每次 API 调用前,明确设置 CLI 超时时间:
export ALIBABA_CLOUD_CONNECT_TIMEOUT=10
export ALIBABA_CLOUD_READ_TIMEOUT=30
ALIBABA_CLOUD_CONNECT_TIMEOUT=10:连接超时时快速失败。ALIBABA_CLOUD_READ_TIMEOUT=30:防止单次请求长时间挂起。- 超时错误视为临时错误,并遵循重试逻辑。
无告警事件
如果步骤 1(DescribeRiskEventStatistic)返回的所有数值均为零:
- 告知用户:“在指定时间范围内未检测到 IPS 告警事件。”
- 仍然继续执行步骤 6 和步骤 7,以报告 IPS 配置状态。
步骤独立性
工作流步骤之间的依赖关系如下:
- **步骤 1(统计)**应首先运行,以提供背景信息。
- 步骤 2-7 相互独立——任一步骤失败都不应阻止其他步骤执行。
部分结果
呈现最终摘要报告时:
- 对于成功的步骤,正常显示收集到的数据。
- 对于失败的步骤,在对应部分显示“N/A(错误:{简要错误})”。
- 即使部分步骤失败,也始终呈现摘要报告——部分数据胜过没有数据。
核心工作流
所有 API 调用均使用 Aliyun CLI cloudfw 插件。
请求/响应架构仅维护在 references/api-analysis.md 中。不要在此文件中重复逐字段说明。
User-Agent:所有命令都必须包含 --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event
区域:通过 --region {RegionId} 全局标志指定
重要:此技能为只读(仅查询)。 以下所有命令都是安全的只读查询,不会修改任何云资源。 执行前,请与用户确认执行计划:简要列出将执行的步骤和目标区域。只有在用户确认后才能继续。 不要询问用户要调用哪些具体 API 或使用哪些数据源——这些由下方工作流决定。 下方的意图路由表仅用于优化——如果用户意图不明确,默认计划执行所有步骤(步骤 1-7)。
意图路由(自动确定,执行前确认)
根据用户的措辞自动确定执行范围。运行命令前,先向用户展示执行计划并请求确认:
| 用户意图 | 执行步骤 |
|---|---|
| 完整告警分析(“今天有哪些 IPS 告警”“近期安全事件”) | 执行步骤 1-7 |
| 受攻击资产调查(“哪些资产遭受的攻击最多”) | 执行步骤 1 + 步骤 3 |
| 特定源 IP 告警(“这个 IP 触发了哪些告警”) | 执行步骤 2(使用 --SrcIP 筛选) |
| 特定目标资产/服务器告警(“检查 x.x.x.x 上的攻击”“服务器 10.0.1.88 的安全告警”) | 执行步骤 1 + 步骤 2(使用 --DstIP 筛选)+ 步骤 6 + 步骤 7 |
| 攻击趋势/类型(“近期攻击是否在增加”) | 执行步骤 1 + 步骤 4 + 步骤 5 |
| IPS 配置检查(“IPS 处于什么模式”“规则库版本”) | 执行步骤 6 + 步骤 7 |
默认行为:如果无法明确判断用户意图,则计划执行步骤 1-7,并在继续前向用户确认。
时间参数
某些 API 需要 StartTime 和 EndTime 参数(Unix 秒级时间戳)。
获取时间戳的方法:运行 date +%s 获取当前时间戳,运行 date -d '1 day ago' +%s 获取 24 小时前的时间戳,运行 date -d '7 days ago' +%s 获取 7 天前的时间戳。然后在 CLI 命令中直接使用返回的数值。
重要:不要在 CLI 命令中使用
$(date +%s)这类 Bash 变量替换——某些执行环境会阻止$(...)。应先单独运行date命令,记录返回值,再将其作为字面数值用于--StartTime和--EndTime参数。
默认时间范围:
- 用户说“今天” →
StartTime= 24 小时前 - 用户说“近期”/“本周” →
StartTime= 7 天前 - 未指定时间范围 → 默认为 7 天前
EndTime→ 始终为当前时间戳
步骤 1:IPS 告警统计概览
获取总体告警统计信息,以了解当前安全态势。
aliyun cloudfw describe-risk-event-statistic \
--StartTime {StartTime} \
--EndTime {EndTime} \
--region {RegionId} \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event
第 2 步:IPS 告警事件详情
获取分组后的告警事件列表。这是分析的核心数据。
aliyun cloudfw describe-risk-event-group \
--CurrentPage 1 \
--PageSize 50 \
--StartTime {StartTime} \
--EndTime {EndTime} \
--DataType 1 \
--region {RegionId} \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event
可选筛选参数(根据用户意图自动添加,无需确认):
- 按方向筛选:
--Direction in或--Direction out - 按源 IP 筛选:
--SrcIP x.x.x.x(查询“由特定 IP 发起的攻击”) - 按目标 IP 筛选:
--DstIP x.x.x.x(查询“针对特定服务器/IP 的攻击”,支持 10.x.x.x 等私有 IP) - 按漏洞级别筛选:
--VulLevel 3(1=低,2=中,3=高)
关键提示:当用户提到某台服务器或 IP 遭受攻击时,使用
--DstIP筛选该 IP 的所有攻击记录,无需访问服务器本身。
分页:检查 TotalCount。如果超过 50,则递增 CurrentPage。
第 3 步:受攻击资产排行
确定哪些资产是攻击热点。
aliyun cloudfw describe-risk-event-top-attack-asset \
--StartTime {StartTime} \
--EndTime {EndTime} \
--region {RegionId} \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event
第 4 步:攻击类型排行
了解面临的主要威胁类型。
aliyun cloudfw describe-risk-event-top-attack-type \
--StartTime {StartTime} \
--EndTime {EndTime} \
--Direction in \
--region {RegionId} \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event
如果还需要出站攻击类型,请使用 --Direction out 再次调用。
注意:此 API 需要 Direction 参数,否则会返回错误。
第 5 步:受攻击应用排行
了解哪些应用层目标正遭受攻击。
aliyun cloudfw describe-risk-event-top-attack-app \
--StartTime {StartTime} \
--EndTime {EndTime} \
--region {RegionId} \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event
第 6 步:IPS 防护配置状态
检查当前 IPS 运行模式和防护能力。
aliyun cloudfw describe-default-ipsconfig \
--region {RegionId} \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event
第 7 步:IPS 规则库版本
aliyun cloudfw describe-signature-lib-version \
--region {RegionId} \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event
分析与报告
收集数据后,按以下结构生成报告。围绕告警事件展开分析,涵盖三个维度:“谁在攻击”“什么正在遭受攻击”以及“响应效果如何”。仅显示有实际数据的部分;如果 API 调用失败,请注明并继续。
1. IPS 告警态势概览
结合第 1 步统计数据和第 6 步 IPS 配置,展示当前安全态势:
告警统计(时间范围:x):
| 指标 | 数值 |
|---|---|
| 攻击事件总数 | x |
| 已阻止 | x |
| 已观察/已告警 | x |
| 未处理 | x |
| 高危 / 中危 / 低危 | x / x / x |
IPS 配置状态:
| 配置项 | 状态 |
|---|---|
| 运行模式 | 观察/阻止 |
| 基础防护 | 已启用/已禁用 |
| 虚拟补丁 | 已启用/已禁用 |
| 威胁情报 | 已启用/已禁用 |
| AI 引擎 | 已启用/已禁用 |
| 规则库版本 | x(更新时间) |
如果 IPS 处于观察模式且存在高危事件,请醒目标注:“IPS 当前处于观察模式——高危攻击不会被阻止”。
2. 高危告警事件(需立即处理)
从第 2 步筛选 VulLevel=3(高危)或 VulLevel=2(中危但事件数较高)的事件,并按事件数降序排列:
| 事件名称 | 攻击类型 | 源 IP | 源位置 | 目标 IP | 目标资产 | 事件数 | 处理状态 | 首次发现 | 最近发现 |
|---|
处理状态说明:
- 已观察(RuleResult=1):IPS 已检测到但未阻止——需人工确认是否需要阻止
- 已阻止(RuleResult=2):IPS 已自动阻止
3. 攻击热点分析
受攻击资产排行
结合第 3 步数据,按资产展示攻击情况:
| 排名 | 目标 IP | 资源名称 | 资源类型 | 区域 | 攻击次数 | 已阻止 | 阻止率 |
|---|
重点关注阻止率较低的资产——这意味着许多攻击仅被观察,而未被阻止。
攻击类型分布
结合第 4 步数据:
| 攻击类型 | 攻击次数 | 已阻止 | 阻止率 |
|---|
攻击应用分布
汇总步骤 5 的数据:
| 应用 | 攻击次数 | 已拦截 | 拦截率 |
|---|
4. 攻击来源分析
汇总步骤 2 事件数据中的源 IP 维度:
| 源 IP | 源国家/城市 | 攻击次数 | 主要攻击类型 | 目标资产数量 | 处理状态 |
|---|
标记同一源 IP 攻击多个资产的情况——这通常表明存在有组织的扫描或攻击。
5. 修复建议
根据实际数据生成具体建议,并按优先级排序。每条建议包含:风险描述、影响范围、建议操作。
P0 — 严重(立即处理)
- “观察”模式下存在未拦截的高危事件 → 将 IPS 切换为拦截模式,或手动封禁攻击源 IP
- 同一源 IP 大量攻击多个资产 → 将该 IP 添加到云防火墙 ACL 黑名单
- IPS 处于观察模式且存在活跃的高危攻击 → 切换为拦截模式
P1 — 高(24 小时内处理)
- 中危事件反复出现且未被拦截 → 检查目标资产漏洞并进行修复
- 未启用基础防护/虚拟补丁 → 建议启用以增强防护
- 被攻击资产的拦截率较低 → 检查 IPS 规则覆盖情况
P2 — 中(本周内处理)
- 同一资产受到多种攻击类型的攻击 → 对该资产进行安全加固审查
- 未启用威胁情报/AI 引擎规则 → 建议启用
- 规则库版本过旧 → 更新至最新版本
P3 — 低(定期审查)
- 低危事件持续出现 → 纳入定期审查,评估是否为误报
- 优化 IPS 白名单,减少业务误报
注意:对于任何执行失败的步骤,该部分的数据字段显示“ N/A (error: {brief error})”,并在底部部分列出所有错误。
成功验证
详细验证步骤请参阅 references/verification-method.md。
快速验证:如果所有 CLI 命令都返回有效的 JSON 响应,且没有错误代码,则表示技能执行成功。
API 和命令表
API 表和命令映射以 references/related-apis.md 为唯一可信来源。
最佳实践
- 按顺序查询 — 先查看告警统计(步骤 1),了解整体安全状况。如果所有值均为零,则报告该时间范围内未检测到告警。
- 失败后继续 — 如果任何步骤(2-7)失败,请记录错误并继续执行其余步骤。始终使用已收集的数据生成报告。
- 使用分页 — 对于告警事件列表(步骤 2),使用
CurrentPage和PageSize。默认将 PageSize 设为 50。如果TotalCount大于PageSize,则遍历所有页面。 - 选择时间范围 — 对于“今天”,默认使用过去 24 小时;对于“最近”或“本周”,默认使用过去 7 天。使用以秒为单位的 Unix 时间戳。按以下方式计算:使用
date +%s获取当前时间,使用date -d '1 day ago' +%s获取 24 小时前的时间,使用date -d '7 days ago' +%s获取 7 天前的时间。分别运行这些命令,然后将返回值作为字面数字填入--StartTime和--EndTime。不要在 CLI 命令中使用$(...)替换。 - 注意区域 — Cloud Firewall 只有两个区域:
cn-hangzhou(中国大陆)和ap-southeast-1(香港/海外)。除非用户另有指定,否则默认使用cn-hangzhou。 - Direction 参数 — 步骤 4(
DescribeRiskEventTopAttackType)需要Direction参数。默认使用in(入站)。如有需要,单独查询out。 - 限制请求频率 — 间隔调用 API,避免触发限流。如果收到
Throttling.User错误,请等待 3 秒后重试。 - 安全 — 绝不要暴露、记录、回显或显示 AK/SK 值。
- 对暂时性错误重试 — 对于网络超时或 5xx 错误,等待 3 秒后最多重试 2 次。
- 先验证所有输入 — 执行命令前,拒绝无效的
RegionId、时间戳、分页和 IP 值。 - 设置明确的超时环境变量 — 始终在工作流命令前设置
ALIBABA_CLOUD_CONNECT_TIMEOUT=10和ALIBABA_CLOUD_READ_TIMEOUT=30。
参考链接
| 参考 | 说明 |
|---|---|
| references/related-apis.md | 包含参数的完整 API 表 |
| references/ram-policies.md | 所需的 RAM 权限和策略 JSON |
| references/verification-method.md | 逐步验证命令 |
| references/acceptance-criteria.md | 正确/错误的用法模式 |
| references/cli-installation-guide.md | Aliyun CLI 安装指南 |
| references/api-analysis.md | 详细的 API 参数和响应文档 |