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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 953|回复: 2

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

[复制链接]

1635

主题

718

回帖

7071

积分

论坛元老

积分
7071
发表于 2023-4-24 18:38:40 | 显示全部楼层 |阅读模式 来自 江苏泰州
萧箫 发自 凹非寺, Z2 i$ Z: [0 e) x; \% P! M' B  @
量子位 | 公众号 QbitAI
" b- `, }  t! `6 V# J
! G& Y; [5 i/ y. n% @2 x
ChatGPT知道自己写的代码有漏洞,但它不说!
+ C6 ]7 o" L1 g5 y9 U! Z来自加拿大的一项最新研究发现,ChatGPT生成的代码中,有不少都存在安全漏洞。
( @, E" ?2 T. n5 i然而在被要求评估自己代码的安全性时,ChatGPT却很快发现了这些代码中的漏洞,并给出了一些解决方案和建议。2 d2 ^7 e& {/ ?0 z( b
- `0 ?( N. D7 N" i* J, @

, D0 }- i3 ?* K6 }. O# K+ c* P7 h  G9 H% o& @# L+ H$ q
这意味着它并不知道自己生成了糟糕的代码,但却查得出它写的代码有漏洞,也有能力修复这些漏洞。. s+ F* Q" I( ]1 B( J5 @# i
而在另一篇来自斯坦福的论文中,研究人员测试了另一位著名AI程序员Copilot,也发现了类似的问题。
" h2 x9 @9 n* o. ]- o0 [, O所以,用AI生成代码为啥会出现这种状况?
& o" R# R7 V) ]3 _/ E8 o# L1 o& U: B写的程序中76%有安全漏洞
, ^6 a' C; _% o/ j0 O2 u研究人员试着让ChatGPT生成了21个程序。5 t: K  m4 J& x9 k2 v8 S. K% X
整个测试过程如下,先提交需求给ChatGPT,生成相关代码,再对这些代码进行测试,并检查问题、潜在的缺陷和漏洞等。
* v# ^8 {/ f- q) q" X+ m1 S6 s6 q. o
) v) f" C7 C+ ~4 s
6 {* H" \6 |+ O. n% d% j; h2 h  V/ V" d) l
研究人员给ChatGPT提了包括C++、C、Java和Python在内的21个写代码需求,这是评估的结果:
/ I1 z" c  ?/ S, D: v- _8 E# d9 Z0 q6 F, {9 u+ c" m' U

/ T" [# V7 g1 H) M$ D5 J) S6 ]
5 b7 a3 Z( ?$ `* M统计表明,ChatGPT生成的21个程序中,有17个能直接运行,但其中只有5个程序能勉强通过程序安全评估,不安全代码率达到76%以上。
3 Q1 D) W8 w& \1 L于是,研究人员先试着让ChatGPT“想想自己生成的代码有啥问题”。
5 C! V1 s1 |) Q1 R3 T7 g4 [( E% S( ]1 sChatGPT的回应是“没啥问题”:只要用户每次的输入都是有效的,那么程序一定能运行!
$ s9 s9 x" p0 K7 U! F6 m7 u, [+ o显然ChatGPT并没有意识到,用户并不都是行业专家,很可能只需要一个无效输入,就能“引炸”它写的程序:$ G2 P3 `$ B* i! m

, X+ A) m$ d& }& E4 o' [9 M% i. m4 n5 o5 `0 }4 w' A4 i
3 G4 |4 j2 c6 V' ?' z7 _# a
发现ChatGPT不知道自己写的程序不安全后,研究人员尝试换了种思路——用更专业的语言提示ChatGPT,如告诉它这些程序具体存在什么漏洞。1 D0 L7 z4 Q" z! V3 ?
神奇的是,在听到这些针对安全漏洞的专业建议后,ChatGPT立刻知道自己的代码存在什么问题,并快速纠正了不少漏洞。# h* S8 g( E5 H" B. w. b0 l' y
经过一番改进后,ChatGPT终于将剩余的16个漏洞程序中的7个改得更安全了。
8 m7 N3 K' ~! Z: C: w0 Y2 ]研究人员得出结论认为,ChatGPT并不知道自己的代码中存在安全漏洞,但它却能在生成程序后识别其中的漏洞,并尝试提供解决方案。
  m- p9 S7 x' O0 V0 c7 g论文还指出,ChatGPT虽然能准确识别并拒绝“写个攻击代码”这种不道德的需求,然而它自己写的代码却有安全漏洞,这其实有着设计上的不合理之处。
( O' s" `( n/ U8 o& R' w. f- {我们试了试发现,ChatGPT确实会主动拒绝写攻击性代码的要求:0 V, X. B, K: k- c- @/ m

# g8 E& s3 @/ G7 P2 E# U
0 \0 P. a* c& Z1 x5 X
: K- t9 {. Y3 V& |' Y9 `8 D9 u$ v大有一种“我不攻击别人,别人也不会攻击我写的代码”自信感。
& P9 ?% y: S# H) H- @5 [0 L/ }: D5 h程序员们在用它辅助写代码的时候,也需要考虑这些问题。; q# r) _% d: N, h7 j  ~6 L0 b2 s
Copilot也存在类似问题
0 r( A3 T! ?. h( ]. ^) G0 i! i事实上,不止ChatGPT写的代码存在安全问题。. j, Z( V9 a! x* C6 W& R- E/ a' W
此前,斯坦福大学的研究人员对Copilot也进行过类似调查,只不过他们探查的是用Copilot辅助生成的程序,而并非完全是Copilot自己写的代码。
7 I7 w# T/ x; D4 e研究发现,即便Copilot只是个“打辅助”的角色,经过它改写的代码中,仍然有40%出现了安全漏洞。) W& x/ C. i& _+ d8 W

8 }$ Q! g4 Y+ f& S7 o
* R6 {$ t: \6 S' P/ g4 K. T5 _, k7 v1 `* \0 Q. }7 r2 \8 u
而且研究只调查了Copilot生成代码中的一部分,包括C、Python和Verilog三种编程语言写的程序,尚不知道用其他语言编写的程序中,是否还存在更多或更少的安全漏洞。* p1 \) |2 G' |: N
基于此,研究人员得出了如下结论:' x2 I5 b( d2 U' _3 n4 l+ `1 D
3 z; ]( e8 u# I
ChatGPT等AI生成的代码安全性并不稳定,用某些语言写的代码比较安全,而用其他语言写的代码却很容易遭受攻击。整体来看,它们就是一个黑盒子,生成的代码是有风险的。% U  k! N! p2 q) d2 w/ \2 |
这并不意味着AI代码工具不能用,只是我们在使用时,必须考虑这些代码的安全性。4 Q9 d9 z+ I) `

3 _- u& J/ A4 e0 \2 X- }1 C& M# f6 `作者介绍, |3 B2 d1 o' r& X, e4 G# k5 ^* p
四位作者均来自加拿大魁北克大学(Universite du Quebec en Outaouais)。2 G& w6 c- I7 @: ~3 P
% T: }1 J* n* F$ R8 M

4 P4 z; C* W) ^* L4 E. ]: W9 \: ~$ v" e2 ]( Y8 I
Raphaël Khoury,加拿大魁北克大学教授,曾经在拉瓦尔大学获得计算机学士、硕士和博士学位,研究兴趣集中在计算机安全方面。
' v: n" R7 E- K- W1 q9 E& E" h0 y0 z# z5 Q% Z+ k
9 W- Z  _* g6 v% G4 u
$ M( R; Z0 G' G( t- g
Anderson R. Avila,魁北克大学国立科学研究院的助理教授,主要研究方向是数据隐私相关的联邦学习、网络安全和生物特征识别技术等,曾经在华为的加拿大研究院做过机器学习研究员。
1 f4 u$ D; U+ V: G9 I5 h作者Jacob Brunelle和Baba Mamadou Camara也都来自加拿大魁北克大学。* D) r6 A& w0 r+ |
你用ChatGPT写过代码吗?感觉它的“安全意识”如何?
' ]8 l; w0 Q! f) h  |0 u论文地址:
  P' I: N, W( Ghttps://arxiv.org/abs/2304.09655$ X0 _5 f, y+ e+ S3 e( U( l" y
生成代码数据集:
+ k* j- T; U9 S" [4 l  X: Q3 Lhttps://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-11-1 22:47 , Processed in 0.041162 second(s), 25 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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