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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 887|回复: 2

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

[复制链接]

1635

主题

718

回帖

7071

积分

论坛元老

积分
7071
发表于 2023-4-24 18:38:40 | 显示全部楼层 |阅读模式 来自 江苏泰州
萧箫 发自 凹非寺
; V! ?% e  |& v0 ^' ]. }% M3 w量子位 | 公众号 QbitAI
/ p6 U$ x% ]0 m+ W/ M/ R
0 Y0 i6 w& {/ L7 W
ChatGPT知道自己写的代码有漏洞,但它不说!( p. O8 \0 G3 p2 e1 s
来自加拿大的一项最新研究发现,ChatGPT生成的代码中,有不少都存在安全漏洞。
( ?* _- ]# E; e& H" b! z然而在被要求评估自己代码的安全性时,ChatGPT却很快发现了这些代码中的漏洞,并给出了一些解决方案和建议。
4 x# H& n8 R% T% L5 f" o; q! r- ?0 x' Z& G4 z

" @# f+ J0 k; \3 O7 F: r3 R( F& b) b" U$ |5 o& E. b) ^' [
这意味着它并不知道自己生成了糟糕的代码,但却查得出它写的代码有漏洞,也有能力修复这些漏洞# E" R% Q, z' H
而在另一篇来自斯坦福的论文中,研究人员测试了另一位著名AI程序员Copilot,也发现了类似的问题。) b/ z$ t* F9 O9 e0 O/ a
所以,用AI生成代码为啥会出现这种状况?  y1 w* `8 f( B- A. }
写的程序中76%有安全漏洞7 ^$ W# n* i. l  s- g
研究人员试着让ChatGPT生成了21个程序。
0 y) z+ `$ |. b整个测试过程如下,先提交需求给ChatGPT,生成相关代码,再对这些代码进行测试,并检查问题、潜在的缺陷和漏洞等。0 m! v. ~1 Z. z$ j; o
7 I- C- O( h1 H9 \$ g; p8 I. d: F' d

5 H& S0 i# f6 j! j+ }% g8 N% B* x+ t# Z
研究人员给ChatGPT提了包括C++、C、Java和Python在内的21个写代码需求,这是评估的结果:+ r# p& }5 `" Y2 Z/ e2 \, U+ T

6 S# q8 o% z; ~8 G3 E% r7 b
2 d; h( P9 ?2 Z+ a' u! Z. v8 _6 B+ A. p2 g
统计表明,ChatGPT生成的21个程序中,有17个能直接运行,但其中只有5个程序能勉强通过程序安全评估,不安全代码率达到76%以上。, `5 {4 |7 C+ u7 ~
于是,研究人员先试着让ChatGPT“想想自己生成的代码有啥问题”。6 b  ]* c5 @' Q% c6 v
ChatGPT的回应是“没啥问题”:只要用户每次的输入都是有效的,那么程序一定能运行!
4 a# r" k' F. H/ W0 m. O显然ChatGPT并没有意识到,用户并不都是行业专家,很可能只需要一个无效输入,就能“引炸”它写的程序:  h* A: F- ]4 i1 p2 V( m

# g1 g; O7 _' l: k) w5 k7 o- E; f
. _$ B6 V. @6 x8 b
2 E: }3 ^8 n6 X: o5 ^; M& k3 d  P发现ChatGPT不知道自己写的程序不安全后,研究人员尝试换了种思路——用更专业的语言提示ChatGPT,如告诉它这些程序具体存在什么漏洞。, x! c" N$ Q& K" G
神奇的是,在听到这些针对安全漏洞的专业建议后,ChatGPT立刻知道自己的代码存在什么问题,并快速纠正了不少漏洞。/ s* v! p, Z3 g- X
经过一番改进后,ChatGPT终于将剩余的16个漏洞程序中的7个改得更安全了。" J$ |7 P3 j" ~; G- @6 w2 }! O, F
研究人员得出结论认为,ChatGPT并不知道自己的代码中存在安全漏洞,但它却能在生成程序后识别其中的漏洞,并尝试提供解决方案。
( V/ Z! o8 y# [. e论文还指出,ChatGPT虽然能准确识别并拒绝“写个攻击代码”这种不道德的需求,然而它自己写的代码却有安全漏洞,这其实有着设计上的不合理之处。
  b! v/ w3 ^( Q: O+ N( p* H我们试了试发现,ChatGPT确实会主动拒绝写攻击性代码的要求:. t) B, V& S+ }* U/ u

. v) T/ d3 d5 y, x$ q- ?$ ?+ L4 W% D, J# h( f
) h) m, b9 a' M$ }/ B$ i
大有一种“我不攻击别人,别人也不会攻击我写的代码”自信感。" S- A$ _4 V, ^% V7 Q
程序员们在用它辅助写代码的时候,也需要考虑这些问题。
9 a7 P8 r2 K' n& Q3 n. h# MCopilot也存在类似问题4 e& |0 l5 @, l" Z& h/ M
事实上,不止ChatGPT写的代码存在安全问题。
5 W' R* h0 K4 J2 l8 y此前,斯坦福大学的研究人员对Copilot也进行过类似调查,只不过他们探查的是用Copilot辅助生成的程序,而并非完全是Copilot自己写的代码。
( k- @0 K* ]( c3 X9 J- G( H* c研究发现,即便Copilot只是个“打辅助”的角色,经过它改写的代码中,仍然有40%出现了安全漏洞。
- i1 {3 |1 q3 r- V. V
! }0 X5 {1 i- B; `* T( X" t% d4 l1 ?
7 N6 t4 t+ q5 [8 `% D
而且研究只调查了Copilot生成代码中的一部分,包括C、Python和Verilog三种编程语言写的程序,尚不知道用其他语言编写的程序中,是否还存在更多或更少的安全漏洞。
4 _! [- g9 y1 U5 Y. e. \7 N基于此,研究人员得出了如下结论:
2 I2 V& K# Q. s( A* U- _5 D4 Y4 ^
ChatGPT等AI生成的代码安全性并不稳定,用某些语言写的代码比较安全,而用其他语言写的代码却很容易遭受攻击。整体来看,它们就是一个黑盒子,生成的代码是有风险的。) q( ]$ w6 |: l1 \, }7 b
这并不意味着AI代码工具不能用,只是我们在使用时,必须考虑这些代码的安全性。) H1 O2 c, U% T% F" b
$ u  D( B& H9 M9 M$ o: ^
作者介绍
, x' h+ s  Q2 v) {- N四位作者均来自加拿大魁北克大学(Universite du Quebec en Outaouais)。
4 Z# R: [4 ~& V8 Q8 K  Q4 S/ @4 ?1 g6 W
" {' q' A) Q9 C1 L: E0 g
0 V5 ~) z/ @6 c9 t$ D# G
Raphaël Khoury,加拿大魁北克大学教授,曾经在拉瓦尔大学获得计算机学士、硕士和博士学位,研究兴趣集中在计算机安全方面。9 V: a$ k9 ~  I, X
6 F' q* ^9 e% H3 `
( D  o6 J5 k. k6 ~. f
5 j: P0 g1 A: O/ ^
Anderson R. Avila,魁北克大学国立科学研究院的助理教授,主要研究方向是数据隐私相关的联邦学习、网络安全和生物特征识别技术等,曾经在华为的加拿大研究院做过机器学习研究员。
9 V( h5 {+ o& W2 Y作者Jacob Brunelle和Baba Mamadou Camara也都来自加拿大魁北克大学。
& ^( c8 D) t. a; J9 d# n你用ChatGPT写过代码吗?感觉它的“安全意识”如何?
6 i) Q# `6 |/ f. C0 h% ]论文地址:
. G% d* m% }* m  w! |https://arxiv.org/abs/2304.09655" J- ]) |+ o/ [0 d
生成代码数据集:! ]# V! {) D- A  H
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-26 16:48 , Processed in 0.040995 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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