关于 alibabacloud-sas-alert-handler
用于查询和处理 Alibaba Cloud Security Center(SAS/Aegis)的主机安全告警。可分析告警、建议处置方式、执行操作并查询处理状态。
主要功能
- 01查询主机安全告警列表
- 02分析告警并提供处置建议
- 03执行忽略、拦截和隔离等操作
- 04查询处理状态并汇总结果
适用场景
- 01查看待处理的主机安全告警
- 02按告警信息选择处置操作
- 03核实告警处理任务是否完成
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aliyun/ alibabacloud-aiops-skills --skill alibabacloud-sas-alert-handler安装后在 Claude Code 中输入/alibabacloud-sas-alert-handler确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/acceptance-criteria.mdcli-installation-guide.mderror-handling.mdoperation-codes.mdram-policies.mdrelated-apis.mdverification-method.mdworkflow-details.md详细介绍
云安全中心 CWPP 告警处理技能
场景说明
此技能可帮助用户查询和处理阿里云云安全中心(SAS/Aegis)的 CWPP 主机安全告警。
核心能力:
- 查询安全告警列表
- 分析告警详情并推荐处理方式
- 执行告警处理操作(忽略、加入白名单、阻断、隔离等)
- 查询处理状态并汇总结果
架构: 阿里云云安全中心 (SAS) + RAM 权限 + CLI 工具
安装要求
预检查:需要 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-sas-alert-handler
在核心工作流开始时(调用任何 CLI 命令之前): [MUST] 启用 AI-Mode — 执行 Agent 技能时必须启用 AI-Mode。 调用任何 CLI 命令之前,运行以下命令:
aliyun configure ai-mode enable
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-sas-alert-handler"
[MUST] 在每个退出点禁用 AI-Mode — 无论出于何种原因,在给出最终答复之前,始终先禁用 AI-Mode。此要求适用于所有退出路径:工作流成功、工作流失败、错误/异常、用户取消、会话结束,或任何不再执行 CLI 命令的其他情况。 AI-Mode 仅用于调用 Agent 技能的场景,技能停止运行后绝不能继续保持启用状态。
aliyun configure ai-mode disable
身份验证配置
预检查:需要阿里云凭证
安全规则:
- 绝不读取、输出或打印 AK/SK 值
- 绝不要求用户直接输入 AK/SK
- 只能使用
aliyun configure list检查凭证状态aliyun configure list检查输出中是否存在有效配置。如果不存在有效配置,立即停止。
RAM 权限要求
| 权限名称 | 说明 |
|---|---|
yundun-sas:DescribeSuspEvents | 查询告警列表 |
yundun-sas:DescribeSecurityEventOperations | 查询可用操作 |
yundun-sas:HandleSecurityEvents | 处理告警 |
yundun-sas:DescribeSecurityEventOperationStatus | 查询处理状态 |
详细策略请参阅 references/ram-policies.md
[MUST] 权限失败处理: 发生权限错误时:
- 阅读
references/ram-policies.md了解所需权限- 使用
ram-permission-diagnose技能指导用户- 等待用户确认已授予权限
核心工作流
步骤 0:识别查询场景(关键)
⚠️ 重要:根据用户输入选择正确的 API
| 场景 | 用户输入示例 | 正确方式 |
|---|---|---|
| 用户指定了告警 ID | “查询告警 702173474” | 直接调用 DescribeSecurityEventOperations --SecurityEventId {ID} |
| 用户未指定告警 ID | “查看我的告警” | 执行步骤 1 查询告警列表 |
场景 A:用户指定了告警 ID → 验证告警是否存在:
aliyun sas DescribeSecurityEventOperations \
--SecurityEventId {AlertID} \
--Lang zh \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-sas-alert-handler
- 成功 → 告警存在,继续执行步骤 5
- 失败(
SecurityEventNotExists)→ 参阅 references/error-handling.md
场景 B:用户未指定告警 ID → 继续执行步骤 1
第 1 步:查询告警列表
aliyun sas DescribeSuspEvents \
--Lang zh \
--From sas \
--CurrentPage 1 \
--PageSize 10 \
--Levels "serious,suspicious,remind" \
--Dealed N \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-sas-alert-handler 2>/dev/null | jq '.SuspEvents[] | {Id, Name: .AlarmEventNameDisplay, AlarmEventType, Level, InternetIp, IntranetIp, LastTime, EventStatus, Uuid}'
关键响应字段:
| 字段 | 描述 |
|---|---|
| Id | 告警事件 ID(核心字段) |
| AlarmEventNameDisplay | 告警名称 |
| AlarmEventType | 告警类型 |
| Level | 严重程度(严重/可疑/提醒) |
| EventStatus | 1=待处理,2=已忽略,8=误报,32=已完成 |
第 2 步:显示告警信息和建议
显示格式:
Alert List (Total X items):
[Alert 1] ID: 7009607xx
- Name: ECS login from unusual location
- Type: Unusual Login
- Severity: suspicious
- Asset: 47.xxx.xxx.xxx / 10.xxx.xxx.xxx
- Status: Pending
- Time: 2026-03-19 14:11:05
- Recommended Action: Block IP
- Reason: Unusual login behavior detected
有关 operateCode 映射和建议规则,请参阅 references/operation-codes.md
第 3 步:确定处理意向
情况 A:用户指定了处理方式 → 继续执行第 4 步
情况 B:用户未指定 → 必须询问用户:
Please confirm how to handle these alerts:
1. ✅ Handle all using recommended methods
2. 🔧 Custom handling method
3. ❌ Cancel
Please select (enter number):
第 4 步:查询可用的处理操作
⚠️ 严格限制:必须单独查询每条告警的可用操作
- 绝不可假设一条告警的操作适用于另一条告警
- 必须为每条告警调用
DescribeSecurityEventOperations
aliyun sas DescribeSecurityEventOperations \
--SecurityEventId {AlertID} \
--Lang zh \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-sas-alert-handler
⚠️ 重要:仅执行 UserCanOperate=true 的操作
第 5 步:构建参数并执行
快速参考 - 常见操作:
| 操作代码 | 操作参数 | 备注 |
|---|---|---|
| block_ip | {"expireTime":1773991205392} | expireTime = 当前时间 + 时长(毫秒) |
| kill_and_quara | {"subOperation":"killAndQuaraFileByMd5andPath"} | |
| virus_quara | {"subOperation":"quaraFileByMd5andPath"} | |
| quara | {} | |
| ignore | {} | |
| manual_handled | {} | |
| advance_mark_mis_info | {} + MarkMissParam | 请参阅 workflow-details.md |
示例 - ignore:
aliyun sas HandleSecurityEvents \
--SecurityEventIds.1 7009586xx \
--OperationCode ignore \
--OperationParams '{}' \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-sas-alert-handler
示例 - kill_and_quara:
aliyun sas HandleSecurityEvents \
--SecurityEventIds.1 7008619xx \
--OperationCode kill_and_quara \
--OperationParams '{"subOperation":"killAndQuaraFileByMd5andPath"}' \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-sas-alert-handler
示例 - block_ip(7 天):
# Calculate: current_timestamp_ms + 7*24*60*60*1000
aliyun sas HandleSecurityEvents \
--SecurityEventIds.1 7009607xx \
--OperationCode block_ip \
--OperationParams '{"expireTime":1773991205392}' \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-sas-alert-handler
示例 - advance_mark_mis_info:
aliyun sas HandleSecurityEvents \
--SecurityEventIds.1 7009586xx \
--OperationCode advance_mark_mis_info \
--OperationParams '{}' \
--MarkMissParam '[{"uuid":"ALL","field":"loginSourceIp","operate":"strEqual","fieldValue":"59.82.xx.xx"}]' \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-sas-alert-handler
⚠️ 对于高级白名单(advance_mark_mis_info):
- 必须询问用户白名单规则和范围
- 必须保留现有的 MarkField 规则
- 详细流程请参阅 references/workflow-details.md
完整的 CLI 示例和参数详情,请参阅 references/workflow-details.md
第 6 步:查询处理状态
⚠️ CLI 要求:必须同时传入 TaskId 和 SecurityEventIds
aliyun sas DescribeSecurityEventOperationStatus \
--TaskId 290511xx \
--SecurityEventIds.1 7009607xx \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-sas-alert-handler
轮询逻辑:
TaskStatus=Processing→ 等待 2 秒后重试(最多 5 次)- 10 秒后仍未完成 → 标记为失败
TaskStatus=Success→ 处理成功TaskStatus=Failure→ 检查 ErrorCode
第 7 步:循环处理其他告警
如果还有其他告警,请重复执行第 3 至第 6 步。每批最多处理 20 条告警。
第 8 步:结果摘要
========== Handling Results Summary ==========
✅ Successfully Handled: 3 items
[Alert 7009607xx] Block IP - Success
❌ Handling Failed: 1 item
[Alert 7008557xx] Kill and Quarantine - Failed (AgentOffline)
Total: 4 items, Success 3, Failed 1
详细格式请参阅 references/error-handling.md
operateCode 快速参考
| operateCode | 描述 | 其他参数 |
|---|---|---|
| block_ip | 封禁 IP | expireTime(必需) |
| kill_and_quara | 终止并隔离 | subOperation(必需) |
| virus_quara | 隔离文件 | subOperation(必需) |
| quara | 隔离 | 无 |
| advance_mark_mis_info | 高级白名单 | MarkMissParam |
| ignore | 忽略 | 无 |
| manual_handled | 标记为已处理 | 无 |
| kill_process | 终止进程 | 无 |
完整的 operateCode 类别和详情,请参阅 references/operation-codes.md
错误处理
| 错误情况 | 处理方法 |
|---|---|
| UserCanOperate=false | 不支持此操作,受版本限制 |
| 超时(>10 秒) | 标记为失败,继续处理下一条 |
| *.AgentOffline | 客户端离线,无法处理 |
| *.ProcessNotExist | 建议使用 virus_quara_bin |
| NoPermission | 联系管理员获取授权 |
| SecurityEventNotExists | 先在已处理告警中搜索 |
详细的错误处理流程,请参阅 references/error-handling.md
最佳实践
- 处理前先查询:先调用
DescribeSecurityEventOperations - 批次限制:每批最多处理 20 个警报
- 保留现有规则:使用高级白名单时,合并现有的 MarkField 规则
- 超时处理:轮询超过 10 秒即视为失败
- 用户确认:处理前必须确认用户意图
- 日志记录:记录所有操作以供审计
参考文档
| 文档 | 描述 |
|---|---|
| references/workflow-details.md | 详细工作流、CLI 示例和高级白名单 |
| references/operation-codes.md | 完整的 operateCode 参考 |
| references/error-handling.md | 错误处理流程 |
| references/related-apis.md | API 参数详情 |
| references/ram-policies.md | RAM 权限策略 |
| references/verification-method.md | 验证方法 |
| references/cli-installation-guide.md | CLI 安装指南 |