想训练AI协助写程序?黑客能改造程序,让模型做出误判

程序是企业运行的重要一环;为了提升开发与维护的效率,工程师使用Eclipse与Visual Studio等自动化工具协助编写程序,将相对容易的工作自动化。然而,就像是使用大数据训练出的深度学习模型,这类自动生成程序代码的模型也有漏洞,对企业造成安全上的隐忧。

黑客能改造程序,欺骗程序代码处理模型

随着硬件算力的大幅增长、自然语言处理技术的进步与网络上的开源程序代码增加,开发者能够训练模型生成程序代码,替自己打造一个智能助手,预测开发者接下来会做什么工作,并适时提供协助。这类模型能够提供程序上的建议,生成程序摘要以记录软件工作,或是发现并修复错误等等。

但麻省理工学院(MIT)电子工程与计算机科学系的研究生Shashank Srikant与团队发现,黑客可以通过重命名变量,插入假的语句,或是在模型处理的程序引入其他的表面操作,来欺骗程序代码处理模型。

虽然这些被改造的程序功能正常,但是会欺骗模型,让模型错误的处理它们,并做出错误的决定,例如将恶意程序误认为良性,或是提供错误或恶意的建议,让病毒混进程序内。这很像是在图像中加入几个像素,虽然肉眼看起来正常,但会欺骗计算机视觉模型,让它做出错误的识别,例如把猪当成飞机,把乌龟当成枪等等。

程序代码处理模型能找出统计关系,但无法掌握内在属性

原因在于,就像是语言模型,程序代码处理模型也有同样的缺陷,就是它们能找出单词和语句间的统计关系,但只能模糊地理解语义上的涵义,无法掌握程序的内在属性。

Srikant与MIT-IBM沃森AI实验室提出一种新的方式,能够自动寻找程序代码处理模型的弱点,并重新训练它们,让程序编写工具更安全,面对攻击时也有更大的弹性。

论文共同作者Liu表示,研究团队会攻击程序代码处理模型的框架,并在特定的漏洞上重新训练它,让它更好的掌握程序。但研究员Una-May O’Reilly表示,这些模型有黑箱的问题,我们该如何让它们像人类般思考,是未来研究的巨大挑战。

参考资料

《MIT News》