阿里云安全中心(SAS)CWPP 主机安全告警处理技能用于查询和处置来自阿里云安全中心(SAS/Aegis)的 CWPP 主机安全告警。
用途 该技能面向云安全中心主机安全告警的日常运维场景,帮助用户查询告警、分析告警并执行处置操作。
主要能力
- 查询安全告警列表。
- 分析告警详情并推荐处置方式。
- 执行告警处置操作,包括忽略、加白名单、封禁、隔离等。
- 查询处置状态并汇总处置结果。
架构 阿里云安全中心(SAS) + RAM 权限 + CLI 工具。
安装要求
- 前置检查:需要阿里云 CLI >= 3.3.3。运行 aliyun version 验证版本;若未安装或版本过低,运行 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-sas-alert-handler。
- 在核心工作流开始前(任何 CLI 调用之前):必须启用 AI 模式,运行 aliyun configure ai-mode enable 与 aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-sas-alert-handler"。
- 必须在每一个退出点禁用 AI 模式:在交付最终响应之前(无论成功、失败、错误、异常、用户取消、会话结束或任何不再执行 CLI 命令的场景),都要先禁用 AI 模式,运行 aliyun configure ai-mode disable。AI 模式仅用于 Agent Skill 调用场景,技能停止运行后不得保持启用。
身份认证配置
- 前置检查:需要阿里云凭证。安全规则:绝不读取、输出或打印 AK/SK 值;绝不要求用户直接输入 AK/SK;仅使用 aliyun configure list 检查凭证状态。若输出中没有有效 profile,则在此停止。
RAM 权限要求
- yundun-sas:DescribeSuspEvents:查询告警列表。
- yundun-sas:DescribeSecurityEventOperations:查询可用操作。
- yundun-sas:HandleSecurityEvents:处置告警。
- yundun-sas:DescribeSecurityEventOperationStatus:查询处置状态。 详细策略参阅 references/ram-policies.md。权限失败处理:读取 references/ram-policies.md 获取所需权限,使用 ram-permission-diagnose 技能引导用户,等待用户确认已授权。
核心工作流 Step 0:识别查询场景。若用户指定了告警 ID(例如“查询告警 702173474”),直接调用 DescribeSecurityEventOperations --SecurityEventId {ID};若用户未指定告警 ID(例如“查看我的告警”),执行 Step 1 查询告警列表。场景 A:用户指定了告警 ID → 验证告警是否存在,成功后进入 Step 5,失败(SecurityEventNotExists)参阅 references/error-handling.md。场景 B:用户未指定告警 ID → 进入 Step 1。 Step 1:查询告警列表。调用 aliyun sas DescribeSuspEvents,参数包括 --Lang zh、--From sas、--CurrentPage 1、--PageSize 10、--Levels "serious,suspicious,remind"、--Dealed N,并附带 --user-agent。关键响应字段包括 Id(告警事件 ID,核心字段)、AlarmEventNameDisplay(告警名称)、AlarmEventType(告警类型)、Level(严重程度:serious/suspicious/remind)、EventStatus(1=待处理,2=已忽略,8=误报,32=已完成)。 Step 2:展示告警信息与建议。以列表形式展示告警 ID、名称、类型、严重程度、资产、状态、时间、推荐处置动作与理由。operateCode 映射与推荐规则参阅 references/operation-codes.md。 Step 3:确定处置意图。若用户已指定处置方式,进入 Step 4;若未指定,必须询问用户:1. 全部按推荐方式处置;2. 自定义处置方式;3. 取消。 Step 4:查询可用处置操作。严格约束:每个告警的可用操作必须单独查询,绝不可假设一个告警的操作适用于另一个告警,必须对每个告警调用 DescribeSecurityEventOperations。关键:仅执行 UserCanOperate=true 的操作。 Step 5:构建参数并执行。常见操作:block_ip(需 expireTime,为当前时间加时长毫秒值)、kill_and_quara(需 subOperation,如 killAndQuaraFileByMd5andPath)、virus_quara(需 subOperation,如 quaraFileByMd5andPath)、quara(无附加参数)、ignore(无)、manual_handled(无)、advance_mark_mis_info(需 MarkMissParam)。示例命令包括 ignore、kill_and_quara、block_ip(7 天)、advance_mark_mis_info。高级白名单(advance_mark_mis_info)必须询问用户白名单规则与范围,并保留现有 MarkField 规则,详见 references/workflow-details.md。 Step 6:查询处置状态。CLI 要求必须同时传入 TaskId 与 SecurityEventIds。轮询逻辑:TaskStatus=Processing → 等待 2 秒后重试(最多 5 次),超过 10 秒仍未完成则标记为失败;TaskStatus=Success → 处置成功;TaskStatus=Failure → 检查 ErrorCode。 Step 7:循环处理其他告警。如有其他告警,重复 Step 3-6,每批最多 20 条。 Step 8:结果汇总。输出成功处置数、失败处置数及明细(含失败原因),格式详见 references/error-handling.md。
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:操作不支持或存在版本限制;超时(>10s):标记失败并继续下一条;.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 安装指南)。