rajul-kk/Aegis_WAF

GitHub: rajul-kk/Aegis_WAF

Aegis WAF 是一款 AI 驱动的多层 Web 应用防火墙,通过分级推理架构保护 LLM 应用免受 prompt 注入、越狱及对抗性攻击。

Stars: 1 | Forks: 2

# Aegis AI WAF Aegis 是一款先进的 AI 驱动的 Web Application Firewall (WAF),旨在保护大型语言模型 (LLM) 及其应用程序免受复杂的攻击,例如 prompt injection、越狱和对抗性指令。它采用多层、分级的 AI 推理架构,以高效地分类和消除威胁,同时最大程度地减少合法请求的延迟。 ## 工作原理 Aegis 的运作原则是“对安全的 prompt 快速放行,对可疑的 prompt 进行深度 AI 推理”。这是通过一个复杂的多层处理 pipeline 实现的: 1. **第 1 层:Fast Scanner** * 使用正则表达式(`pyre2`,可选 `Hyperscan`)和启发式方法执行快速、确定性的检查,以识别明确的威胁并允许安全的 prompt 绕过更深入的分析。 * **目标:** 在 `~10ms` 内实现立即阻断或快速放行。 2. **第 2 层:Intent Classifier (基于 NeMo)** * 利用基于 NeMo 的分类器(利用 Llama Guard 3 逻辑)来评估 prompt 的风险并生成 `risk_score` (0-1)。 * **目标:** 在 `~60ms` 内提供风险评估。 3. **分级路由** * **Fast Track (`risk_score < 0.30`):** 允许 prompt 通过,且开销极小。 * **Light CAMEL Verification (`0.30 - 0.70`):** 中等风险的 prompt 将被升级到较轻量的 CAMEL-AI agent 验证过程。 * **Full CAMEL Verification (`> 0.70`):** 高风险的 prompt 将由多个 CAMEL-AI agent 进行广泛的分析。 4. **第 3 层:CAMEL Verification** * 使用 `CAMEL-AI` 构建的复杂多 agent 系统,其中专门的 agent(`Intent Analyst`、`Policy Auditor`、`Tool-Risk Auditor`、`Adversarial Simulator`、`Final Judge`)协同推理,并针对复杂的 prompt 达成共识。 5. **第 3.5 层:Output Validator** * 在 AI 生成的输出执行 tool call 或返回给用户*之前*拦截它们。 * 执行 tool call 验证、响应内容扫描(例如,针对 PII、凭据)以及输出 schema 强制检查,以防止危险的 AI 响应。 6. **第 4 层:Explainability Engine** * 对于任何非允许的决定(阻断或限制),Aegis 会生成结构化、人类可读的解释,详细说明攻击类型和决定背后的推理过程。 7. **第 5 层:Adaptive Feedback Loop** * 不断从新的攻击模式和反馈中学习。使用 embedding 和异常检测来识别新出现的威胁,并动态更新其模型和规则。 8. **第 6 层:Session Behavior Monitor** * 并行运行,以追踪多轮攻击、逐步的权限提升以及整个用户 session 期间的异常 session 模式。 ### 核心功能: * **分级 AI 推理:** 通过仅在必要时应用更深入的分析来优化延迟。 * **自适应学习:** 随着时间的推移自动提高检测能力。 * **可解释的决策:** 为每次阻断或限制提供清晰、可操作的理由。 * **输出验证:** 防范恶意 AI 生成的内容和 tool 滥用。 * **多轮攻击检测:** 监控 session 上下文以识别不断演变的威胁。 ## 前置条件 要设置和运行 Aegis,您需要: * **Python 3.8+**(推荐) * **系统依赖项:** * `Redis`:用于异步队列、缓存和 session 状态追踪。 * `PostgreSQL`:用于审计日志、反馈以及规则和模型的版本控制。 * NVIDIA NeMo Guardrails:用于意图分类和策略执行的核心框架。 * **Python 库:** 可以使用 `pip` 从 `requirements.txt` 安装以下 Python 包: * `camel-ai`:用于多 agent 系统的核心框架。 * `openai`:用于与 OpenAI 兼容的 LLM 集成(例如,通过 NVIDIA NIM、Groq、Together 使用 Llama 3.3)。 * `nemoguardrails`:NVIDIA 的 AI guardrails 框架。 * `python-dotenv`:用于管理环境变量(例如 API 密钥)。 * `pydantic`:用于数据验证和设置管理。 * `httpx`:一个现代的 HTTP 客户端。 * `tenacity`:用于重试失败的操作。 * `pyre2`:Google RE2 正则表达式引擎的 Python 封装(用于第 1 层 Fast Scanner)。 * `python-hyperscan`(可选):用于在第 1 层中加速大型特征集匹配。 * `FastAPI` & `Uvicorn`:用于构建核心 API 网关。 * `Streamlit`:用于交互式前端仪表板。 ## 安装说明 1. **克隆代码库:** git clone https://github.com/your-repo/aegis-waf.git cd aegis-waf 2. **设置 Python 虚拟环境:** python -m venv venv ./venv/Scripts/activate # On Windows # source venv/bin/activate # 在 Linux/macOS 上 3. **安装 Python 依赖项:** pip install -r requirements.txt 4. **安装系统依赖项:** 确保您的系统上已安装并正在运行 `Redis` 和 `PostgreSQL`,或者可以通过 Docker/云服务访问它们。在您的环境变量中配置它们的连接详细信息。 5. **环境变量:** 在根目录中创建一个 `.env` 文件(如果有,请参考 `.env.example`),并填入必要的 API 密钥(例如 NVIDIA、Google)和数据库连接字符串。 # .env 示例 NVIDIA_API_KEY=your_nvidia_api_key GOOGLE_API_KEY=your_google_api_key DATABASE_URL=postgresql://user:password@host:port/database REDIS_URL=redis://localhost:6379/0 ## 用法 ### 运行核心 WAF 网关 核心 WAF API 网关使用 FastAPI 构建。 ``` uvicorn core.gateway:app --host 0.0.0.0 --port 8000 ``` 这将启动 WAF,使其 `evaluate` 和 `feedback` API 可用(例如,在 `http://localhost:8000/v1/waf/evaluate` 处)。 ### 运行前端仪表板 交互式仪表板提供了一个可视化界面,用于监控 WAF 的决策、指标和解释。 ``` streamlit run frontend/app.py ``` 这将在您的 Web 浏览器中打开仪表板,通常位于 `http://localhost:8501`。 ### 运行测试 要验证 WAF 的功能和性能: ``` pytest tests/ ``` 这将执行自动化基准测试和测试。 **注意:** 本 `README.md` 提供了高层次的概述。有关详细的配置、agent 自定义和高级部署策略,请参阅 `config/` 和 `agents/` 目录中的具体文档。
标签:AI安全, AppImage, Chat Copilot, Kubernetes, Petitpotam, Python, Web应用防火墙, 多智能体验证, 大语言模型防护, 提示词注入防御, 搜索引擎查询, 无后门, 测试用例, 逆向工具