ZzLl271/hybrid-ids-platform
GitHub: ZzLl271/hybrid-ids-platform
一个结合 Suricata 规则检测与机器学习异常评分的混合入侵检测原型系统,支持将 PCAP 流量解析为标准化的多协议事件记录。
Stars: 0 | Forks: 0
# 混合 IDS 平台
- 结合 Suricata 基于规则检测与机器学习异常评分的混合入侵检测原型。
## Sprint 1:Suricata PCAP 分析
1. 对测试 PCAP 运行 Suricata:
```
scripts/run_suricata_pcap.sh data/pcaps/benign_test.pcap test-002
```
2. 预期输出包含如下事件类型摘要:
```
2 flow
1 stats
```
3. 这证明基础 pipeline 可以正常工作:
```
PCAP -> Suricata Docker -> eve.json
```
## Sprint 1B:Eve Flow 解析器
将 Suricata `eve.json` flow 事件解析为标准化记录:
```
python3 backend/app/parse_eve.py data/eve-runs/test-002/eve.json
```
打印易于阅读的 flow 表:
```
python3 backend/app/parse_eve.py data/eve-runs/test-002/eve.json --pretty
```
打印汇总 flow 统计信息:
```
python3 backend/app/parse_eve.py data/eve-runs/test-002/eve.json --summary
```
将标准化 flow 事件保存为 JSONL:
```
python3 backend/app/parse_eve.py data/eve-runs/test-002/eve.json --output data/normalized/test-002-flows.jsonl
```
当前解析器提取内容:
```
timestamp
flow_id
src_ip
src_port
dest_ip
dest_port
proto
app_proto
pkts_toserver
pkts_toclient
bytes_toserver
bytes_toclient
flow_age
flow_state
flow_reason
alerted
```
这证明 pipeline 的下一阶段可以正常工作:
```
eve.json -> Python parser -> normalized flow JSONL / table / summary
```
## Sprint 1C:DNS 事件解析器
将 Suricata `eve.json` DNS 事件解析为标准化记录:
```
python3 backend/app/parse_dns.py data/eve-runs/test-004/eve.json
```
打印易于阅读的 DNS 表:
```
python3 backend/app/parse_dns.py data/eve-runs/test-004/eve.json --pretty
```
打印汇总 DNS 统计信息:
```
python3 backend/app/parse_dns.py data/eve-runs/test-004/eve.json --summary
```
将标准化 DNS 事件保存为 JSONL:
```
python3 backend/app/parse_dns.py data/eve-runs/test-004/eve.json --output data/normalized/test-004-dns.jsonl
```
当前 DNS 解析器提取内容:
```
timestamp
src_ip
src_port
dest_ip
dest_port
proto
dns_type
dns_id
rrname
rrtype
rcode
answers_count
answers
```
这证明 DNS 解析阶段可以正常工作:
```
eve.json -> DNS parser -> normalized DNS JSONL / table / summary
```
## Sprint 1D:HTTP、TLS 和告警解析器
解析 Suricata HTTP 事件:
```
python3 backend/app/parse_http.py data/eve-runs/test-004/eve.json --summary
python3 backend/app/parse_http.py data/eve-runs/test-004/eve.json --pretty
python3 backend/app/parse_http.py data/eve-runs/test-004/eve.json --output data/normalized/test-004-http.jsonl
```
解析 Suricata TLS 事件:
```
python3 backend/app/parse_tls.py data/eve-runs/test-004/eve.json --summary
python3 backend/app/parse_tls.py data/eve-runs/test-004/eve.json --pretty
python3 backend/app/parse_tls.py data/eve-runs/test-004/eve.json --output data/normalized/test-004-tls.jsonl
```
解析 Suricata 告警事件,并将已知的 checksum 告警分类为噪声:
```
python3 backend/app/parse_alert.py data/eve-runs/test-004/eve.json --summary
python3 backend/app/parse_alert.py data/eve-runs/test-004/eve.json --pretty --limit 20
python3 backend/app/parse_alert.py data/eve-runs/test-004/eve.json --output data/normalized/test-004-alerts.jsonl
```
当前事件解析器:
```
Flow -> backend/app/parse_eve.py
DNS -> backend/app/parse_dns.py
HTTP -> backend/app/parse_http.py
TLS -> backend/app/parse_tls.py
Alert -> backend/app/parse_alert.py
```
当前 pipeline 支持:
```
PCAP
-> Suricata Docker
-> eve.json
-> normalized Flow / DNS / HTTP / TLS / Alert records
-> JSONL output / pretty tables / summary statistics
```
已知的 checksum 告警目前被分类为噪声:
```
SURICATA TCPv4 invalid checksum
SURICATA UDPv4 invalid checksum
```
## 克隆并运行解析器演示
此仓库包含一个已脱敏的 Suricata `eve.json` 示例,用于解析器测试:
```
samples/eve-demo.json
```
该示例采用 JSONL 格式,其中每一行是一个 Suricata 事件。
运行所有解析器摘要:
```
python3 backend/app/parse_eve.py samples/eve-demo.json --summary
python3 backend/app/parse_dns.py samples/eve-demo.json --summary
python3 backend/app/parse_http.py samples/eve-demo.json --summary
python3 backend/app/parse_tls.py samples/eve-demo.json --summary
python3 backend/app/parse_alert.py samples/eve-demo.json --summary
```
运行易读的表格输出:
```
python3 backend/app/parse_eve.py samples/eve-demo.json --pretty
python3 backend/app/parse_dns.py samples/eve-demo.json --pretty
python3 backend/app/parse_http.py samples/eve-demo.json --pretty
python3 backend/app/parse_tls.py samples/eve-demo.json --pretty
python3 backend/app/parse_alert.py samples/eve-demo.json --pretty
```
来自家庭实验室环境的原始 PCAP 文件和生成的 eve.json 文件被有意排除在此仓库之外,因为它们可能包含本地网络元数据。
脱敏后的示例允许在不暴露私有网络流量的情况下测试解析器层。
标签:Apex, Metaprompt, Suricata, 入侵检测系统, 安全数据湖, 时序数据库, 机器学习, 现代安全运营, 网络安全, 请求拦截, 逆向工具, 隐私保护