主要功能更新: - 新增配置管理模块:支持YAML配置文件的在线编辑、验证和保存 - 实现评分规则管理:支持YAML格式评分配置,简化条件配置流程 - 完善前后端通信:优化API路径配置,解决跨域和网络连接问题 - 新增组件架构:AppContent、ConfigManager、ScoringRules、ThreatGraph等核心组件 - 集成js-yaml库:支持前端YAML格式解析和编辑 - 修复UI渲染问题:解决Naive UI组件空值引用和布局问题 技术改进: - 动态API地址配置,支持不同网络环境 - 增强错误处理和空值保护 - 优化表格布局和操作按钮排列 - 完善类型定义和接口规范 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
AI SOC 分析师 - 告警预处理配置
本目录包含用于告警数据预处理的配置文件,用于将不同格式的原始告警数据转换为标准化的分析格式。
配置文件说明
splunk-es-alert-preprocessing.yaml
这是针对 Splunk Enterprise Security 风格的 JSON 告警数据的预处理配置。
配置概览
- 源标识:
splunk_es_alert_json - 格式: JSON 数组
- 版本: v1.0.1
- 输入: 结构化 JSON 告警,包含证据数组
主要功能
1. 字段提取 (inputs)
从原始 JSON 中提取关键字段:
event_time: 告警时间
alert_type: 告警类型
severity_raw: 严重程度
attack_stage_raw: 攻击阶段数组
attack_scenario: 攻击场景描述
description: 详细描述
evidence: 证据数组
2. 证据分类 (evidence branches)
使用 JSONPath 过滤器将证据按类型分类:
ev_proc_exec: 进程执行证据ev_reg_persist: 注册表持久化证据ev_network_c2: C2 通信证据ev_host_user: 主机用户证据ev_cloud_*: 云环境相关证据ev_k8s_*: Kubernetes 相关证据
3. 数据转换 (transforms)
- 严重程度标准化: 确保符合
critical|high|medium|low|unknown标准 - 攻击阶段数组化: 保证攻击阶段始终为数组格式
4. 表达式计算 (expressions)
使用函数式表达式从证据中提取和合并数据:
进程/文件信息:
file_names: 提取所有执行的文件名
file_hashes: 提取所有文件哈希
parent_process: 提取父进程信息
网络信息:
ip_c2_list: C2 IP 地址列表
ip_exfil_list: 数据外泄 IP 列表
ip_source_list: 源 IP 地址列表
ip_all: 所有 IP 地址合并去重
身份信息:
users_local: 本地用户名
cloud_id_usernames: 云身份用户名
backdoor_usernames: 后门用户名
user_names_all: 所有用户名合并去重
云环境信息:
cloud_account_emails: 云账号邮箱
cloud_account_ids: 云账号 ID
backdoor_user_*: 后门用户详细信息
Kubernetes 信息:
k8s_ns_list: 命名空间列表
k8s_pod_list: Pod 列表
k8s_users: K8s 用户列表
k8s_groups: K8s 用户组列表
5. 实体映射 (entities)
将提取的数据映射到标准化的实体类型:
host_id: 主机标识符account_id: 账号/身份标识符ip: IP 地址file_name: 文件名file_hash: 文件哈希asset_group: 资产组(K8s 资源)
6. 数据验证 (validation)
- 必需字段:
event_time,alert_type,severity - 处理策略: 缺失必需字段时拒绝处理
- 回退值: 为可选字段提供默认值
支持的攻击场景
此配置专门设计用于处理以下类型的安全告警:
-
端点威胁
- 恶意软件执行
- 注册表持久化
- 进程注入
-
网络威胁
- C2 通信
- 数据外泄
- 横向移动
-
云环境威胁
- 身份盗用
- 权限提升
- 资源枚举
- 后门用户创建
-
容器/K8s 威胁
- 集群访问
- Pod 执行
- 特权容器操作
使用示例
该配置与 test-data/sample-alerts.json 中的测试数据完全匹配,可以处理包含以下告警类型的数据:
phishing.malware_execution # 钓鱼恶意软件执行
credential_access.aksk_exfil # 云凭据窃取外泄
cloud.discovery.describe # 云资源侦察
cloud.persistence.backdoor_user # 云后门用户创建
cloud.privilege_abuse.* # 云权限滥用
k8s.exec.remote_control # K8s 远程命令执行
配置扩展
要支持其他数据源,可以:
- 复制
splunk-es-alert-preprocessing.yaml - 修改
meta.source_id和meta.display_name - 调整
inputs部分的 JSONPath 表达式 - 根据需要添加新的
expressions和entities
技术说明
JSONPath 表达式
配置使用标准 JSONPath 语法进行数据提取:
$.evidence[?(@.type=='process_execution')] # 过滤特定类型的证据
$.evidence[*].dst_ip # 提取所有证据中的目标IP
函数式表达式
支持的函数包括:
map(array, expr): 映射数组元素flat_map(array, expr): 扁平化映射distinct(array): 数组去重concat(arr1, arr2, ...): 数组合并coalesce(val1, val2, ...): 返回第一个非空值
数据类型
支持的实体类型:
host_id: 主机/端点标识account_id: 用户/身份标识ip: IP地址file_name: 文件名file_hash: 文件哈希值asset_group: 资产组/服务