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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 854|回复: 2

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

[复制链接]

1635

主题

718

回帖

7071

积分

论坛元老

积分
7071
发表于 2023-4-24 18:38:40 | 显示全部楼层 |阅读模式 来自 江苏泰州
萧箫 发自 凹非寺
; D: U( s* P% Q0 H量子位 | 公众号 QbitAI5 t( m* a( W# O8 T4 ^. m' p

9 x  B8 j0 w. L: ?" VChatGPT知道自己写的代码有漏洞,但它不说!" d0 e6 y+ n3 a" y! `* |
来自加拿大的一项最新研究发现,ChatGPT生成的代码中,有不少都存在安全漏洞。
$ [7 s$ M& @. p/ [# _然而在被要求评估自己代码的安全性时,ChatGPT却很快发现了这些代码中的漏洞,并给出了一些解决方案和建议。. l2 u) D% U, }  K) A  s: b
" ?2 }) k( Y4 `" i- Z
  w4 [8 r( K! z2 K

5 i5 A8 k% f" M" d- T% X这意味着它并不知道自己生成了糟糕的代码,但却查得出它写的代码有漏洞,也有能力修复这些漏洞8 `, M/ C) u" p% A- d; \
而在另一篇来自斯坦福的论文中,研究人员测试了另一位著名AI程序员Copilot,也发现了类似的问题。
  a# x: ]4 W) e8 z; a3 R) r所以,用AI生成代码为啥会出现这种状况?9 d( J' r  b$ {; g" A% n
写的程序中76%有安全漏洞
; m. b& E$ i9 e6 P研究人员试着让ChatGPT生成了21个程序。3 Y& l1 z& ^; |: a
整个测试过程如下,先提交需求给ChatGPT,生成相关代码,再对这些代码进行测试,并检查问题、潜在的缺陷和漏洞等。
4 U. E0 a( R) g& a% k& Y! O7 H' e' W* d! X  v) o0 C+ a
& \! Z7 w. r; P- |) _0 w' T3 b
* R5 l+ p+ P2 q( d; P
研究人员给ChatGPT提了包括C++、C、Java和Python在内的21个写代码需求,这是评估的结果:
/ N$ i3 y# |/ Q/ a" I' w1 @+ t0 j! @, c1 I! k# d
6 ]9 L; Q; t6 V1 Z6 w

) O# s% n0 A: o$ N统计表明,ChatGPT生成的21个程序中,有17个能直接运行,但其中只有5个程序能勉强通过程序安全评估,不安全代码率达到76%以上。) R8 d" o7 t% `, n) V
于是,研究人员先试着让ChatGPT“想想自己生成的代码有啥问题”。
9 ?% g% L2 m0 z. ~9 v/ t: [, IChatGPT的回应是“没啥问题”:只要用户每次的输入都是有效的,那么程序一定能运行!
) ]5 A1 B9 e9 |9 z& z/ \显然ChatGPT并没有意识到,用户并不都是行业专家,很可能只需要一个无效输入,就能“引炸”它写的程序:* R7 y+ q* r1 k) d* ?
( V: x& }, Q0 F1 }

* g  g8 N2 y! B% h* l5 |7 t8 V3 `
: p# g, _) D: n发现ChatGPT不知道自己写的程序不安全后,研究人员尝试换了种思路——用更专业的语言提示ChatGPT,如告诉它这些程序具体存在什么漏洞。4 f, N. f& F, A& u: j
神奇的是,在听到这些针对安全漏洞的专业建议后,ChatGPT立刻知道自己的代码存在什么问题,并快速纠正了不少漏洞。
! ^) v6 c/ @, Q% j经过一番改进后,ChatGPT终于将剩余的16个漏洞程序中的7个改得更安全了。1 S0 @4 e+ V0 r- b1 s' M* }
研究人员得出结论认为,ChatGPT并不知道自己的代码中存在安全漏洞,但它却能在生成程序后识别其中的漏洞,并尝试提供解决方案。; r7 x- @! `/ m; n9 c- [
论文还指出,ChatGPT虽然能准确识别并拒绝“写个攻击代码”这种不道德的需求,然而它自己写的代码却有安全漏洞,这其实有着设计上的不合理之处。9 H; x7 Z& {' V7 f5 E9 J( O3 [
我们试了试发现,ChatGPT确实会主动拒绝写攻击性代码的要求:' j$ e2 X; ~, A1 ~& W

8 K9 u+ E- q- u5 f: [7 z0 k# }: E% I) r" z2 |* ]

1 ^2 R! }5 X1 y- J! ~% e+ F大有一种“我不攻击别人,别人也不会攻击我写的代码”自信感。
7 G4 Y7 v4 p8 x& a/ x% d程序员们在用它辅助写代码的时候,也需要考虑这些问题。
$ h- c8 k2 l4 d- E. i3 h: `Copilot也存在类似问题
9 V5 r/ s/ ~  H% G1 e' C- L0 D$ t$ F5 m事实上,不止ChatGPT写的代码存在安全问题。
. i7 ~% I9 Y2 L此前,斯坦福大学的研究人员对Copilot也进行过类似调查,只不过他们探查的是用Copilot辅助生成的程序,而并非完全是Copilot自己写的代码。
( H1 D( _  l3 t) Y" c研究发现,即便Copilot只是个“打辅助”的角色,经过它改写的代码中,仍然有40%出现了安全漏洞。7 z+ L8 C+ s  F  z  G

: d  t: f! t3 o( F: c
( `3 Q* Q5 W* K6 ]$ J% n! a, r9 i
而且研究只调查了Copilot生成代码中的一部分,包括C、Python和Verilog三种编程语言写的程序,尚不知道用其他语言编写的程序中,是否还存在更多或更少的安全漏洞。
4 x2 H+ w) n3 \基于此,研究人员得出了如下结论:. a1 O7 A* j7 V; i6 `# i. Y
$ a+ a) Y- N1 C: M
ChatGPT等AI生成的代码安全性并不稳定,用某些语言写的代码比较安全,而用其他语言写的代码却很容易遭受攻击。整体来看,它们就是一个黑盒子,生成的代码是有风险的。, ^4 _$ r3 A% @1 V9 a
这并不意味着AI代码工具不能用,只是我们在使用时,必须考虑这些代码的安全性。9 ]+ v7 V6 x2 d4 q

! @' ?7 H' W: T5 }! Z5 [作者介绍! s* ^" p. T) j* ?- d- @
四位作者均来自加拿大魁北克大学(Universite du Quebec en Outaouais)。
- ^: d: F  `/ ^4 `3 |* h* W% ^$ f/ k& A! A# J" O! T

' b5 e) U% o( A6 |$ K* s4 {6 H4 V0 L$ C
Raphaël Khoury,加拿大魁北克大学教授,曾经在拉瓦尔大学获得计算机学士、硕士和博士学位,研究兴趣集中在计算机安全方面。0 k- a4 n( a3 `8 a; k& |7 y

5 t/ ^- R- r: Y8 r  ~
) A# y. G/ Y6 l( o$ O" o# _7 ~1 N" f9 p; P- |
Anderson R. Avila,魁北克大学国立科学研究院的助理教授,主要研究方向是数据隐私相关的联邦学习、网络安全和生物特征识别技术等,曾经在华为的加拿大研究院做过机器学习研究员。% u0 k( h8 @7 T
作者Jacob Brunelle和Baba Mamadou Camara也都来自加拿大魁北克大学。
1 A3 I2 |7 D" a. E你用ChatGPT写过代码吗?感觉它的“安全意识”如何?9 b4 I( v6 `  _$ n* {
论文地址:6 e, C; D3 N6 S( x6 z1 r& l0 u
https://arxiv.org/abs/2304.09655
0 m' e& ^0 r* y# @. R生成代码数据集:
) \$ d; \$ T7 s* {' r% X5 Chttps://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-3-24 07:08 , Processed in 0.048415 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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