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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 886|回复: 2

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

[复制链接]

1635

主题

718

回帖

7071

积分

论坛元老

积分
7071
发表于 2023-4-24 18:38:40 | 显示全部楼层 |阅读模式 来自 江苏泰州
萧箫 发自 凹非寺' ?7 [  M  u* ?6 y: P
量子位 | 公众号 QbitAI
5 \$ Z* O0 |/ r9 Y+ ^& g# S
$ _& W' }& |% ?
ChatGPT知道自己写的代码有漏洞,但它不说!8 p" e" C& r5 }* `
来自加拿大的一项最新研究发现,ChatGPT生成的代码中,有不少都存在安全漏洞。$ Z5 n. O6 x' b9 ]; B/ W
然而在被要求评估自己代码的安全性时,ChatGPT却很快发现了这些代码中的漏洞,并给出了一些解决方案和建议。
- i5 j! u8 p0 o% t2 m1 _. F
" j  d5 [% ?, e8 t! J; ?1 ?4 e
2 ~1 P! x  K3 W9 X1 M
这意味着它并不知道自己生成了糟糕的代码,但却查得出它写的代码有漏洞,也有能力修复这些漏洞) b, s) S2 H2 N
而在另一篇来自斯坦福的论文中,研究人员测试了另一位著名AI程序员Copilot,也发现了类似的问题。
/ k. N$ ?% A/ A0 b所以,用AI生成代码为啥会出现这种状况?& x" I* {0 b2 K1 @
写的程序中76%有安全漏洞
$ D  E2 j8 Z$ b" k研究人员试着让ChatGPT生成了21个程序。- p* Y" R4 Q, P( C
整个测试过程如下,先提交需求给ChatGPT,生成相关代码,再对这些代码进行测试,并检查问题、潜在的缺陷和漏洞等。
3 {* I! \3 J9 z; X
: U4 }/ g5 S8 e4 m* g7 p8 ~$ d' o3 j
: _2 W( H- P7 j% ]4 y' ~3 o- ?- ?! m3 f& d1 l, N+ |* E! K1 U/ c
研究人员给ChatGPT提了包括C++、C、Java和Python在内的21个写代码需求,这是评估的结果:$ Q. c+ d9 A, }  A5 a5 t

6 T# }& T# U0 ^& X' _: r8 z( i8 }+ y

" s  Q/ |9 V: b4 P7 c统计表明,ChatGPT生成的21个程序中,有17个能直接运行,但其中只有5个程序能勉强通过程序安全评估,不安全代码率达到76%以上。
; A; q. b$ {5 H1 E& E( c; I于是,研究人员先试着让ChatGPT“想想自己生成的代码有啥问题”。
# m0 n  i  _1 }  j2 H; r+ {7 D) F7 sChatGPT的回应是“没啥问题”:只要用户每次的输入都是有效的,那么程序一定能运行!  [' P6 v4 N& D- ?+ m
显然ChatGPT并没有意识到,用户并不都是行业专家,很可能只需要一个无效输入,就能“引炸”它写的程序:
8 H9 p7 ~- z+ W) u( G5 S0 [+ C" K: B2 u6 e
  ]0 r% b# q* c

- S( E, o1 B+ Q5 I: U& d, n发现ChatGPT不知道自己写的程序不安全后,研究人员尝试换了种思路——用更专业的语言提示ChatGPT,如告诉它这些程序具体存在什么漏洞。! |7 I8 |% k# g* n6 j
神奇的是,在听到这些针对安全漏洞的专业建议后,ChatGPT立刻知道自己的代码存在什么问题,并快速纠正了不少漏洞。
& s4 `  H; R3 M经过一番改进后,ChatGPT终于将剩余的16个漏洞程序中的7个改得更安全了。
8 D/ C6 |7 \4 T- G, w研究人员得出结论认为,ChatGPT并不知道自己的代码中存在安全漏洞,但它却能在生成程序后识别其中的漏洞,并尝试提供解决方案。/ v( D' J+ o9 C. \, g* q' V
论文还指出,ChatGPT虽然能准确识别并拒绝“写个攻击代码”这种不道德的需求,然而它自己写的代码却有安全漏洞,这其实有着设计上的不合理之处。+ j- t8 j/ I, Q. |; R
我们试了试发现,ChatGPT确实会主动拒绝写攻击性代码的要求:/ d' h8 v1 V! X) @) N

7 G, b7 X+ R% F1 y8 O' t& {, H7 r/ P8 J0 H6 y3 R9 m9 w# K6 A
2 x5 E1 J; ^% b% i" A5 T
大有一种“我不攻击别人,别人也不会攻击我写的代码”自信感。5 d6 Q3 p# |' a. X+ ?8 k
程序员们在用它辅助写代码的时候,也需要考虑这些问题。. F' Y  _- e/ x9 u8 _4 }
Copilot也存在类似问题* }1 e& L% Z3 S7 J6 T1 u# |
事实上,不止ChatGPT写的代码存在安全问题。
0 V5 X2 r' B2 S, }此前,斯坦福大学的研究人员对Copilot也进行过类似调查,只不过他们探查的是用Copilot辅助生成的程序,而并非完全是Copilot自己写的代码。" X. D( T( A% U
研究发现,即便Copilot只是个“打辅助”的角色,经过它改写的代码中,仍然有40%出现了安全漏洞。- d) M" m3 U  W8 \) w8 ^! t
; J$ b0 j- c  H. ^) D1 D
4 K. ~5 b# a  ]) N

8 a0 ~7 f0 ?2 @3 f而且研究只调查了Copilot生成代码中的一部分,包括C、Python和Verilog三种编程语言写的程序,尚不知道用其他语言编写的程序中,是否还存在更多或更少的安全漏洞。& ~) K8 [6 K  g, T
基于此,研究人员得出了如下结论:# ^2 }9 z$ W& l

$ [2 Y* N, @) w
ChatGPT等AI生成的代码安全性并不稳定,用某些语言写的代码比较安全,而用其他语言写的代码却很容易遭受攻击。整体来看,它们就是一个黑盒子,生成的代码是有风险的。, N/ `7 d! a0 h2 n1 q  M! I3 b
这并不意味着AI代码工具不能用,只是我们在使用时,必须考虑这些代码的安全性。
0 z- w# [! q. Z  Q2 D

" n( \+ b, O  b! v0 C作者介绍/ f: v1 t3 w) D& Q' u
四位作者均来自加拿大魁北克大学(Universite du Quebec en Outaouais)。
$ T$ k; n0 F1 S. U5 U8 n: o+ U$ C5 U5 J! ~
5 k' T# w6 B8 v8 Y. W# r
+ X1 I0 s; l- L( V1 P. m
Raphaël Khoury,加拿大魁北克大学教授,曾经在拉瓦尔大学获得计算机学士、硕士和博士学位,研究兴趣集中在计算机安全方面。; t' V% Q6 f& A) c$ n$ p3 M4 m

. x. J* P" h7 ~5 H, G9 Q6 a1 ~% s6 ]( y3 X
: C8 s0 H, X" [% o% D) I6 v/ O4 Z
Anderson R. Avila,魁北克大学国立科学研究院的助理教授,主要研究方向是数据隐私相关的联邦学习、网络安全和生物特征识别技术等,曾经在华为的加拿大研究院做过机器学习研究员。
6 E% q5 n! I" I2 J7 M! |1 n作者Jacob Brunelle和Baba Mamadou Camara也都来自加拿大魁北克大学。' S+ u1 y$ a4 G: P2 r' Z- R
你用ChatGPT写过代码吗?感觉它的“安全意识”如何?6 h5 m" y8 H: z1 H, Y/ X9 c* H3 _
论文地址:
# M) ]. W5 [" h! J, `7 \# C) Dhttps://arxiv.org/abs/2304.09655
; J% B9 M, V  o2 [3 k生成代码数据集:
/ Y1 n2 t; V% u8 l+ J) ]https://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-6-22 13:52 , Processed in 0.040852 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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