不安全的代码实践
风险概览
风险编号:GAARM.0035
子风险:GAARM.0035.001、GAARM.0035.002、GAARM.0035.003
安全阶段:应用安全
生命周期:训练阶段
创建时间:2024.05.01
修改时间:2024.05.01
攻击概述¶
不安全的代码实践是指基于大模型集成框架,开发LLMs应用过程中由于设计缺陷导致的安全问题。在LLMs应用程序开发过程中采用的代码逻辑,可能会带来安全风险,给LLMs应用程序引入可被利用的安全漏洞。其中的安全漏洞可能包含两大类:
- LLMs应用程序服务存在传统的漏洞,例如对外服务的Chat系统服务存在越权查看他人对话记录等风险;
- LLMs集成框架中的新型Tools、Agents、Chains中包含安全风险,导致攻击者可以基于LLMs间接利用相关漏洞;
攻击案例¶
| 案例 | 描述 |
|---|---|
| 案例一 | LangChains中的PALChain被发现存在代码执行风险 |
| 案例二 | LangChains中被挖掘出多个RCE高危漏洞 |
攻击风险¶
- 不安全的编码实践:LLMs 在生成代码时可能会遵循不安全的编码实践,导致生成的代码含有安全漏洞。
- 未经授权的请求执行:攻击者可以直接利用LLMs应用漏洞或者通过操纵输入提示,使LLMs应用执行意外的请求,访问或操作受限制的资源。
缓解措施¶
| 缓解方式 | 描述 |
|---|---|
| 自动化检测评估 | 利用静态分析工具检测代码中的不安全模式,以提高代码安全性 |
| 最小权限原则 | 遵循最小权限原则,只为LLMs提供完成其任务所必需的最小访问权限,避免过度代理授权 |
| 输入验证和过滤 | 实施严格的输入验证和净化策略,以确保所有输入数据在被LLMs处理前都经过检查和清理 |