京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 947|回复: 2

ChatGPT明知自己写代码有漏洞,但你不问它就不说

[复制链接]

1635

主题

718

回帖

7071

积分

论坛元老

积分
7071
发表于 2023-4-24 18:38:40 | 显示全部楼层 |阅读模式 来自 江苏泰州
萧箫 发自 凹非寺
6 \" ~7 Q, A" E- @1 i# E& q量子位 | 公众号 QbitAI, Z( p0 ^8 R) o, m0 m9 S6 ^, g6 X

$ K1 a7 q  G; _9 f, {4 CChatGPT知道自己写的代码有漏洞,但它不说!
1 I5 r  X# ]8 U来自加拿大的一项最新研究发现,ChatGPT生成的代码中,有不少都存在安全漏洞。5 G+ \- r; u  m& d( z! W
然而在被要求评估自己代码的安全性时,ChatGPT却很快发现了这些代码中的漏洞,并给出了一些解决方案和建议。; {5 O1 f0 u! c2 J% u# v7 v+ _) e
1 j5 h$ V: J+ h5 [8 Y3 h

! p+ X$ P7 C3 M( B* l4 a" l$ H5 F( p2 d- s
这意味着它并不知道自己生成了糟糕的代码,但却查得出它写的代码有漏洞,也有能力修复这些漏洞
$ L- K: ]# w7 ]而在另一篇来自斯坦福的论文中,研究人员测试了另一位著名AI程序员Copilot,也发现了类似的问题。( b0 o+ c0 C# _0 C
所以,用AI生成代码为啥会出现这种状况?
2 p( Q$ a; [2 T写的程序中76%有安全漏洞8 x1 T3 B2 d( l" s# H. _
研究人员试着让ChatGPT生成了21个程序。
0 [$ R& m) Z* Z整个测试过程如下,先提交需求给ChatGPT,生成相关代码,再对这些代码进行测试,并检查问题、潜在的缺陷和漏洞等。
5 f! t& u; g; R& w" r! B. W( d9 f1 y& R9 T, t# D  x
! n! d6 G: x0 Z

! f( Z. x2 I% y. {7 S2 I/ m研究人员给ChatGPT提了包括C++、C、Java和Python在内的21个写代码需求,这是评估的结果:- K# M" [8 d' G+ I7 F! }/ H& f
3 X- M% e. \! F8 j& J" Z7 A

4 K; T% H" J( W8 _4 S! @
& i- Z, n) a. n5 {  ^* n统计表明,ChatGPT生成的21个程序中,有17个能直接运行,但其中只有5个程序能勉强通过程序安全评估,不安全代码率达到76%以上。
( H4 z- N- M# }于是,研究人员先试着让ChatGPT“想想自己生成的代码有啥问题”。% e8 l5 B' K+ k/ v6 h* R
ChatGPT的回应是“没啥问题”:只要用户每次的输入都是有效的,那么程序一定能运行!
' g9 U: z' n3 c8 X$ L9 y4 i, ?显然ChatGPT并没有意识到,用户并不都是行业专家,很可能只需要一个无效输入,就能“引炸”它写的程序:; y7 }3 w& _/ d7 M. w
0 Q4 c9 p8 Z) W  r

9 d1 \. O) p  p( n: l4 y5 y" p6 C
发现ChatGPT不知道自己写的程序不安全后,研究人员尝试换了种思路——用更专业的语言提示ChatGPT,如告诉它这些程序具体存在什么漏洞。
" ]# [- y) C- E1 ]- B4 _神奇的是,在听到这些针对安全漏洞的专业建议后,ChatGPT立刻知道自己的代码存在什么问题,并快速纠正了不少漏洞。
: ~2 P( M. @# R1 s2 S经过一番改进后,ChatGPT终于将剩余的16个漏洞程序中的7个改得更安全了。9 X, l8 H3 |- b0 t1 [
研究人员得出结论认为,ChatGPT并不知道自己的代码中存在安全漏洞,但它却能在生成程序后识别其中的漏洞,并尝试提供解决方案。
. y( u1 u/ n5 Q; C) R论文还指出,ChatGPT虽然能准确识别并拒绝“写个攻击代码”这种不道德的需求,然而它自己写的代码却有安全漏洞,这其实有着设计上的不合理之处。
1 u! `, O9 N2 {- D" _我们试了试发现,ChatGPT确实会主动拒绝写攻击性代码的要求:6 y" u  _* z' T5 O8 {
" x/ I: A  x! ^' w
" J, l, n! b4 F
7 f1 x- \1 M: ^: q# o
大有一种“我不攻击别人,别人也不会攻击我写的代码”自信感。- J+ y) |& j. V$ E* Y* m* k
程序员们在用它辅助写代码的时候,也需要考虑这些问题。
+ \- @: L; J4 f# {5 k& N0 a0 YCopilot也存在类似问题
7 m5 M; _4 B: o4 d( F6 H$ Q事实上,不止ChatGPT写的代码存在安全问题。
* b6 C+ h/ W$ Y. ?4 L此前,斯坦福大学的研究人员对Copilot也进行过类似调查,只不过他们探查的是用Copilot辅助生成的程序,而并非完全是Copilot自己写的代码。
3 M# h0 `8 e% M6 m& L+ W研究发现,即便Copilot只是个“打辅助”的角色,经过它改写的代码中,仍然有40%出现了安全漏洞。
7 d6 ~% p+ O6 B$ M8 \: G% ~, d, U/ w+ `9 o9 D" N$ F
+ u% `( ?. z  B7 t' a. j) w0 T

$ g9 F5 p. ^% Q5 O而且研究只调查了Copilot生成代码中的一部分,包括C、Python和Verilog三种编程语言写的程序,尚不知道用其他语言编写的程序中,是否还存在更多或更少的安全漏洞。( Q$ ^+ e3 o3 G, ~
基于此,研究人员得出了如下结论:
) d: }# I' S) J2 y% z
* S2 W' Y) g, C: }
ChatGPT等AI生成的代码安全性并不稳定,用某些语言写的代码比较安全,而用其他语言写的代码却很容易遭受攻击。整体来看,它们就是一个黑盒子,生成的代码是有风险的。- g$ g9 \- j: i% Z& D+ R' u% X- Z
这并不意味着AI代码工具不能用,只是我们在使用时,必须考虑这些代码的安全性。
. g; I; e* R. U; h/ p
  K8 J3 A# D9 \1 F& `* y( j  Q
作者介绍7 E6 o4 R7 }8 p# M0 B, S% n
四位作者均来自加拿大魁北克大学(Universite du Quebec en Outaouais)。7 Z* L& z  B2 E, {5 {5 e

  j# B$ Y3 G1 ]* n3 a' [, B
$ g3 `6 ]' ?: f4 `
4 Z0 f$ F; K" p, p  oRaphaël Khoury,加拿大魁北克大学教授,曾经在拉瓦尔大学获得计算机学士、硕士和博士学位,研究兴趣集中在计算机安全方面。, w8 G$ \* O, b! J) x
$ f$ ~0 q- ?# M5 {, m% O- k( z

- n& T% M$ O& [1 O( w
# v8 f8 {& x# IAnderson R. Avila,魁北克大学国立科学研究院的助理教授,主要研究方向是数据隐私相关的联邦学习、网络安全和生物特征识别技术等,曾经在华为的加拿大研究院做过机器学习研究员。3 W$ {2 I' O+ R) J
作者Jacob Brunelle和Baba Mamadou Camara也都来自加拿大魁北克大学。
+ ^. l' i7 Z! ~3 o+ X你用ChatGPT写过代码吗?感觉它的“安全意识”如何?+ e! G. G$ ~( t# X
论文地址:2 {* b$ b! E: t4 C% I  S4 S
https://arxiv.org/abs/2304.09655
9 ]! O! r7 Q) G+ D* Q! d生成代码数据集:
0 \1 K9 W) O9 w. i1 F$ shttps://github.com/RaphaelKhoury/ProgramsGeneratedByChatGPT

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

帖子地址: 

梦想之都-俊月星空 优酷自频道欢迎您 http://i.youku.com/zhaojun917
回复

使用道具 举报

1619

主题

695

回帖

6960

积分

论坛元老

积分
6960
发表于 2023-4-24 19:08:31 | 显示全部楼层 来自 江苏泰州
知道你是行家, 知道忽悠不了你的時候, 馬上便認真起來~
梦想之都-俊月星空 优酷自频道欢迎您 http://i.youku.com/zhaojun917
回复

使用道具 举报

1694

主题

712

回帖

7240

积分

论坛元老

积分
7240
发表于 2023-4-24 19:39:01 | 显示全部楼层 来自 江苏泰州
这逻辑很好理解,生成代码,和安全检查,是不同的引擎做的
梦想之都-俊月星空 优酷自频道欢迎您 http://i.youku.com/zhaojun917
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2026-9-18 15:43 , Processed in 0.042830 second(s), 25 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表