mcpField
T
threat-detection

threat-detection

github.com/alirezarezvani安全28.9k639 次安装2 天前更新
代码仓库

关于 threat-detection

threat-detection 是用于主动威胁狩猎的安全技能,面向分析安全遥测并寻找自动防护未发现活动的团队。它结合假设评分、IOC 扫描和统计异常检测,帮助确定调查优先级。

主要功能

  1. 01为狩猎假设评分
  2. 02根据 IOC 生成扫描目标
  3. 03识别过期 IOC
  4. 04基于统计基线检测异常
  5. 05按 MITRE ATT&CK 信号排序

适用场景

  1. 01根据新威胁情报启动狩猎
  2. 02扫描日志中的 IOC
  3. 03调查偏离基线的实体行为
  4. 04安排周期性异常检测

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alirezarezvani/claude-skills --skill threat-detection

安装后在 Claude Code 中输入/threat-detection确认已加载。

附带文件references/hunt-playbooks.mdscripts/threat_signal_analyzer.py

详细介绍

威胁检测

威胁检测技能用于通过假设驱动的狩猎、IOC 分析和行为异常检测,主动发现攻击者活动。这不是事件响应(参见 incident-response)或红队行动(参见 red-team),而是为了发现已逃过自动化控制的威胁。


目录


概述

本技能的作用

本技能为主动威胁检测提供方法论和工具,通过结构化的狩猎假设、IOC 分析和统计异常检测,在告警触发之前发现攻击者活动。

与其他安全技能的区别
技能关注点方式
threat-detection(本技能)发现隐藏威胁主动——在告警前狩猎
incident-response正在发生的事件被动——遏制并调查已declared的事件
red-team攻击模拟进攻性——从攻击者视角测试防御
cloud-security云配置错误态势——IAM、S3、网络暴露
前提条件

需要具备 SIEM/EDR 遥测数据、端点日志和网络流量数据的读取权限。IOC 情报源须在 30 天内更新,以避免误报。狩猎假设在执行前必须结合环境范围进行界定。


威胁信号分析器

threat_signal_analyzer.py 工具支持三种模式:hunt(假设评分)、ioc(扫描生成)和 anomaly(统计检测)。

# Hunt mode: score a hypothesis against MITRE ATT&CK coverage
python3 scripts/threat_signal_analyzer.py --mode hunt \
  --hypothesis "Lateral movement via PtH using compromised service account" \
  --actor-relevance 3 --control-gap 2 --data-availability 2 --json

# IOC mode: generate sweep targets from an IOC feed file
python3 scripts/threat_signal_analyzer.py --mode ioc \
  --ioc-file iocs.json --json

# Anomaly mode: detect statistical outliers in telemetry events
python3 scripts/threat_signal_analyzer.py --mode anomaly \
  --events-file telemetry.json \
  --baseline-mean 100 --baseline-std 25 --json

# List all supported MITRE ATT&CK techniques
python3 scripts/threat_signal_analyzer.py --list-techniques
IOC 文件格式
{
  "ips": ["1.2.3.4", "5.6.7.8"],
  "domains": ["malicious.example.com"],
  "hashes": ["abc123def456..."]
}
遥测事件文件格式
[
  {"timestamp": "2024-01-15T14:32:00Z", "entity": "host-01", "action": "dns_query", "volume": 450},
  {"timestamp": "2024-01-15T14:33:00Z", "entity": "host-02", "action": "dns_query", "volume": 95}
]
退出码
退出码含义
0未发现高优先级问题
1检测到中等优先级信号
2确认的高优先级发现

威胁狩猎方法论

结构化威胁狩猎遵循五步循环:假设 → 数据源识别 → 查询执行 → 发现分诊 → 反馈给检测工程。

假设评分
因素权重说明
攻击者相关性×3该 TTP 与你所在行业已知威胁攻击者的匹配程度如何?
控制缺口×2你现有的多少控制措施会漏检该行为?
数据可用性×1你是否拥有检验该假设所需的遥测数据?

优先级评分 = (攻击者相关性 × 3) + (控制缺口 × 2) + (数据可用性 × 1)

按战术划分的高价值狩猎假设
假设MITRE ID数据源优先信号
通过远程执行进行 WMI 横向移动T1047WMI 日志、EDR 进程遥测由 WINRM 派生的 WMI 进程、异常的父子进程链
用于防御规避的 LOLBin 执行T1218进程创建、命令行参数certutil.exe、regsvr32.exe、mshta.exe 伴随网络活动
使用抖动较大间隔的信标式 C2T1071.001代理日志、DNS 日志规律间隔的外联连接,抖动 ±10%
哈希传递横向移动T1550.002Windows 安全事件 4624 类型 3来自异常源主机、针对管理共享的 NTLM 认证
LSASS 内存访问T1003.001EDR 内存访问事件非系统进程对 lsass.exe 调用 OpenProcess
KerberoastingT1558.003Windows 事件 4769针对服务账户的大量 TGS 请求
计划任务持久化T1053.005Sysmon 事件 1/11、Windows 4698在非标准目录中创建的计划任务

IOC 分析

IOC 分析用于判断指标是否仍然有效、将其映射到所需的扫描目标,并过滤会产生误报的陈旧数据。

IOC 类型与扫描优先级
IOC 类型陈旧阈值扫描目标MITRE 覆盖
IP 地址30 天防火墙日志、NetFlow、代理日志T1071, T1105
域名30 天DNS 解析器日志、代理日志T1568, T1583
文件哈希90 天EDR 文件创建记录、AV 扫描日志T1105, T1027
URL14 天代理访问日志、浏览器历史记录T1566.002
互斥体名称180 天EDR 运行时工件T1055
IOC 陈旧性处理

超过阈值的 IOC 会被标记为 stale,并排除在扫描目标生成之外。对陈旧 IOC 执行扫描会抬高误报率,并降低 SOC 的可信度。每个狩猎周期开始前,请从威胁情报平台(MISP、OpenCTI、商业威胁情报)刷新 IOC 数据源。


异常检测

统计异常检测在不依赖已知恶意特征的情况下,识别偏离既定基线的行为。

Z 分数阈值
Z 分数分类响应
< 2.0正常无需采取行动
2.0–2.9轻度异常记录并监控,提高采样频率
≥ 3.0严重异常升级给狩猎分析师,调查该实体
基线要求

有效的异常检测至少需要 14 天的历史遥测数据来建立有效基线。以下情况发生后必须重新计算基线:

  • 安全事件(事件后行为发生变化)
  • 重大基础设施变更(云迁移、新的 SaaS 部署)
  • 季节性使用模式变化(季度末、节假日期间)
高价值异常监测目标
实体类型指标异常特征
DNS 解析器每台主机每小时查询数信标通信、隧道、DGA
终端每天唯一进程执行数恶意软件安装、LOLBin 滥用
服务账户每小时认证事件数凭据填充、横向移动
邮件网关每小时附件类型数钓鱼活动激增
云 IAM每个身份每小时 API 调用数凭据泄露、数据外泄

MITRE ATT&CK 信号优先级排序

每个狩猎假设都会映射到一个或多个 ATT&CK 技术。在您的环境中拥有多个已确认信号的技术,优先级更高。

战术覆盖矩阵
战术关键技术主要数据源
初始访问T1190, T1566, T1078Web 访问日志、邮件网关、认证日志
执行T1059, T1047, T1218进程创建、命令行、脚本执行
持久化T1053, T1543, T1098计划任务、服务、账户变更
防御规避T1027, T1562, T1070进程镂空、日志清除、编码
凭据访问T1003, T1558, T1110LSASS、Kerberos、认证失败
横向移动T1550, T1021, T1534NTLM 认证、远程服务、内部鱼叉式网络钓鱼
收集T1074, T1560, T1114暂存目录、归档文件创建、邮件访问
数据外泄T1048, T1041, T1567异常出站流量、DNS 隧道、云存储
命令与控制T1071, T1572, T1568信标通信、协议隧道、DNS C2

诱饵与蜜罐集成

诱饵资产可产生高保真告警。任何与蜜罐的交互都是明确信号,需要进行调查。

欺骗资产类型与部署
资产类型部署位置信号ATT&CK 技术
密码保险库中的蜜罐凭据保险库密钥存储凭据访问尝试T1555
蜜令牌(伪造的 AWS 访问密钥)Git 仓库、S3 对象侦察或数据外泄T1552.004
蜜文件(命名为 passwords.xlsx)文件共享、终端收集暂存T1074
蜜账户(休眠的 AD 用户)Active Directory横向移动跳板T1078.002
蜜罐网络服务DMZ、扁平网络分段网络扫描、服务利用T1046、T1190

蜜罐告警会绕过标准评分流程,任何命中在被证明无误之前都自动视为 SEV2。


工作流

工作流 1:快速狩猎(30 分钟)

用于响应新的威胁情报报告或 CVE 告警:

# 1. Score hypothesis against environment context
python3 scripts/threat_signal_analyzer.py --mode hunt \
  --hypothesis "Exploitation of CVE-YYYY-NNNNN in Apache" \
  --actor-relevance 2 --control-gap 3 --data-availability 2 --json

# 2. Build IOC sweep list from threat intel
echo '{"ips": ["1.2.3.4"], "domains": ["malicious.tld"], "hashes": []}' > iocs.json
python3 scripts/threat_signal_analyzer.py --mode ioc --ioc-file iocs.json --json

# 3. Check for anomalies in web server telemetry from last 24h
python3 scripts/threat_signal_analyzer.py --mode anomaly \
  --events-file web_events_24h.json --baseline-mean 80 --baseline-std 20 --json

决策:若狩猎优先级 ≥ 7,或任何 IOC 扫描命中,则升级为完整狩猎。

工作流 2:完整威胁狩猎(多日)

第 1 天 — 假设生成:

  1. 审查威胁情报源中与行业相关的 TTP
  2. 将过去 30 天的安全告警映射到 ATT&CK 战术,以识别缺口
  3. 使用 threat_signal_analyzer.py 狩猎模式对前 5 个假设评分
  4. 按分数排序,从最高分开始

第 2 天 — 数据收集与查询执行:

  1. 从 SIEM 拉取相关遥测数据(时间范围:过去 14 天)
  2. 对实体基线运行异常检测
  3. 对过去 30 天内更新的所有情报源执行 IOC 扫描
  4. 查阅 references/hunt-playbooks.md 中的狩猎手册

第 3 天 — 分诊与报告:

  1. 对所有异常发现进行分诊,确认或排除
  2. 将确认的活动升级给事件响应团队
  3. 根据狩猎发现记录新的检测规则
  4. 将误报 IOC 提交回威胁情报提供方
工作流 3:持续监控(自动化)

以 6 小时为周期,针对关键实体基线配置定期异常检测:

# Run as cron job every 6 hours — auto-escalate on exit code 2
python3 scripts/threat_signal_analyzer.py --mode anomaly \
  --events-file /var/log/telemetry/events_6h.json \
  --baseline-mean "${BASELINE_MEAN}" \
  --baseline-std "${BASELINE_STD}" \
  --json > /var/log/threat-detection/$(date +%Y%m%d_%H%M%S).json

# Alert on exit code 2 (hard anomaly)
if [ $? -eq 2 ]; then
  send_alert "Hard anomaly detected — threat_signal_analyzer"
fi

反模式

  1. 没有假设就开展狩猎 — 在所有遥测数据上运行宽泛查询,只会产生噪声而非信号。每次狩猎都必须从一个可检验、限定于一到两个 ATT&CK 技术的假设开始。
  2. 使用过期 IOC — 超过 30 天的 IOC 会产生误报,使分析师习惯性忽略告警。扫描前务必检查 IOC 的新鲜度,并将过期指标排除在自动化扫描之外。
  3. 跳过基线建立 — 没有有效基线的异常检测会在正常的高流量日产生告警。在对任何实体类型启用统计告警前,需要至少 14 天以上的基线数据。
  4. 只狩猎已知技术 — 只针对已记录的 ATT&CK 技术进行狩猎,会遗漏新型对手行为。应定期加入开放式异常分析,以发现未知 TTP。
  5. 未将反馈闭环到检测工程 — 证实恶意行为的狩猎发现必须产出新的检测规则。不能提升检测覆盖率的狩猎没有长期价值。
  6. 把每个异常都当作已确认威胁 — 高 z 分数表示偏离基线,并不等于确认的恶意行为。所有异常在升级之前都需要人工分诊,以确认或排除。
  7. 忽视蜜罐告警 — 与欺骗资产的任何交互都是高保真信号。把蜜罐告警当作噪声,会让整个欺骗投入失去价值。

交叉引用

Skill关系
incident-response威胁狩猎中确认的威胁会升级至 incident-response 进行分诊和遏制
red-team红队演练会生成贴近实际的 TTP,用于指导狩猎假设的优先级排序
cloud-security云安全态势发现的问题(如公开的 S3、IAM 通配符)会成为针对数据外泄 TTP 的狩猎目标
security-pen-testing渗透测试发现的问题会识别出攻击面,威胁狩猎应在修复后持续监控这些攻击面

评论

支持 Markdown