1v4mp1r3/icmp-covert-channel-detector
GitHub: 1v4mp1r3/icmp-covert-channel-detector
一款防御性 Go CLI 工具,通过从 PCAP 文件中提取 ICMP 回显流量特征并与良性基线对比,检测潜在的隐蔽通道通信。
Stars: 0 | Forks: 0
# ICMP 流量隐蔽通道检测器
`icmpwatch` 是一款用于在 PCAP 文件中查找可疑 ICMP 模式的防御性 Go CLI 工具。
它从 ICMP 回显流量中提取可解释的特征,将其与静态阈值和可选的良性基线进行比较,并生成 JSON、Markdown 或终端报告。
该项目的范围限定于蓝队实验室流量和自有网络。它不实现针对实时系统的隧道传输、规避、绕过指令或数据包注入。
## 功能
- 用于 IPv4 ICMP 回显流量的 PCAP 解析器。
- 流级别的特征提取:
- payload 大小分布
- Shannon 熵
- 数据包时序规律性
- 独特 payload 比率
- 数据包量
- 基于已知良好 PCAP 的良性基线模型。
- 具有防御性建议的可解释评分。
- 合成的良性和可疑实验室 PCAP 生成器。
- JSON、Markdown 和紧凑表格报告。
## 快速开始
```
go build -o icmpwatch ./cmd/icmpwatch
./icmpwatch generate-lab --output-dir lab-fixtures
./icmpwatch baseline \
--input lab-fixtures/icmp-benign.pcap \
--output baseline.json
./icmpwatch analyze \
--input lab-fixtures/icmp-suspicious.pcap \
--baseline baseline.json \
--format markdown \
--output report.md
```
可疑测试用例包含确定性的合成 ICMP payload,仅用于验证检测逻辑。它不是隐蔽通道的实现。
## 表格输出示例
```
input=lab-fixtures/icmp-suspicious.pcap packets=40 flows=1 findings=1 min_score=45
severity score packets avg_payload avg_entropy regularity flow
high 100 40 256.0 7.14 1.00 10.10.1.25 -> 198.51.100.25
```
## 命令
```
icmpwatch generate-lab --output-dir lab-fixtures
icmpwatch baseline --input lab-fixtures/icmp-benign.pcap --output baseline.json
icmpwatch analyze --input capture.pcap --baseline baseline.json --format table
icmpwatch version
```
## 检测模型
默认检测器会在一个流具备以下条件时提高评分:
- 足够多的数据包以具备分析意义
- 较大的平均 ICMP payload
- 较高的平均 payload 熵
- 高度规律的数据包间隔时间
- 大多为独特的 payload
- 数据包量高于高数据包阈值
- 数值超出良性基线一定幅度
每项发现都包含原因和后续步骤,因此输出结果适合用于分诊记录或作品集报告。
## 安全提示
请仅在有授权检查的流量上使用此工具。内置的生成器会创建用于测试检测逻辑的离线 PCAP 固定样本;它不会传输网络流量,也不提供防火墙绕过指导。
## 开发说明
```
go test ./...
go vet ./...
go build -o icmpwatch ./cmd/icmpwatch
```
## 项目状态
MVP 已完成:
- PCAP 固定样本和生成器。
- 针对熵、大小、时序和 payload 独特性的特征提取。
- 基于基线的异常评分。
- 可解释的 CLI 报告。
- 测试和 GitHub Actions CI。
标签:EVTX分析, Go, ICMP, PCAP分析, Ruby工具, 日志审计, 网络安全, 聊天机器人, 隐私保护, 隐蔽信道检测