Senturkselim/CGTI-for-OpenClaw
GitHub: Senturkselim/CGTI-for-OpenClaw
面向 OpenClaw AI 代理生态的 Suricata IDS/IPS 管理工具,内置 646 条威胁检测规则,提供跨平台实时监控、自动封禁和 IPS 主动拦截能力。
Stars: 2 | Forks: 0
# 🛡 CGTI Lite for OpenClaw — 社区版
[](https://www.gnu.org/licenses/agpl-3.0)
[](https://www.python.org)
[](https://suricata.io)
[](#rule-files)
[](#cves-covered)
## 为什么选择 CGTI Lite?
在 2026 年 1 月至 3 月期间,OpenClaw 生态系统面临了一场前所未有的安全危机:
- **ClawHavoc 活动** — 在 ClawHub 上发现了 1,184+ 个恶意技能,分发 AMOS、Vidar 和 GhostSocks 窃密木马
- **GhostClaw/GhostLoader** — 通过拼写抢注的 npm 包(`@openclaw-ai/openclawai`)分发的 RAT,通过 trackpipe.dev C2 将数据外泄至 GoFile.io
- **CVE-2026-25253** (CVSS 8.8) — 1-Click RCE,导致完整的 token 窃取和远程代码执行
- 在公共互联网上发现了 **135,000+ 个暴露的实例**,其中许多未设置身份验证
- **AMOS Stealer** — 针对 macOS 的信息窃密软件,窃取 `openclaw.json`、API 密钥、加密货币钱包和 SSH 凭证
CGTI Lite 提供了 646 条精心筛选的 Suricata 规则,涵盖了这些攻击链的每个阶段,并封装在一个跨平台管理控制台中,负责处理安装、配置、实时监控和主动阻断。
## 目录
- [为什么选择 CGTI Lite?](#why-cgti-lite)
- [核心特性](#key-features)
- [威胁覆盖](#threat-coverage)
- [规则文件](#rule-files)
- [安装](#installation)
- [快速入门](#quick-start)
- [命令参考](#command-reference)
- [IDS 与 IPS 模式](#ids-vs-ips-mode)
- [误报管理](#false-positive-management)
- [Suricata 配置](#suricata-configuration)
- [配置文件位置](#config-file-locations)
- [防火墙集成](#firewall-integration)
- [系统要求](#requirements)
- [测试](#testing)
- [贡献指南](#contributing)
- [许可证](#license)
- [致谢](#acknowledgments)
## 核心特性
| 特性 | 描述 |
|---|---|
| **跨平台** | 全面支持 Windows、macOS 和 Linux,并提供特定平台的安装程序 |
| **646 条检测规则** | 跨 13 个专用文件构建的专用规则 — 零 SID 冲突,经过验证的 namespace |
| **IDS + IPS 模式** | 仅监控 (IDS) 或主动阻断 (IPS),支持自动生成 `alert → drop` 规则 |
| **实时告警流** | 带有颜色编码严重性显示的实时 `eve.json` 监控 |
| **自动拦截** | 增强的 Autoblock 模式会自动为检测到的威胁添加操作系统原生防火墙规则 — 双向、DNS 感知、按严重性过滤 |
| **防火墙集成** | iptables (Linux) / pfctl (macOS) / netsh advfirewall (Windows) |
| **开机自启** | 通过 systemd (Linux)、launchd (macOS)、Task Scheduler (Windows) 实现开机时激活 — 支持 IDS、IPS 和增强型 Autoblock 模式 |
| **IP 封禁管理** | 跟踪、添加、移除和清除被封禁的 IP,并记录原因 |
| **规则管理** | 按 SID 启用/禁用单个规则,添加自定义规则,热重载 |
| **配置校验** | 具有 schema 验证的 JSON 配置及安全默认值 |
| **日志轮转** | CGTI 日志在达到 5 MB 阈值时自动轮转 |
| **内存安全读取** | 以 1 MB 块进行基于 Tail 的日志读取 — 绝不将整个文件加载到内存中 |
## 威胁覆盖
### 攻击活动与恶意软件家族
| 威胁 | 描述 | 检测方法 |
|---|---|---|
| **ClawHavoc** | 1,184+ 个分发信息窃密软件的恶意 ClawHub 技能 | C2 IP、域名、技能下载模式、DNS 查询 |
| **AMOS Stealer** | 针对 macOS 的信息窃密软件,目标为加密钱包、openclaw.json、SSH 密钥 | TLS C2 (91.92.242.0/24)、HTTP 外泄、BuildID header (out.zip) |
| **Vidar 2.0** | 针对 `~/.openclaw/` 凭证存储的信息窃密软件 | JA3 指纹、TLS 证书 (C=XX,ST=NY,O=StaticIP) |
| **GhostClaw/GhostLoader** | 通过拼写抢注的 npm 包 (`@openclaw-ai/openclawai`) 分发的 RAT,外泄至 GoFile.io | 指向 trackpipe.dev 的 TLS/HTTP C2、引导 payload URI、npm 包检测、DNS 查询 |
| **GhostSocks** | 将受感染主机变成 SOCKS 代理的代理恶意软件 | 默认证书 CN、Stealth Packer 指标 |
| **DigitStealer** | 通过 ClawHavoc 分发的以加密货币为重心的窃密软件 | HTTP C2 模式、钱包扩展目标 |
| **AuthTool Backdoor** | 带有反向 shell 连接到 54.91.154.110 的虚假身份验证技能 | C2 IP、端口 13338 连接模式 |
### 覆盖的 CVE
CGTI Lite 包含针对 OpenClaw 组件的 **25 个独立 CVE** 的检测规则:
| CVE | CVSS | 描述 |
|---|---|---|
| CVE-2026-25253 | 8.8 | 通过 `gatewayUrl` token 外泄实现 1-Click RCE(5 阶段杀伤链) |
| CVE-2026-28446 | 9.8 | 语音扩展通过转录管道实现预认证 RCE |
| CVE-2026-28363 | 9.9 | 通过 GNU 长选项缩写绕过 `safeBins` |
| CVE-2026-28484 | 9.8 | Git 预提交钩子选项注入 |
| CVE-2026-32059 | HIGH | 通过精心构造的技能元数据实现远程代码执行 |
| CVE-2026-25593 | HIGH | 未认证的 `config.apply` cliPath 命令注入 |
| CVE-2026-27487 | HIGH | macOS keychain OAuth token 命令注入 |
| CVE-2026-24763 | HIGH | Docker PATH 环境变量命令注入 |
| CVE-2026-25157 | HIGH | `sshNodeCommand` / `parseSSHTarget` 操作系统命令注入 |
| CVE-2026-26329 | HIGH | 通过工作区配置实现的路径穿越 |
| CVE-2026-26322 | 7.6 | 通过网关工具 `gatewayUrl` 参数实现的 SSRF |
| CVE-2026-26319 | 7.5 | Telnyx/Twilio webhook 身份验证 fail-open 绕过 |
| CVE-2026-22708 | MED | Web UI 中的 CSS 隐藏 prompt 注入 |
| + 另外 12 个 | — | 参见 `openclaw-exploit-detection.rules` 和 `oc-exploit-cve.rules` |
### 检测层
规则按三个检测置信度层进行组织:
- **Layer 1** — 高置信度(优先级 1):已知 C2 IP、CVE 漏洞利用签名、TLS/JA3 指纹
- **Layer 2** — 中置信度(优先级 2):行为模式、协议异常、基于阈值的检测
- **Layer 3** — 低置信度(优先级 3):通用启发式、扫描器检测、广泛模式匹配
## 规则文件
**13 个文件 · 646 条活跃规则(共 662 条) · SID 范围 9200001–9204419 · 零冲突**
| # | 文件 | SID 范围 | 活跃数 | 覆盖范围 |
|---|---|---|---|---|
| 01 | `oc-infostealer-c2.rules` | 9200001–9200128 | 67 | AMOS/Vidar/GhostClaw C2、凭证窃取、窃密面板 |
| 02 | `oc-reverse-shell.rules` | 9200500–9200651 | 59 | 反向 shell(bash、netcat、Python、Node.js、PowerShell、Go、Java) |
| 03 | `oc-websocket-attack.rules` | 9200800–9200905 | 43 | WebSocket 网关攻击(CVE-2026-25253、ClawJacked、日志投毒) |
| 04 | `oc-malicious-skill-download.rules` | 9201000–9201113 | 50 | 恶意技能安装、拼写抢注、供应链 |
| 05 | `oc-data-exfiltration.rules` | 9201500–9201631 | 57 | 凭证外泄(Telegram、Discord、Slack、云存储、粘贴网站) |
| 06 | `oc-gateway-exposure.rules` | 9202000–9202091 | 42 | 暴露的网关、Moltbook、扫描器检测、横向移动 |
| 07 | `oc-cryptostealer-activity.rules` | 9202300–9202381 | 41 | 加密货币钱包窃取、挖矿、助记词、交易所 API 密钥、drainer |
| 08 | `oc-mcp-security.rules` | 9202600–9202662 | 24 | MCP endpoint 安全、SSRF、工具注入、凭证外泄 |
| 09 | `oc-exploit-cve.rules` | 9202900–9203012 | 37 | 特定 CVE 的漏洞利用签名(基础集) |
| 10 | `oc-exploit-detection.rules` | 9203050–9203139 | 89 | 扩展的 CVE 覆盖(25 个 CVE、完整杀伤链、35 个部分) |
| 11 | `oc-threat-intel-ioc.rules` | 9203400–9203483 | 83 | 威胁情报 IoC、恶意发布者、供应链攻击 |
| 12 | `oc-dns-threat-detection.rules` | 9203900–9203942 | 34 | DNS C2、rebinding、拼写抢注、mDNS 侦察、增强型 Autoblock |
| 13 | `oc-tls-certificate-anomaly.rules` | 9204400–9204419 | 20 | TLS/证书 MITM、TOFU 攻击、JA3、Anthropic API 保护 |
所有规则文件都是独立的,无需额外配置即可同时加载。
## 安装
### Linux / macOS
```
git clone https://github.com/Senturkselim/CGTI-for-OpenClaw.git
cd CGTI-for-OpenClaw
chmod +x install.sh
./install.sh
```
然后运行安装向导:
```
cgti install
```
### Windows
1. 克隆或下载仓库
2. 右键点击 `install.bat` → **以管理员身份运行**
3. 打开一个**新的**管理员 CMD 窗口:
```
cgti install
```
### 手动安装(任何操作系统)
```
pip install rich
python cgti_lite.py install
```
## 快速入门
```
# 1. 安装与配置(仅首次运行)
cgti install
# 2. 启动 Suricata 监控
sudo cgti start # Interactive — select interface from list
sudo cgti start -i eth0 # Linux (direct)
cgti start -i "Wi-Fi" # Windows (direct)
sudo cgti start -i en0 # macOS (direct)
# 3. 查看实时警报
cgti live
# 4. 启用自动拦截(通过 OS 防火墙拦截攻击 IP)
sudo cgti live --autoblock
```
## 命令参考
### 核心命令
| 命令 | 描述 |
|---|---|
| `cgti install` | 首次设置向导 — 检测/安装 Suricata,配置规则 |
| `cgti status` | 系统状态、Suricata 版本、规则统计 |
| `cgti start [-i INTERFACE]` | 在指定的网络接口上启动 Suricata |
| `cgti stop` | 停止 Suricata |
| `cgti live` | 带有颜色编码严重性的实时告警流 |
| `cgti live --autoblock` | 实时流 + 为检测到的威胁自动拦截 IP |
### 规则管理
| 命令 | 描述 |
|---|---|
| `cgti rules list` | 列出所有规则(分页显示) |
| `cgti rules list --filter "AMOS"` | 按文本模式过滤规则 |
| `cgti rules enable ` | 按 SID 启用特定规则 |
| `cgti rules disable ` | 按 SID 禁用特定规则 |
| `cgti rules add " -r "reason"` | 封禁一个 IP(应用操作系统防火墙规则) |
| `cgti blocked remove ` | 解封一个 IP |
| `cgti blocked clear` | 清除所有被封禁的 IP |
### 日志分析
| 命令 | 描述 |
|---|---|
| `cgti logs` | 显示最近的告警 |
| `cgti logs -n 100` | 显示最近 100 条告警 |
| `cgti logs --severity 1` | 仅显示严重(优先级 1)告警 |
| `cgti logs --ip 1.2.3.4` | 按源/目标 IP 过滤告警 |
### 配置
| 命令 | 描述 |
|---|---|
| `cgti config show` | 显示当前配置 |
| `cgti config set suricata.mode IPS` | 切换到 IPS 模式 |
| `cgti config set suricata.interface eth0` | 设置默认接口 |
| `cgti config set suricata.dns_servers "9.9.9.9,149.112.112.112"` | 设置自定义 DNS 服务器(实时应用到 suricata.yaml) |
| `cgti config reset` | 恢复为默认配置 |
| `cgti config path` | 显示配置、规则和日志文件路径 |
### 开机自启
CGTI Lite 可以使用操作系统原生的服务管理器在系统启动时自动启动 Suricata:
| 命令 | 描述 |
|---|---|
| `cgti autostart enable` | 启用开机自启 |
| `cgti autostart disable` | 禁用开机自启 |
| `cgti autostart status` | 显示当前自启状态 |
其实现是特定于平台的:
| 操作系统 | 方法 | 服务名称 |
|---|---|---|
| Linux | systemd unit | `cgti-lite.service` |
| macOS | launchd plist | `com.cgti-lite.daemon` |
| Windows | Task Scheduler | `CGTI-Lite-Autostart` |
## IDS 与 IPS 模式
### IDS 模式(默认)
- **监控**网络流量并生成告警
- **不会**拦截或修改流量
- 规则使用 `alert` 动作
- 适用于所有平台
### IPS 模式
- 通过丢弃数据包来**主动拦截**恶意流量
- 自动将现有的 `alert` 规则原地转换为 `drop`(停止时还原)
- Linux:使用 `iptables` NFQUEUE 进行内联数据包处理
- 自动配置带有 `nfq:` 部分的 `suricata.yaml`
```
# 启用 IPS 模式
cgti config set suricata.mode IPS
# 以 IPS 启动(Linux — 需要 root)
sudo cgti start -i eth0
```
## 误报管理
CGTI Lite 规则采用严格的防误报方法论进行设计:每条规则至少需要两个独立的指标、适用的端口/方向范围限制,以及针对行为规则的阈值保护。尽管如此,某些规则在特定的 OpenClaw 使用模式下仍可能触发告警。本节将帮助您针对自身环境调整规则集。
### 已禁用的规则
有 16 条规则**默认被禁用**,因为它们会在正常的 OpenClaw 操作中触发。每条被禁用的规则都带有一个 `# DISABLED-FP:` 注释来解释原因。如果您的部署不使用受影响的功能,则可以重新启用它们。
| SID | 文件 | 原因 | 重新启用条件... |
|---|---|---|---|
| 9200835 | websocket-attack | `device.register` 在每次合法的设备配对时都会触发 | 您从不配对新设备 |
| 9200836 | websocket-attack | `node.list` 在每次节点枚举时都会触发 | 您拥有一个静态节点设置 |
| 9200837 | websocket-attack | `config.get` 在每次读取配置时都会触发 | 您从不通过 WebSocket 读取配置 |
| 9200838 | websocket-attack | `skill.install` 在每次安装技能时都会触发 | 您的技能集是锁定的 |
| 9200839 | websocket-attack | `log.read` 在每次访问日志时都会触发 | 您从不通过 WebSocket 读取日志 |
| 9200872 | websocket-attack | Python REPL 检测 — REPL 是 OpenClaw 的核心功能 | 您不使用 Python REPL |
| 9202012 | gateway-exposure | Python REPL 检测(网关上下文) — 同上 | 同上 |
| 9202071 | gateway-exposure | `HOME_NET → HOME_NET [22,3306,5432,6379,27017]` — 无 OpenClaw 特定内容,在所有内部 DB/SSH 流量上都会触发 | 您想要监控所有的内部东西向流量 |
| 9202610 | mcp-security | `tools/call + exec` — 匹配合法的 MCP 工具,如 `execute_query`、`exec_sql` | 您不使用任何名称中带有“exec”的 MCP 工具 |
| 9202614 | mcp-security | `tools/call + read_file` — 标准文件系统 MCP 工具 | 您不使用文件系统 MCP 服务器 |
| 9202615 | mcp-security | `tools/call + write_file` — 标准文件系统 MCP 工具 | 您不使用文件系统 MCP 服务器 |
| 9202662 | mcp-security | 硬编码的 `database_query` 工具名称 — 检测质量差 | 不适用 — 检测逻辑有缺陷 |
| 9201070 | skill-download | `registry.npmjs.org` DNS — 在每次 `npm install` 命令时都会触发 | 您的 OpenClaw 主机从不运行 npm |
| 9200513 | reverse-shell | 端口 8888 + TLS 握手 — 在 Jupyter Notebook、MAMP、开发服务器上会触发 | 没有开发工具运行在端口 8888 上 |
| 9203124 | exploit-detection | 所有 HTTP 响应中的 `[SYSTEM]+exec` — 在技术文档和博客页面上会触发 | 您希望进行积极的 prompt 注入检测 |
| 9203482 | threat-intel-ioc | SID:9203124 的重复项 | 同上 |
要重新启用被禁用的规则:
```
cgti rules enable
```
### 按用例调整指南
**如果您使用 Discord/Slack/Teams 集成:**
SID 9201523–9201527 检测发往这些平台的 webhook POST 请求。它们已具备阈值保护(60 秒内 5 次请求)并降低了优先级 (3)。如果您仍然看到太多告警,可以在您的本地规则覆盖中增加阈值:
```
# 示例:将 Discord webhook 阈值提升至 10/60s
cgti rules disable 9201524
cgti rules add 'alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"LOCAL - Discord Webhook POST (Tuned)"; flow:established,to_server; http.method; content:"POST"; http.host; content:"discord.com"; http.uri; content:"/api/webhooks/"; threshold:type both, track by_src, count 10, seconds 60; classtype:trojan-activity; priority:3; sid:9900001; rev:1;)'
```
**如果您使用 Telegram Bot API:**
SID 9201520–9201522 和 9200070–9200071 检测 Telegram Bot API 调用。它们具有阈值保护(60 秒内 3–15 次请求)。如果您的 bot 发起频繁的 API 调用,请考虑提高阈值或降低优先级。
**如果您运行加密货币交易机器人:**
SID:9202333(交易所提现 API 调用)已被设置为优先级 :3 并带有 `false_positive High` 元数据。它检测发往交易所 API(Binance、Coinbase 等)且 URI 中包含 `withdraw/transfer/send` 的 POST 请求。如果您运行自动化交易,此规则将生成信息性告警。您可以禁用它:
```
cgti rules disable 9202333
```
**如果您运行 MCP 服务器(文件系统、数据库、自定义工具):**
四个 MCP 规则已被默认禁用(9202610, 9202614, 9202615, 9202662)。其余的 24 个 MCP 规则专门用于检测外部访问、SSRF 和凭证泄露 — 它们不应在正常的本地 MCP 使用中触发。
**如果您使用 glot.io、file.io 或其他代码/文件共享服务:**
这些服务被攻击者使用,但也被合法的开发人员使用。这些规则使用了阈值保护和降低了的优先级:
- glot.io HTTP (SID:9201000):优先级 2
- glot.io DNS (SID:9203908):阈值 60 秒内 3 次查询
- file.io (SID:9201544):优先级 2
- gofile.io (SID:9201547):优先级 3
如果您经常使用这些服务,可以提高阈值或禁用特定的 SID。
**如果您远程访问您的网关(Tailscale、Cloudflare Tunnel、局域网):**
`oc-gateway-exposure.rules` 和 `oc-websocket-attack.rules` 中的规则旨在检测对端口 18789 的外部访问。如果您有意通过 VPN 或隧道暴露您的网关,这些规则将会触发。这是设计使然 — 这些规则将暴露本身作为策略违规进行告警。您可以:
- 降低网关暴露规则的优先级:`cgti rules disable 9202000`,然后以优先级 :3 重新添加
- 或者将您的隧道 IP 范围添加到 `suricata.yaml` 中的 `$HOME_NET`,以便将其视为内部网络
### 已知的误报场景
这些是在合法使用期间活跃规则可能会生成告警的已记录场景。所有这些场景都已经在当前的优先级/阈值水平下进行了评估和接受:
| 场景 | 规则 | 优先级 | 可接受的原因 |
|---|---|---|---|
| `curl \| bash` 安装脚本(Homebrew、nvm 等) | SID:9201021 | 2 | 特定组合:curl UA + 响应体中的 `#!/bin/` shebang。在开发设置中很常见,但也正是 ClawHavoc 的投递技术。 |
| 通过 curl 下载 GitHub 原始 `.sh` 脚本 | SID:9201041 | 2 | 匹配 `raw.githubusercontent.com` + curl UA + `.sh` 扩展名。误报元数据设置为 Medium。 |
| Mach-O 二进制文件下载(Homebrew、合法的 macOS 应用) | SID:9200023 | 2 | 匹配 HTTP 响应中的 `\|ca fe ba be\|` 魔术字节。在任何通用 Mach-O 二进制文件下载时都会触发。 |
| 通过 curl 下载 `.dmg`(合法的 macOS 安装程序) | SID:9200021, 9200029, 9200030 | 2 | 专门针对 `.dmg` 扩展名 + curl UA。Ledger/Trezor 规则还会检查非官方域名。 |
| IP 地理位置 查询(ipinfo.io、ip-api.com) | SID:9200090–92, 9201620–23 | 3 | 非浏览器 UA + IP 查询服务。优先级 3(信息性)。许多合法脚本会检查公共 IP。 |
| GitHub Gist 创建 | SID:9201551 | 3 | `api.github.com/gists` POST。优先级 3,误报:Medium。创建 Gists 的开发人员会触发此规则。 |
| Pastebin API 粘贴创建 | SID:9201550 | 1 | POST 请求体中包含特定的 `api_option=paste`。误报率极低 — 大多数用户不会以编程方式向 Pastebin API 发送 POST 请求。 |
| 网关端口 18789 上的自签名 TLS 证书 | SID:9204415 | 2 | 在使用自签名证书的非本地连接上触发。在使用 `wss://` 的开发/测试环境中很常见。 |
### 报告误报
如果您遇到上述未列出的误报,请报告它,以便我们为所有人改进规则集:
1. **识别 SID** — 在 `cgti logs` 或 `cgti live` 中检查告警详情
2. **暂时禁用** — 使用 `cgti rules disable ` 停止告警
3. **提交一个 GitHub Issue**,包含以下内容:
- SID 号码和完整的告警信息
- 触发该告警的合法活动
- 您的 OpenClaw 版本和平台
- 您是否使用了集成(Discord、Telegram、MCP、加密货币交易等)
所有误报报告都将被审查,并可能在下一版本中导致阈值调整、优先级更改或规则被禁用。
## Suricata 配置
所有 13 个规则文件均可直接在标准的 Suricata 安装下开箱即用。以下两项可选配置可增强覆盖率:
### JA3 指纹识别(推荐)
Vidar 窃密木马的 JA3 检测 (SID 9204416) 要此配置。请将其添加到 `suricata.yaml` 中:
```
app-layer:
protocols:
tls:
ja3-fingerprints: yes
```
### DNS 服务器变量
未经授权的 DNS 解析器检测 (SID 9203923) 需要此配置。在执行 `cgti install` 时,系统会自动使用公共解析器进行配置:
```
vars:
address-groups:
DNS_SERVERS: "[8.8.8.8, 8.8.4.4, 1.1.1.1, 1.0.0.1]"
```
要使用您自己的 DNS 服务器,请使用 `config set` 命令 — 这将立即更新 CGTI 配置**以及** `suricata.yaml`:
```
cgti config set suricata.dns_servers "9.9.9.9,149.112.112.112"
```
### 标准变量
所有规则均使用标准的 Suricata 变量(默认已定义):
```
vars:
address-groups:
HOME_NET: "[192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12]"
EXTERNAL_NET: "!$HOME_NET"
```
## 配置文件位置
| 操作系统 | 配置路径 |
|---|---|
| Linux | `/etc/cgti-lite/config.json` |
| macOS | `~/Library/Application Support/cgti-lite/config.json` |
| Windows | `%APPDATA%\cgti-lite\config.json` |
## 防火墙集成
`cgti blocked add` 会应用操作系统原生的防火墙规则:
| 操作系统 | 方法 |
|---|---|
| Linux | `iptables -I INPUT -s -j DROP` + `iptables -I OUTPUT -d -j DROP` |
| macOS | 带有持久化文件(`/etc/cgti_blocked_ips`)的 `pfctl` 表 |
| Windows | `netsh advfirewall firewall` 规则 |
所有防火墙操作都包含 IP 验证,以防止注入攻击。Linux 上的 IPS 模式使用 `iptables` NFQUEUE,在失败时会自动回滚。
## 系统要求
- **Python 3.8+**
- **[rich](https://github.com/Textualize/rich) ≥ 13.0.0** — 首次运行时自动安装
- **Suricata 6.0+** — IDS/IPS 引擎
### 安装 Suricata
| 操作系统 | 命令 |
|---|---|
| Ubuntu/Debian | `sudo apt install suricata` |
| CentOS/RHEL | `sudo yum install suricata` |
| Arch Linux | `sudo pacman -S suricata` |
| macOS | `brew install suricata` |
| Windows | [下载 MSI](https://suricata.io/download/) 或运行 `cgti install` |
## 测试
```
python -m pytest test_cgti.py -v
```
该测试套件包含 33 项测试,涵盖 IP 验证、内存安全的日志读取、规则切换完整性、配置验证、IPS drop 规则生成、NFQ 配置和日志轮转。
## 调试模式
```
CGTI_DEBUG=1 cgti status
```
## 贡献指南
欢迎贡献。感兴趣的领域包括:
- **新检测规则** — 请遵循下面的 SID 分配方案
- **平台测试** — 额外的 Linux 发行版、macOS 版本、Windows 配置
- **IoC 更新** — 监控每个规则文件头部中列出的来源以获取新指标
- **Bug 报告** — 提交一个包含 `cgti status` 输出和相关日志的 issue
### SID 分配
添加新规则时,请在每个类别的分配范围内使用 SID:
| 类别 | SID 范围 | 当前最大值 |
|---|---|---|
| Infostealer C2 | 9200001–9200499 | 9200123 |
| Reverse Shell | 9200500–9200799 | 9200651 |
| WebSocket Attack | 9200800–9200999 | 9200905 |
| Malicious Skill Download | 9201000–9201499 | 9201113 |
| Data Exfiltration | 9201500–9201999 | 9201631 |
| Gateway Exposure | 9202000–9202299 | 9202091 |
| Cryptostealer Activity | 9202300–9202599 | 9202381 |
| MCP Security | 9202600–9202899 | 9202662 |
| Exploit CVE (base) | 9202900–9203049 | 9203012 |
| Exploit Detection (extended) | 9203050–9203399 | 9203139 |
| Threat Intel IOC | 9203400–9203899 | 9203483 |
| DNS Threat Detection | 9203900–9204399 | 9203924 |
| TLS/Certificate Anomaly | 9204400–9204999 | 9204419 |
### 规则元数据标准
每条规则必须包含以下元数据字段:
```
msg:"CGTI-OC ";
classtype:;
priority:<1|2|3>;
reference:,;
metadata:;
sid:; rev:;
```
## 许可证
本项目基于 **GNU Affero General Public License v3.0 only (AGPL-3.0-only)** 授权。
```
Copyright (C) 2026 Selim Şentürk
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, version 3.
```
完整许可证文本请参见 [LICENSE.txt](LICENSE.txt)。
## 致谢
### 威胁情报来源
检测规则基于以下机构的研究和指标构建:
- [Koi Security](https://koi.ai) — ClawHavoc 活动发现(1,184+ 个恶意技能)
- [Huntress](https://huntress.com) — 通过 ChatGPT/Grok 分析发现的 AMOS 窃密木马、GhostSocks/OpenClaw 活动
- [Bitdefender Labs](https://businessinsights.bitdefender.com) — 针对企业网络的 AMOS 技术咨询
- [Darktrace](https://darktrace.com) — 跨越 24 个国家的 Atomic Stealer 调查
- [Trend Micro](https://trendmicro.com) — AMOS 分布分析,Vidar 2.0 研究
- [Ontinue](https://ontinue.com) — Vidar Stealer 2.0 逆向工程
- [DepthFirst Security](https://depthfirst.com) — CVE-2026-25253 原始发现及杀伤链分析
- [Oasis Security](https://oasis.security) — ClawJacked 漏洞披露
- [Bitsight TRACE](https://bitsight.com) — 暴露的 MCP 服务器研究,OpenClaw 实例扫描
- [Corelight](https://corelight.com) — React2Shell Suricata 检测模式
- [Endor Labs](https://endorlabs.com) — 多个 OpenClaw CVE 发现
- [SentinelOne VDB](https://sentinelone.com) — 漏洞数据库条目
- [VulnCheck](https://vulncheck.com) — 咨询公告
- [Hunt.io](https://hunt.io) — 17,470+ 个暴露实例的证书分析
- [Hudson Rock](https://hudsonrock.com) — OpenClaw 凭证暴露研究
- [Moonlock Lab](https://moonlock.com) — AMOS 后门 macOS 分析
- [JFrog Security Research](https://research.jfrog.com) — GhostClaw/GhostLoader RAT 活动的发现与分析
- [abuse.ch SSLBL](https://sslbl.abuse.ch) — JA3 指纹数据库
- [adibirzu/openclaw-security-monitor](https://github.com/adibirzu/openclaw-security-monitor) — 精选的 IoC 数据库
- [MITRE ATT&CK](https://attack.mitre.org) — 技术分类框架
CGTI Lite for OpenClaw — 社区版
CloudGo Threat Intelligence 项目的一部分
标签:AMOS Stealer, C2通信检测, CISA项目, Claude, CVE检测, DNS 反向解析, GhostLoader, IDS/IPS, IP 地址批量处理, Metaprompt, Python, RAT, Suricata, 信息窃取程序, 入侵检测系统, 命令与控制, 威胁情报, 安全事件响应, 安全数据湖, 开发者工具, 开源安全工具, 数据渗出防护, 无后门, 现代安全运营, 社区版, 网络安全, 网络流量分析, 规则管理, 远程访问木马, 逆向工具, 逆向工程平台, 防火墙集成, 隐私保护