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, 入侵检测系统, 安全数据湖, 时序数据库, 机器学习, 现代安全运营, 网络安全, 请求拦截, 逆向工具, 隐私保护