mcpField
T
threat-hunting

threat-hunting

github.com/alphaonedev安全57 次安装
代码仓库

关于 threat-hunting

面向蓝队的企业威胁狩猎技能,指导使用取证工具和分析方法调查网络威胁,并关联事件。

主要功能

  1. 01使用 Volatility 分析内存转储
  2. 02用 Zeek 检查网络日志
  3. 03查询 Elasticsearch 威胁模式
  4. 04使用 Plaso 生成取证时间线
  5. 05通过 Sigma 关联日志

适用场景

  1. 01调查可疑终端活动
  2. 02排查异常网络流量
  3. 03分析入侵后的取证数据

安装

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

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill threat-hunting

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

详细介绍

威胁狩猎

目的

此技能利用取证工具和分析技术,在企业环境中主动检测并响应高级网络威胁。重点是通过数据驱动的方法识别异常、调查事件并降低风险。

使用时机

在进行主动威胁调查时使用此技能,例如调查异常网络流量、端点异常或入侵后的分析。可将其用于蓝队运营,例如监控入侵指标(IOC)、在大规模网络中定期开展狩猎,或与 SIEM 系统集成以获取实时警报。

核心能力
  • 使用 Volatility 分析内存转储,以检测恶意软件进程。
  • 使用 Zeek 解析网络日志,以识别可疑连接。
  • 通过自定义查询检索 Elasticsearch 中的威胁模式。
  • 使用 Plaso 等工具根据取证数据生成时间线。
  • 使用 Sigma 规则自动关联威胁,以分析日志。
使用模式

首先从端点或网络收集数据,然后应用分析技术来识别威胁。例如,使用以下管道:摄取日志 → 运行查询 → 关联事件 → 响应。始终将狩猎范围限定为特定 IOC 或时间窗口。如果要与自动化集成,请将命令封装在脚本中,并处理输入验证和输出解析。对于多步骤狩猎,可串联使用 Zeek 进行捕获、使用 Elasticsearch 进行索引等工具。

常用命令/API

使用以下命令执行威胁狩猎任务。设置用于身份验证的环境变量,例如,导出 $ELASTICSEARCH_API_KEY 以访问 API。

  • 使用 Volatility 进行内存取证:
    volatility -f memory.dump --profile=Win7SP1x64 pslist
    此命令会列出进程;添加 -o output.json 可保存结果。

  • 使用 Zeek 进行网络分析:
    zeek -r capture.pcap policy/scripts
    接着使用 zeek-cut conn.log | grep "suspicious_ip" 筛选日志。

  • 使用 Elasticsearch API 查询日志:
    使用端点:POST https://es.example.com/_search,请求体为:
    { "query": { "match": { "message": "malware" } } }
    通过请求头进行身份验证:Authorization: Bearer $ELASTICSEARCH_API_KEY。

  • 使用 Plaso 生成时间线:
    log2timeline.py --storage-file timeline.plaso /path/to/logs
    然后查询:psort.py -w output.csv timeline.plaso。

配置格式:Elasticsearch 查询使用 JSON(例如上文所示),Zeek 策略使用 INI(例如 [site] interface=eth0)。

集成说明

可通过管道传递输出,将此技能与其他蓝队工具集成,例如通过 Logstash 将 Zeek 日志发送到 Elasticsearch。对于 API 集成,请在脚本中使用 $ELASTICSEARCH_API_KEY:

curl -H "Authorization: Bearer $ELASTICSEARCH_API_KEY" -X POST https://es.example.com/_ingest/pipeline

确保工具使用 JSON 等格式交换数据。如果使用容器,请挂载卷以访问取证数据,例如使用 Docker 运行时添加 -v /host/logs:/container/logs。在沙盒中测试集成,避免影响生产环境。

错误处理

检查常见错误,例如 Volatility 中的配置文件无效(例如,如果 --profile 不匹配,会输出 "Error: No suitable profile found";请使用 volatility --info 列出可用选项后重试)。对于 API 调用,请处理 4xx/5xx 响应:

import requests; response = requests.post(url, headers={'Authorization': f'Bearer {os.environ.get("ELASTICSEARCH_API_KEY")}'}); if response.status_code != 200: raise ValueError(response.text)

在脚本中使用 try-catch 处理文件未找到错误;例如,在 Zeek 中处理前检查 pcap 文件是否存在。将错误连同时间戳记录到文件中,以便审计。

具体使用示例
  1. 检测内存转储中的恶意软件:
    首先,导出 $VOLATILITY_PATH=/path/to/volatility。运行:volatility -f suspect.dump --profile=Linuxx64x64 pslist | grep "suspicious_process"。如果发现匹配项,则通过脚本发出警报:echo "Threat detected" >> alert.log。

  2. 狩猎网络异常:
    使用 Zeek 捕获流量:zeek -i eth0 -C。然后查询:zeek-cut conn.log | awk '$3 == "192.168.1.100" {print}'。与 Elasticsearch 集成:curl -H "Authorization: Bearer $ELASTICSEARCH_API_KEY" -d '{"query":{"match":{"source_ip":"192.168.1.100"}}}' https://es.example.com/_search。

图关系
  • 相关:blue-team(集群),因为它共享用于防御性操作的工具。
  • 通过标签连接:threat-hunting(直接匹配)、cybersecurity(与检测技能重叠)、blue-team(集群关联)。
  • 链接到:其他 blue-team 技能,例如用于后续操作的“incident-response”,以及用于深入数据检查的“forensics-analysis”。

评论

支持 Markdown