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应用防火墙, 多智能体验证, 大语言模型防护, 提示词注入防御, 搜索引擎查询, 无后门, 测试用例, 逆向工具