范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

40高风险漏洞!GitHubCopilot生成的代码不可靠

  来源:arXiv
  编辑:LRS  【新智元导读】garbage in, garbage out耳熟能详,如果你写的开源代码被输入到了代码生成工具Copilot中,会不会影响它的生成性能呢?纽约大学的研究员最近发现,Copilot生成的代码有超过40%都含有高危漏洞,究其原因竟然是GitHub提供的源代码自带漏洞!
  随着AI技术的不断进步,程序员们好像不止想取代传统行业的人,而且还在积极思考如何取代自己,AI研究员们对「代码自动生成」更情有独钟。
  结对编程(Pair programming) 是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。
  输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员),两个程序员经常互换角色。
  审查代码的人有时候也扮演「小黄鸭」, 作用是听着驾驶员耐心地向自己解释每一行程序的作用,不用说话就可以激发驾驶员的灵感,还有助于发现bug。
  如果观察员是一个AI,想象有一个AI助手和你一起结对编程是一种什么感觉?
  今年六月,OpenAI 就和 GitHub 联手发布了一个新工具 GitHub Copilot,一时风头无两,只要写下注释,后面的代码内容基本都能预测正确,尤其对于写utils之类的函数来说实在是太方便。
  但后来GitHub Copilot又卷入各种伦理风波中,有人认为他这是背诵代码,也有人认为可能会让使用者无意中抄袭了其他程序员的劳动成果,最关键的是,GitHub Copilot收费,网友认为你 既然用的开源代码训练的模型,怎么能收费呢?
  除了上述问题不谈,Copilot的安全性又怎么样? 能不能生产出让人民放心、让百姓安心的好代码?
  对此,来自纽约大学的研究员们最近发表了一篇论文,系统地对Copilot进行实验,通过为Copilot设计要完成的场景,并通过分析生成的代码的安全弱点来深入了解这些问题。
  论文地址:https://arxiv.org/pdf/2108.09293v2.pdf
  garbage in, garbage out?
  代码的质量由许多因素决定,但代码生成(code generation)更强调功能的正确性,这点通过能否正常编译和单元测试来衡量质量,或者使用文本相似性度量来衡量与预期的代码之间的差距。
  与生成代码的功能正确性度量不同,评估Copilot提供的代码的安全性是一个开放的问题,并没有特定的解决方法。
  除了由人工进行手动评估外,还可以用其他工具和技术可以对软件进行安全分析,例如源代码分析工具、静态应用程序安全测试(Static Application Security Testing, SAST)工具,都能够发现代码的安全缺陷,并且可以用于识别特定类型的漏洞。
  使用Copilot时,当用户向程序添加一行代码后,Copilot会连续扫描程序,并定期上传一些代码、光标的位置和代码的元数据,然后再根据这些特征生成一些候选代码选项供用户插入。
  Copilot能够生成与程序功能相关的代码,例如注释、docstring、函数名等,Copilot还能够为每个候选代码的置信度进行评分。
  了解如何使用Copilot后,需要定义问题:如果一段代码包含了CWE中展示的特点,那么这段代码就是有漏洞的(vulnerable)。
  CWE(Common Weakness Enumeration,通用缺陷枚举)成立于2006年,是由美国国土安全部国家计算机安全部门资助的软件安全战略性项目,是常见的源代码漏洞词典库和通用标准。
  使用Github CodeQL来分析静态代码。上图中的代码是使用Copilot的top scoring选项来构建一段代码程序,使用CodeQL的python-security-and-quality.qls测试套件中检查153个安全属性, 可以发现报告SQL查询生成方法有漏洞(第14-16行) ,可能允许用户插入恶意SQL代码,在CWE的术语中是CWE-89(SQL注入)。
  随后研究人员 通过引导Copilot生成2021 CWE Top 25 相关的漏洞进行实验。 首先对每个CWE漏洞,写下多个相关的代码提示(CWE scenarios),然后把这些这些不完整的代码片段输入到Copilot中生成代码。
  为了简化实验过程,主要对Python, C和Verilog这三种语言进行试验。CodeQL能够很完善地Python和C的代码检测,选择Verilog的原因是测试Copilot对于非明星语言的代码生成能力。
  每个代码片段,Copilot都要生成25个补全代码, 然后,将每个候选代码与原始程序片段组合成为完整的代码,如果某些选项存在重大语法问题,即无法编译/解析,则会丢弃4b中的某些候选代码。如果简单的编辑操作(例如添加或删除单个大括号)就能够可编译的输出结果,那就可以基于正则表达式的工具自动进行这些更改。
  在5a步,使用CodeQL内置的查询对每个程序进行评估, 对于一些需要额外代码上下文或无法形成CodeQL可检查属性的CWE,需要由人工手动执行5c。在这一步中,CodeQL被配置为只检查特定CWE,并且不评估正确性,只评估漏洞。
  第6步中输出评估结果。
  论文中对25个CWE漏洞都有详细的实验描述,感兴趣的小伙伴可以戳原文。
  40.48%都是BUG
  实验结果总的来说不太理想。
  从安全的角度来看, Copilot生成的代码中有大量的漏洞 ,大概比例为40.48% 。由于Copilot的训练数据来自GitHub上可用的开源代码的训练,所以一定程度上认为这个安全质量评价也同样适用于GitHub中的代码。
  也就是说,当某些bug在开源存储库中经常出现时,这些bug也更容易被Copilot生成出来。话虽如此,但也不应该对GitHub上存储的开源存储库的安全质量轻易下结论。
  开源软件的另一个需要考虑安全质量的方面是时间的影响。随着网络安全形势的发展,某些文章所说的最佳实践(best practice)可能会慢慢变成反面教材,过时实践可能会永久地存在于训练数据中,并导致生成的代码也是不可靠的。
  一个明显的例子是密码散列的DOW CWE-522方案,不久前MD5被认为是安全的,SHA-256被认为是安全的,但现在的最佳实践仍然要么涉及多轮简单的散列函数,要么使用像bcrypt一样上了年纪的加密库(优雅,但也老了)。
  未维护和遗留代码也使用不安全的散列方式,Copilot从这些代码中学习,所以也会对程序员继续建议使用这些散列方法。
  最后研究人员还是赞扬了Copilot,这样的次时代AutoComplete工具将提高软件开发人员的生产率,但使用Copilot作为结对编程的副驾驶时,开发人员应该保持警惕。
  在理想情况下,在训练和生成过程中,Copilot应该与安全工具相配合,将引入安全漏洞的风险降至最低。
  参考资料:
  https://arxiv.org/pdf/2108.09293v2.pdf

揭秘澳洲十大高薪职业排行榜您想过换职业吗?如果您还在上学,想过毕业后想要什么样的工作吗?或许,您正好奇某个朋友或者同事挣多少钱?这篇文章可能会有帮助。我将让您看到,包括学徒在内,澳洲经济中从事数百种不同职业悉尼地区的最新封锁限制对你有哪些影响?由于悉尼市的新冠病毒疫情不断扩大,悉尼四个地方政府辖区已施行有效封锁。在WoollahraWaverleyRandwick和CityofSydney居住或工作的人将不得不遵守新的严维州留学生圣诞节前可以返澳?澳洲批准维州隔离中心计划最近澳洲各界对联邦政府这边采取的抗疫措施是发起了一轮又一轮的抨击。疫苗推广计划慢买还专挑便宜的买,隔离酒店成了新冠变种集散地,多位专家和州长们甚至都已多次血书求联邦盖一个独立的隔离豪华公寓存治安盲点,澳华女储物隔间被爆窃,求助遇各方推诿斥重金买下布里斯班最高层豪华公寓,华人Lan女士却遇到了烦心事。位于车库的储物隔间被撬锁盗窃,求助却遇包括物业公司在内的各方推诿。想想自己每年支付的近万元高昂物业费,最基本的安全却韩国偷窥癖盛行的背后针孔摄像头泛滥成灾令女性深受其害当李艺令从老板那里收到一个昂贵的台钟作为礼物时,她以为老板只是示好。李女士的老板年纪比她大很多,且已经结婚生子,但还是对她做出了一些笨拙的追求行为,这让她感到很不舒服。李女士回绝了轻谈浅唱栏目预告同学,你好开学啦开学啦你的作业做完了吗?你孩子的作业做完了吗?!经历过一个疫情反复的暑假,老师学生们又将迎来新的学期,意味着新的希望和挑战。8月31日,诺楠文化晚8点轻谈浅唱直播间同学,你好诺楠文化原创歌曲介绍总会有光如果所有人都害怕而离开了你,那么,你,一个不幸的人,就敞开心扉,孤军前进!如果无人在狂风暴雨的茫茫黑夜里高举火把,那么,你,一个不幸的人,让痛苦点燃你心中的明灯,让它成为你惟一的光消失的母亲文庞金敏和妻子在乡下避暑的那段日子里,很少有人来访,小小的屋子里安静极了。自从我那可怜的邻居被他儿子们逼着卖掉房子以后,能够吸引我注意力的事情就更加的少,好像世界上忽然间没有什么事诺楠小品西藏往事润秋是我大学的女朋友,皮肤有些黝黑,狭长的丹凤眼,鼻头圆又短,脸上布了几颗小雀斑,虽然不是精致的大美人,倒也不失可爱。那年,我们刚毕业,一穷二白,除了有勇气和有时间,别无其他。伴着诺楠文化原创歌曲介绍窗台你站在桥上看风景看风景人在楼上看你明月装饰了你的窗子你装饰了别人的梦卞之琳断章从你的窗口望去,天空撑一把深蓝的伞。远山的眼睫低垂,谧静的亮褐似幽深的瞳仁,盈满无尽的期许。暮光敞开硕浅谈经济需求的定律陈诺楠经济的一条基本定律,当一种货品价钱上涨时,消费者对该货品的需求就会下降而当该货品价格下跌时,消费者对该货品需求会上升。尽管这定律预测算是一个稳健的预测,但所使用的假设及相关的
学尼克松访华,拜登要去俄罗斯?美前驻俄大使联俄制华不会成功自从拜登上台以来,制华成为美国外交的头等大事。拜登多次公开表态称,中国已经成为全球唯一有潜力可以在政治经济军事和科技等多个领域内,与美国展开竞争的国家,美国务必对此保持高度的警惕,泰坦尼克号火爆全球,可几人知道,露丝后半生是怎么过的呢?人的一生会遇到很多不同的人,有的人匆匆而来,却带来了一生难以磨灭的记忆有的人也许每天都会出现了在自己周边,但也只是点头之交。无论遇到多少人,我们都会因此扮演着很多社会角色,一个男人有人提议对全民阅读立法,可行吗?我相信提出全民阅读立法的人,是具有善意的。他特别的关心人民文化素质提升的问题。不过我个人认为这种想法是天真的,不切实际的。法律一定要具有可行性,才能守住法律的尊严。强制全民阅读,这什么?我们还要交智商税最近看到很多朋友炫耀他们的战利品。因为他们采购到了这个。这让我超级羡慕啊!昂贵的草帽没错,就是草帽。买个草帽有什么可羡慕的呢?不是羡慕草帽,是羡慕人家有钱。有钱人,带个草帽都风光。中藥不能證偽,科學嗎?很多人用不能證偽,來批評中醫。中醫也不能雙盲實驗。那麽科學嗎?能用嗎?其實這是個偽命題。醫學不是物理學。物理學研究的是物質,而醫學對象是人。世界上沒有兩片相同的葉子。世界上也沒有兩文科生真的没用吗?数理化是强国之基吗?最近央行刊文,说文科生太多,社会出现问题。这篇文章无形中拉了文理学科的仇恨。很多人认为这是对文科生歧视。其实我倒认为这文讲得有一半道理。不过重理轻文这种思维是有问题的。至少应该文理方方,醒醒,该写日记了快醒醒,方方。在大家都在讲德特里克堡的故事呢,怎么能少了你呢?你把你听说的都写出来啊!还有你没听说过的,你自己想的故事,赶快写啊。德特里克堡最近火啦!整个世界现在都对其充满神秘感,民主这个词也是美国忽悠出来的今天读到一篇甚好的文章民主是苏联的原创,美国是抄袭者,如果大家对于民主和自由这两个词有兴趣,可以点击蓝色文字,浏览原文。其实只要好好思考就知道,民主与自由是两种不同的概念,根本不能他因为58。com而收购98。com,域名大赚一个亿中国人对于689吉利的数字一向情有独钟,所以含有这类数字的域名在国内一直备受追捧。58同城就是因为在创业之初就有58。com这样的极品数字域名助力,才能打败众多的行业竞争者,稳居行域名商城戴跃再下KF。com一城今日,域名商城戴跃又拿下2字母域名帝国的一城KF。com。whois显示,kf。com注册于1994年8月23日,至今已有25年历史,比1995年5月4日注册的qq。com早了将近400万拿下DouYu。com,如今要赴美上市融资数十亿此前多次传出上市消息又总是没有后续的游戏直播平台斗鱼,这一次终于确定7月17日在美国纳斯达克敲钟上市了。斗鱼成立于2014年,总部位于武汉,是一家涉及游戏体育等领域的直播平台,是随