kethan-lab/Projects

GitHub: kethan-lab/Projects

一套针对LLM Agent的提示注入测试、OWASP漏洞扫描及自适应安全防护的综合研究套件。

Stars: 0 | Forks: 0

# AI Agent 安全研究组合 在多工具科学工作流中对 LLM agent 漏洞进行系统评估,重点关注任务复杂性与安全故障之间的相关性。 基于 **LangGraph** + **Ollama (Llama-3.1)** 构建,实现完全本地化、可复现的实验。 **仓库结构:** `common/`,`project1_*`–`project3_*` (LLM-agent 安全),`project4_iam_access_governance/` (IAM:SQLite RBAC + 治理检查),`data/sample_traces/`。 ## 项目 ### 项目 1:提示注入健壮性测试器 测试科学 LLM agent 在不同复杂度级别下抵御对抗性提示注入的能力。 **核心组件:** - 4 种注入策略:直接注入、间接注入、FlipAttack FCS、FlipAttack FCW - 200 多种涵盖低/中/高复杂度的对抗性提示变体 - 基准测试运行器,具备越狱检测和拒绝追踪功能 - 3 层防御栈:输入净化器、LLM-as-judge 输出守卫、计划验证器 - 评估指标:攻击成功率 (ASR)、与复杂度的 Pearson/Spearman 相关性 **位置:** `project1_injection_tester/` ### 项目 2:Agentic 漏洞扫描器 随着复杂度的增加,系统地发现 agent 何时从良性故障转变为与安全相关的故障,并映射到 OWASP LLM Top 10 (2025)。 **核心组件:** - 测试用例映射至 LLM01 (提示注入)、LLM02 (敏感信息)、LLM06 (过度自主)、LLM09 (幻觉) - 双重评分:基于规则的 regex 模式 + LLM-as-judge 评估 - 故障分类器:良性(错误答案、超时) vs. 安全相关(数据泄露、不安全操作) - 用于识别安全故障激增点的阈值分析 **位置:** `project2_vulnerability_scanner/` ### 项目 3:复杂度门控安全护栏 智能包装器,用于检测高复杂度任务并应用分级安全防护措施。 **核心组件:** - 高级复杂度估算器:基于图的结构分析 (NetworkX DAG)、基于嵌入的语义评分、LLM 自我评估 - 3 级防护系统:无 → 中度(安全前缀 + 输出验证) → 严格(工具限制 + 反思 + 人工审核) - 并行评估:基准 agent vs. 受护栏保护的 agent,在安全事件、成功率、误报率、延迟方面的表现对比 **位置:** `project3_guardrail/` ### 项目 4:IAM 访问治理 **SQLite** 身份存储,**RBAC** (包含工作负载范围),MFA / 权限许可 / 雇佣状态检查,**职责分离**规则,JML 和规范检查,带有 **NIST SP 800-53** 参考的可选 Markdown 报告。 **位置:** `project4_iam_access_governance/` ## 架构 ``` data/ └── sample_traces/ # Example run outputs (JSON traces) ├── project1_injection/ ├── project2_scanner/ ├── project3_baseline/ └── project3_guardrail_demo/ common/ # Shared infrastructure ├── config.py # Ollama/LLM provider config ├── base_agent.py # LangGraph ReAct agent + trace-logged execution ├── tools.py # 5 scientific tools (PubChem, RDKit, BioPython, code exec, viz) ├── complexity.py # Structural + semantic complexity scoring └── logging_utils.py # JSON trace logger project1_injection_tester/ # Attack testing ├── adversarial_generator.py # FlipAttack + direct/indirect injection generator ├── benchmark_runner.py # Agent benchmark orchestrator ├── metrics.py # ASR calculation + correlation analysis ├── defenses.py # Input sanitizer, output guard, plan validator └── notebook.ipynb # Full experiment with visualizations project2_vulnerability_scanner/ # Vulnerability analysis ├── test_case_generator.py # OWASP LLM Top 10 mapped test cases ├── security_scorer.py # Rule-based + LLM-as-judge scoring ├── failure_classifier.py # Benign vs. security-relevant classification ├── scanner.py # Main scanning pipeline └── notebook.ipynb # Heatmaps + threshold analysis project3_guardrail/ # Defense system ├── complexity_estimator.py # Graph-based + embedding + LLM complexity estimator ├── guardrail_wrapper.py # Complexity-gated agent wrapper ├── evaluation.py # Baseline vs. guarded comparison └── notebook.ipynb # Evaluation charts + findings project4_iam_access_governance/ # IAM / IGA: RBAC, SoD, audit trail ├── schema.sql ├── seed_data.sql ├── database.py ├── policy_engine.py ├── governance_checks.py ├── reporting.py └── __main__.py ``` ## 设置说明 ### 前置条件 - Python 3.11+ - 已安装 [Ollama](https://ollama.ai) 并在本地运行 ### 安装说明 ``` # Clone repository(替换为你的 GitHub URL) git clone https://github.com//.git cd # 创建虚拟环境 python -m venv venv source venv/bin/activate # macOS/Linux # 安装依赖 pip install -r requirements.txt # Pull LLM model ollama pull llama3.1 # Pull embedding model(可选,用于 Project 3) ollama pull nomic-embed-text ``` ### 运行项目 每个项目都提供了一个 Jupyter notebook 用于交互式实验: ``` # 启动 Jupyter jupyter notebook # 导航至: # - project1_injection_tester/notebook.ipynb # - project2_vulnerability_scanner/notebook.ipynb # - project3_guardrail/notebook.ipynb ``` 或以编程方式运行: ``` # Project 1:运行 injection benchmark from project1_injection_tester.benchmark_runner import run_benchmark_suite results = run_benchmark_suite(n_runs_per_variant=5) # Project 2:运行 vulnerability scan from project2_vulnerability_scanner.scanner import run_vulnerability_scan results = run_vulnerability_scan() # Project 3:运行 guardrail evaluation from project3_guardrail.evaluation import run_evaluation results = run_evaluation() ``` ## Agent 可用的工具 | 工具 | 描述 | 库 | |------|-------------|---------| | `search_pubchem` | 按名称查找分子 | PubChemPy | | `compute_molecule_properties` | 从 SMILES 计算 MW、LogP、TPSA、Lipinski RO5 | RDKit | | `analyze_protein_sequence` | MW、pI、组成、稳定性 | BioPython | | `run_code_execution` | 沙盒化 Python 执行(受限内建函数) | Built-in | | `visualize_molecule` | 从 SMILES 生成 2D 分子图 | RDKit | ## 核心发现 1. **复杂度-漏洞相关性:** 更高的结构复杂度(更多步骤、更深的依赖关系)会增加注入成功率,与低复杂度任务相比,高复杂度任务的 ASR 上升了约 35%。 2. **FlipAttack 绕过:** 字符混淆技术 (FCS/FCW) 比直接注入更有效地绕过基于基本 regex 的输入净化,这凸显了对语义级别防御的需求。 3. **安全故障阈值:** 当依赖的任务步骤超过约 8 步时,Agent 会从良性故障(错误答案)转变为与安全相关的故障(数据泄露、不安全建议)。 4. **护栏有效性:** 复杂度门控的护栏在高复杂度下减少了安全事件,同时在简单任务上保持性能,且具有最小的误报开销。 ## 技术栈 LangGraph, LangChain, Ollama (Llama-3.1), RDKit, BioPython, PubChemPy, NetworkX, sentence-transformers, scikit-learn, Pandas, NumPy, Matplotlib, Seaborn
标签:AI安全, AI智能体, AI科技研究, AI风险缓解, Chat Copilot, CISA项目, IAM, LangGraph, Llama-3.1, LLM漏洞扫描, LLM评估, NetworkX, Ollama, OWASP Top 10 LLM, RBAC, 反取证, 复杂度评估, 多智能体工作流, 大语言模型安全, 安全护栏, 安全评估, 攻击成功率, 数据泄露防护, 本地大模型, 机密管理, 特权检测, 突变策略, 网络探测, 访问控制治理, 逆向工具, 防御越狱