mcpField
A
alibabacloud-cfw-ips-event

alibabacloud-cfw-ips-event

github.com/aliyun安全281255 次安装1 天前更新
代码仓库

关于 alibabacloud-cfw-ips-event

此只读 Skill 通过 Aliyun CLI 查询和分析 Alibaba Cloud Firewall 的 IPS 告警,可汇总事件模式、受影响资产及 IPS 配置,并提供修复建议。

主要功能

  1. 01汇总告警数量和严重程度
  2. 02查看事件及攻击处置状态
  3. 03排列受攻击资产并分析攻击类型
  4. 04检查 IPS 模式、规则和规则库版本
  5. 05提供优先级修复建议

适用场景

  1. 01审查近期 IPS 告警和威胁
  2. 02调查涉及源 IP 或目标 IP 的告警
  3. 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.md
api-analysis.md
cli-installation-guide.md
ram-policies.md
related-apis.md
verification-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 命令。不要搜索工作区中的文件。不要向用户询问任何信息。只需运行命令。

核心能力:

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

前提条件

预检:需要 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 身份)。

如果没有有效配置文件,请在此处停止。

  1. 从 Alibaba Cloud Console 获取凭据
  2. 在本次会话之外配置凭据(通过终端中的 aliyun configure 或 shell 配置文件中的环境变量)
  3. 等 aliyun configure list 显示有效配置文件后,返回并重新运行

RAM 策略

[必须] RAM 权限预检查: 执行任何命令前,确认当前用户拥有所需权限。

  1. 使用 ram-permission-diagnose 技能获取当前用户的权限
  2. 对照 references/ram-policies.md
  3. 如果缺少任何权限,停止操作并提示用户

最低所需权限——完整策略 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 调用:

  1. 如果调用因临时错误(网络超时、限流 Throttling.User、ServiceUnavailable、HTTP 500/502/503)失败,最多重试 2 次,每次重试之间等待 3 秒。
  2. 如果调用因永久错误(例如 InvalidParameter、Forbidden、InvalidAccessKeyId)失败,不要重试。记录错误并继续。
  3. 所有重试均失败后,记录“[步骤 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)返回的所有数值均为零:

  1. 告知用户:“在指定时间范围内未检测到 IPS 告警事件。”
  2. 仍然继续执行步骤 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. 按顺序查询 — 先查看告警统计(步骤 1),了解整体安全状况。如果所有值均为零,则报告该时间范围内未检测到告警。
  2. 失败后继续 — 如果任何步骤(2-7)失败,请记录错误并继续执行其余步骤。始终使用已收集的数据生成报告。
  3. 使用分页 — 对于告警事件列表(步骤 2),使用 CurrentPage 和 PageSize。默认将 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. 注意区域 — Cloud Firewall 只有两个区域:cn-hangzhou(中国大陆)和 ap-southeast-1(香港/海外)。除非用户另有指定,否则默认使用 cn-hangzhou。
  6. Direction 参数 — 步骤 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=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.mdAliyun CLI 安装指南
references/api-analysis.md详细的 API 参数和响应文档

评论

支持 Markdown