Ojasveer955/Agentic-Cloud-Security-and-Remediation-Framework

GitHub: Ojasveer955/Agentic-Cloud-Security-and-Remediation-Framework

基于 LangGraph 和 Neo4j 的 AWS 云环境攻击图谱分析框架,利用多智能体 AI 自主发现多跳攻击路径并推理修复方案。

Stars: 1 | Forks: 0

# ACSRF (Agentic Cloud Security & Remediation Framework) ![GitHub Stars](https://img.shields.io/github/stars/Ojasveer955/Agentic-Cloud-Security-and-Remediation-Framework?style=social) ![GitHub Forks](https://img.shields.io/github/forks/Ojasveer955/Agentic-Cloud-Security-and-Remediation-Framework?style=social) ![GitHub Watchers](https://img.shields.io/github/watchers/Ojasveer955/Agentic-Cloud-Security-and-Remediation-Framework?style=social) ![License](https://img.shields.io/github/license/Ojasveer955/Agentic-Cloud-Security-and-Remediation-Framework) ![Python](https://img.shields.io/badge/python-3.10+-blue) ![Neo4j](https://img.shields.io/badge/graph-Neo4j-green) ![LangGraph](https://img.shields.io/badge/orchestration-LangGraph-purple) **状态:积极开发中 —— 图优先 (Graph-First) Agentic 架构** ACSRF 是一个先进的 Multi-agent AI 框架,旨在自主调查 AWS 环境,发现复杂的攻击路径,并(最终)编写基础设施代码来修复它们。 ## 🏗️ 架构 ``` flowchart LR subgraph SRC["Data Source"] AWS["AWS Account
IAM · EC2 · SG"] end subgraph PIPE["LangGraph Orchestrator"] direction TB ENUM["Enumerate
Boto3"] INGEST["Ingest
MERGE into Neo4j"] SUMMARY["Graph Summary
Token Gate"] ENUM --> INGEST --> SUMMARY end subgraph LOOP["Investigation Loop
max 10 turns"] direction TB CORR["Correlation Agent
Multi-turn Cypher"] IAMA["IAM PrivEsc Agent
Policy Analysis"] CORR -- "IAM_CHECK" --> IAMA IAMA -- "Result" --> CORR end subgraph DECISION["Decision"] direction TB HITL["HITL Gate
Human Approval"] ESC["Human Escalation
Loop Limit"] REM["Remediation Agent
Terraform — Stub"] end subgraph EXT["External Services"] direction TB NEO4J[("Neo4j
Graph DB")] LLMB["LLM
Gemini / Ollama"] end subgraph OUT["Outputs"] direction TB AUDIT["Audit Log
orchestrator_audit.json"] VIZ["Graph Viz
graph_viz.html"] ENUMRAW["Enum Data
aws_enum_raw.json
aws_enum_normalized.json"] CKPT[("Checkpointer
orchestrator.db")] end AWS --> ENUM SUMMARY --> CORR CORR -- "QUERY" --> NEO4J NEO4J -- "Rows" --> CORR INGEST --> NEO4J CORR --> LLMB IAMA --> LLMB CORR -- "DONE" --> HITL CORR -- "Limit" --> ESC HITL -- "Approved" --> REM HITL -- "Denied" --> AUDIT ESC --> AUDIT REM --> AUDIT CORR -.-> VIZ ``` ## 愿景与理念 ACSRF 并不能完全归入现有的任何行业类别。它不是 CSPM 工具 —— 那些工具基于静态检查清单运行,而非推理。它不是 CIEM 工具 —— 那些工具孤立地分析权限,而不是分析它们如何链接在一起。它也不是传统的 CNAPP —— 那些是供应商平台,而非自主 Agent。 ACSRF 与众不同:它是一个**推理系统**,将云环境视为一张图,并提出问题 —— *鉴于所有配置错误的情况,攻击者能做的最糟糕的事情是什么,我们又该如何阻止它?* 在攻击性安全领域有一句名言:*“防御者用列表思考,攻击者用图思考。”* ACSRF 正是基于这一前提构建的。在安全工具领域中,最接近的参照物是 **BloodHound** —— 但 BloodHound 映射的是本地环境中的 Active Directory 攻击路径,而 ACSRF 针对的是云环境,并且包含一个 AI 层,不仅能可视化图表,还能主动在图上进行推理。 它首先作为一个 **Blue Team** 工具运行。其核心任务是在攻击路径被完全利用*之前*发现它们。在“假定已被攻破”的模型下运行,它不问 *攻击者是如何进入的?* —— 而是问 *鉴于他们已经进来了,他们能触达什么,又能走多远?* 它自主运行这项调查,因此单个安全工程师就可以揭示红队演练可能需要数天或数周才能绘制出的爆炸半径。 正如网络安全领域的大多数事物一样,这本质上具有双重用途。为防御者揭示爆炸半径的同一个推理引擎,同样可以轻易用于攻击性的环境测绘 —— 这使得 ACSRF 成为一款强大的**自动化红队侦察工具**。 ## 架构详情 ACSRF 使用复杂的 **LangGraph** Multi-agent 状态机,由 **Neo4j** 图数据库支持,能够利用开源模型(通过 **Ollama**)完全在本地运行,从而避免 API 成本、合规性和数据隐私问题。 ### 工作原理: 1. **幂等摄取 Agent (Python/Boto3)**:使用只读密钥提取 AWS 配置(EC2, IAM, S3, Security Groups),并将其映射到健壮的、仅包含 `MERGE` 的 Neo4j Cypher 协议中。 2. **NL2Cypher Agent**:一个 AI 翻译层,允许安全分析师用通俗易懂的英语查询其云环境(例如,*“显示所有公开暴露的 EC2 实例”*),将自然语言转换为有效的、只读的 Neo4j Cypher 查询,而无需具备数据库知识。 3. **关联 Agent (Correlation Agent)**:一个多轮推理 AI,充当自动化安全分析师。它迭代式地搜寻复杂的多跳攻击路径(例如,*公开的 EC2 -> 担任角色 -> 修改特权策略*),根据先前的数据库响应动态调整搜索方向,并在长达 10 个调查周期内保持上下文。 4. **IAM 权限提升 Agent**:一个专门的子 Agent。当关联 Agent 发现可疑的 IAM 策略时,它会将原始 JSON 文档路由到此 Agent,由该 Agent 解析 AWS 策略逻辑以确定是否可能发生权限提升。 5. **LangGraph 编排器 (Orchestrator)**:管理 Agent 之间的状态、内存、防循环保护和路由。 6. **LLM 后端抽象**:可插拔的 AI 后端,原生支持 Google Gemini,或支持本地部署(例如,通过 Ollama 在消费级 GPU 上运行 `Qwen2.5-Coder:32b` 或 `Llama3.3:70b`)。 ## 项目状态 ### 当前功能 - [x] **图数据管道**:将 AWS 云状态可靠地转换为 Neo4j 节点和边。 - [x] **LangGraph 编排**:健壮的状态机映射、内存路由和循环限制保护。 - [x] **多轮关联引擎**:AI 能够独立导航图表,生成有效的 Cypher,并根据数据库响应进行调整。 - [x] **IAM 评估引擎**:专门用于深度 JSON 策略分析的 LLM 路由。 - [x] **本地 AI 支持**:集成 Ollama 以实现零成本、私有化推理。 - [x] **自然语言查询**:基准 `NL2Cypher` 能力。 - [x] **交互式可视化**:自动生成独立的 HTML(`vis.js`)攻击路径图。 ### 待办事项 (路线图) - [ ] **修复 Agent (Remediation Agent - Phase 5)**:一个 AI Agent,用于分析发现的攻击路径并生成感知漂移的 Terraform (HCL) 配置以修补漏洞。 - [ ] **人机交互 (HITL) 关卡**:交互式 CLI/UI,提示安全分析师在开始生成修复方案之前批准/拒绝 AI 的发现。 - [ ] **确定性 IAM 评估**:集成确定性算法或图查询(而非纯粹依赖 LLM),以数学方式保证并验证特定的 IAM 权限提升向量。 - [ ] **扩展 AWS 资源覆盖范围**:摄取并建模 S3, Lambda, VPCs, RDS 和 CloudFront。 - [ ] **Web 仪表板**:用于图谱探索和修复审批的 React/Next.js 接口。 - [ ] **系统自安全与加固**:实施内部安全控制(RBAC, 审计日志)并针对 **OWASP Top 10 for LLM Applications**(例如,提示注入、数据投毒、过度代理)进行加固。 ## ⚙️ 快速入门 ### 前置条件 - Python 3.10+ - Neo4j(推荐:在 `localhost:7687` 上运行 Docker `neo4j:5`) - 一个填入了 `NEO4J` 凭证、`AWS` 只读凭证以及您首选的 `LLM_BACKEND` 配置(`gemini` 或 `ollama`)的 `.env` 文件(从 `.env.example` 复制)。 ### 安装 **选项 A —— 可编辑安装(推荐)** 在 virtualenv 内部全局注册 `acsrf` CLI 命令。无需设置 `PYTHONPATH`。 ``` python -m venv .venv ./.venv/Scripts/activate pip install -e . ``` **选项 B —— (普通的)Pip 安装** 使用 `requirements.txt`。您必须在每次会话前将 `PYTHONPATH` 设置为 `src`。 ``` python -m venv .venv ./.venv/Scripts/activate pip install -r requirements.txt # 设置 PYTHONPATH (每个新终端会话都需要) $env:PYTHONPATH = "src" ``` ### 用法 #### 默认 —— 运行完整管道 ``` acsrf ``` 运行完整的编排管道:枚举 AWS 环境,构建 Neo4j 图,并启动 Correlation + IAM Agent 以自主搜寻攻击路径。使用默认的安全问题。 ``` acsrf --question "What EC2 instances can assume a privileged role?" ``` 覆盖调查的起始问题/假设。 ``` acsrf --resume ``` 通过线程 ID(在每次运行开始时打印)恢复先前暂停的管道运行。 #### 子命令(单独的 Agent 控制) ``` acsrf init-db ``` 初始化 Neo4j 唯一性约束。首次使用系统前运行一次。 ``` acsrf enum-real ``` 仅运行 AWS 枚举 Agent(无推理)。获取 EC2, IAM, Security Group 数据并将其摄取到图中。 ``` acsrf run-queries ``` 对图执行预定义的 Cypher 查询包并打印结果。 ``` acsrf query-nl "Show me all publicly exposed EC2 instances" acsrf query-nl "Which roles can escalate privileges?" --no-summary ``` 使用通俗的英语问题运行 NL2Cypher Agent。`--no-summary` 跳过 LLM 摘要步骤并返回原始查询结果。 ``` acsrf orchestrate --question "..." --resume ``` 显式调用完整的编排器管道。接受与默认命令相同的标志。 ## 📄 输出 - **原始 AWS 数据**:`artifacts/aws_enum_raw.json` —— 未处理的 Boto3 API 响应。 - **规范化 AWS 数据**:`artifacts/aws_enum_normalized.json` —— 经过清理和结构化,用于图摄取。 - **图可视化**:`artifacts/graph_viz.html` —— 交互式 `vis.js` 攻击路径图,在识别出路径时自动生成。 - **编排器审计日志**:`artifacts/orchestrator_audit.json` —— 每个 Agent 节点、路由决策和 LLM 状态转换的完整透明跟踪。 - **检查点数据库**:`artifacts/orchestrator.db` —— LangGraph 状态的 SQLite 持久化,支持跨会话 `--resume`。 ## 许可证 MIT 许可证。有关更多详细信息,请参阅 [LICENSE](LICENSE)。
标签:AI风险缓解, AWS安全, Boto3, ECS, IAM提权, LangGraph, Neo4j, PE 加载器, PyRIT, Python, Terraform, 假设已被攻破, 图神经网络, 多智能体系统, 威胁建模, 攻击图分析, 攻击路径分析, 无后门, 智能体安全, 网络安全审计, 自主修复, 自动化渗透测试, 足迹分析, 逆向工具