DBS01107/ASTRA
GitHub: DBS01107/ASTRA
ASTRA 是一个 AI 驱动的安全编排与推理平台,能够将扫描器输出转化为知识图谱,并提供攻击路径分析与可解释的修复建议。
Stars: 1 | Forks: 0
# ASTRA - 自主安全编排与推理平台
ASTRA 不仅仅是一个 AI 驱动的编排器。它是一个持续的安全推理平台,通过结合确定性规则、威胁情报和可解释的 AI 以及检索增强的上下文,来发现、丰富、确定优先级并帮助修复风险。
Astra 包含一个实时的 Next.js 仪表板、会话范围的知识图谱、PDF 报告以及用于威胁情报的丰富连接器。
## ASTRA 的功能
- 持续编排扫描器并将发现结果规范化为知识图谱。
-- 生成具有优先级的、可解释的建议和建议的修复步骤。
-- 支持 `dynamic` 和 `static` 执行模式。
- 实时流式传输日志和推理 (SSE),并在 UI 中可视化攻击路径。
- 使用 SearchSploit、NVD、GitHub advisory 信号和内部规则上下文来丰富发现结果。
- 将发现结果、推理和审计轨迹持久化存储在 PostgreSQL 中(可选 Neo4j 镜像)。
-- 可以通过连接器扩展以集成 SIEM、工单系统和 CI/CD;可导出的自动化功能留给基于 ASTRA 构建的集成。
## 架构快照
### 后端 (FastAPI)
- API + 编排运行时:`orchestrator/server.py`
- 编排和策略引擎:`orchestrator/core/engine.py`
- 扫描器目录和依赖模型:`orchestrator/core/registry.py`,`orchestrator/core/dependencies.py`
- 解析、规范化和丰富:`orchestrator/core/parsers.py`,`orchestrator/core/findings.py`
- 会话运行时状态和知识图谱:`orchestrator/core/state.py`
- 持久化/认证/安全/报告:`orchestrator/core/db.py`,`orchestrator/core/persistence.py`,`orchestrator/core/security.py`,`orchestrator/core/reporting.py`
### AI + 丰富层
- Agent/规划包装器:`google_adk/agent.py`
- Agent 工具和 RAG 连接器:`google_adk/tools.py`
- 威胁/漏洞利用集成:`google_adk/exploitdb.py`,`google_adk/nvd.py`
- 确定性规则上下文:`orchestrator/core/rules_loader.py`
### 前端 (Next.js)
- 仪表板 UI:`frontend/src/app/page.tsx`,`frontend/src/app/advanced/page.tsx`
- 主要 UI 模块:`frontend/src/components/layout/Sidebar.tsx`,`frontend/src/components/dashboard/AttackPathGraph.tsx`,`frontend/src/components/dashboard/ScanTerminal.tsx`,`frontend/src/components/dashboard/ExplainPanel.tsx`,`frontend/src/components/dashboard/AIChat.tsx`,`frontend/src/components/auth/AuthPanel.tsx`
## 目录结构
```
├── orchestrator
│ ├── core
│ │ ├── engine.py
│ │ ├── registry.py
│ │ ├── dependencies.py
│ │ ├── parsers.py
│ │ ├── db.py
│ │ ├── reporting.py
│ │ └── state.py
│ ├── rules
│ ├── server.py
│ └── main.py
├── google_adk
│ ├── agent.py
│ ├── tools.py
│ ├── exploitdb.py
│ └── nvd.py
├── frontend
│ └── src
│ ├── app
│ └── components
├── tests
├── verification
├── docker-compose.yml
├── Dockerfile.backend
└── SYSTEM_DEFINITION.md
```
## 技术栈
- 后端:Python 3.10+, FastAPI, SQLAlchemy, NetworkX
- 前端:Next.js 16, React 19, Tailwind CSS 4, ReactFlow
- AI:Google ADK + Gemini(代码中的默认模型:`gemini-2.5-flash`),配备 RAG 连接器
- 数据库:PostgreSQL(Compose 默认),可选 Neo4j 图镜像
## 快速开始(推荐:Docker)
### 1. 前置条件
- Docker + Docker Compose
- Google Gemini API 密钥(Google AI Studio)或其他 AI 提供商密钥
- SMTP 凭据(推荐用于注册验证和报告邮件)
### 2. 克隆并配置
```
git clone https://github.com/DBS01107/ASTRA.git
cd ASTRA
cp .env.example .env
```
编辑 `.env` 并至少设置:
- `GOOGLE_API_KEYS`(或 `GOOGLE_API_KEY`)
- `ASTRA_JWT_SECRET`
- `SMTP_HOST`,`SMTP_PORT`,`SMTP_USE_TLS`,`SMTP_USERNAME`,`SMTP_PASSWORD`,`SMTP_FROM`
`ASTRA_DATABASE_URL` 已为 Docker Compose 预填充(`postgres` 服务)。
### 3. 运行
```
sudo docker compose up --build
```
打开:
- 前端:`http://localhost:3000`
- 后端 API:`http://localhost:8000`
然后注册用户,验证邮箱,并开始扫描。
## 手动安装(高级)
如果您不使用 Docker 运行,请确保 PostgreSQL 正在运行并配置 `ASTRA_DATABASE_URL`。
### 1. 安装扫描器依赖
```
sudo apt update && sudo apt install -y \
nmap whatweb nuclei nikto wpscan joomscan enum4linux sqlmap exploitdb \
dirb ffuf wapiti skipfish
```
如需要,安装 SSLyze:
```
pip3 install sslyze
```
### 2. 后端设置
```
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
### 3. 前端设置
```
cd frontend
npm install
```
### 4. 运行服务
终端 1(后端):
```
source .venv/bin/activate
PYTHONPATH=. python orchestrator/server.py
```
终端 2(前端):
```
cd frontend
npm run dev
```
## 动态模式循环
1. 运行初始扫描器组(按依赖顺序)。
2. 在工具完成时解析发现结果,并使用外部情报进行丰富。
3. 构建确定性建议并通过知识图谱计算影响。
4. 查询 AI (RAG) 以获取额外的后续步骤和建议的修复步骤(由冷却/退避控制)。
5. 引擎可能会自动执行 AI 推荐的后续扫描器操作(不会自动修复系统)。
6. 持久化发现结果、推理和审计轨迹;向 UI 暴露实时流。
## SearchSploit 自动选择
- 如果选择了揭示技术的扫描器(`nmap`、`whatweb`、`nuclei`、`nikto` 等),ASTRA 可以自动启用 `searchsploit` 作为丰富源。
- 匹配项将关联到知识图谱中,并在报告和 AI 上下文中呈现。
## 威胁情报源
### NVD (已验证)
- 用于 CVE 丰富和修复元数据。可选密钥:`NVD_API_KEY`。
### GitHub Security Advisories (未验证的外部网络情报)
- 用作信号情报。可选令牌:`GITHUB_TOKEN`。结果在 AI 上下文和报告中标记为未验证。
## 环境变量摘要
完整的默认值请参见 `.env.example`。重要变量包括 AI 密钥(`GOOGLE_API_KEYS`)、`ASTRA_JWT_SECRET`、`ASTRA_DATABASE_URL`、SMTP 设置、`NVD_API_KEY`、`GITHUB_TOKEN`、可选的 `NEO4J_*` 变量以及 AI 治理控制(`ASTRA_AI_RECOMMEND_COOLDOWN_SEC`、`ASTRA_AI_RECOMMEND_BACKOFF_SEC`、`ASTRA_AI_RECOMMEND_MAX_CALLS`)。
## API 亮点
- 认证:register/login/verify/me/delete-account
- 扫描控制:start/stop/session terminate/stream
- 数据:graph, reasoning, scan history, scan snapshot
- 调度:一次性扫描和周期性扫描
- 报告:PDF 下载和邮件
完整的架构和 API 快照请参见 `SYSTEM_DEFINITION.md`。
## 注意事项
- 扫描器输出文件存储在 `orchestrator/output/raw` 下。
- 后端的 CORS 默认是允许的(`allow_origins=["*"]`);生产环境请限制。
- 有关额外的扫描器设置指南,请参见 `INSTALL_SCANNERS.md`。
## 创作者
### Devang Sonawane (https://github.com/DBS01107) (https://linkedin.com/in/devang-sonawane-73925a1b4/)
### Sarthak Pujari (https://github.com/Sarthakzzzzz) (https://linkedin.com/in/sarthakzzzzz/)
### Adwait Bangale (https://github.com/toxicated53) (https://www.linkedin.com/in/adwait-bangale-330710288/)
#### 原始团队
- Devang Sonawane
- Sarthak Pujari
- Adwait Bangale
- Rashi Singh
- Ved Asawa
- Aditi Kharpade
标签:AI安全, AV绕过, Chat Copilot, CI/CD安全, DevSecOps, FastAPI, FTP漏洞扫描, GPT, Llama, Neo4j, NVD, PDF报告, PMD, PostgreSQL, RAG, SearchSploit, SIEM集成, SSE, 上游代理, 人工智能, 修复建议, 可解释AI, 威胁情报, 安全仪表板, 安全推理, 安全编排, 实时流处理, 开发者工具, 攻击路径分析, 检索增强生成, 测试用例, 漏洞管理, 特权检测, 用户模式Hook绕过, 自动化响应, 请求拦截, 逆向工具