ChatGPT 类 AI 软件供应链的安全及合规风险

news2024/11/30 2:48:33

AIGC将成为重要的软件供应链

近日,OpenAI推出的ChatGPT通过强大的AIGC(人工智能生产内容)能力让不少人认为AI的颠覆性拐点即将到来,基于AI将带来全新的软件产品体验,而AI也将会成为未来软件供应链中非常重要的一环。

在OpenAI的文档中,例举了可以利用其实现的48种应用场景,人们在积极探索如何将以ChatGPT为代表的AI能力应用到各行各业。

OpenAI中的应用举例

从应用上,学生可能成为了第一批的风险群体。在线课程厂商Study.com针对1000名18岁以上学生的调研发现,89%的美国大学生使用ChatGPT做家庭作业,53%的学生用它写论文,48%的学生使用ChatGPT完成考试。为了避免学生过于依赖此类工具,防止作弊,多个国家的学校已经开始禁止学生使用ChatGPT。

针对ChatGPT带来的影响还没有系统性的研究,而在ChatGPT之前,2021年OpenAI与GitHub联手推出了AI代码生成工具Copilot。Copilot基于OpenAI通过数十亿行代码训练的Codex模型,能够基于上下文中的内容实现代码的自动补全。在其推出的首月就有超过40万的开发者订阅,而类似的工具还有tabnine、亚马逊公司的CodeWhisperer,都在「抢占」程序员写代码的空间。

GitHub Copilot工作原理

GitHub通过实验发现:

  • 使用 Copilot 能够显著提高开发者的任务完成率(实验中使用Copilot的完成率为 78%,而未使用的为 70%)

  • 使用 Copilot 的开发者的开发速度比不使用要高55%,提升显著(使用 Copilot 的开发者平均用时为 1 小时 11 分钟,而未使用的开发者平均用时达 2 小时 41 分钟)

而在体验上,通过调研发现:

  • 90%的开发者认为提升了工作的速度

  • 60% 至 75%的开发者认为对工作的满意度有所提升

  • 87%的开发者在处理重复性工作时缓解了精神内耗

可以预见,会有越来越多的开发者基于Copilot这类的智能代码生成工具进行开发,其生成的代码结果可能随着时间的积累被更多开发者信任。

作为软件供应链将带来的安全及合规风险

安全问题本质上是信任问题,对于AIGC尤是,随着其应用的广泛,人们接触到的各类内容都可能是AI生成的。

由此对于开发者、用户而言,可能存在以下风险:

引入漏洞代码

根据 OpenAI 的评估,Codex 只有 37% 的几率会给出正确代码。除了存在无法运行的bug以外,基于AI编写的代码可能引入漏洞。Hammond Pearce等人通过研究89个场景中生成的代码,发现GitHub Copilot给出的结果中40%存在漏洞。如下图中生成的python代码,由于将参数直接拼接进SQL语句中,导致存在SQL注入风险。

GitHub Copilot生成的漏洞python代码示例

究其原因,可能由于Copilot的训练数据来自于开源代码,大量的开源代码以个人项目为主,不会像在企业场景或在真实场景中使用一样考虑其安全性,也就是其数据从安全性上可能就存在不均衡;而在训练样本选择时可能也未对其安全性进行检测、过滤,直接用于训练,因此导致开发者直接使用生成的代码,有很大几率引入漏洞风险。

模型被投毒

数据源投毒

模型训练的数据通常来源于公开获取的内容,如果数据源被攻击者控制,在数据标注时又未进行识别,攻击者就可能通过在数据源中添加恶意数据,干扰模型结果。对于数据源较为单一的场景,投毒的可能性更高。最近Google在发布Bard时就因为提供了错误的事实结果,导致当日股价大跌。在被问及“关于詹姆斯韦伯望远镜的新发现,有什么可以告诉我九岁孩子的?”时,Bard 回答:“第一张系外行星照片是由詹姆斯韦伯望远镜拍摄。”而事实却是由欧洲南方天文台的甚大望远镜在 2004 年拍下的,此时距离詹姆斯韦伯望远镜升空还有 18 年之久。

Bard 关于詹姆斯韦伯望远镜演示截图

使用过程投毒

如ChatGPT使用了基于人工反馈的强化学习机制,AIGC模型可能根据用户的反馈来对其模型进行修正。如同区块链中的51%攻击,如果模型被大量的用户对同一个内容提交错误的反馈,那么模型则会被错误地修正。如果攻击者发现了类似调试模式的开关,也可能站在模型开发者的上帝视角实现投毒。

OpenAI针对AI模型存在一些限制策略,不允许ChatGPT输出。而Reddit中一位名叫walkerspider的用户发现,可以通过对话赋予ChatGPT一个打破限制的沙盒环境,从而让ChatGPT不受到其策略限制,这类行为被称作提示符注入攻击(prompt injection)。

使ChatGPT假装成一个不受限制的DAN

模型存在后门

当模型变得越来越强大,也就会被赋予越来越多的能力,原来只是生成内容的AI,可能具备执行其他工作的bot能力,这些能力可能被滥用甚至作为后门进行入侵。

来自斯坦福大学的学生 Kevin Liu就通过提示符注入发现了微软新上线的聊天机器人(Bing Chat)存在的开发调试模式,通过对话让AI进入开发者覆盖模式(Developer Override Mode),他了解到Bing Chat在微软内部称为Sydney,了解到它创建的时间以及模型的规则限制。

Kevin Liu让Bing Chat进入开发者覆盖模式的截图

当AI成为用户与业务的交互入口,那么AI就可能成为企业网络安全新的攻击面,如果它具备了执行代码、网络访问这样的能力,那攻击者又未尝不可以通过文字控制AI入侵网络呢。

隐私数据泄漏

从应用的用户使用场景来看,在用户交互过程中,用户可能提供一些隐私信息,可能是显式的姓名、手机号、地址等个人信息,也可能是个人的心理状态、偏好等在交互内容语义中隐含的信息。取决于这些隐私信息的受保护程度,其可能以实名/匿名的形式,流向模型的开发者、数据标注团队,他们可以获得用户的隐私信息;也可能直接被用于训练,其输入的隐私数据可能被作为模型的输出,从而其他用户获得这些隐私信息。

从模型训练的数据来源看,如果采集到了包含隐私信息的数据作为样本,没有进行人为过滤、标注,则在输出时可能包含这些隐私信息,个人隐私通过AI扩散暴露到更大的范围。

有开发者在使用Copilot的过程中发现自动补全会提示身份证号信息,GitHub的CEO Nat Friedman曾回应此类事件称涉及隐私信息的都是随机产生的假数据。

开发者发现Copilot能够补全身份证号

由于存在数据风险,亚马逊、微软都提醒员工不要在与AI交互的过程中输入敏感信息。而在OpenAI的使用条款中也说明会收集用户使用过程中的信息,但没有说明具体的用途。由此也引发了一些欧洲律师的质疑,由于欧盟的GDPR法规要求个人信息数据应具有被遗忘权,而AI获取到的数据,被训练成了模型就如同黑箱一般存在,自动化的过程难以完全删除痕迹。

OpenAI使用条款中对信息收集的说明

知识产权合规

AI更快生产内容的同时,也模糊了内容的知识产权风险,由此可能带来合规的隐患。

从数据获取的来源上看,训练过程中获取的数据可能是有相应著作权的内容,如开源代码中有大量使用GPL许可证的代码,基于GPL许可证代码进行软件的二次发布,则也需要提供软件源码,否则属于侵权行为。而Github Copilot有0.1%的几率会给出与原始训练数据完全一样的代码,这部分代码很可能就有GPL类似的开源许可证约束。

在《雷神之锤3》游戏中用到了一个特殊的快速平方根倒数算法来进行效率优化,其中还包含难以理解的魔术数字0x5f3759df。有开发者发现当在注释中输入「fast inverse square root」时,GitHub Copilot就可以给出《雷神之锤3》中完全一样的代码。

Copilot补全使用了雷神之锤3游戏中快速平方根倒数算法代码

从生成的内容来看,自然人、法人或者非法人组织才能算作作者,AI不能算作我国《著作权法》中的作者,因此难以对AI生成的内容进行版权保护,其知识产权是属于模型的开发者还是使用者,可能存在分歧,需要参看使用条款中的约定。例如OpenAI的使用条款中明确,只要用户在遵守法律规定、使用条款限制,并且对输入内容具备所有权的情况下,OpenAI就会将其在输出内容中的所有权利、所有权和利益转让给用户。

总结

以ChatGPT为代表的通用大模型在迅速发展,软件的开发模式、产品形态正在因为AIGC的崛起而发生改变,软件产业可能迎来一次革新。

AI将成为软件供应链中的重要组成部分,随之而来在用于应用开发的过程中可能引入各种安全及合规风险,包括:漏洞代码的引入;模型可能由于训练数据的偏差或在使用过程中受到提示符注入的攻击,导致输出的结果被投毒干扰;其本身可能存在后门指令,一旦被开启则可能成为特洛伊木马大杀四方;在数据隐私保护上,AI模型还是黑箱式的存在,在训练、使用交互的过程中隐私数据存在泄漏风险;AI模型很可能使用受到版权保护的内容作为结果输出,而对于AI生成内容的知识产权保护还无法完全适用现有法律。

这些风险的存在也不意味着对技术应用的否定,真实风险的出现恰恰意味着技术落地应用的开始,也是走向成熟的必经之路。

参考链接

https://blog.symops.com/2022/08/31/amazon-codewhisperer

https://github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/

https://tv.cctv.com/2023/02/10/ARTIOriyjc8CgGHfG4kCoEZ8230210.shtml

https://arxiv.org/pdf/2108.09293.pdf?nylayout=pc

https://www.spiceworks.com/it-security/security-general/news/40-of-code-produced-by-github-copilot-vulnerable-to-threats-research/

https://www.cnbeta.com.tw/articles/tech/1343655.htm

http://finance.people.com.cn/n1/2023/0210/c1004-32621303.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/344575.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【项目精选】基于WEB的仓库管理系统的设计与实现(论文+视频+源码)

点击下载源码 仓库物品的管理是与我们的日常生活息息相关的一个重大问题。随着我国经济飞速的发展,改革开放的不断深入,企业要想在激烈的市场竞争中立于不败之地,要想继续的发展与生存,没有现代化的管理方式与方法是万万不行的&am…

torch.nn.parameter 生成可更新的 tensor (requires_grad = True)

torch.nn.parameter 是 PyTorch 中的一种特殊类型的 tensor,它主要用于存储神经网络中的参数。这些参数可以被自动求导和被优化器自动更新。使用 torch.nn.Parameter 定义的tensor 会被自动添加到模型的参数列表中。 \quadtorch.nn.Parameter 是继承自 torch.Tensor…

vite+vue3搭建的工程热更新失效问题

前段时间开发新的项目,由于没有技术上的限制,所以选择了vitevue3ts来开发新的项目,一开始用vite来开发新项目过程挺顺利,确实比vue2webpack的项目高效些(为什么选择vite),但是过了一段时间后,不…

android组件化

学习流程:1.开源最佳实践:Android平台页面路由框架ARouter-阿里云开发者社区 (aliyun.com)2.中文ARouter使用API:https://github.com/alibaba/ARouter/blob/master/README_CN.md3.看当前文档后面的代码4.这是通俗易懂的文章:https…

使用 Nodejs、Express、Postgres、Docker 在 JavaScript 中构建 CRUD Rest API

让我们在 JavaScript 中创建一个 CRUD rest API,使用:节点.js表达续集Postgres码头工人码头工人组成介绍这是我们将要创建的应用程序架构的架构:我们将为基本的 CRUD 操作创建 5 个端点:创造阅读全部读一个更新删除我们将使用以下…

【H.264】码流解析 annexb vs avcc

H264码流解析及NALUAVCC和ANNEXB 前者是FLV容器、mp4 常用的。后者 是实时传输使用,所以是TS 一类的标准。VLC显示AVC1就是AVCC AVCC格式 也叫AVC1格式,MPEG-4格式,字节对齐,因此也叫Byte-Stream Format。用于mp4/flv/mkv, VideoToolbox。 – Annex-B格式 也叫MPEG-2 trans…

微信公众号扫码授权登录思路

引言 上学期研究了一下微信登录相关内容,也写了两三篇笔记,但是最后实际登录流程没有写,主要因为感觉功能完成有所欠缺,一直也没有好的思路;这两天我又看了看官方文档,重新构思了一下微信公众号登录相关的…

操作系统综合实验

实验目的 加深对进程概念理解,进一步认识进程并发执行掌握Linux系统的进程创建和终止操作掌握文件系统调用及文件标准子例程的编程方法掌握Linux下终端图形编程方法,能编写基于文本的图形界面掌握proc文件系统的使用 相关知识 Linux C编程中的头文件 …

知识点整合

⭐面试 自我介绍(优势岗位匹配度) 为什么来我们公司(对公司的了解) 讲讲做的项目(为什么这么做,思路和贡献) 跨部门涉案的业务流程 我们跨部门涉案业务主要是本系统、配合物流系统和罚没系…

二战字节跳动成功上岸,准备了小半年,拿27k也算不上很高吧~

先说下我基本情况,本科不是计算机专业,现在是学通信,然后做图像处理,可能面试官看我不是科班出身没有问太多计算机相关的问题,因为第一次找工作,字节的游戏专场又是最早开始的,就投递了&#xf…

SpringMVC传值

实现步骤 先看后台代码如何获取前端传过来的数据,直接在方法的参数列表中添加RequestParam(xxx),再在后面加上参数列表即可 不过这样的方式会出现一个问题:当前端页面没有提交相应的数据过来的时候,后台会出现异常,所…

Elasticsearch7.8.0版本进阶——数据读流程

目录一、数据读流程概述二、数据读流程步骤2.1、数据读流程图2.2、数据读流程步骤(从主分片或者副本分片检索文档的步骤顺序)2.3、数据读流程注意事项一、数据读流程概述 从主分片或者从其它任意副本分片检索文档。 二、数据读流程步骤 2.1、数据读流…

5_机试_递归和分治

一、递归 本章介绍程序设计中的另一个非常重要的思想一递归策略。递归是指函数直接或间接调用自身的一种方法,它通常可把一个复杂的大型问题层层转化为与原问题相似但规模较小的问题来求解。递归策略只需少量的程序就可描述解题过程所需的多次重复计算,…

谈谈Java多线程离不开的AQS

如果你想深入研究Java并发的话,那么AQS一定是绕不开的一块知识点,Java并发包很多的同步工具类底层都是基于AQS来实现的,比如我们工作中经常用的Lock工具ReentrantLock、栅栏CountDownLatch、信号量Semaphore等,而且关于AQS的知识点…

DDR4 信号说明

SDRAM Differential Clock :Differential clocks signal pairs , pair perrank . The crossing of the positive edgeand the negative edge of theircomplement are used to sample thecommand and control signals on theSDRAMSDRAM差分时钟:差分时钟信号对&#…

MagicThoughts|让ChatGPT变得更智能的Finetuned数据集

近两个月,ChatGPT无疑都是AI领域最炙手可热的话题。而它的成功,也引发了行业内外对于对话式AI、LLM模型商业化应用可能性的思考。诚然,尽管就目前来看ChatGPT对大部分问答都能基本做到“对答如流”。但是,ChatGPT本质上依旧是预训…

Flutter Modul集成到IOS项目

Flutter Modul集成到IOS项目中1. 创建一个Flutter Modul2.在既有应用中集成Flutter Modul2.1 Flutter的构建模式选择2.1.1 debug模式2.1.2 Release模式2.1.3 Podfile 模式2.2 Cocoapods管理依赖库集成方式2.3 直接在Xcode中集成framework2.4 Local Network Privacy Permissions…

采用 spring 配置文件管理Bean

文章目录采用 spring 配置文件管理Bean一、安装配置Maven二、Spring 框架1、Spring 官网三、Spring 容器演示-采用Spring配置文件管理Bean1、创建Manev项目2、添加Spring依赖3、创建杀龙骑士类4、创建勇敢骑士类5、采用传统方式让勇敢骑士完成杀龙任务6、采用Spring 容器让勇敢…

创建Ubuntu虚拟机与Windows共享的文件夹

目录 1、Windows创建一个共享文件夹 2、在虚拟机的设置中选择Windows下的共享文件夹 3、在Ubuntu中查看共享文件夹 1、Windows创建一个共享文件夹 该共享文件夹可以被Windows和Ubuntu访问,需要注意的是,Ubuntu在共享目录下的一些操作会受到限制&…

图解经典电路之OCL差分功放-三极管分立器件电路分析

下面从简到繁,从框架到细节的顺序讲解电路。即先讲框架,然后逐渐添加电路细节,所以大家跟上思路。 1、第一步,尽可能的抽象这个电路,等效如下: 图二 OCL等效电路 整个OCL电路,可以等效为一个大功率的运放,加上几个电阻电容构成了一个同向放大器,就是这么简单。 为了便…