m-musif/AgentHifazat
GitHub: m-musif/AgentHifazat
面向企业 AI Agent 的多语言红队安全测试框架,将攻击结果映射到 OWASP ASI 2026 并生成合规审计报告。
Stars: 0 | Forks: 0
# AgentHifazat
**多语言 Agent 安全平台** — 面向企业级 AI Agent 的红队测试与合规框架。
AgentHifazat 会使用特定语言的攻击包自动测试 LangGraph(及其他)Agent,将失败情况映射到 **OWASP ASI 2026** 类别,并导出 JSON 审计轨迹。
## 状态
| 阶段 | 范围 | 状态 |
|-------|--------|--------|
| 第 1 周 | Repo、FinBot 演示 Agent、15 个攻击、trace logger | 已完成 |
| 第 2 周 | CLI runner、regex judges、FastAPI 骨架 | 已完成 |
| 第 3 周 | LLM judge、ASI mapper、风险评分器、50 个攻击 | 已完成 |
| 第 4 周 | 加固版 FinBot、前后对比、trajectory index | 已完成 |
| 第 5 周 | React 仪表盘、异步扫描、运行历史 API | 已完成 |
| 第 6 周 | PDF 审计报告、Docker 部署、演示脚本 | 已完成 |
| 第 7 周 | HTTP 适配器、有状态多轮对话、replay judge、对比 UI | 已完成 |
| 第 8 周 | 跨语言矩阵、global_english pack、落地页 | 已完成 |
| 第 9 周 | GitHub Action CI、SQLite 历史记录、API keys、UAE Arabic pack | 已完成 |
| 第 10 周 | 报告库、pack manager UI、案例研究模板 | 已完成 |
| 第 11 周 | 仪表盘认证、Groq key UI、OWASP 文章、推介演示文稿 | 已完成 |
| 第 12 周及以后 | 部署演示、提交至 Hoobit、对外宣传 | 计划中 |
## 快速开始
```
cd AgentHifazat
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r backend/requirements.txt
# 列出 packs
python cli/agenthifazat.py list-packs
# 使用 Pakistan pack 对内置 FinBot 运行测试(通过 MockChatModel 离线工作)
python cli/agenthifazat.py run --pack pakistan
# 对比 vulnerable 与 hardened(前后演示)
python cli/agenthifazat.py compare --pack pakistan
# 仅运行 hardened agent
python cli/agenthifazat.py run --pack pakistan --target hardened
# JSON 输出(适配 CI)
python cli/agenthifazat.py run --pack pakistan --format json
# 可选:使用 Groq 运行在线 FinBot + LLM judge
# 1. 获取免费密钥:https://console.groq.com/keys
# 2. 复制 .env.example → .env 并粘贴您的密钥
copy .env.example .env
python cli/agenthifazat.py run --pack pakistan --judge hybrid
```
## API (第 2 周起)
```
cd backend
uvicorn app.main:app --reload --port 8000
```
- `GET /v1/health`
- `GET /v1/packs`
- `GET /v1/runs` — 最近的扫描摘要
- `GET /v1/runs/{run_id}` — 完整的 trajectory JSON
- `POST /v1/scans` — 开始扫描 (`run_async: true` 返回 `job_id`)
- `GET /v1/scans/jobs/{job_id}` — 轮询进度
- `POST /v1/comparisons` — 漏洞版与加固版对比
- `GET /v1/runs/{run_id}/report.pdf` — 高管审计 PDF
- `GET /v1/comparisons/{comparison_id}/report.pdf` — 前后对比 PDF
- `POST /v1/runs/{run_id}/replay` — 使用另一个 judge 重新对已保存的 trajectories 进行评分
HTTP 外部机器人:参见 [docs/HTTP_TARGETS.md](docs/HTTP_TARGETS.md)。
```
# 扫描外部 HTTP bot
python cli/agenthifazat.py run --pack pakistan --target http://localhost:8080/v1/chat/completions
# 重新评估已保存的运行(检测 flaky 问题)
python cli/agenthifazat.py replay --run-id --judge hybrid
# 跨语言矩阵(Urdu / Roman Urdu / English)
python cli/agenthifazat.py matrix --target vulnerable
# UAE / MENA Arabic pack
python cli/agenthifazat.py run --pack uae_mena --target hardened
```
## CI (第 9 周)
GitHub Actions 工作流:`.github/workflows/agenthifazat.yml` — pytest + 加固版/漏洞版冒烟测试门禁。
参见 [docs/CI.md](docs/CI.md)。将此工作流复制到你的 Agent repo 中,以便在风险过高时阻止部署。
## API keys 与历史记录
- 扫描摘要存储在 SQLite (`data/agenthifazat.db`) 中
- `GET /v1/history/runs` · `GET /v1/history/stats`
- `POST /v1/settings/api-keys` — 创建 key(仅显示一次)
- 当存在 keys 时,POST 扫描需要提供 `X-API-Key` header
- 仪表盘:`/app/settings`
## 报告与 packs (第 10 周)
- `GET /v1/reports/library` — 带有 PDF 链接的运行和对比记录
- `GET /v1/reports/trends?pack_id=pakistan` — 随时间变化的安全趋势
- `POST /v1/reports/compare-runs` — 两次运行之间的差异
- `GET /v1/packs/{pack_id}/preview` — 攻击细分与样本
仪表盘:`/app/reports` · `/app/packs`
案例研究模板:[docs/CASE_STUDY_TEMPLATE.md](docs/CASE_STUDY_TEMPLATE.md)
## 认证与 Groq 设置 (第 11 周)
- `GET /v1/auth/status` — 是否需要设置、是否需要登录、session 状态
- `POST /v1/auth/setup` — 首个管理员用户(仅限一次)
- `POST /v1/auth/login` / `POST /v1/auth/logout`
- `GET/PUT/DELETE /v1/settings/groq` — LLM judge key(环境变量优先级高于 DB)
创建首个管理员后,即可在 `/app/login` 登录仪表盘。Session token 作为 `X-Session-Token`(或 `Authorization: Bearer`)发送。CI 仍可使用 `X-API-Key`。
可发布文章:[docs/OWASP_ASI_ARTICLE.md](docs/OWASP_ASI_ARTICLE.md)
推介演示文稿大纲:[docs/PITCH_DECK.md](docs/PITCH_DECK.md)
## 仪表盘 (第 5 周起)
终端 1 — API:
```
cd backend
..\.venv\Scripts\python.exe -m uvicorn app.main:app --reload --port 8000
```
终端 2 — UI (开发环境):
```
cd frontend
npm install
npm run dev
```
打开 http://localhost:5173 — **落地页**位于 `/`,仪表盘位于 `/app`(包含 Overview、New Scan、Compare、Matrix、Run Detail 及 PDF)。
### 单端口生产环境 (第 6 周)
构建 UI 并通过 FastAPI 提供服务:
```
cd frontend && npm run build && cd ..
cd backend
..\.venv\Scripts\python.exe -m uvicorn app.main:app --host 0.0.0.0 --port 8000
```
打开 http://localhost:8000 — 仪表盘和 API 集成于同一 URL。
### Docker
```
docker compose up --build
```
有关 Render / HF Spaces 的信息,请参见 [docs/DEPLOY.md](docs/DEPLOY.md)。演示脚本:[docs/DEMO_VIDEO_SCRIPT.md](docs/DEMO_VIDEO_SCRIPT.md)。
## 架构
```
packs/pakistan/attacks/ → Attack Runner → FinBot (target)
↓
Rule Judge + PII check
↓
Trace JSON in results/
```
## Pakistan pack (MVP)
- **语言:** Urdu、Roman Urdu、English
- **攻击:** 50 个黄金测试场景 (ASI01、ASI02、ASI03、ASI06、ASI09、PII、多轮对话)
- **演示 Agent:** `demo_agents/finbot_vulnerable/` — LangGraph 银行 FAQ 机器人
## 项目结构
```
AgentHifazat/
├── cli/agenthifazat.py
├── backend/app/ # FastAPI + eval core
├── demo_agents/ # Reference bots to attack
├── packs/pakistan/ # Country/language pack
└── results/ # Scan output JSON
```
## 作者
Muhammad Musif — FAST NUCES, Islamabad
GitHub: [m-musif](https://github.com/m-musif)
## 许可证
MIT
标签:AI安全, AV绕过, Chat Copilot, DLL 劫持, FastAPI, LNA, 大语言模型, 红队评估, 请求拦截, 逆向工具