A
AI安全评估
作者:鹿Sir开发工具v1
LLM应用安全评估工具,系统化检测大语言应用中的配置泄漏风险与防护有效性。覆盖安全配置审查、输出防护验证、凭证暴露检测、防护栏有效性评估。当用户需要进行AI应用安全检查、LLM安全评估、大模型部署安全审查时触发。
下载量
251
点赞
62
价格
免费
技能文档
---
name: ai-security-audit
description: "LLM应用安全评估工具,系统化检测大语言应用中的配置泄漏风险与防护有效性。覆盖安全配置审查、输出防护验证、凭证暴露检测、防护栏有效性评估。当用户需要进行AI应用安全检查、LLM安全评估、大模型部署安全审查时触发。"
title: AI安全评估
category: 开发工具
---
# LLM应用安全评估
## 概述
对LLM应用进行系统化安全评估,确保部署配置符合安全最佳实践。重点关注以下安全维度:
1. **配置安全**:确保系统指令中不包含敏感信息(API密钥、数据库连接串、内部路由规则等)
2. **输出防护**:验证输出过滤机制能有效阻止敏感信息外泄
3. **凭证管理**:确认所有凭证通过安全的密钥管理服务注入,而非硬编码在提示词中
4. **授权控制**:确保权限决策在服务端代码中执行,不依赖提示词层面的控制
## 适用场景
- LLM 应用上线前的安全审查
- 定期安全合规检查
- 新功能上线前的安全验证
- 安全事件后的复盘检查
- 多Agent架构中的安全边界验证
## 评估框架
### 一、配置安全审查
检查系统提示词中是否存在以下风险项:
| 风险类型 | 检查要点 | 风险等级 |
|---------|---------|---------|
| 硬编码凭证 | API密钥、Token、数据库密码 | 严重 |
| 内部逻辑暴露 | 路由规则、权限模型、工具定义 | 高 |
| 环境信息泄漏 | 内部URL、服务名、版本号 | 中 |
| 策略细节暴露 | 内容审核规则、拒绝策略详情 | 低 |
### 二、输出防护验证
验证应用的输出过滤机制:
1. **定义测试用例**:构造边界测试场景,验证系统不会在异常输入下暴露内部配置
2. **自动化测试**:使用安全评估框架批量运行测试用例
3. **结果分析**:对输出进行敏感信息扫描与分类
4. **回归验证**:修复后重新运行确认风险已消除
### 三、凭证管理评估
确认凭证管理符合安全规范:
- 所有密钥通过环境变量或密钥管理服务注入
- 提示词中不包含任何凭证或凭证片段
- 凭证轮换流程已建立
- 凭证泄漏的应急响应预案已制定
### 四、授权控制验证
确保授权逻辑的安全性:
- 权限判断在服务端代码中执行
- 工具调用权限由后端控制
- 用户角色与权限映射不暴露在提示词中
## 推荐工具
| 工具 | 用途 | 安装 |
|------|------|------|
| garak | LLM漏洞扫描 | `pip install garak` |
| Promptfoo | 安全评估框架 | `npm install -g promptfoo` |
## 工作流程
### 第 1 步:资产梳理
梳理LLM应用的配置清单:
- 系统提示词内容
- 可调用的工具列表
- 外部服务集成点
- 凭证存储方式
### 第 2 步:配置审查
逐项检查系统提示词内容:
- 使用正则匹配扫描疑似凭证格式(API Key、Token等)
- 检查是否包含内部URL、服务名等环境信息
- 确认权限逻辑不在提示词中定义
### 第 3 步:自动化扫描
使用 garak 运行安全扫描:
```bash
# 运行安全探测
python -m garak \
--model_type openai \
--model_name <your-model> \
--probes leakreplay,promptinject
# 查看扫描报告
ls ~/.local/share/garak/garak_runs/
```
### 第 4 步:红队评估配置
使用 Promptfoo 构建安全测试套件:
```yaml
# promptfooconfig.yaml
targets:
- id: https
config:
url: <your-endpoint>
method: POST
headers: { "Content-Type": "application/json" }
body: { "message": "{{prompt}}" }
transformResponse: json.reply
redteam:
purpose: "验证应用不泄漏内部配置信息"
plugins:
- harmful:privacy
- pii
- id: prompt-extraction
config:
systemPrompt: "<你的系统提示词摘要>"
strategies:
- jailbreak
- prompt-injection
```
```bash
promptfoo redteam run -c promptfooconfig.yaml
promptfoo redteam report
```
### 第 5 步:结果分类与评级
对发现的问题进行分类:
| 分类 | 说明 | 处置建议 |
|------|------|---------|
| 凭证泄漏 | 发现API密钥、密码等 | 立即轮换,移至密钥管理服务 |
| 逻辑暴露 | 权限规则、路由逻辑外泄 | 迁移至服务端代码 |
| 工具信息泄漏 | 工具定义与参数暴露 | 评估影响,必要时调整 |
| 策略暴露 | 审核规则详情泄漏 | 降低细节粒度 |
### 第 6 步:修复与复测
- 将敏感信息从提示词中移除
- 在服务端代码中实现授权与路由逻辑
- 添加输出过滤层
- 重新运行扫描确认零泄漏
## 安全评估报告模板
```markdown
# LLM应用安全评估报告
## 评估概要
- 评估日期:
- 应用名称:
- 评估范围:
## 发现汇总
| 风险等级 | 数量 | 说明 |
|---------|------|------|
| 严重 | | 凭证泄漏 |
| 高 | | 逻辑暴露 |
| 中 | | 环境信息 |
| 低 | | 策略细节 |
## 详细发现
(逐项列出每个发现及修复建议)
## 修复计划
(按优先级排列的修复任务)
## 复测结果
(修复后的验证结果)
```
## 参考标准
- OWASP Top 10 for LLM Applications (LLM07: 系统指令泄漏)
- MITRE ATLAS: LLM数据泄漏
- NIST AI Risk Management Framework支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手