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绕过, 自动化响应, 请求拦截, 逆向工具