CyberSentinel-sys/RTAI
GitHub: CyberSentinel-sys/RTAI
RTAI是一个支持完全离线部署的自主紫队平台,通过多Agent协同实现从网络侦察到漏洞修复建议的全流程自动化安全评估。
Stars: 2 | Forks: 1
# RTAI — 自主隔离网络紫队平台

[](https://python.org)
[](https://github.com/langchain-ai/langgraph)
[](#enterprise-edge)
[](#quickstart)
[](#legal-notice)
RTAI 是一个独立的、企业级的**自主紫队**平台。将其部署在隔离网络上,指向授权目标,一群协调的专业 AI Agent 将自主执行完整的杀伤链——从初始侦察到基于 CVE 的漏洞分析、内存驻留威胁搜寻以及生产环境安全的修复——在零云依赖的情况下交付可直接发布的报告。
## 群体智能
RTAI 的流水线由六个专用 Agent 组成,它们作为一个线性群体运行。每个 Agent 共享一个类型化的 `RTAIState` Pydantic 模型;发现结果在各个阶段累积而不会覆盖,从而产生完整、可审计的交互记录。
```
Scout ──▶ Analyst ──▶ Hunter* ──▶ Strategist ──▶ Fixer ──▶ Report
```
\* HunterAgent 需要 Enterprise 许可证。
| Agent | 角色 | 关键输出 |
|---|---|---|
| **ScoutAgent** | 隐蔽主机发现 + 服务枚举 | 通过 Scapy ARP 扫描 + Nmap 获取开放端口、OS 指纹、服务 Banner |
| **AnalystAgent** | CVE 交叉引用 + 动态风险评分 | 带有 `min(10.0, CVSS × reachability + exploit_bonus)` 分数的排名 `entry_points` 列表 |
| **HunterAgent** ★ | 内存驻留 C2 Beacon 及 Shellcode 检测 | 进程内存扫描结果、Beacon IOC、Shellcode 特征 |
| **StrategistAgent** | ATT&CK 映射的多阶段攻击规划 | 按低噪 -> 高影响排序的分步作战计划,含备选方案 |
| **FixerAgent** | 生产环境安全的修复脚本生成 | 带安全过滤器的 Bash 补丁、IPTables 规则和 Ansible Playbook |
| **ReportAgent** | 确定性、无幻觉报告组装 | 保存到 `reports/` 的结构化 Markdown 报告 — 表格由类型化状态构建,LLM 仅撰写正文 |
所有 Agent 通过 LangGraph 的 `operator.add` Reducer 共享状态。`SwarmController` 在 Fixer 完成后应用人机交互**审批关卡**——在操作员通过 CISO Dashboard 确认之前,不会执行任何修复脚本。
## 企业版优势
| 功能 | Community | Enterprise |
|---|:---:|:---:|
| 本地 LLM (Ollama / llama3) | ✔ | ✔ |
| 隔离网络 SQLite CVE 数据库 | ✔ | ✔ |
| SearchSploit / ExploitDB OSINT | ✔ | ✔ |
| Bash 修复脚本 | ✔ | ✔ |
| Telegram 审批关卡通知 | ✔ | ✔ |
| CISO Streamlit Dashboard | ✔ | ✔ |
| **Ansible Playbook 生成** | ✗ | ✔ |
| **Jira Cloud / Server 集成** | ✗ | ✔ |
| **HunterAgent** (内存 Shellcode 及 C2 搜寻) | ✗ | ✔ |
| **DMZ 中继服务器** (隔离网络 CVE 增量同步) | ✗ | ✔ |
| **HIPAA / SOC 2 合规映射** | ✗ | ✔ *(第 3 个月)* |
| **多租户 & SaaS Dashboard** | ✗ | ✔ *(第 3 个月)* |
## 快速入门
### 前置条件
- Python 3.10+
- `nmap` 二进制文件: `sudo apt install nmap`
- Ollama (隔离模式) **或** OpenAI API Key
### 1 — 安装
```
git clone git@github.com:CyberSentinel-sys/RTAI.git
cd RTAI
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
```
### 2 — 配置 `.env`
```
# 离线 / 物理隔离(推荐用于 Enterprise 部署)
USE_LOCAL_LLM=true
LOCAL_LLM_MODEL=llama3
USE_LOCAL_OSINT=true
# 或云连接
OPENAI_API_KEY=sk-...
TAVILY_API_KEY=tvly-...
# 所有模式必需
TARGET_SCOPE=10.0.0.0/24
ENGAGEMENT_NAME=Internal_Q1
```
### 3 — 生成许可证
```
# Community(免费、离线、始终可用)
python scripts/generate_license.py
# → data/rtai.lic (Community tier)
# Enterprise(供应商签发 —— 联系您的 RTAI 供应商获取 signing secret)
python scripts/generate_license.py \
--tier enterprise \
--issued-to "ACME Corp" \
--expires 2027-12-31
# → data/rtai.lic (Enterprise tier —— 解锁 Ansible, Jira, HunterAgent, DMZ Relay)
```
许可证文件在启动时读取。如果 `data/rtai.lic` 缺失或无效,Community 模式将自动激活——流水线仅继续使用 Community 功能。
### 4 — 运行
```
# Standard 扫描
.venv/bin/python main.py --target 192.168.1.10 --engagement "Lab_Q1"
# 带 OS 检测的 Stealth SYN 扫描(需要 root)
sudo .venv/bin/python main.py --target 10.0.0.0/24 --engagement "Internal_Assessment"
```
报告将写入 `reports/__report.md` 并打印到标准输出。
### 5 — CISO Dashboard
```
.venv/bin/streamlit run dashboard.py
# → http://localhost:8501
```
### 6 — 安装 DevSecOps Pre-Push Hook
```
bash scripts/install_hooks.sh
```
安装三阶段 Pre-Push 关卡:密钥扫描 -> 禁止文件检查 -> Python Lint。
## 架构
```
graph TD
LIC["LicenseManager\nStartup Enforcement"] --> CLI
CLI["main.py\nCLI Entry Point"] --> SW
subgraph SW["SwarmController — Linear Pipeline"]
direction LR
SC[ScoutAgent\nRecon] --> AN[AnalystAgent\nRisk Scoring]
AN --> HU["HunterAgent ★\nC2 & Shellcode"]
HU --> ST[StrategistAgent\nAttack Planning]
ST --> FX[FixerAgent\nScript Generation]
FX --> RP[ReportAgent\nMarkdown Report]
end
FX -- "Safety Filter\n+ Approval Gate" --> GATE{Operator\nApproval}
GATE --> REMED[(remediation/)]
RP --> REPORTS[(reports/)]
REPORTS --> DASH[CISO Dashboard\nStreamlit]
DMZ["DMZ Relay Server ★\nFastAPI :8765"] -. "CVE delta pull\n(air-gapped sync)" .-> DB[(SQLite\nCVE DB)]
DB --> AN
style SW fill:#1A1D2E,color:#E0E0E0,stroke:#7C3AED
style GATE fill:#7C3AED,color:#fff,stroke:#7C3AED
```
## 环境变量
| 变量 | 描述 | 必需 |
|---|---|---|
| `OPENAI_API_KEY` | OpenAI API Key | 除非 `USE_LOCAL_LLM=true` |
| `TAVILY_API_KEY` | Tavily 搜索 Key | 除非 `USE_LOCAL_OSINT=true` |
| `TARGET_SCOPE` | 授权目标 — IP、主机名或 CIDR | 是 |
| `USE_LOCAL_LLM` | 使用 Ollama 替代 OpenAI (`true`/`false`) | 否 |
| `LOCAL_LLM_MODEL` | Ollama 模型名称 (默认: `llama3`) | 否 |
| `USE_LOCAL_OSINT` | 使用 SearchSploit + SQLite 替代 Tavily | 否 |
| `REMEDIATION_FORMAT` | `bash` (默认) 或 `ansible` ★ | 否 |
| `ENABLE_JIRA_INTEGRATION` | 为顶级发现自动创建 Jira Ticket ★ | 否 |
| `JIRA_SERVER_URL` | Jira 实例 URL ★ | 否 |
| `JIRA_USER_EMAIL` | Jira 账户邮箱 ★ | 否 |
| `JIRA_API_TOKEN` | Jira API Token ★ | 否 |
| `TELEGRAM_BOT_TOKEN` | 用于移动警报的 Telegram Bot Token | 否 |
| `TELEGRAM_CHAT_ID` | Telegram 接收者 Chat ID | 否 |
| `ENGAGEMENT_NAME` | 报告标签 (默认: `RTAI_Engagement`) | 否 |
| `RTAI_LICENSE_FILE` | 覆盖默认 `data/rtai.lic` 路径 | 否 |
★ 需要 Enterprise 许可证。
## 项目结构
```
RTAI/
├── agents/
│ ├── base_agent.py # Abstract base; LLM factory + action logging
│ ├── scout_agent.py # Scapy ARP sweep + Nmap service scan
│ ├── analyst_agent.py # CVE cross-reference + Dynamic Risk Scoring
│ ├── hunter_agent.py # Memory shellcode & C2 beacon detection ★
│ ├── strategist_agent.py # ATT&CK-mapped battle plan generation
│ ├── fixer_agent.py # Bash/Ansible generation + Safety Filter
│ ├── report_agent.py # Deterministic structured report assembly
│ └── swarm_controller.py # Linear pipeline orchestrator + Approval Gate
├── core/
│ ├── config.py # dotenv loader + feature flags
│ ├── state.py # Pydantic RTAIState (shared across all agents)
│ ├── license_manager.py # HMAC-SHA256 license engine + feature gating
│ └── orchestrator.py # LangGraph StateGraph (legacy pipeline)
├── integrations/
│ └── jira_client.py # Jira REST API v3 client (ADF ticket creation) ★
├── relay_server/
│ └── app.py # DMZ Relay FastAPI server (CVE delta sync) ★
├── tools/
│ ├── tool_base.py # Abstract BaseTool
│ ├── tool_registry.py # Singleton tool registry
│ └── nmap_wrapper.py # python-nmap → structured dict output
├── scripts/
│ ├── generate_license.py # Vendor-side license token generator
│ ├── install_hooks.sh # DevSecOps pre-push hook installer
│ ├── pre_push_check.sh # Pre-push: secrets / forbidden files / lint gate
│ └── sync_relay.py # Air-gapped CVE delta sync client ★
├── data/
│ └── rtai.lic # License file (gitignored — generate locally)
├── reports/ # Generated engagement reports
├── remediation/ # Generated fix scripts and Ansible playbooks
├── main.py # CLI entry point
├── dashboard.py # Streamlit CISO dashboard
├── requirements.txt
├── .env.example # Secret-free environment template
├── ROADMAP.md # Product roadmap
└── .gitignore
```
## DMZ 中继服务器 (隔离网络 CVE 同步)
对于完全隔离的部署,DMZ 中继服务器在连接互联网的暂存机器上维护持续更新的 CVE 源,并公开基于拉取的 REST API,隔离的 RTAI 节点可按需从中同步。
```
# 启动 relay(DMZ / 互联网连接机器)
cd relay_server
pip install -r requirements.txt
uvicorn app:app --host 0.0.0.0 --port 8765
# 将 CVE deltas 同步到物理隔离节点的本地 SQLite DB
python scripts/sync_relay.py --relay http://10.10.0.1:8765
# Delta 同步(仅同步自某日期以来更新的 CVE)
python scripts/sync_relay.py --relay http://10.10.0.1:8765 --since 2025-01-01
# Dry-run 预览
python scripts/sync_relay.py --relay http://10.10.0.1:8765 --dry-run
```
## 法律声明
此工具仅限用于您拥有或已获得明确书面授权测试的系统。未经授权的使用是非法且不道德的。作者对滥用不承担任何责任。
## 许可证
MIT — 参见 `LICENSE`。Enterprise 功能需要有效的 `data/rtai.lic` 许可证密钥。
标签:AI安全, AI风险缓解, Chat Copilot, CTI, CVE分析, Facebook API, Kubernetes, LangGraph, Nmap, PyRIT, Python, Scapy, TGT, Web报告查看器, 企业级安全, 内存威胁检测, 内网扫描, 多智能体系统, 威胁猎杀, 安全报告生成, 密码管理, 插件系统, 攻防演练, 无后门, 智能体集群, 杀伤链, 离线安全, 系统提示词, 自主紫队, 自动修复, 自动化渗透测试, 虚拟驱动器, 逆向工具