AIGC 虽好,但不要“贪杯”哦!
大家好,这里是安势信息。
小故事
【小开】与【小 A】本是一对兄弟,小开年纪大小 A 几岁。小开是个好哥哥,早早的担负起哥哥的责任,有什么好的都给了小 A,比如什么 GAN 算法、Stable Diffusion,CLIP 模型、Transformer 等等,小 A 从懵懂无知的孩童被小开拉扯成了一位优秀的青年。时代更迭,时光流逝,是金子总会发光,经过多年努力,优秀的小 A 终于被众人所注意,其内容生成能力被大家趋之若鹜,成为人人追捧的对象,小 A 顿时声名大噪。但是许多人都忘了那个将小 A 培养成才的小开,终有一天小开再也无法忍受人们的冷眼与忽视,它终于......
后面的故事会如何,就由读者您自行想象吧。
以上这则小故事仅为笔者的小脑洞,也算是个引发大家思考的噱头,开源软件即【小开】,AIGC 即【小 A】,纵贯 AIGC 发展,离不开各类开源技术与模型的加入。某种意义上,没有开源,也就没有今天蓬勃发展的 AIGC,他们互相依赖,也互相促进。但是正如故事情节中的一样,我们往往在享受权力的同时,忘记承担对应的义务,正如同我们在使用 AIGC 的同时,忘记承担起进行开源治理的责任。
水能载舟,开源能够进一步促进 AI 相关技术的发展,然而一旦忽略开源带来的风险,水亦能覆舟。
一. AIGC 代码的两大风险
AIGC 代码所带来的风主要是:
安全风险
合规风险
我们从两个场景来进一步展示。
01
ChatGPT 生成代码风险-引入高危安全漏洞
图 1:AIGC 引入具有高危漏洞的开源组件(来源 ChatGPT)
在图中将字符串解析为 json 的场景下,引用了一个名为 fastjson 的开源组件,而这个开源组件包含了一个 cvss 高达 9.8 分的漏洞,而后 ChatGPT 给出的代码中漏洞为可达的状态。
由此不难看出,AIGC 的代码中,会频繁调用很多的开源组件,极其对应的方法,函数等。而当下的 AIGC 技术显然无法对引用的相关开源组件进行安全性上的审核与管控,所以如果放任各类带有高危漏洞的开源组件进入我们的代码库,那么类似于 log4j 的安全事故将会层出不穷,对我们造成巨大损失。
02
Github Copilot 生成代码风险-引入合规问题代码
图 2 来源:GitHub Copilot
上图为 AIGC 的某个场景,使用者想要用 C 语言实现 KMP 算法,而后 AI 为其提供了对应的示例,然后,示例中的代码大部分都来源于 GitHub 上的这个开源项目:github.com/sukritishah15/DS-Algo-Point/commit/c7cfd62e
该项目的代码与 Copilot 生成的代码对比如下图:
图 3 来源:diffchecker
我们可以很容易地意识到,这两段代码系出同源,但是 Copilot 不会呈现代码的软件许可证给出信息,如果企业从这种途径引入了开源代码但未遵循相应的许可协议,将会引发很严重的法律和商誉风险。
合规问题往往是众多开发人员容易忽略的问题,因为合规问题往往跨越了开发人员的认知边界,但是由合规问题而为企业带来的各类法律诉讼却是实实在在的存在的。而 AIGC 生成的代码,会高频的克隆开源代码,与人工代码一样会引入合规风险。
二. AIGC 代码风险规避方案
01 使用具有代码风险审查能力的 AIGC 工具
AIGC 工具有产出代码的能力,但是缺乏对于产出代码的安全或合规问题的审查能力,所以,随着 AI 技术的进一步发展,我们可以优化 AIGC 工具中模型的泛化能力使其拥有对生成代码的安全合规风险的检测能力,抑或是在生成代码后对代码存在的风险予以告知,由使用者自行去对相关风险进行考量。但是当下普遍的 AIGC 工具显然还无法到达这样的高度,但是这的确是一个值得我们探索的方向。
02 建立相关团队对 AIGC 代码进行管控
AIGC 产出的代码基本都是开源代码,当下部分企业已经建立了以开源治理为主要目标的部门,比如 OSPO(开源办公室)。所以如果企业能建立团队对 AIGC 代码进行审查管控,建立对应的准入准出机制,就可以大大降低 AIGC 代码的风险。但也不得不承认,使用 AIGC 代码的核心目标是为了提高开发效率,所以对于”人效“本就紧张的一些中小型企业来说,为了管控风险而建立一个团队去管控 AIGC 代码反而会有些”本末倒置“了,所以这需要根据企业对 AIGC 代码的应用程度,企业规模等方面考虑。
03 使用专业有效的 SCA 工具对 AIGC 代码进行检测
AIGC 的安全风险与合规风险问题,本质上依然是开源代码的问题,所以想最大程度的规避这类问题,自然需要对应的开源代码代码扫描工具,也就是我们常说的 SCA 工具。
这样的 SCA 工具需要具备以下特性:
强大的数据库及数据处理能力
深层次的程序分析能力
语义敏感
正如古言:千里马常有,伯乐不常有。
SCA 工具常有,而好的 SCA 工具不常有。
某种意义上,使用 SCA 工具可能是对 AIGC 代码进行管控的较优解,因为优秀的 SCA 工具可以双向的解决 AIGC 代码的安全风险和合规风险,可谓是一举两得,而这也要求企业一定要选择一款适合于自身情况的 SCA 工具。
安势作为一家专注于软件供应链安全的企业,通过不计成本的开发投入以及多家头部企业的技术积累,在【AIGC everywhere】的大背景下,大幅度提升了 SCA 基础能力的同时也将会带给用户企业级 AIGC 治理能力。清源 SCA 将于近期发布新版本,新特性新 UI,更有强大的漏洞可达能力为代码安全保驾护航,欢迎您多多关注,申请试用!
04 定期对代码库进行审计
AIGC 虽然已经在全球普遍应用,但也有不少企业代码库中 AIGC 代码的量占比很少,但是少量的 AIGC 代码并不等同于风险小。基于这种情况企业向第三方采购代码审计服务,从而及时了解自身代码库的代码情况,根据审计结果对代码库进行优化和调整从而规避相关风险。
三. 狂欢与隐患
自从 ChatGPT 问世以来,AI 相关的技术与软件,瞬间成为炙手可热的东西,诚然,经过多年的技术积累,AI 技术终于迎来了“井喷式”发展,AI 生产各类图像媒体、AI 生成各类文字讯息,AI 生成代码。AIGC 一夜间彷佛成了所有科技企业必不可少的“铭牌”,笔者有时候甚至有种“没有点 AI 能力都不好意思说自己是科技行业的”的错觉。
不可否认 AIGC 确实能够为软件开发带来效率的提升,相信未来 AIGC 技术将会成为软件开发中不可或缺的一环,放眼全球,在欧美地区 Github Copilot 甚至已经成为欧美程序员标配,这足以体现 AIGC 的强大生命力。但使用 AIGC,却将 AIGC 代码安全问题抛诸脑后的企业比比皆是,这不得不引起我们的重视。
AI 毁灭人类的科幻题材电影于我们并不陌生,那仅仅是娱乐消遣的谈资,但是,忽视开源治理而引发的各类网络安全问题却时时刻刻发生在我们身边。正如文章开头的小故事,在 AI 的耀眼光芒下,我们也不应该忽视 AIGC 的代码安全问题。
版权声明: 本文为 InfoQ 作者【安势信息】的原创文章。
原文链接:【http://xie.infoq.cn/article/fb615cc55276f13275a1216ac】。文章转载请联系作者。
评论