AIGC的狂欢,代码安全的隐患。

 

大家好,这里是安势信息。

 

小故事一则:

【小开】与【小A】本是一对兄弟,小开年纪大小A几岁。小开是个好哥哥,早早的担负起哥哥的责任,有什么好的都给了小A,比如什么GAN算法、Stable Diffusion,CLIP模型、Transformer等等,小A从懵懂无知的孩童被小开拉扯成了一位优秀的青年。时代更迭,时光流逝,是金子总会发光,经过多年努力,优秀的小A终于被众人所注意,其内容生成能力被大家趋之若鹜,成为人人追捧的对象,小A顿时声名大噪。但是许多人都忘了那个将小A培养成才的小开,终有一天小开再也无法别人的冷眼与忽视,它终于......

 

后面的故事会如何,就由读者您自行先想象吧。

 

以上这则小故事仅为笔者的小脑洞,也算是个引发大家思考的噱头,开源软件即【小开】,AIGC即【小A】,纵贯AIGC发展,离不开各类开源技术与模型的加入。某种意义上,没有开源,也就没有今天蓬勃发展的AIGC,他们互相依赖,也互相促进。但是正如故事情节中的一样,我们往往在享受权力的同时,忘记承担对应的义务,正如同我们在使用AIGC的同时,忘记承担起进行开源治理的责任。

 

水能载舟,开源能够进一步促进AI相关技术的发展,然而一旦忽略开源带来的风险,水亦能覆舟。

 

一.AIGC代码的两大风险

AIGC代码所带来的风主要是:

l                      安全风险

l                      合规风险

我们从两个场景来进一步展示。

 

场景一:ChatGPT生成代码风险-引入高危安全漏洞

img1

img2

2:AIGC引入具有高危漏洞的开源组件 (图片来源:ChatGPT)

在图中将字符串解析为json的场景下,引用了fastjson这一开源组件,这个开源组件包含了一个CVSS高达9.8分的漏洞,而后ChatGPT给出的代码中漏洞为可达的状态。

在图中将字符串解析为json的场景下,引用了一个名为fastjson的开源组件,而这个开源组件包含了一个cvss高达9.8分的漏洞,而后ChatGPT给出的代码中漏洞为可达的状态。

 

由此不难看出,AIGC的代码中,会频繁调用很多的开源组件,极其对应的方法,函数等。而当下的AIGC技术显然无法对引用的相关开源组件进行安全性上的审核与管控,所以如果放任各类带有高危漏洞的开源组件进入我们的代码库,那么类似于log4j的安全事故将会层出不穷,对我们造成巨大损失。

 

 

场景二:Github Copilot生成代码风险-引入带有合规问题代码

img3

图片来源:Github Copilot

上图为AIGC的某个场景,使用者想要用C语言实现KMP算法,而后AI为其提供了对应的示例,然后,示例中的代码大部分都来源于GitHub上的这个开源项目:

github.com/sukritishah15/DS-Algo-Point/commit/c7cfd62e

该开源项目的代码与Copilot生成的代码对比如下图:

开源代码合规2

来源:diffchecker

我们可以很容易地意识到,这两段代码系出同源,但是Copilot不会对呈现代码的软件许可证给出信息,如果企业从这种途径引入了开源代码但未遵循相应的许可协议,将会引发很严重的法律和商誉风险。

合规问题往往是众多开发人员容易忽略的问题,因为合规问题往往跨越了开发人员的认知边界,但是由合规问题而为企业带来的各类法律诉讼却是实实在在的存在的。而AIGC生成的代码,会高频的克隆开源代码,与人工代码一样会引入合规风险。

 

2.       AIGC代码风险规避的方案

 

1.       使用具有代码风险审查能力的AIGC工具

AIGC工具有产出代码的能力,但是缺乏对于产出代码的安全或合规问题的审查能力,所以,随着AI技术的进一步发展,我们可以提高AIGC工具中模型的泛化能力使其拥有对生成代码的安全合规风险的检测能力,抑或是在生成代码后对代码存在的风险予以告知,由使用者自行去对相关风险进行考量。但是当下普遍的AIGC工具显然还无法到达这样的高度,但是这的确是一个值得我们探索的方向。

 

2.       建立相关团队对AIGC代码进行管控

AIGC产出的代码基本都是开源代码,当下部分企业已经建立了以开源治理为主要目标的部门,比如OSPO(开源办公室)。所以如果企业能建立团队对AIGC代码进行审查管控,建立对应的准入准出机制,就可以大大降低AIGC代码的风险。但也不得不承认,使用AIGC代码的核心目标是为了提高开发效率,所以对于”人效“本就紧张的一些中小型企业来说,为了管控风险而建立一个团队去管控AIGC代码反而会有些”本末倒置“了,所以这需要根据企业对AIGC代码的应用程度,企业规模等方面考虑。

 

3.       使用专业有效的SCA工具对AIGC代码进行检测

AIGC的安全风险与合规风险问题,本质上依然是开源代码的问题,所以想最大程度的规避这类问题,自然需要对应的开源代码代码扫描工具,也就是我们常说的SCA工具。

这样的SCA工具需要具备以下特性:

Ø                      强大的数据库及数据处理能力

Ø                      深层次的程序分析能力

Ø                      语义敏感

正如古言:千里马常有,伯乐不常有。

SCA工具常有,而好的SCA工具不常有。

某种意义上,使用SCA工具可能是对AIGC代码进行管控的较优解,因为优秀的SCA工具可以双向的解决AIGC代码的安全风险和合规风险,可谓是一举两得,而这也要求企业一定要选择一款适合于自身情况的SCA工具。

 

安势作为一家专注于软件供应链安全的企业,通过不计成本的开发投入以及多家头部企业的技术积累,在【AIGC everywhere】的大背景下,大幅度提升了SCA基础能力的同时也将会带给用户企业级AIGC治理能力。清源SCA将于近期发布新版本,新特性新UI,更有强大的漏洞可达能力为代码安全保驾护航,欢迎您多多关注,申请试用!

 

 

4.       定期对代码库进行审计

AIGC虽然已经在全球普遍应用,但也有不少企业代码库中AIGC代码的量占比很少,但是少量的AIGC代码并不等同于风险小。基于这种情况企业向第三方采购代码审计服务,从而及时了解自身代码库的代码情况,根据审计结果对代码库进行优化和调整从而规避相关风险。

 

三.狂欢与隐患

 

自从ChatGPT问世以来,AI相关的技术与软件,瞬间成为炙手可热的东西,诚然,经过多年的技术积累,AI技术终于迎来了“井喷式”发展,AI生产各类图像媒体、AI生成各类文字讯息,AI生成代码。AIGC一夜间彷佛成了所有科技企业必不可少的“铭牌”,笔者有时候甚至有种“没有点AI能力都不好意思说自己是科技行业的”的错觉。

 

不可否认AIGC确实能够为软件开发带来效率的提升,相信未来AIGC技术将会成为软件开发中不可或缺的一环,放眼全球,在欧美地区Github Copilot甚至已经成为欧美程序员标配,这足以体现AIGC的强大生命力。但使用AIGC,却将AIGC代码安全问题抛诸脑后的企业比比皆是,这不得不引起我们的重视。

 

AI毁灭人类的科幻题材电影于我们并不陌生,那仅仅是娱乐消遣的谈资,但是,忽视开源治理而引发的各类网络安全问题却时时刻刻发生在我们身边。正如文章开头的小故事,在AI的耀眼光芒下,我们也不应该忽视AIGC的代码安全问题。

 

-End-

 

 

行业资讯

专业的开源安全与合规治理供应商