boredchilada/cyfar-detections

GitHub: boredchilada/cyfar-detections

一套从安全授课报告中提炼的可部署威胁检测规则库,包含 Suricata 网络规则、YARA 文件规则、主机狩猎命令及自动化测试验证框架。

Stars: 0 | Forks: 0

# cyfar-detections 来自 [cyfar.ca](https://cyfar.ca) 授课报告的检测规则。包含 Suricata、YARA 和主机级别的狩猎(hunt)命令,以及用于网络规则的测试夹具。 每条规则都可以追溯到博客上的某次具体授课。报告提供了背景上下文,而这里的规则是可部署的产物。 ## 包含内容 ``` suricata/ .rules files, one per engagement yara/ YARA rules for file-level detection host/ Shell hunt commands for post-compromise triage tests/ fixtures/ YAML test cases (positive + negative) per Suricata rule validate.py Test runner: builds pcaps, replays through Suricata, checks SIDs craft_pcap.py Generates pcaps from YAML specs Dockerfile Suricata 7.0 container for the runner ``` ## 当前规则 ### Ivanti Sentry CVE-2026-10520 [十个攻击者,一个 Ivanti Sentry 命令注入 Endpoint](https://cyfar.ca/engagements/ten-operators-one-ivanti-sentry-command-injection-endpoint) | 文件 | 类型 | 规则 | |------|------|-------| | `suricata/ivanti-sentry-cve-2026-10520.rules` | Suricata | 1 (预认证 MICS handleMessage POST) | | `yara/ivanti-sentry-cve-2026-10520.yar` | YARA | 2 (JSP + PHP webshell) | | `host/ivanti-sentry-cve-2026-10520.sh` | 主机 | 1 (UID-0 后门、webshell、清除历史记录) | ### VoidLink DDoS-for-hire 僵尸网络 + Docker Engine API 滥用 [自我阻断的 Docker API 滥用投递 VoidLink 租用型 DDoS 僵尸网络](https://cyfar.ca/engagements/self-blocking-docker-api-abuse-delivers-the-voidlink-ddos-for-hire-botnet) | 文件 | 类型 | 规则 | |------|------|-------| | `suricata/voidlink-ddos-botnet-docker-abuse.rules` | Suricata | 13 (Docker API 滥用、宿主机逃逸、C2 注册、二进制文件下载、引导程序获取) | | `yara/voidlink-ddos-botnet-docker-abuse.yar` | YARA | 4 (DockerPwn 持久化脚本、VoidLink 集群 agent、引导投放器、libhide rootkit) | | `host/voidlink-ddos-botnet-docker-abuse.sh` | 主机 | 8 (SSH 标记、systemd 覆盖配置、rootkit 钩子、磁盘上的遗留物) | ### 跨服务凭证重放 [跨服务凭证重放:攻击者利用窃取的 LLM Endpoint 机密攻击 Hypervisor](https://cyfar.ca/engagements/cross-service-credential-replay-operator-targets-hypervisor-using-harvested-llm) | 文件 | 类型 | 规则 | |------|------|-------| | `suricata/cross-service-credential-replay.rules` | Suricata | 1 (prompt 注入导致环境变量泄露) | **总计:** 15 条 Suricata 规则,6 条 YARA 规则,9 条主机狩猎命令。随着新授课报告的发布,将会有更多规则加入。 ## 使用规则 **Suricata:** 将 `.rules` 文件复制到您的规则目录中,并在 `suricata.yaml` 中引用它们。所有规则均使用标准的 `$HOME_NET` / `$EXTERNAL_NET` 变量。 **YARA:** 将您的扫描器指向 `yara/` 目录。这些规则是自包含的,没有导入或模块依赖。 **主机:** `.sh` 文件是狩猎命令的集合,而不是可以盲目执行的脚本。请阅读它们,理解每条命令检查的内容,并在您怀疑可能遭到入侵的主机上运行相关的命令。 ## 运行 Suricata 测试 测试运行器分两步验证每一条 Suricata 规则。首先,它运行 `suricata -T` 以确认规则能够正确解析且没有语法错误。接着,它根据夹具的 HTTP 请求规范生成一个合成 pcap,通过 Suricata 重放,并检查 `eve.json` 中是否出现了预期的告警 SID。正向测试确认规则会在匹配检测特征的流量上触发。反向测试发送相似但无害的流量,并确认规则保持静默。 需要 Docker。它将构建一个带有 scapy 用于生成 pcap 的 Suricata 7.0 容器。 ``` cd tests docker compose build docker compose run --rm validator ``` ### 夹具格式 每个 YAML 夹具都是自包含的:它包含规则文本以及一个或多个测试用例。测试用例描述了一个 HTTP 请求(方法、URI、主机名、请求头、请求体),并列出应该触发或不触发的 SID。运行器会将该规范转换为包含完整 TCP 握手 + HTTP 交互的 pcap,因此无需捕获或存储真实的流量。 ``` name: "Ivanti Sentry CVE-2026-10520 pre-auth command injection" rule: >- alert http $EXTERNAL_NET any -> $HOME_NET 8443 (msg:"IVANTI SENTRY CVE-2026-10520 MICS handleMessage POST"; flow:to_server,established; http.method; content:"POST"; http.uri; content:"/mics/"; content:"/handleMessage"; sid:1000844001; rev:1;) tests: - name: "positive-handlemessage-external-post" expected_sids: [1000844001] request: method: POST uri: /mics/api/v2/sentry/mics-config/handleMessage host: 198.51.100.10 port: 8443 headers: Content-Type: application/xml body: "id" - name: "negative-get-not-post" expected_sids: [] request: method: GET uri: /mics/api/v2/sentry/mics-config/handleMessage host: 198.51.100.10 port: 8443 ``` 如果您编写了自己的 Suricata 规则,可以添加一个夹具并运行相同的验证器来测试它们。 ## 来源 请参阅 [ENGAGEMENTS.md](./ENGAGEMENTS.md) 了解哪些规则来自哪份报告。 此仓库是所有已发布检测规则的权威来源。博客文章中嵌入的是固定在特定 commit 的版本,并链接到此处。修复将首先发布在这里。 ## 许可证 Apache 2.0
标签:AMSI绕过, Cutter, Metaprompt, Suricata, YARA, 云资产可视化, 入侵检测系统, 威胁检测, 安全数据湖, 版权保护, 现代安全运营, 网络安全, 请求拦截, 逆向工具, 隐私保护