返回技能市场
开发运维 安全

云防火墙入侵防御总结

@aliyun/alibabacloud-cfw-ips-event

云防火墙入侵防御总结

云Skills门户 热度 71v0.0.2

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 命令。不得在工作区中搜索文件。不得向用户询问任何内容。直接运行命令。

核心能力

  1. 告警概览——IPS 告警统计,包括攻击次数、拦截次数和严重程度分布
  2. 告警事件详情——IPS 告警事件的详细列表,包括源端/目的端、攻击类型和处置状态
  3. 受攻击最多的资产——受攻击最多的资产排名
  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
```
检查输出中是否存在使用 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-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 选项模板。
  • 如果任何验证失败,停止执行并返回明确的验证错误。

---

错误处理与工作流韧性

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

重试逻辑

对于每次 API 调用:

  1. 如果调用因暂时性错误(网络超时、限流 Throttling.UserServiceUnavailable、HTTP 500/502/503)失败,最多重试 2 次,每次重试之间间隔 3 秒。
  2. 如果调用因永久性错误(例如,InvalidParameterForbiddenInvalidAccessKeyId)失败,则不得重试。记录错误并继续后续步骤。
  3. 所有重试均已用尽后,记录“[步骤 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)返回的值全为零:

  1. 告知用户:“在指定时间范围内未检测到 IPS 告警事件。”
  2. 仍继续执行步骤 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 需要 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 → 始终为当前时间戳

步骤 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. 按顺序查询——首先查询告警统计信息(步骤 1),以了解整体安全态势。如果所有值均为零,请报告在该时间范围内未检测到告警。
  2. 失败后继续——如果任何步骤(2-7)失败,请记录错误并继续执行其余步骤。无论收集到多少数据,都必须生成报告。
  3. 使用分页——对于告警事件列表(步骤 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. 方向参数——步骤 4(DescribeRiskEventTopAttackType)要求提供 Direction 参数。默认为 in(入方向)。如有需要,请单独查询 out
  7. 限流——在 API 调用之间留出间隔,以避免限流。如果收到 Throttling.User 错误,请等待 3 秒后重试。
  8. 安全——严禁泄露、记录、回显或显示 AK/SK 值。
  9. 瞬时错误重试——对于网络超时或 5xx 错误,每次间隔 3 秒,最多重试 2 次。
  10. 先验证所有输入——执行命令前,拒绝无效的 RegionId、时间戳、分页和 IP 值。
  11. 显式设置超时环境变量——运行工作流命令前,必须始终设置 ALIBABA_CLOUD_CONNECT_TIMEOUT=10ALIBABA_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 参数和响应文档 |

qianwen skills install @aliyun/alibabacloud-cfw-ips-event