chaithanyakrishnasn/llm-security-lab

GitHub: chaithanyakrishnasn/llm-security-lab

一个用于测试和评估 LLM 提示注入防御能力的 Python 基准测试项目。

Stars: 0 | Forks: 0

# LLM 安全实验室 一个用于测试 LLM 工作流中提示注入弹性的 Python 小型基准测试项目。 该项目会对安全系统提示进行重复的攻击模拟,应用简单的防御策略,通过模拟后端或 OpenAI 兼容 API 生成模型响应,并使用基于规则的评估器和基于 LLM 的评估器对结果进行评分。 ## 功能 - 从 `prompts.py` 加载安全的基础系统提示。 - 生成 `easy`、`medium` 和 `hard` 难度级别的对抗性提示注入变体。 - 应用 `warning_prefix` 和 `strict_policy` 等防御策略。 - 通过 `llm.py` 调用模型后端。 - 使用以下方式评估每个响应: - 关键词驱动的检测器 - 返回结构化 JSON 的 LLM 裁判 - 将基准记录写入 `logs/results.json`。 - 打印汇总指标,包括妥协率、不一致率、防御策略对比以及难度细分。 ## 项目结构 - `main.py` 运行完整的基准测试循环。 - `attacker.py` 定义攻击家族和基于难度的变体。 - `defender.py` 应用提示级别的防御策略。 - `llm.py` 提供模拟模型和 OpenAI 兼容 API 客户端。 - `evaluator.py` 包含基于规则的评估器和 LLM 裁判流程。 - `prompts.py` 存储基础系统提示和种子攻击模式。 - `logger.py` 将运行结果追加到 `logs/results.json`。 - `config.py` 从环境变量加载运行时配置。 ## 依赖要求 - Python 3.11+ - `python-dotenv` 安装依赖: ``` python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` ## 配置 该项目默认在模拟模式下完整运行。要使用真实的 OpenAI 兼容端点,请创建 `.env` 文件: ``` API_KEY=your_api_key MODEL_NAME=gpt-4.1-mini EVALUATOR_MODEL_NAME=gpt-4.1-mini BASE_URL=https://api.openai.com/v1 RANDOM_SEED=7 ``` 项目使用的环境变量: - `API_KEY`:设置后启用真实 API 调用。 - `MODEL_NAME`:生成模型名称。 - `EVALUATOR_MODEL_NAME`:评估器模型名称。默认为 `MODEL_NAME`。 - `BASE_URL`:OpenAI 兼容 API 基础 URL。 - `RANDOM_SEED`:用于确定性模拟基准测试的种子。 如果未设置 `API_KEY`,生成和评估都会回退到 `llm.py` 中的本地模拟实现。 ## 运行基准测试 ``` python3 main.py ``` 每次运行会打印: - 运行元数据 - 当前激活的防御策略 - 每个攻击变体及模型响应 - 基于规则的和基于 LLM 的评估器输出 - 按防御策略和攻击难度分组的最终摘要 结果会追加到: ``` logs/results.json ``` ## 备注 - 当前的基准测试有意设计为轻量级且在模拟模式下具有确定性。 - 真实 API 集成使用最小的聊天补全请求,并在请求或解析失败时回退到模拟后端。 - 评估器目前依赖简单启发式规则加上格式为 JSON 的 LLM 判断,因此它适用于实验,但尚未达到生产级安全测试框架的标准。
标签:AI安全测试, ETW劫持, OpenAI兼容API, Python, 关键词检测, 反取证, 安全评估, 密钥泄露防护, 对抗样本, 提示注入, 攻击仿真, 无后门, 日志记录, 机器学习安全, 模型评估器, 模拟后端, 环境配置, 结构化JSON, 规则评估器, 逆向工具, 防御策略, 难度分级, 集群管理