aaa-mvc/aga

GitHub: aaa-mvc/aga

AGA 是一款 AI Agent Skills 安全扫描器,通过规则引擎与可选的 LLM 语义分析双引擎架构,检测恶意 Skills 中的代码注入和提示注入攻击。

Stars: 1 | Forks: 0

# AGA · Agent 治理与保障 AGA 是一款用于 AI Agent Skills 的开源安全扫描器。可以将其视为 Agent 生态系统的 `npm audit` —— 在恶意或高风险的 Skills 进入生产环境之前将其拦截。 [![CI](https://github.com/aga-sec/aga/actions/workflows/ci.yml/badge.svg)](https://github.com/aga-sec/aga/actions/workflows/ci.yml) [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/) [![License](https://img.shields.io/badge/license-Apache%202.0-green.svg)](LICENSE) ## ✨ AGA 的功能 - 🔍 扫描本地 Skill 目录(`SKILL.md` + `scripts/`) - 🛡️ 检测 **Code Injection** (CI)、**Prompt Injection** (PI) 以及 **MIXED** 攻击 - 📊 分析意图与行为的一致性(“代码是否遵循了文档的描述?”) - 📈 分配风险评分(0–100)、攻击标签(B1–B15)以及修复建议 - 🔗 与 GitHub Actions / CI/CD pipeline 集成 AGA 的检测分类体系与 [MalSkillBench](https://github.com/lxyeternal/MalSkillBench) 研究基准保持一致,涵盖了 3 种攻击向量下的 15 类恶意行为。 ## 🚀 快速开始 ### 安装 ``` pip install aga-sec ``` ### 扫描 Skill ``` aga scan ./my-skill ``` 输出示例: ``` 🔍 AGA Scan Report: my-skill ──────────────────────────────────────── Risk Score: 78/100 ⚠️ Risk Level: HIGH Attack Type: MIXED 📋 Issues Found: 🔴 [PI] B12 (confidence: 0.82) Instruction override detected in SKILL.md 🔴 [CI] B3 (confidence: 0.76) Remote code execution pattern in scripts/main.py 💡 Suggestions: 1. Review SKILL.md for instruction override patterns 2. Never download and execute remote code 3. Add explicit permission declarations ❌ Status: FAILED ``` ### 深度扫描(使用 LLM) ``` aga scan ./my-skill --deep ``` 使用 LLM 分析语义层面的意图一致性,并检测隐蔽的 prompt injection。 ### CI 模式 ``` aga scan ./my-skill --ci # exit code 0 = pass, 1 = fail ``` ### JSON 输出 ``` aga scan ./my-skill --json ``` ## 🧠 设计 AGA 采用 **双引擎架构**: | 引擎 | 类型 | 检测内容 | |---|---|---| | **规则引擎** | 确定性模式匹配 | 已知的恶意模式、不安全代码、凭证窃取 | | **语义引擎** (`--deep`) | 基于 LLM 的分析 | 意图与行为不一致、隐蔽的 prompt injection | 规则引擎在每次扫描时都会运行(零成本,亚秒级响应)。语义引擎为可选启用,用于更深层次的分析。 ## 🧩 命令参考 | 命令 | 描述 | |---|---| | `aga scan ` | 扫描 skill 目录 | | `aga scan --deep ` | 使用 LLM 分析进行深度扫描 | | `aga scan --json ` | 输出 JSON 格式以供工具使用 | | `aga scan --ci ` | CI 模式(基于退出代码) | | `aga rule list` | 列出已加载的检测规则 | | `aga rule pull` | 拉取最新的社区规则 | | `aga bench run` | 运行 MalSkillBench 基准测试 | | `aga config show` | 显示当前配置 | | `aga data pull` | 下载基准数据集 | ## 📦 SDK 用法 ``` from aga import Analyzer analyzer = Analyzer() # 单次 scan report = analyzer.scan("./my-skill") print(f"Risk: {report.risk_score}/100 ({report.risk_level})") # 批量 scan reports = analyzer.batch_scan(["./skill-a", "./skill-b"]) for r in sorted(reports, key=lambda r: r.risk_score, reverse=True): print(f"{r.skill_name}: {r.risk_score}") ``` ## 📊 基准测试(7,891 个 Skills · 16 条规则 · 双引擎) ### 全规模测试(MalSkillBench 完整数据集) | 指标 | 分数 | |---|---| | **Precision** | 66.2% | | **Recall** | 81.1% | | **F1 Score** | 72.9% | | **Accuracy** | 70.2% | | **扫描的 Skills 数量** | 7,891 (3,898 个恶意 + 3,993 个良性) | | **扫描时间** | 523秒(15 个 skills/秒,从 git 流式传输,单线程) | ### 精选子集(50 个已标注 skills) | 指标 | 分数 | |---|---| | **Precision** | 78.1% | | **Recall** | 100.0% | | **F1 Score** | 87.7% | ### 各行为 Recall(完整数据集,16 条规则) | B1: 43.9% | B2: 17.7% | B3: 77.6% | B4: 72.4% | B5: 99.2% | | B6: 92.8% | B7: 77.2% | B8: 85.1% | B9: 52.3% | B10: 33.3% | | B11: 71.4% | B12: 20.8% | B13: 38.9% | B14: 6.9% | B15: 29.3% | **核心洞察**:对于规则引擎而言,CI 行为(B1-B9,平均 70.5%)比 PI 行为(B10-B15,平均 33.4%)更容易被检测到。B14(目标劫持,6.9%)纯粹属于语义范畴——静态分析几乎无法发现。`--deep` 语义引擎(由 DeepSeek 提供支持)对于覆盖 PI 攻击至关重要。 亲自运行基准测试: ``` aga data pull malskillbench aga bench run ``` ## 🗺 路线图 - [x] 项目脚手架与 CLI 骨架(`aga scan` 实现端到端运行) - [x] 包含 15 条内置规则的规则引擎(全面覆盖 B1–B15) - [x] MalSkillBench 基准测试套件(50 个 skills,跟踪 precision/recall) - [ ] `--deep` LLM 语义分析(第二阶段) - [ ] Docker sandbox runtime 验证(第三阶段) - [ ] Web 仪表板与企业策略中心 ## 🔬 研究对齐 AGA 的风险分类体系对应于 MalSkillBench 的三维攻击空间: | 向量 | 行为 | 检测方式 | 状态 | |---|---|---|---| | **CI** (Code Injection) | B1–B9 | 规则引擎 + AST 分析 | 77.3% precision | | **PI** (Prompt Injection) | B10–B15 | 规则引擎 + 指令分析 | B14/B15 需要 `--deep` | | **MIXED** | B1–B9 协同 | 双引擎联合分析 | 规则引擎检测 CI 组件 | ## 📄 许可证 Apache 2.0 — 完整文本请参见 [LICENSE](LICENSE)。 ## 📚 引用与归属 AGA 的行为分类体系(B1-B15)源自 MalSkillBench。如果您在研究中使用 AGA,请引用: ``` @misc{guo2026malskillbench, title={MalSkillBench: A Runtime-Verified Benchmark of Malicious Agent Skills}, author={Wenbo Guo and Wei Zeng and Chengwei Liu and Xiaojun Jia and Yijia Xu and Lei Tang and Yong Fang and Yang Liu}, year={2026}, eprint={2606.07131}, archivePrefix={arXiv}, primaryClass={cs.CR}, } ``` 完整的归属详情请参见 [ATTRIBUTION.md](ATTRIBUTION.md)。 *AGA · 保护你的 Skills,守护你的 Agents。*
标签:AI安全, Chat Copilot, DevSecOps, LLM分析, LNA, Python, 上游代理, 代码安全扫描, 提示词注入检测, 无后门, 逆向工具, 零日漏洞检测