协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
triaging-security-alerts-in-splunk【开发与工程】在 Splunk Enterprise Security 中对安全告警进行分类,通过 SPL 查询和事件审查(Incident Review) 仪表板对重要事件进行严重性分类、调查、关联相关遥测并做出升级或关闭决策。 适用于 SOC 分析师需要处理关联搜索产生的告警队列、确定调查优先级, 或需要为交接给二/三级分析师记录分类决策时。
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
以下情况使用本技能:
不适用于深度取证调查——在初步分类确认存在恶意活动后应升级至二/三级处理。
ess_analyst 权限以更新重要事件状态在 Splunk ES 中打开事件审查仪表板。按紧急度(由严重性 × 优先级计算得出)对重要事件进行排序。应用过滤器聚焦于未分配事件:
| `notable`
| search status="new" OR status="unassigned"
| sort - urgency
| table _time, rule_name, src, dest, user, urgency, status
| head 50
优先处理严重(Critical)和高(High)紧急度事件。按 src 或 dest 将相关告警分组,识别攻击链,而非单独处理每个告警。
对于每个重要事件,深入查看原始事件。以暴力破解告警为例:
index=wineventlog sourcetype="WinEventLog:Security" EventCode=4625
src_ip="192.168.1.105"
earliest=-1h latest=now
| stats count by src_ip, dest, user, status
| where count > 10
| sort - count
检查源 IP 是否为内部 IP(横向移动)或外部 IP(外围攻击)。与资产和身份查找表交叉关联:
| `notable`
| search rule_name="Brute Force Access Behavior Detected"
| lookup asset_lookup_by_cidr ip AS src OUTPUT category, owner, priority
| lookup identity_lookup_expanded identity AS user OUTPUT department, managedBy
| table _time, src, dest, user, category, owner, department
检查同一来源是否出现在其他遥测数据中:
index=proxy OR index=firewall src="192.168.1.105" earliest=-24h
| stats count by index, sourcetype, action, dest_port
| sort - count
寻找佐证:同一 IP 是否也触发了 DNS 异常、代理阻断或终端检测告警?
index=main sourcetype="cisco:asa" src="192.168.1.105" action=blocked earliest=-24h
| timechart span=1h count by dest_port
在威胁情报框架中查询已知 IOC:
| `notable`
| search search_name="Threat - Threat Intelligence Match - Rule"
| lookup threat_intel_by_ip ip AS src OUTPUT threat_collection, threat_description, threat_key
| table _time, src, dest, threat_collection, threat_description, weight
| where weight >= 3
针对域名查询威胁列表:
| tstats count from datamodel=Web where Web.url="*evil-domain.com*" by Web.src, Web.url, Web.status
| rename Web.* AS *
在事件审查中更新重要事件状态:
| 处置 | 判定标准 | 处置动作 |
|---|---|---|
| 真阳性(True Positive) | 佐证证据确认存在恶意活动 | 升级至二级,创建事件工单 |
| 良性真阳性(Benign True Positive) | 告警正确触发但活动经过授权(如渗透测试) | 带注释关闭,如重复出现则添加抑制规则 |
| 误报(False Positive) | 告警逻辑匹配了良性行为 | 关闭,调整关联搜索,记录模式 |
| 待定(Undetermined) | 数据不足以完成分类 | 带调查备注分配给二级分析师 |
通过 Splunk ES 界面或 REST API 更新:
| sendalert update_notable_event param.status="2" param.urgency="critical"
param.comment="已确认来自被入侵工作站的暴力破解。已升级至 IR-2024-0431。"
param.owner="analyst_jdoe"
在重要事件注释字段中记录:
| `notable`
| search rule_name="Brute Force*" status="closed"
| stats count by status_label, disposition
| addtotal
随时间监控分类效率:
| `notable`
| where status_end > 0
| eval triage_time = status_end - _time
| stats avg(triage_time) AS avg_triage_sec, median(triage_time) AS med_triage_sec,
count by rule_name, status_label
| eval avg_triage_min = round(avg_triage_sec/60, 1)
| sort - count
| table rule_name, status_label, count, avg_triage_min
| 术语 | 定义 |
|---|---|
| 重要事件(Notable Event) | Splunk ES 关联搜索在满足定义的风险或阈值条件时生成的告警 |
| 紧急度(Urgency) | 综合事件严重性与资产/身份优先级计算得出的字段(严重/高/中/低/信息) |
| 关联搜索(Correlation Search) | 定时运行的 SPL 查询,检测威胁模式并在条件匹配时生成重要事件 |
| CIM | 通用信息模型——Splunk 规范化字段命名约定,支持跨源查询 |
| 处置(Disposition) | 告警的最终分类:真阳性、误报、良性真阳性或待定 |
| MTTD/MTTR | 平均检测时间/平均响应时间——衡量检测和处置速度的关键 SOC 指标 |
分类报告 — 重要事件 #NE-2024-08921
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
告警: Brute Force Access Behavior Detected
时间: 2024-03-15 14:23:07 UTC
来源: 192.168.1.105(WORKSTATION-042,财务部)
目标: 10.0.5.20(DC-PRIMARY,域控制器)
用户: jsmith(财务分析师)
调查:
- 12 分钟内来自该来源的 847 次登录失败(4625)
- 暴力破解后在 14:35:02 成功登录(4624)
- 过去 24 小时内该来源无代理/DNS 异常
- 来源 IP 不在威胁情报列表中
处置: 真阳性 — 凭据被入侵
动作: 已升级至二级,创建工单 IR-2024-0431
账号 jsmith 已禁用,等待密码重置