ZCHUA040/SC4063_ThreatHuntingandDetectionLogic
GitHub: ZCHUA040/SC4063_ThreatHuntingandDetectionLogic
基于网络取证数据的Lynx勒索软件检测代理,采用纯规则引擎识别ATT&CK各阶段攻击行为。
Stars: 0 | Forks: 0
# SC4063 威胁狩猎与检测逻辑
## Lynx 勒索软件检测代理
本仓库包含基于网络取证数据识别 Lynx 勒索软件活动的威胁狩猎和检测逻辑。
## 架构
检测管道包含六个层级:
```
PCAP JSON files
↓
PCAP Ingestion Layer — validate, extract metadata
↓
Detection & Hunting Engine — TI-guided rules, ATT&CK mapping, scoring
↓
Validation Layer — guardrails against false positives
↓
Forensic Report Generator — executive summary, timeline, IOCs
```
## 组件
### ti_profile.py
Lynx 勒索软件组织的威胁情报配置。包含:
- ATT&CK 技术映射(T1078、T1046、T1048、T1486)
- 妥协指标(IoC)
- 检测阈值
- RFC1918 IP 分类辅助函数
### ti_matcher.py
威胁情报引导的检测规则,将事件与 Lynx 配置进行匹配。**无 LLM 调用** — 纯规则驱动检测。
**检测规则:**
- **指令 A — 初始访问(T1078 / T1133)**
- 来自外部 IP 的 3389 端口(RDP)入站连接
- 来自非 RFC1918 来源的成功认证
- **指令 B — 横向移动(T1046 / T1136)**
- 快速 SMB/RPC 扫描(端口 445、135)
- 60 秒内扫描 10+ 个不同主机
- 网络扫描器指纹(SoftPerfect、NetExec)
- **指令 C — 数据外泄(T1048 / T1560)**
- 大型出站传输(>10 MB)
- HTTP POST 到 temp.sh 或类似外泄服务
- 7-Zip 归档压缩指标
- **指令 D — 有效载荷部署(T1021.001 / T1486)**
- 来自疑似域控制器的内部 RDP
- 批量部署到多个端点
- 加密前的 RDP 流量激增
### ti_validator.py
验证层,负责:
- 根据威胁情报配置检查发现结果
- 验证源/目标 IP 是否正确(外部 vs 内部)
- 确保达到阈值
- 为 LLM 输出提供护栏(如有集成)
### orchestrator.py
主管道编排器,负责:
- 从 JSON 文件加载事件
- 运行所有检测规则
- 验证发现结果
- 生成报告(JSON 和人类可读格式)
## 使用方法
### 运行检测代理
```
python orchestrator.py
```
这将:
1. 从 `jsonfiles/` 目录加载所有事件
2. 对所有四个指令运行威胁情报引导的检测
3. 验证发现结果
4. 生成两份报告:
- `detection_report.json` — 详细 JSON 报告
- `detection_report_human.txt` — 人类可读的文本报告
### 输出
代理生成:
**控制台输出:**
- 事件加载摘要
- 按指令分类的检测结果
- 验证状态
- 报告文件位置
**JSON 报告(`detection_report.json`):**
- 元数据(时间戳、分析的事件数)
- 摘要统计
- 每个指令的详细发现结果
- 验证结果
- ATT&CK 技术映射
**人类可读报告(`detection_report_human.txt`):**
- 执行摘要
- 带证据的详细发现结果
- MITRE ATT&CK 技术映射
- 验证结果
- 时间线
## 数据格式
代理期望 `jsonfiles/` 目录中的 NDJSON(换行符分隔的 JSON)文件。
**事件模式:**
```
{
"time": 1765478896.966979,
"src": "10.128.239.57",
"dst": "10.128.239.23",
"sport": 49842,
"dport": 445,
"size": 55,
"type": "LATERAL_MOVEMENT"
}
```
**支持的事件类型:**
- `INITIAL_ACCESS` — 初始入侵事件
- `RDP_INTRUSION` — 来自外部源的 RDP 认证
- `LATERAL_MOVEMENT` — 内部网络扫描/移动
- `EXFILTRATION` — 数据外泄事件
- `PAYLOAD_DEPLOYMENT` — 勒索软件有效载荷投递
## 关键设计决策
### 1. **威胁情报引导的检测(检测阶段不使用 LLM)**
- 检测规则是确定性的,基于 Lynx 威胁情报配置
- 检测阶段无 LLM 调用 = 快速、廉价、一致
- LLM 仅用于报告叙述(可选)
### 2. **基于证据的发现结果**
- 每个发现结果都包含 flow_id 以便追踪
- 所有证据都引用特定的数据包/流量
- 验证层拒绝没有证据的断言
### 3. **误报过滤**
- 阈值防止单事件误报
- IP 分类(RFC1918)确保正确的源/目标验证
- 多个针对威胁情报配置的验证检查
### 4. **成本效益**
- 核心检测零 LLM 调用
- 编排器首先运行最便宜的检查
- 事件去重和批处理
## MITRE ATT&CK 映射
| 阶段 | 技术 | 子技术 | 描述 |
|-------|-----------|---------------|-------------|
| 初始访问 | T1078 | T1133 | 有效账户 / 外部远程服务 |
| 发现 | T1046 | - | 网络服务发现 |
| 横向移动 | - | T1136 | 创建账户 |
| 数据外泄 | T1048 | T1560 | 通过替代协议外泄 / 归档收集的数据 |
| 执行 | T1021.001 | - | 远程桌面协议 |
| 影响 | T1486 | - | 影响数据加密 |
## 评分标准对照
| 标准 | 本代理如何实现 |
|----------|----------------------------|
| **代理有效性** | 四个指令特定的匹配器针对精确的 Lynx TTP |
| **护栏与安全** | 验证器拒绝没有 flow_id 证据的发现结果 |
| **成本与效率** | 检测零 LLM 调用;仅确定性规则 |
| **ATT&CK 映射** | 预编码在威胁情报配置中,而非推断得出 |
| **取证质量** | 所有发现结果可通过 flow_id 追溯到特定数据包 |
## 文件
```
SC4063_ThreatHuntingandDetectionLogic/
├── README.md # This file
├── SC4063_Part2_AgentDesignNotes.md # Design documentation
├── ti_profile.py # Lynx TI profile
├── ti_matcher.py # Detection rules
├── ti_validator.py # Validation layer
├── orchestrator.py # Pipeline orchestrator
├── jsonfiles/ # Event data (NDJSON)
│ ├── 34936-sensor-250301-*.json
│ ├── 34936-sensor-250302-*.json
│ └── ...
├── detection_report.json # Generated: JSON report
└── detection_report_human.txt # Generated: Human report
```
## 需求
- Python 3.7+
- 无外部依赖(仅使用标准库)
## 作者
SC4063 网络取证 — 第二部分代理设计
基于 Apex Global Logistics / Lynx 勒索软件场景
## 许可证
仅供教育使用 — SC4063 课程作业
标签:AMSI绕过, Atomic Red Team, EDR, IoC, IOC检测, Lynx勒索软件, PCAP分析, Python, 初始访问检测, 勒索软件, 勒索软件检测, 威胁情报, 威胁检测, 安全运营, 开发者工具, 扫描框架, 插件系统, 数据展示, 数据泄露检测, 无后门, 检测规则, 横向移动检测, 红队, 网络安全, 网络资产发现, 脆弱性评估, 防御框架, 隐私保护