benjamenhoffman/evilhunter
GitHub: benjamenhoffman/evilhunter
一款基于大语言模型和 MCP 协议的自主数字取证与事件响应智能体,能自动规划调查步骤、调用多种取证工具进行多源证据关联分析,并输出带置信度评分的结构化报告。
Stars: 0 | Forks: 0
# EVILHUNTER - 自主 AI 事件响应智能体
一个为 [FIND EVIL! SANS Hackathon](https://findevil.devpost.com/) 构建的自主 AI 智能体,使用 Protocol SIFT (MCP) 在 SANS SIFT Workstation 上检测、分诊和响应安全事件。
## 概述
EVILHUNTER 是一个运行在 SANS SIFT Workstation 上的 AI 驱动的数字取证与事件响应 (DFIR) 智能体。它使用模型上下文协议 (MCP) 与取证工具进行交互,自主地进行以下工作:
1. **检测**文件系统、内存和网络工件中的妥协指标 (IOC)
2. **分诊**通过严重性和置信度评分对警报进行分级处理
3. **关联**跨多个取证数据源的证据
4. **报告**以结构化的、可供分析师直接使用的格式生成发现
## 架构
```
┌─────────────────────────────────────────────┐
│ EVILHUNTER Agent │
│ ┌─────────┐ ┌──────────┐ ┌────────────┐ │
│ │ Planner │ │ Analyst │ │ Reporter │ │
│ │ (LLM) │ │ (Logic) │ │ (Output) │ │
│ └────┬────┘ └────┬─────┘ └─────┬──────┘ │
│ │ │ │ │
│ ┌────┴────────────┴───────────────┴──────┐ │
│ │ MCP Tool Interface │ │
│ └────┬────────────┬───────────────┬──────┘ │
└───────┼────────────┼───────────────┼──────────┘
│ │ │
┌────▼────┐ ┌────▼─────┐ ┌─────▼────┐
│Volatility│ │log2timel.│ │Autopsy/ │
│(Memory) │ │(Timelines)│ │Plaso │
└─────────┘ └──────────┘ └──────────┘
```
## 主要特性
- **多源证据关联**:交叉比对内存、磁盘和网络证据
- **自主调查流水线**:规划调查步骤,执行工具,解释结果
- **置信度评分**:根据证据强度对发现进行评级,以减少误报
- **结构化报告**:生成包含 IOC 和时间线的、可供分析师直接使用的事件报告
- **自我纠正**:当证据冲突时重新评估发现
## 技术栈
- **AI 引擎**:通过 MCP 的 Claude / OpenAI GPT-4
- **框架**:SANS SIFT Workstation 上的 Protocol SIFT (MCP)
- **工具**:Volatility 3、Plaso/log2timeline、Zeek、YARA、Sleuth Kit
- **语言**:Python 3.10+
## 快速开始
```
# 在安装了 Protocol SIFT 的 SIFT Workstation 上
pip install -r requirements.txt
python -m evilhunter --case-dir /cases/suspicious-vm --mode full
```
## 用法
```
# 完全自主调查
python -m evilhunter --case-dir /cases/incident-001 --mode full
# 仅 Memory analysis
python -m evilhunter --case-dir /cases/incident-001 --mode memory --image memory.dmp
# 仅 Disk forensics
python -m evilhunter --case-dir /cases/incident-001 --mode disk --image disk.raw
# 仅 Network analysis
python -m evilhunter --case-dir /cases/incident-001 --mode network --pcap capture.pcap
# 仅生成 report(基于先前的 findings)
python -m evilhunter --case-dir /cases/incident-001 --mode report
```
## 项目结构
```
evilhunter/
├── __init__.py
├── __main__.py # CLI entry point
├── agent/
│ ├── __init__.py
│ ├── planner.py # Investigation planning (LLM-driven)
│ ├── analyst.py # Evidence analysis and correlation
│ ├── reporter.py # Structured report generation
│ └── state.py # Agent state management
├── mcp/
│ ├── __init__.py
│ ├── client.py # MCP client for Protocol SIFT
│ └── tools.py # Tool definitions and wrappers
├── analysis/
│ ├── __init__.py
│ ├── memory.py # Memory forensics (Volatility)
│ ├── disk.py # Disk forensics (Sleuth Kit/Plaso)
│ ├── network.py # Network forensics (Zeek/tshark)
│ └── yara_scan.py # YARA rule scanning
├── models/
│ ├── __init__.py
│ ├── finding.py # Finding data model
│ ├── ioc.py # IOC data model
│ └── report.py # Report data model
└── config.py # Configuration
```
标签:AI安全, Chat Copilot, DAST, IOC检测, MCP协议, OpenCanary, SANS SIFT, SANS黑客马拉松, SecList, 内存取证, 子域名变形, 安全告警分诊, 安全态势感知, 安全运营, 恶意软件分析, 扫描框架, 数字取证, 数字取证分析, 数据包嗅探, 无线安全, 网络安全, 网络安全审计, 网络流量分析, 自动化AI代理, 自动化脚本, 逆向工具, 隐私保护