IPS 告警事件分析
Skill 范围说明:
- 此 skill 设计为使用阿里云 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 运行模式、规则开关和规则库版本
- 修复建议——基于告警数据按优先级排列的安全建议
---
前提条件
预检查:必须使用阿里云 CLI >= 3.3.3
运行 aliyun version 验证版本是否 >= 3.3.3。如果尚未安装或版本过低,
运行 curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash 进行安装/更新,
或参阅 references/cli-installation-guide.md 获取安装说明。
预检查:必须更新阿里云 CLI 插件
[必须] 运行 aliyun configure set --auto-plugin-install true 以启用自动插件安装。
[必须] 运行 aliyun plugin update,确保所有现有插件始终保持最新。
[必须] CLI User-Agent——每次调用 aliyun CLI 命令时都必须包含: --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event
在核心工作流开始时(调用任何 CLI 之前): [必须] 启用 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"
[必须] 在每个退出点都禁用 AI-Mode——无论出于何种原因,在给出最终响应前,都必须先禁用 AI-mode。这适用于所有退出路径:工作流成功、工作流失败、错误/异常、用户取消、会话结束,或任何其他不再执行 CLI 命令的场景。 AI-mode 仅用于调用 Agent Skill 的场景,并且在 skill 停止运行后不得保持启用状态。
aliyun configure ai-mode disable
---
身份认证
预检查:必须具备阿里云凭证
安全规则:
- 严禁在任何情况下读取、回显、打印、使用 cat 输出或显示 AK/SK 值
- 严禁要求用户直接在对话或命令行中输入 AK/SK
- 严禁在 aliyun configure set 中直接使用实际凭证值
- 仅可使用 aliyun configure list 检查凭证状态
```bash
aliyun configure list
```
检查输出中是否存在使用 AK、STS 或 OAuth 身份的有效配置文件。
如果不存在有效配置文件,必须在此停止。
1. 从阿里云控制台获取凭证
2. 在此会话之外配置凭证(通过终端中的 aliyun configure 或 shell 配置文件中的环境变量)
3. 在 aliyun configure list 显示有效配置文件后返回并重新运行
---
RAM 策略
[必须] RAM 权限预检查:在执行任何命令之前,必须验证当前用户是否具备所需权限。
1. 使用 ram-permission-diagnose skill 获取当前用户的权限
2. 与 references/ram-policies.md 进行比对
3. 如果缺少任何权限,中止执行并提示用户
最低所需权限——完整策略 JSON 请参阅 [references/ram-policies.md](references/ram-policies.md)。
或者,附加以下系统策略:AliyunYundunCloudFirewallReadOnlyAccess
---
参数确认
重要:参数确认——在执行任何命令或发起 API 调用之前,
检查用户是否已在请求中提供必要参数。
- 如果用户的请求明确提到参数值(例如,“查看过去 7 天的 IPS 告警”表示使用 7 天的时间范围),则直接使用该值,无需请求确认。
- 对于具有合理默认值的可选参数(PageSize、CurrentPage、时间范围),除非用户另有说明,否则直接使用默认值,无需询问。
- 不得再次询问用户已经明确说明的参数。
| 参数名称 | 必填/可选 | 说明 | 默认值 | |---------------|-------------------|-------------|---------------| | RegionId | 必填 | 云防火墙的阿里云地域。仅有两个值:cn-hangzhou 用于中国内地,ap-southeast-1 用于中国香港/海外。 | cn-hangzhou(无需询问,直接使用;仅当用户明确提到中国香港/海外/国际时才使用 ap-southeast-1) | | StartTime | 大多数 APIs 的必填项 | 告警查询的开始时间(以秒为单位的 Unix 时间戳) | “今天”为 24 小时前,“最近”/“本周”为 7 天前(无需询问,直接使用) | | EndTime | 大多数 APIs 的必填项 | 告警查询的结束时间(以秒为单位的 Unix 时间戳) | 当前时间(无需询问,直接使用) | | PageSize | 可选 | 分页 APIs 每页的条目数 | 50(无需询问,直接使用) | | CurrentPage | 可选 | 分页 APIs 的页码 | 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] 失败:{错误消息}”,然后继续下一步骤。
超时策略(必须)
每次 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 调用均使用阿里云 CLI 的 cloudfw 插件。 请求/响应模式仅在 [references/api-analysis.md](references/api-analysis.md) 中维护。不得在此文件中逐字段重复说明。
User-Agent:所有命令必须包含 --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event 地域:通过全局标志 --region {RegionId} 指定
关键:此 skill 为只读(仅查询)。 以下所有命令都是安全的只读查询,不会修改任何云资源。
执行前,先向用户确认执行计划:简要列出将执行的步骤和目标地域。只有在用户确认后才能继续。
不得询问用户要调用哪些具体 APIs,也不得询问要使用哪些数据源——这些由以下工作流确定。
以下意图路由表仅用于优化——如果用户意图不明确,默认计划执行全部步骤 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,并在继续之前向用户确认。
时间参数
部分 APIs 需要 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(错误:{简要错误})”,并在底部部分列出所有错误。
---
成功验证
有关详细验证步骤,请参见 [references/verification-method.md](references/verification-method.md)。
快速验证:如果所有 CLI 命令均返回不含错误码的有效 JSON 响应,则 skill 执行成功。
---
API 与命令表
将 [references/related-apis.md](references/related-apis.md) 作为 API 表和命令映射的唯一事实来源。
---
最佳实践
- 按顺序查询——首先查询告警统计信息(步骤 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 命令中使用$(...)替换。 - 区域注意事项——云防火墙只有两个区域:
cn-hangzhou(中国内地)和ap-southeast-1(中国香港/海外)。除非用户另有指定,否则默认为cn-hangzhou。 - 方向参数——步骤 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](references/related-apis.md) | 包含参数的完整 API 表 | | [references/ram-policies.md](references/ram-policies.md) | 所需的 RAM 权限和策略 JSON | | [references/verification-method.md](references/verification-method.md) | 分步验证命令 | | [references/acceptance-criteria.md](references/acceptance-criteria.md) | 正确/错误的使用模式 | | [references/cli-installation-guide.md](references/cli-installation-guide.md) | 阿里云 CLI 安装指南 | | [references/api-analysis.md](references/api-analysis.md) | 详细的 API 参数和响应文档 |