跳转到内容

定制开发

定制开发用于说明如何根据自己的安全运营场景扩展 ASP。

当前开放给用户自定义开发的主要扩展点是告警接入、SIEM YAML、Module 和 Playbook。源码仓库中的 Custom Examples 还提供了一套可联动的示例资产,用于理解 Mock SIEM 日志、告警接入、SIEM YAML、Module 和 Playbook 如何配合。

适用读者

  • 需要把新的 SIEM Rule 告警接入 ASP 的开发者。
  • 需要为 Case 编排自动化调查、富化或处置动作的开发者。
  • 需要为 Harness Agent 查询补充 SIEM 索引字段说明的开发者。

扩展点

扩展点位置用途
告警接入Webhook / ELK Index Action将 SIEM 告警写入 Redis Stream,作为 Module 的输入。
SIEM YAMLcustom\data\siem\*.yaml描述 Splunk / ELK 索引、字段和默认聚合字段,供 Harness Agent 查询使用。
Modulecustom\modules\*.py消费 Redis Stream 中的原始告警,生成 Case / Alert / Artifact。
Playbookcustom\playbooks\*.py / backend\playbooks\*.py从 Case 触发用户主动执行的自动化任务。

生产运行时默认只从 custom/ 加载 Module 和 SIEM YAML。源码仓库中的 backend\custom\ 可作为本地开发样例;发布包中的 custom/ 默认是空模板。Playbook 保留产品内置能力,也允许通过 custom\playbooks\*.py 追加或覆盖。

数据流

text
Mock Data / SIEM Rule
  → 告警接入(Webhook / ELK Index Action)
  → Redis Stream
  → Module
  → Case / Alert / Artifact
  → Playbook / Enrichment / Knowledge

告警接入负责把 SIEM 侧的检测结果写入 Stream;Module 负责把原始告警降噪和标准化,让分析师围绕 Case 工作;Playbook 负责在 Case 上推进调查、富化、知识提取或其他自动化动作;SIEM YAML 让 Harness Agent 能理解和查询外部日志。

刷新与依赖

修改 Module、Playbook 或 SIEM YAML 后,可以在 Custom Console 对应 Tab 中点击 Refresh / Validate 重新扫描并查看加载结果。加载失败会显示文件路径和异常信息,并写入 Audit Log。

如果新增或升级了 Python 依赖,先更新 custom\requirements.txt,再执行:

bash
docker compose run --rm asp-custom-deps --index-url https://pypi.org/simple

依赖包或公共 helper module 变更后,需要重启相关容器;单纯脚本定义或 YAML 变更可通过刷新/校验确认。

当前示例

当前后端在 backend\custom\modules\ 中包含以下 Module 示例:

  • aws_iam_privilege_escalation_attach_user_policy.py
  • edr_vssadmin_delete_shadows.py
  • mail_user_report_phishing.py

当前后端包含以下 Playbook 示例:

  • investigation.py
  • knowledge_extraction.py
  • threat_intelligence_enrichment.py
  • cmdb_enrichment.py

下一步

建议按以下顺序阅读:

  • 开发环境搭建 — 准备源码开发环境和 custom 目录。
  • Mock 数据 — 生成工作台数据或 SIEM 测试日志。
  • 告警接入 — 了解如何通过 Webhook / ELK Index Action 将 SIEM 告警写入 Redis Stream。
  • SIEM YAML — 了解如何为 Harness Agent 查询维护索引配置。
  • Module 开发 — 了解如何把 Stream 告警转换为 ASP 资源。
  • Playbook 开发 — 了解如何编写 Case 触发的自动化任务。
  • Custom Console — 了解如何查看和校验当前环境加载的定制定义。
  • Custom Examples — 通过一套组合示例理解 Mock 数据、告警接入、SIEM YAML、Module 和 Playbook 的联动关系。
  • Module Creator / Playbook Creator — 让 Harness Agent 辅助生成代码草案。