ck3938700-ship-it/anjian-agent
GitHub: ck3938700-ship-it/anjian-agent
本地优先、授权门禁驱动的 Web 安全评估代理,将多工具扫描结果整合为可追溯的脱敏证据并生成中文报告。
Stars: 0 | Forks: 0
# 安鉴台 AnJian Agent
`。
- **工具可用就运行,不可用就说明**:不会把超时、Device Guard 阻止或代理 Fake-IP 伪装成“已完成”。
- **结果不会自动升级成漏洞**:`suspected`、`informational`、`passed` 与人工确认的 finding 严格分开。
- **证据统一**:跨运行、Burp/HAR、PCAP、源码结果按稳定指纹去重并交叉印证。
- **数据留在本地**:默认存储在 `%USERPROFILE%\.anjian`,不依赖云端账号或在线 AI。
- **报告可长期积累**:输出 Markdown/HTML/Obsidian,保留 SHA-256 清单和复核记录。
## 工作方式
flowchart LR
U["用户 / Claude Code / 本地模型"] --> A["一次性精确目标授权"]
A --> G["本地范围门禁"]
G --> T["内置检查与外部工具"]
T --> E["脱敏证据与 SHA-256"]
E --> C["去重与交叉印证"]
C --> O["待复核观察"]
O --> H["人工确认"]
H --> R["Markdown / HTML / Obsidian 报告"]
模型无法通过 MCP 创建授权、扩大端口、允许内网或解锁主动工具。即使本地模型产生错误指令,Python 层仍会再次检查目标、端口、有效期、内网许可和工具级授权。
## 能力矩阵
| 通道 | 能力 | 关键限制 |
|---|---|---|
| 内置 baseline | DNS、HTTP(S)、TLS、响应头、Cookie | 低影响;不保存响应正文 |
| 外部 baseline | Nmap、ProjectDiscovery httpx | 仅明确端口;代理 Fake-IP 时安全跳过原始端口扫描 |
| 模板检查 | Nuclei | 受系统策略与终端工具授权约束 |
| 内容枚举 | FFUF | 有界字典、低速、单线程、SPA/soft-404/挑战页过滤 |
| 注入观察 | SQLMap | 只对已发现的同源 GET 参数做 detection-only 检查 |
| 被动资产 | subfinder、amass | 只有显式允许下级子域时运行 |
| Web 证据 | Burp XML、HAR | 删除正文、Cookie、Authorization 和令牌值 |
| 流量证据 | TShark/PCAP | 用户指定文件、只读分析、不导出载荷 |
| 源码证据 | 内置规则、Semgrep、Trivy、Gitleaks | 只扫描用户明确提供的本地目录 |
| 输出 | Markdown、HTML、Obsidian、浏览器 PDF | 自动观察需人工复核后才进入正式发现 |
## 5 分钟开始
### 1. 安装
需要 Windows 11、Python 3.11+ 和 PowerShell。在仓库目录执行:
powershell -ExecutionPolicy Bypass -File .\setup.ps1
或使用普通 Python 环境:
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .
### 2. 检查本机能力
anjian doctor
缺少外部工具不会阻止安装;运行时会安全降级并在报告中记录覆盖限制。
### 3. 为精确目标登记一次授权
anjian authorize-target "https://example.com"
根据提示亲自输入 `AUTHORIZE DEEP example.com`。默认端口为 80/443、有效期 90 天、不包含下级子域和私有网络。未登记或授权过期时,`quick-assess` 不会访问目标。
### 4. 一键评估
anjian quick-assess "https://example.com"
命令会返回评估 ID、阶段状态、观察摘要和 `report.md` 的本地路径。
## 接入 Claude Code
powershell -ExecutionPolicy Bypass -File .\claude-integration\install-claude.ps1
重启 Claude Code 后输入:
/anjian https://example.com
安装器会创建隔离运行环境、注册本地 stdio MCP Server,并安装 `/anjian` 命令与 Skill;不会读取或修改你的 API Key。完整说明见 [Claude Code 指南](docs/CLAUDE_AGENT_GUIDE.md)。
## 接入本地大模型
安鉴台 v0.5.0 提供无需模型工具调用能力的本地模型适配器:确定性 Python 核心先执行授权评估,再把脱敏结构化结果交给本地模型解释。小模型即使不会 function calling,也能稳定使用。
以 Ollama 为例:
ollama pull qwen2.5:7b
anjian-local-agent "评估 https://example.com" --model qwen2.5:7b
LM Studio、vLLM 或 llama.cpp 只需指定兼容地址:
anjian-local-agent "审计 https://example.com" `
--base-url http://127.0.0.1:1234/v1 `
--model local-model
如果模型服务不可用,适配器仍会保留确定性 JSON 结果,不会丢失已经完成的评估。详见 [本地大模型部署](docs/LOCAL_LLM.md)。
## 浏览器工作台
anjian seed-demo
anjian serve
浏览器打开 `http://127.0.0.1:8765`。工作台默认只监听本机回环地址,可维护项目、授权范围、人工发现、复测与正式报告。不要为了远程访问直接改成 `0.0.0.0`。
## 数据与隐私
- CLI、MCP 和本地模型数据:`%USERPROFILE%\.anjian`
- 浏览器工作台数据库:项目目录中的 `data/anjian.db`
- `.gitignore` 默认排除数据库、报告、HAR、PCAP、Burp XML、虚拟环境和 `.env`
- Web 证据只持久化必要的脱敏元数据;源代码秘密只保存哈希前缀
- 客户材料、授权文件和真实报告不应提交到公开 Git 仓库
备份与保留期检查:
anjian backup
anjian retention
## 当前边界
安鉴台适合授权的小型网站安全基线评估、证据整理和报告交付,不是“自动渗透万能平台”。它不能证明网站没有漏洞,也不能代替登录态业务逻辑测试、复杂授权测试、代码审计、云配置审计、移动端或内网横向评估。Cloudflare、代理、WAF 和 Windows 应用控制也可能限制外部工具覆盖,报告会如实列出这些缺口。
## 开发与验证
python -m pip install -e ".[dev]"
pytest
自动测试只访问测试进程拥有的 `127.0.0.1` 服务,不向公共互联网发送扫描请求。架构、安全边界与后续计划分别见:
- [架构说明](docs/ARCHITECTURE.md)
- [安全与滥用模型](docs/SECURITY_MODEL.md)
- [用户手册](docs/USER_GUIDE.md)
- [路线图](docs/ROADMAP.md)
- [贡献指南](CONTRIBUTING.md)
- [安全问题报告](SECURITY.md)
## 项目原则
1. 授权和范围控制优先于“能力更多”。
2. 自动化负责减少重复劳动,人类负责最终判断。
3. 任何失败、跳过和覆盖限制都必须出现在报告中。
4. 默认本地存储、最少数据、证据脱敏。
5. 新增网络能力必须先有滥用分析、范围约束与本地测试。
## License
[MIT](LICENSE) © 2026 AnJian Desk Contributors
如果安鉴台对你有帮助,欢迎 Star、提交问题或改进文档。请不要在公开 Issue 中粘贴真实目标、客户名称、授权文件、Cookie、Token 或未公开漏洞细节。
把“一个网址”变成可追溯、可复核的本地 Web 安全评估报告
Local-first · Authorization-gated · MCP-ready · Local-LLM friendly
标签:AI风险缓解, CISA项目, CTI, MCP, MISP, Web安全, 反取证, 安全评估, 实时处理, 密码管理, 本地优先, 本地大模型, 自动化报告, 蓝队分析, 逆向工具