威胁狩猎

SkillDev tools

威胁狩猎方法论:假设驱动、遥测源选择、基线对比与验证闭环。 触发词:威胁狩猎、狩猎、hunting、假设驱动、遥测分析、异常检测。

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the 威胁狩猎 skill

What this skill tells your AI

The instructions your AI receives, as published by dslsdzc/rev-skills in .claude/skills/re-hunting/SKILL.md and read by ahel’s review.

何时使用 / 何时不用

  • 用:主动狩猎请求(「环境里有没有 X 的活动」)、假设驱动的环境排查、威胁情报落地(情报线索转环境内搜索)
  • 用:基线驱动的异常发现(无特定情报时先建基线再找偏离)
  • 用:事件后扩大排查(一次确认命中 → 同 TTP/同基础设施再查一遍,找漏网)
  • 用:告警驱动追溯(一次告警 → 反向狩猎同类未告警行为,找漏网)
  • 不用:纯合规巡检(无假设的定期报表是运营不是狩猎,两者流程不同)
  • 不用:已知样本分析([[re-behavior]]);IOC 查询([[re-ti]]);单点证据深挖(各域技能)
  • 不用:应急响应单点处置(狩猎是主动面,应急是被动触发,结论可互哺但流程不同)
  • 不用:无遥测来源时(数据源缺失无法支撑假设验证,先补齐采集再狩猎,见 [[gotchas]])
  • 不用:设备/主机级单点排查(那是各域技能的事,狩猎面向环境整体)

工具准备

日志分析工具(通用)

  • 多平台: jq / grep / awk(各发行版自带或 apt install jq / brew install jq
  • 验证: jq --version
  • python3(基线统计/聚类脚本):安装见 [[re-python]] 工具准备
  • 快速频次统计:grep -E + sort | uniq -c(基线初版可用)

遥测查询(按环境)

  • SIEM/EDR 查询接口(按部署环境给查询指引,工具不绑定)
  • 本地日志: journalctl(Linux,结构化过滤:journalctl -o json --since "24 hours ago" | jq ...);PowerShell Get-WinEvent(Windows,如 Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} -MaxEvents 100
  • 网络遥测: 流量/防火墙日志(深挖见 [[re-netcap]])
  • Windows 常用事件 ID(按环境实际启用情况核对):4624/4625 登录成功/失败、4688 进程创建、Sysmon 1 进程创建、Sysmon 11 文件创建

ATT&CK 导航(假设对齐参考)

  • 网页工具(公开访问);本地可下载 Navigator 层文件;规则匹配格式可参考 Sigma(公开规则格式,按环境适配)
  • 覆盖对照:结束后用 Navigator 层标记已覆盖技术,产出覆盖率声明(与盲区对照)

操作步骤

按顺序执行;假设明确再动手(坑 5)。每步产物存档(路径 + sha256,见 [[re-triage]])。

  1. 狩猎假设生成

    • 输入:威胁情报([[re-ti]])、已知攻击模式([[re-behavior]] 经验)、环境特征(暴露面/业务/历史事件)、红队/演练报告(已知成功路径优先查)
    • 假设句式:「攻击者可能通过 X 技术在环境内做了 Y」——X 对齐 ATT&CK 技术,Y 是可观测的遥测痕迹
    • 可证伪性检查:每个假设写得出「若为假应看到什么」(反证形态),写不出的不查
    • 情报可检测性映射:情报的每条 IOC/TTP 都要回答「在环境里对应哪个遥测痕迹」;对不上的列为盲区假设
    • 优先级:影响 × 可能性 × 可检测性(三者都低的不值得查)
    • 假设数量控制:单轮 3-5 个高优先级假设(过多则无法深入验证)
    • 假设卡片:编号/句式/来源情报/遥测痕迹/反证形态/优先级
    • 产出:假设列表(每个假设 = 可证伪的搜索目标;按技术族覆盖多假设,避免单点)
  2. 遥测源选择

    • 按假设选数据源:进程行为 → EDR/进程日志(Windows 4688/Sysmon 1);网络 → 流量/防火墙日志;登录 → 认证日志(4624/4625);文件 → 文件系统监控(Sysmon 11)

    • 数据源缺失 → 标注盲区(结论的有效性边界,见 [[gotchas]] 盲区坑)

    • 同一假设有多个数据源时先查覆盖最全的,再交叉验证

    • 先验证遥测管道健康(收一条已知测试事件),再信「无告警」

    • 时间归一:各数据源时间戳统一为 UTC 与同格式(ISO8601),跨源比较前先做

    • 数据源映射示例(按环境核对实际事件 ID):

      假设侧重数据源事件/日志缺失时
      进程/执行EDR、进程日志4688、Sysmon 1无法验证执行链
      网络外联流量/防火墙/代理连接日志/NetFlow无法验证外联行为
      登录/凭据认证日志4624/4625无法验证撞库/横向
      文件落地文件系统审计Sysmon 11无法验证投放
  3. 基线 vs 异常

    • 基线:正常窗口的统计分布(频率/来源/目标特征)——窗口选已知干净时段且覆盖业务周期(见坑 1)
    • 统计方法:频率分布/百分位基线/环比突变(与上一窗口对比);用 python3 脚本做分布统计
    • 异常检测:偏离基线的行为(新进程链、非常规时段、异常目标)、规则匹配(已知模式)
    • 启发式异常示例:首次出现的进程/域名、非工作时间登录、罕见端口外联
    • 聚类:异常条目按特征聚类(进程名/路径/目标域名/时间窗),减少人工逐个审查
    • 聚类产出:异常组清单(每组:特征/数量/时间范围/关联假设编号)
    • 基线产物:按实体的频率分布表(top N 进程/域名/登录源)+ 阈值建议
  4. 验证闭环

    • 命中确认:异常 → 深挖([[re-behavior]] 行为分析、[[re-variant]] 样本关联、[[re-netcap]] 网络侧核对)
    • 误报排除:白名单核对、环境解释(合法变更/维护窗口)、与业务方确认
    • 排除后留档:误报判定记录(为什么排除),复查不重复分析
    • 白名单是动态资产:确认合法后入白名单(附原因),环境变化定期复查
    • 证据存档:按 [[re-analyze/analysis-contract]] 复核格式(结论/证据/置信度)
    • 闭环输出:确认命中 → 事件报告(含 IOC 沉淀,可转 [[re-ioc]]);未命中 → 假设归档(可复跑,标注盲区)
    • 命中后扩大复查:同 TTP/同源再扫一遍(狩猎是迭代不是一次性)
    • 复盘产出:假设命中率统计(下轮优先级依据)
    • 交付结构:假设清单(含盲区)→ 命中列表(分级)→ 证据包路径 → 建议(规则/采集补强)
    • 判定分级与终止条件见 [[decision-tree]](确认/可疑/未证实/未命中四级)

跨域联合

  • [[re-forensics]] 网关:本技能归属
  • [[re-ti]]:情报输入(假设来源)
  • [[re-behavior]]:命中深挖(行为证据)
  • [[re-variant]]:样本关联
  • [[re-netcap]]:网络遥测深挖
  • [[re-ioc]]:命中指标沉淀(YARA/规则)
  • [[re-triage]]:产物存档规范(路径 + sha256)
  • [[re-analyze/analysis-contract]]:结论按复核格式交付

常见坑与陷阱

  • 基线污染:现象——异常被视为正常;原因——环境本身已被攻陷(基线含恶意活动);对策——基线窗口选择在已知干净时段,标注基线假设
  • 遥测缺失盲区:现象——无异常结论但环境有活动;原因——关键数据源未采集;对策——步骤 2 显式标注盲区,结论限定「在已采集遥测内」
  • 误报疲劳:现象——大量命中无人深挖;原因——规则过宽/阈值过低;对策——先聚类再审查,阈值按基线校准
  • 假设过窄:现象——只查了一个技术;原因——假设单一;对策——按 ATT&CK 技术族生成多假设(覆盖率声明)
  • 结论过强:现象——「环境干净」声明;原因——未标注盲区与假设边界;对策——结论带限定(见坑 2)
  • 确认偏误:现象——只找支持假设的证据,忽略反证;原因——先有结论再找证据;对策——每个假设列「若为假应看到什么」,反证同样记录
  • 时钟偏差/时区:现象——事件序列对不上;原因——端侧时钟未校准;对策——先归一 UTC,标注时间源
  • 无告警 ≠ 无活动:现象——规则匹配全空即宣布安全;原因——监控盲区/规则逃逸/告警系统降级;对策——「已采集+已覆盖技术」与「未覆盖」分开陈述
  • 只查一遍不复查:现象——命中处理后不再扩大范围;原因——把狩猎当一次性任务;对策——命中后按同 TTP/同基础设施再查,迭代两轮
  • 查询权限不足:现象——结论带盲区但未标注;原因——只拿到部分数据源权限;对策——列出未授权数据源,结论限定在已授权范围
  • 基线窗口含维护期:现象——维护窗口的合法大动作被当异常/污染基线;原因——窗口选择粗糙;对策——基线窗口排除维护期并标注
  • 命中即定性:现象——单条日志命中即报事件;原因——未做环境解释;对策——过「环境解释」关再定性(决策树分级表)
  • 任务类型选择、命中分级与归档规则见 [[decision-tree]] / [[gotchas]]

Signals

GitHub stars
57
Forks
8
Last commit
Sep 2026

ahel review

  • K1binfo
    installs-packages

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Gateway key
re-hunting
Source
github.com/dslsdzc/rev-skills