Files
BrunoGaoandClaude cff4e4608a feat: 实现配置管理和评分规则功能,完善前后端架构
主要功能更新:
- 新增配置管理模块:支持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>
2025-09-14 08:56:56 +08:00
..

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
  • 处理策略: 缺失必需字段时拒绝处理
  • 回退值: 为可选字段提供默认值

支持的攻击场景

此配置专门设计用于处理以下类型的安全告警:

  1. 端点威胁

    • 恶意软件执行
    • 注册表持久化
    • 进程注入
  2. 网络威胁

    • C2 通信
    • 数据外泄
    • 横向移动
  3. 云环境威胁

    • 身份盗用
    • 权限提升
    • 资源枚举
    • 后门用户创建
  4. 容器/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 远程命令执行

配置扩展

要支持其他数据源,可以:

  1. 复制 splunk-es-alert-preprocessing.yaml
  2. 修改 meta.source_id 和 meta.display_name
  3. 调整 inputs 部分的 JSONPath 表达式
  4. 根据需要添加新的 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: 资产组/服务