synthetic-detections/rules
GitHub: synthetic-detections/rules
AI 协作编写的 YARA 与 Snort/Suricata 检测规则库,针对当前恶意软件活动与漏洞提供附带样本和测试记录的可复现检测方案。
Stars: 0 | Forks: 0
# ai生成的检测规则
这是一个不断扩充的、由 **AI 编写**的 YARA 和 Snort / Suricata 检测规则库,用于应对当前的恶意软件活动和漏洞。每一条规则都附带有可复现的样本、结构相似的良性样例,以及一份解释规则*为何*能够进行识别的测试记录。
本仓库中的规则是由 AI 助手与人类操作员协作编写的。每次提交都列出了规则所依据的公开来源,以及在提交前验证该规则的测试结果。**请将其视为一个起点** —— 在部署之前,请针对您的环境调整阈值、包坐标和 IOC 列表。
## 涵盖范围
| 家族 | YARA | Snort / Suricata | 披露信息 |
|---|:--:|:--:|---|
| `clawhavoc` | ✅ | — | 2026-05 — ClawHavoc / OpenClaw agent-skill 市场入侵 |
| `famous-chollima-packagist` | ✅ | — | 2026-05-30 Socket — DPRK 对 `roberts/leads` 的供应链入侵 |
| `http2-bomb` | ✅ | ✅ | 2026-06-03 Codex / Calif.io — HTTP/2 DoS, CVE-2026-49975 (Apache) |
| `ironworm-npm-worm` | ✅ | — | 2026-06-04 JFrog / OX / Phoenix — Rust npm 蠕虫, eBPF, Tor C2 |
| `kimsuky-hellodoor` | ✅ | — | 2026-05 Securelist — Kimsuky / APT43 Rust PebbleDash 变种 |
| `kirki-cve-2026-8206` | — | ✅ | 2026-06-02 — Kirki WordPress 插件管理员接管 |
| `marimo-cve-2026-39987` | — | ✅ | 2026-05-29 Sysdig — Marimo notebook `/terminal/ws` RCE |
| `fluttershell-flutterbridge` | ✅ | ✅ | 2026-06-06 Palo Alto Unit 42 — 通过 Google Ads 恶意广告分发的 Flutter 框架 macOS 后门 |
| `miasma-azure-aiagent` | ✅ | — | 2026-06-06 — 通过 AI 编码代理工作区配置触发器蔓延至 Microsoft 的 Miasma 蠕虫(73 个仓库被禁用) |
| `miasma-redhat-npm` | ✅ | — | 2026-06-01 Wiz / Aikido / Snyk — 针对 `@redhat-cloud-services` 的 Mini Shai-Hulud 蠕虫 |
| `miasma-v2-phantom-gyp` | ✅ | — | 2026-06-05 Semgrep / StepSecurity / Corgea — binding.gyp 安装时滥用 + 伪造的 SLSA 溯源 |
| `moonlight-maze-loki2-penquin` | ✅ | — | 1996-1999 + 2014-2020 — 历史上与俄罗斯相关的 APT,LOKI2 隐蔽通道后门,现代 Penquin Turla Linux 后继者 |
| `sap-netweaver-cve-2026-44748` | — | ✅ | 2026-06-09 SAP HotNews — NetWeaver AS ABAP 中的 SAML XML 签名包装(CVSS 9.9) |
| `sidecopy-xenofiscal` | — | ✅ | 2026-06-02 Seqrite — APT36 / SideCopy 针对阿富汗财政部的 XenoRAT |
| `vscode-github-token-theft` | ✅ | — | 2026-06-02 Ammar Askar — github.dev OAuth 盗窃链 |
| `windows-search-uri-ntlm-leak` | ✅ | — | 2026-06-03 Huntress — 未修补的 NTLM 泄露(无 CVE;Microsoft 拒绝修复) |
## 目录结构
```
families//
.yar - YARA rule file (if any)
-yara-test-results.md - YARA test transcript (if applicable)
.rules - Snort syntax rule file (if any)
-snort-test-results.md - Snort/Suricata test transcript (if applicable)
specimens/ - YARA should-match samples, committed on disk
benign/ - YARA should-not-match samples, committed on disk
pcaps/ - PCAPs for Snort/Suricata smoke tests
pcap-gen.py - scapy synthesiser for the PCAPs
families/_lib/h2c_http_helper.py - shared scapy TCP/HTTP helper used by pcap-gen.py
```
每个家族文件夹将所有与某一威胁相关的内容放在一起 —— 网络流量规则和文件系统规则并列,并附带它们各自的样本、良性样例、PCAP 和记录。一些家族只有 YARA 规则,一些只有 Snort 规则,有一个(`http2-bomb`)两者皆有。
## 约定
### YARA
在披露信息允许的情况下,每个家族采用三规则形式:
1. **行为** (`severity = "critical"`) —— 依赖于操作特征(标记、并发特征),因此能在轮换后存活。
2. **IOC** (`severity = "high"`) —— 对特定 token 使用 `any of them`,在单个 token 与合法标识符(例如合法的包名)同名时,通过并发特征守卫进行收紧。
3. **样本锚定** (`severity = "critical"`) —— 对已知样本使用精确哈希或结构锚定 + 文件大小区间。
必需的 `meta:` 字段:`description`、`author = "synthetic-detections"`、`date` (ISO)、`severity`、`family`、`reference`。
### Snort / Suricata
采用经典的 Snort 2 规则语法编写,并针对 **Suricata 7.0.10** 进行了验证(Snort 本身并未针对 Debian 13 打包,而 Suricata 原生支持读取 Snort 语法,同时提供了 Snort 2 所缺乏的 HTTP/2 检测器)。
每条规则都包含 `msg`、`flow`、`content` / `pcre`、`reference`、`classtype`、`sid` 和 `rev`。仅适用于 Suricata 的关键字(例如 `http2.frametype`)会在规则的头部注释中注明。
### 融入规则中的宝贵经验
- **YARA IOC 收紧:** 在包坐标上使用 `any of them` 太宽松了 —— 合法软件包合理地提及它们自己的名称。需要与高置信度锚定(主题短语、指纹 UA、特定的恶意版本)同时出现。请参阅 `miasma-redhat-npm-test-results.md`,了解促使此修复的误报(FP)案例。
- **Suricata 重组去重:** 在默认的流检测下,TCP 流上重复的 `content:` 匹配会被去重为每个流仅触发一次事件 —— `detection_filter` 永远不会累积。请使用 `dsize:N;` 来锁定按数据包的检测,其中 N 是确切的目标帧大小。这被用于 `http2-bomb.rules` 的 sid 9000002 和 9000003 中。
## 运行冒烟测试
### YARA
```
cd families/
yara -r -s .yar specimens/ # should produce alerts
yara -r -s .yar benign/ # should produce no alerts
```
### Snort / Suricata
```
sudo apt-get install -y --no-install-recommends suricata python3-scapy tcpdump
sudo systemctl stop suricata && sudo systemctl disable suricata # don't run on the live interface
cd families/
python3 pcap-gen.py # writes pcaps/benign-*.pcap and pcaps/-*.pcap
for p in pcaps/*.pcap; do
out=/tmp/sout-$(basename "$p" .pcap)
rm -rf "$out" && mkdir -p "$out"
suricata -k none -r "$p" -S .rules -l "$out" --runmode single
echo "--- $(basename "$p") ---"
cat "$out/fast.log"
done
```
`-k none` 会禁用校验和验证;scapy 合成的 PCAP 可能包含无效的 TCP/IP 校验和。
## 状态
- **编写者**:AI,由操作员监督。每次提交的消息都描述了所做的更改以及验证该更改的测试结果。
- **溯源**:请参阅提交历史和每个家族对应的 `*-test-results.md`,了解每条规则所依据的公开来源。
- **尚未发布**:该仓库目前仅为本地工作副本。中期目标是在 GitHub 上发布,并采用宽松的开源许可证。
## 注意事项与免责声明
- **AI 编写,人类验证。** 规则及其测试由助手编写;人类操作员审查并提交了每一条规则。验证对真实威胁样本的检测效果是部署团队的责任。
- **合成样本。** 在我们没有掌握真实恶意软件样本的情况下,这些样本是结构正确的最小化文件,用于证明条件逻辑。它们在字节层面并不等同于野外传播的制品。
- **依赖公开来源。** 一些 IOC(包坐标、C2 IP、暂存主机名)很快就会过时。每个家族中的行为规则是抗轮换的检测手段;而 IOC 规则适用于当前的时间窗口和追溯狩猎。
## 许可证
将在发布前决定。预计为宽松许可证(Apache-2.0 或 MIT)。
标签:Metaprompt, YARA, 云资产可视化, 威胁情报, 开发者工具, 逆向工具