IPS 告警事件分析

Skill 适用范围说明:
- 本 Skill 以阿里云 CLI cloudfw 命令作为主要数据来源。
- 不依赖本地日志文件、SIEM 导出数据或直接访问主机。
- 不需要 SSH 或直接连接服务器 IP。
- 针对 IP 维度的排查,优先使用带 --SrcIP--DstIPDescribeRiskEventGroup

场景描述

查询并分析阿里云云防火墙 IPS(入侵防御系统)检测到的安全事件与告警,帮助快速定位威胁并提供修复建议。

架构云防火墙服务 → IPS 引擎 → 事件检测 + 攻击分析 + 防护配置

能力级别:查询(只读)

数据来源:所有数据通过阿里云 CLI 命令(aliyun cloudfw ...)获取。不使用日志文件、数据库、服务器访问或 SIEM——只用 CLI 命令。不要在工作区中搜索文件。不要向用户索要任何东西。直接运行命令即可。

核心能力

  1. 告警概览 —— IPS 告警统计,包括攻击次数、拦截次数和严重程度分布
  2. 告警事件详情 —— IPS 告警事件明细列表,包含源/目的、攻击类型和处理状态
  3. 被攻击资产 Top 排名 —— 被攻击最多的资产排名
  4. 攻击类型分析 —— 攻击类型和应用的分布
  5. IPS 配置状态 —— 当前 IPS 运行模式、规则开关和规则库版本
  6. 修复建议 —— 基于告警数据的分优先级安全建议

前置条件

预检查:需要阿里云 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
```
检查输出中是否存在有效 profile(AK、STS 或 OAuth 身份)。
如果不存在有效 profile,请在此停止。
1. 从 阿里云控制台 获取凭证
2. 在本会话之外配置凭证(通过终端中的 aliyun configure 或 shell profile 中的环境变量)
3. 在 aliyun configure list 显示有效 profile 后返回并重新运行

RAM 策略

[必须] RAM 权限预检查: 在执行任何命令之前,验证当前用户具有所需权限。
1. 使用 ram-permission-diagnose skill 获取当前用户权限
2. 与 references/ram-policies.md 进行比对
3. 如果缺少任何权限,中止并提示用户

最低所需权限 —— 完整策略 JSON 见 references/ram-policies.md

或者,附加系统策略:AliyunYundunCloudFirewallReadOnlyAccess

参数确认

重要:参数确认 —— 在执行任何命令或 API 调用之前,
检查用户是否已在请求中提供了必要参数。
- 如果用户请求明确提到某个参数值(例如“查看最近 7 天的 IPS 告警”意味着使用 7 天时间范围),直接使用该值,无需确认
- 对于具有合理默认值的可选参数(PageSize、CurrentPage、时间范围),除非用户另有说明,否则使用默认值,无需询问。
- 不要重复询问用户已明确说明的参数。
参数名必填/可选说明默认值
RegionId必填云防火墙的阿里云地域。仅有两个取值: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-hangzhouap-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 flag 模板。
  • 如果任何校验失败,停止执行并返回明确的校验错误。

错误处理与工作流韧性

关键:失败时继续。 如果任何单个 API 调用失败,不要停止整个工作流。
记录该步骤的错误,然后继续执行下一步。展示所有成功收集到的数据。

重试逻辑

对于每次 API 调用:

  1. 如果调用因瞬时错误失败(网络超时、限流 Throttling.UserServiceUnavailable、HTTP 500/502/503),最多重试 2 次,每次重试之间延迟 3 秒。
  2. 如果调用因永久错误失败(例如 InvalidParameterForbiddenInvalidAccessKeyId),不要重试。记录错误并继续。
  3. 所有重试耗尽后,记录“[Step X] Failed: {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:防止每次请求长时间挂起。
  • 超时错误视为瞬时错误,遵循重试逻辑。

无告警事件

如果 Step 1(DescribeRiskEventStatistic)返回全零:

  1. 告知用户:“在指定时间范围内未检测到 IPS 告警事件。”
  2. 仍然继续执行 Step 6 和 Step 7,报告 IPS 配置状态。

步骤独立性

工作流步骤具有以下依赖关系:

  • Step 1(统计) 应首先运行以提供上下文。
  • Step 2-7 相互独立 —— 任何一步失败都不应阻止其他步骤执行。

部分结果

在呈现最终总结报告时:

  • 对于成功的步骤,正常展示收集到的数据。
  • 对于失败的步骤,在对应部分显示“N/A(错误:{简要错误})”。
  • 即使部分步骤失败,也始终呈现总结报告——部分数据总比没有数据好。

核心工作流

所有 API 调用使用阿里云 CLI cloudfw 插件。

请求/响应 schema 仅维护在 references/api-analysis.md 中。不要在本文件中重复逐字段描述。

User-Agent:所有命令必须包含 --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event

地域:通过 --region {RegionId} 全局 flag 指定

关键:本 Skill 为只读(仅查询)。 以下所有命令都是安全的只读查询,不会修改任何云资源。
在执行之前,与用户确认执行计划:简要列出将执行哪些步骤以及目标地域。仅在用户确认后继续。
不要询问用户调用哪些具体 API 或使用哪些数据源——这些由下面的工作流决定。
下面的意图路由表仅用于优化——如果用户意图不明确,默认计划执行所有步骤(Step 1-7)。

意图路由(自动确定,执行前确认)

根据用户措辞自动确定执行范围。在运行命令之前,向用户展示执行计划以供确认:

用户意图执行步骤
完整告警分析(“今天有哪些 IPS 告警”“最近的安全事件”)执行所有 Step 1-7
被攻击资产排查(“哪些资产被攻击最多”)执行 Step 1 + Step 3
特定源 IP 告警(“这个 IP 触发了哪些告警”)执行 Step 2(带 --SrcIP 过滤)
特定目标资产/服务器告警(“检查 x.x.x.x 上的攻击”“服务器 10.0.1.88 的安全告警”)执行 Step 1 + Step 2(带 --DstIP 过滤)+ Step 6 + Step 7
攻击趋势/类型(“最近攻击是否在增加”)执行 Step 1 + Step 4 + Step 5
IPS 配置检查(“IPS 是什么模式”“规则库版本”)执行 Step 6 + Step 7

默认行为:如果无法明确判断用户意图,计划执行所有 Step 1-7,并在继续之前与用户确认。

时间参数

某些 API 需要 StartTimeEndTime 参数(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 → 始终为当前时间戳

Step 1:IPS 告警统计概览

获取整体告警统计,了解当前安全态势。

aliyun cloudfw describe-risk-event-statistic \
  --StartTime {StartTime} \
  --EndTime {EndTime} \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event

Step 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

Step 3:被攻击资产 Top 排名

识别哪些资产是攻击热点。

aliyun cloudfw describe-risk-event-top-attack-asset \
  --StartTime {StartTime} \
  --EndTime {EndTime} \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event

Step 4:攻击类型 Top 排名

了解当前面临的主要威胁类型。

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 参数,否则会返回错误。

Step 5:被攻击应用 Top 排名

了解哪些应用层目标正在被攻击。

aliyun cloudfw describe-risk-event-top-attack-app \
  --StartTime {StartTime} \
  --EndTime {EndTime} \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event

Step 6:IPS 防护配置状态

检查当前 IPS 运行模式和防护能力。

aliyun cloudfw describe-default-ipsconfig \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event

Step 7:IPS 规则库版本

aliyun cloudfw describe-signature-lib-version \
  --region {RegionId} \
  --user-agent AlibabaCloud-Agent-Skills/alibabacloud-cfw-ips-event

分析与报告

收集数据后,按以下结构生成报告。分析围绕告警事件展开,覆盖三个维度:“谁在攻击”“什么被攻击”“响应效果如何”。只展示有实际数据的部分;如果某个 API 调用失败,注明并继续。

1. IPS 告警态势概览

结合 Step 1 统计和 Step 6 IPS 配置,展示当前安全态势:

告警统计(时间范围:x):

指标数值
总攻击事件数x
已拦截x
已观察/已告警x
未处理x
高/中/低严重程度x / x / x

IPS 配置状态:

配置项状态
运行模式观察/拦截
基础防护已启用/已禁用
虚拟补丁已启用/已禁用
威胁情报已启用/已禁用
AI 引擎已启用/已禁用
规则库版本x(更新时间)

如果 IPS 处于观察模式且存在高严重程度事件,需醒目提示:“IPS 当前处于观察模式——高严重程度攻击被拦截”。

2. 高严重程度告警事件(需立即处理)

从 Step 2 中筛选 VulLevel=3(高)或 VulLevel=2(中且事件数较多)的事件,按事件数降序排列:

事件名称攻击类型源 IP源位置目标 IP目标资产事件数处理状态首次出现最后出现

处理状态说明:

  • 已观察(RuleResult=1):IPS 检测到但未拦截——需要人工确认是否需要拦截
  • 已拦截(RuleResult=2):已被 IPS 自动拦截

3. 攻击热点分析

#### 被攻击资产 Top 排名

结合 Step 3 数据,按资产展示攻击情况:

排名目标 IP资源名称资源类型地域攻击次数已拦截拦截率

重点关注拦截率低的资产——这意味着大量攻击只是被观察,并未被拦截。

#### 攻击类型分布

结合 Step 4 数据:

攻击类型攻击次数已拦截拦截率

#### 攻击应用分布

结合 Step 5 数据:

应用攻击次数已拦截拦截率

4. 攻击源分析

从 Step 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

快速验证:如果所有 CLI 命令返回有效 JSON 响应且无错误码,则 Skill 执行成功。

API 与命令表

references/related-apis.md 作为 API 表和命令映射的唯一权威来源。

最佳实践

  1. 按顺序查询 —— 从告警统计(Step 1)开始,了解整体安全态势。如果所有值均为零,报告该时间范围内未检测到告警。
  2. 失败时继续 —— 如果任何步骤(2-7)失败,记录错误并继续执行剩余步骤。始终用已收集到的数据生成报告。
  3. 使用分页 —— 对于告警事件列表(Step 2),使用 CurrentPagePageSize。默认 PageSize=50。如果 TotalCount 超过 PageSize,遍历所有页。
  4. 时间范围选择 —— “今天”默认最近 24 小时,“最近”/“本周”默认最近 7 天。使用 Unix 秒级时间戳。计算方式:date +%s 获取当前时间,date -d '1 day ago' +%s 获取 24 小时前,date -d '7 days ago' +%s 获取 7 天前。分别运行这些命令,然后将返回值作为字面数字用于 --StartTime--EndTime。不要在 CLI 命令内使用 $(...) 替换。
  5. 地域感知 —— 云防火墙只有两个地域:cn-hangzhou(中国大陆)和 ap-southeast-1(香港/海外)。除非用户另有说明,默认使用 cn-hangzhou
  6. Direction 参数 —— Step 4(DescribeRiskEventTopAttackType)需要 Direction 参数。默认使用 in(入站)。如需查询出站,单独查询 out
  7. 限流 —— 间隔调用 API 以避免限流。如果收到 Throttling.User 错误,等待 3 秒后重试。
  8. 安全 —— 绝不暴露、记录、回显或显示 AK/SK 值。
  9. 瞬时错误重试 —— 对于网络超时或 5xx 错误,最多重试 2 次,每次延迟 3 秒。
  10. 先校验所有输入 —— 在执行命令之前,拒绝无效的 RegionId、时间戳、分页和 IP 值。
  11. 设置显式超时环境变量 —— 在工作流命令之前始终设置 ALIBABA_CLOUD_CONNECT_TIMEOUT=10ALIBABA_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阿里云 CLI 安装指南
references/api-analysis.md详细 API 参数与响应文档

好的,继续输出文档 2 / 6

文档 2 / 6:alibabacloud-sas-incident-manage