Armin-devhub/suricata-network-portfolio
GitHub: Armin-devhub/suricata-network-portfolio
一个基于 Suricata 的网络入侵检测规则项目,配备桌面管理器,支持对离线 PCAP 或实时流量执行自定义威胁检测与告警。
Stars: 0 | Forks: 0
# Suricata 网络检测项目
自定义的 **Suricata IDS 规则**,用于检测恶意网络行为 —— 附带一个
**桌面管理器**来编辑它们,针对 PCAP 抓包 *或您的实时网络* 运行它们,
并查看告警。这是一个检测项目中的 **网络层**,
与 [Sigma](https://github.com/Armin-devhub/sigma-detection-portfolio)
(日志)和 [YARA](https://github.com/Armin-devhub/yara-malware-portfolio)(文件)并存。

```
┌──────────────┐ ┌──────────────┐ ┌────────────────────┐
│ PCAP file or │ → │ Suricata + │ → │ alerts (eve.json) │
│ live traffic │ │ your rules │ │ severity + 5-tuple │
└──────────────┘ └──────────────┘ └────────────────────┘
```
## Suricata 是引擎;NDR 是平台
Suricata 是一个 **IDS/IPS 引擎** —— 它根据规则检查网络流量,
并指出 *“这个流是可疑的。”* 它是 YARA 在网络层的对应物:
| | Sigma | YARA | **Suricata** |
|---|---|---|---|
| 检查对象 | 日志事件 | 文件字节 | **网络数据包** |
| 引擎用途 | SIEM | AV / EDR | **NDR / IDS** |
一个完整的 **NDR** 平台(Security Onion、企业级产品)会 *内嵌* 像 Suricata + Zeek 这样的引擎,并在其之上增加响应能力 —— 就像 EDR 内嵌 YARA 一样。
## 两种规则来源 —— *审查过 (Vetted)* 和 *强大 (Strong)*
与 YARA 项目类似,您可以选择引擎加载哪个规则集:
- **审查过 (Vetted)** —— 位于 [`rules/local.rules`](rules/local.rules) 中由我亲自编写和理解的手工规则。
- **强大 (Strong)** —— **Emerging Threats Open**(约 40,000 条规则,由 Proofpoint 维护),业界标准的免费 Suricata 规则集。可通过 `python fetch_et_rules.py` 按需获取。
这能完美运行,因为 —— 就像 YARA 一样 —— *每一个* Suricata 规则都在 **同一个引擎** 上读取 **相同的输入**(数据包)。(Sigma 无法做到这一点:它的每条规则都针对不同的日志源。)
## 审查过的规则
[`rules/local.rules`](rules/local.rules) 中的每条规则都用于检测恶意软件/入侵的某种网络行为,并映射到 MITRE ATT&CK:
| SID | 规则 | MITRE | 检测内容 |
|-----|------|-------|---------|
| 1000001 | 恶意软件 C2 User-Agent | T1071.001 | HTTP 中硬编码的恶意软件 User-Agent |
| 1000002 | 针对可疑 C2 域名的 DNS 查询 | T1071.004 | 对已知恶意域名的查找 |
| 1000003 | HTTP C2 签入 (`/gate.php`) | T1071.001 | 对 C2 面板路径发送 beacon POST 请求 |
| 1000004 | Windows 可执行文件下载 (PE/MZ) | T1105 | 通过 HTTP 拉取 PE 文件 |
| 1000005 | 私钥外泄 | T1041 | 私钥通过 HTTP body 传出 |
针对内置的示例 PCAP 运行,这些规则能重建完整的攻击链:
DNS 查找 -> C2 beacon -> 数据外泄 -> 载荷下载。
## 桌面应用 —— Suricata 规则管理器
```
python -m suricata_manager # or double-click Launch-Suricata-Manager.bat
```
- **编辑规则** —— 浏览/编辑 `local.rules`;**验证** 会运行 Suricata 自带的 `-T` 测试模式,从而在使用前捕获损坏的规则。
- **在 PCAP 上运行** —— 针对任何抓包文件运行您的规则(或 ET Open)。
- **实时抓包** —— 嗅探您的真实网络 N 秒并发出告警(一个实时 IDS 传感器)。在 Windows 上,这通过 Npcap 使用 Suricata 自带的引擎 —— 无需 Wireshark。
- **抓包至 PCAP** —— 将您的真实流量记录到 `.pcap` 文件中,然后自动对其进行分析(这样您就可以建立一个真实的抓包库以便重新检查)。
- **审查过 / 强大** 下拉菜单 —— 运行您的 5 条规则或约 40,000 条 ET Open 规则。
## 快速开始
```
# 安装 engine + capture driver(一次性)
winget install OISF.Suricata # the Suricata engine
# + Npcap 来自 https://npcap.com (Windows 上的 packet capture)
# python 依赖
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
# 生成示例 capture 并扫描它
python make_test_pcap.py # writes pcaps/synthetic_c2_traffic.pcap
python run_suricata.py # run vetted rules against it
# (可选)Strong 社区 ruleset
python fetch_et_rules.py # download ET Open (~40k rules)
```
示例输出:
```
6 alert(s) from pcaps/synthetic_c2_traffic.pcap
[sev 1] sid 1000001 CUSTOM Malware C2 User-Agent (EvilBot) 10.0.0.5 -> 203.0.113.66
[sev 1] sid 1000003 CUSTOM HTTP C2 Check-in (POST /gate.php) 10.0.0.5 -> 203.0.113.66
[sev 1] sid 1000004 CUSTOM Windows Executable (PE/MZ) Download
[sev 1] sid 1000005 CUSTOM Possible Private Key Exfiltration
[sev 2] sid 1000002 CUSTOM DNS Query to Suspicious C2 Domain
```
## 安全的测试数据
内置的 `pcaps/synthetic_c2_traffic.pcap` 是 **生成的**,而不是真实的恶意软件流量 —— `make_test_pcap.py` 使用 scapy 手工构造了数据包,以模拟受感染的主机。分析 PCAP 不会运行任何程序,因此它是完全安全的,并且任何克隆该代码仓库的人都会获得一个能明确触发这些规则的抓包记录。
## 项目结构
```
suricata-network-portfolio/
├── rules/local.rules # the vetted Suricata rules
├── pcaps/ # synthetic_c2_traffic.pcap (committed); live captures git-ignored
├── make_test_pcap.py # scapy synthetic-PCAP generator
├── run_suricata.py # CLI runner (offline PCAP + live capture)
├── suricata_manager.py # desktop GUI
├── fetch_et_rules.py # downloads the ET Open "Strong" ruleset
├── logs/ # Suricata output (git-ignored - real traffic)
└── Launch-Suricata-Manager.bat
```
## 备注
- **设计安全。** 没有提交真实的恶意软件流量;样本是合成的。实时抓包(`pcaps/capture_*.pcap`)和 `logs/`(包含 *您的* 真实流量)都被 git 忽略,第三方的 ET Open 数据包也是如此。
- **不是完整的 NDR。** 这是一个学习/作品集工具 —— 包含引擎 + 自定义规则。生产环境的 NDR 会增加大规模遥测、分析和响应能力。
- 与配套的 [Sigma](https://github.com/Armin-devhub/sigma-detection-portfolio) 和 [YARA](https://github.com/Armin-devhub/yara-malware-portfolio) 项目具有相同的检测工程经验。
标签:IDS/IPS, IP 地址批量处理, Metaprompt, Suricata, 云计算, 桌面应用, 流量检测, 现代安全运营, 网络信息收集, 网络安全, 规则引擎, 逆向工具, 隐私保护