-
LLM Agent主程序: 大模型接口, 如DeepSeek, GPT等模型 -
Toolkit: 预定义的其他查询接口, 如天气查询,机票查询等接口 -
User Request: 用户请求, 用户的问题输入和提示词模板等 -
Memory Module: 记忆模块, 记忆工具调用的结果 -
Planning Module: 这个模块会整合提示词和用户问题以及划分子问题等
你是一个大模型助手, 你可以借助如下的工具帮助你完成用户提出的问题:
工具列表:
tools = [
{
"name": "get_weather",
"description": "查询指定地点未来N天的天气预报,需提供ISO格式日期",
"parameters": {
"location": {"type": "string", "description": "城市名称,如'北京'"},
"days": {"type": "integer", "description": "预报天数(1-3)"}
}
},
{
"name": "currency_converter",
"description": "实时货币汇率换算",
"parameters": {
"amount": {"type": "number"},
"from_curr": {"type": "string", "format": "ISO 4217"},
"to_curr": {"type": "string", "format": "ISO 4217"}
}
}
]
QUESTION
{question}
ANSWER FORMAT
{"Answer": "<Fill>"}
-
LLM Tool未授权访问: 如框架可能存在一些调试Tool未删除, 导致用户可以访问 -
LLM Tool权限控制不当: 例如,用于读取数据的插件使用的身份连接到数据库服务器,该身份不仅具有 SELECT 权限, 还具有UPDATE、INSERT 和 DELETE权限 -
LLM Tool实现存在安全问题: 这类问题比较多, 可能的情况: a. SSRF: LLM程序存在网页抓取插件并且该插件未校验URL地址 b. SQL注入: 用户自定义查询插件, 可根据ID等参数查询数据, 该参数未严格校验 c. 越权: 同样也可能出现在用户查询数据插件, 未严格校验可能导致查询他人数据 d. 命令注入: LLM程序支持执行简单命令, 或者将参数拼接到Shell指令中执行 -
LLM危险操作未进行二次确认, 如执行用户注销, 密码修改等功能, 未二次确认可能受到XSS+CSRF等组合拳攻击
https://github.com/labring/FastGPT/blob/main/packages/service/common/string/cheerio.ts#L70
原文始发于微信公众号(烫烫烫烫安全):LLM Agent安全风险
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论