关于 soar
soar 是面向蓝队安全运营的事件响应技能,可编排多步骤工作流并连接外部工具,以自动化告警处理、事件丰富和补救操作。
主要功能
- 01通过 YAML 编排多步骤剧本
- 02连接 SIEM、防火墙和威胁情报工具
- 03自动丰富事件数据
- 04按条件触发响应操作
- 05以 JSON 汇总执行结果
适用场景
- 01自动阻断可疑登录来源 IP
- 02查询高危事件并补充威胁情报
- 03按告警条件执行遏制流程
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill soar安装后在 Claude Code 中输入/soar确认已加载。
详细介绍
soar
用途
此技能通过编排工作流、集成工具并执行蓝队运营操作,实现安全事件响应自动化。它可处理告警、信息补充和修复等任务,从而简化事件处理流程。
适用场景
在安全事件发生期间,可使用此技能快速响应,例如检测日志中的异常、升级威胁或自动执行遏制措施。它尤其适用于告警量大、人工干预效率低的环境。
主要功能
- 编排剧本:使用 YAML 配置文件定义并运行多步骤工作流,例如隔离受感染主机的剧本。
- 集成工具:通过 API 连接 SIEM、防火墙和威胁情报服务,并支持 REST 和 WebSockets 等协议。
- 事件信息补充:使用预定义连接器,自动从 VirusTotal 或内部数据库等来源获取数据。
- 自动化规则:根据条件设置触发器,例如告警符合某个特征时执行响应。
- 报告:通过 JSON 输出生成已执行操作及其结果的摘要。
使用模式
使用此技能前,先通过 $SOAR_API_KEY 等环境变量配置身份验证。然后,从文件或 API 加载剧本,并根据事件触发剧本。例如,集成监控工具,在告警出现时调用 SOAR 端点。投入生产环境前,务必在暂存环境中测试剧本。常见模式:轮询事件、评估条件,并依次运行操作。
常用命令/API
使用 CLI 执行快速任务,或使用 API 进行编程访问。请求中需要通过 $SOAR_API_KEY 进行身份验证。
-
CLI 命令:运行剧本
soar run --playbook-id 123 --params '{"ip": "192.168.1.1"}'
此命令使用自定义参数执行 ID 为 123 的剧本;输出为包含状态和结果的 JSON。 -
API 端点:触发剧本
POST https://api.openclaw.com/soar/playbooks/{id}/run
Headers:Authorization: Bearer $SOAR_API_KEY
Body:{"params": {"action": "isolate", "target": "host-01"}}
Response:返回 200 OK,以及类似{"status": "success", "details": {...}}的 JSON。 -
CLI 命令:查询事件
soar list-incidents --filter "status=active" --limit 10
按状态筛选事件;使用--output json获取结构化数据。 -
API 端点:获取事件
GET https://api.openclaw.com/soar/incidents?status=active&limit=10
Headers:Authorization: Bearer $SOAR_API_KEY
Response:JSON 格式的事件对象数组。
配置格式:剧本使用 YAML 定义,例如:
name: Isolate Host
steps:
- action: block-ip
params:
ip: "{{params.ip}}"
代码片段请控制在 4 行以内;如需更多内容,请参阅完整文档。
集成说明
通过设置 Webhook 或调用 API 来集成 SOAR。例如,导出 $SOAR_API_KEY 并在脚本中使用:
export SOAR_API_KEY=your_api_key_here
curl -X POST https://api.openclaw.com/soar/webhooks -H "Authorization: Bearer $SOAR_API_KEY" -d '{"event": "alert", "data": {...}}'
常见集成方式:通过 HTTP 端点连接 Splunk 等 SIEM 工具,或连接数据库以补充信息。确保所有连接都启用了 TLS。对于自定义连接器,请提供 JSON 配置文件,例如 {"type": "rest", "endpoint": "https://example.com/api"}。
错误处理
通过检查 HTTP 状态码或 CLI 退出码来处理错误。常见错误包括:401 Unauthorized(检查并修正 $SOAR_API_KEY)、404 Not Found(检查剧本 ID)以及无效 YAML(使用 soar validate --file playbook.yaml 验证)。在代码中,使用 try-catch 块包装 API 调用:
import requests
try:
response = requests.post('https://api.openclaw.com/soar/playbooks/123/run', headers={'Authorization': f'Bearer {os.environ["SOAR_API_KEY"]}'})
response.raise_for_status()
except requests.exceptions.HTTPError as e:
print(f"Error: {e.response.status_code} - {e.response.text}")
记录带时间戳的错误,并对暂时性故障最多重试 3 次。
具体使用示例
-
自动处理可疑登录事件:
首先,设置$SOAR_API_KEY。然后运行:
soar run --playbook-id 456 --params '{"user": "admin", "ip": "10.0.0.1"}'
这会触发剧本以屏蔽该 IP,并通过电子邮件通知团队。请监控输出以确认是否成功。 -
补充告警信息并升级告警:
使用 API 查询并采取操作:curl -H "Authorization: Bearer $SOAR_API_KEY" https://api.openclaw.com/soar/incidents?severity=high # Parse response, then POST to run enrichment: curl -X POST https://api.openclaw.com/soar/playbooks/789/run -d '{"params": {"incident_id": "12345"}}'
这会获取高严重性事件并补充其信息,例如与威胁情报源进行比对。
图关系
- 相关:蓝队集群(例如,用于输入数据的“威胁检测”技能,以及用于后续操作的“事件响应”技能)。
- 依赖:用于 API 密钥的身份验证服务。
- 集成:通过 API 与外部工具集成,例如通过 SIEM 系统触发事件。