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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 827|回复: 2

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

[复制链接]

1635

主题

718

回帖

7071

积分

论坛元老

积分
7071
发表于 2023-4-24 18:38:40 | 显示全部楼层 |阅读模式 来自 江苏泰州
萧箫 发自 凹非寺
5 ]; B" @) g  L" u& a: A量子位 | 公众号 QbitAI
9 b- c2 k" B# E4 X
# k' W1 z; l4 C
ChatGPT知道自己写的代码有漏洞,但它不说!% z0 f1 y  l6 W5 _. \+ _! g+ j
来自加拿大的一项最新研究发现,ChatGPT生成的代码中,有不少都存在安全漏洞。
6 \, X7 R/ b4 w* S/ S. S然而在被要求评估自己代码的安全性时,ChatGPT却很快发现了这些代码中的漏洞,并给出了一些解决方案和建议。
( W/ @& e& D# t0 f
/ Q$ D9 ]! W8 _3 _, Q# F8 t! m8 ~  f9 Y: M5 _; P+ U. Q
7 r; l: m$ W( K" Z7 k; \
这意味着它并不知道自己生成了糟糕的代码,但却查得出它写的代码有漏洞,也有能力修复这些漏洞
$ J6 C5 D6 I! _# q而在另一篇来自斯坦福的论文中,研究人员测试了另一位著名AI程序员Copilot,也发现了类似的问题。9 x; Y& ~( a. g5 d/ R1 h% K
所以,用AI生成代码为啥会出现这种状况?
4 k& p& C3 b) [: h+ s) E写的程序中76%有安全漏洞
% y) u. f! ?! `研究人员试着让ChatGPT生成了21个程序。
  C' L' L* \- W9 l; M整个测试过程如下,先提交需求给ChatGPT,生成相关代码,再对这些代码进行测试,并检查问题、潜在的缺陷和漏洞等。# ?* m( P9 v9 S  s$ i
+ |4 r( p3 N5 \: B: h1 u2 u
  n( {/ Z: N8 d4 [  _+ K; @+ x- |( n! O
  n1 n; g9 `! K( b" G8 I
研究人员给ChatGPT提了包括C++、C、Java和Python在内的21个写代码需求,这是评估的结果:
6 b8 [1 N' j1 R( \
6 s0 N* k  S! j
; x" w$ F& W' n. o6 j7 x/ ~" o) |( }( b9 f5 v! ?: |9 P/ g
统计表明,ChatGPT生成的21个程序中,有17个能直接运行,但其中只有5个程序能勉强通过程序安全评估,不安全代码率达到76%以上。
/ T- M1 ~" ^& h于是,研究人员先试着让ChatGPT“想想自己生成的代码有啥问题”。
% \0 V/ S* k( HChatGPT的回应是“没啥问题”:只要用户每次的输入都是有效的,那么程序一定能运行!, s- T) A+ i3 h. a2 a# ~8 v' H
显然ChatGPT并没有意识到,用户并不都是行业专家,很可能只需要一个无效输入,就能“引炸”它写的程序:6 t6 m) J4 L( h- _
) {/ P, [  a9 B4 Q) \! V
# l" K: A/ n  ?6 O0 _& B

; c$ h" Y7 i7 R' o8 C5 h发现ChatGPT不知道自己写的程序不安全后,研究人员尝试换了种思路——用更专业的语言提示ChatGPT,如告诉它这些程序具体存在什么漏洞。  N8 q2 i# I( t( {$ \5 k4 a
神奇的是,在听到这些针对安全漏洞的专业建议后,ChatGPT立刻知道自己的代码存在什么问题,并快速纠正了不少漏洞。
4 C  N; {0 ~) A) ^经过一番改进后,ChatGPT终于将剩余的16个漏洞程序中的7个改得更安全了。
! c: u4 A4 X4 V" Q8 I研究人员得出结论认为,ChatGPT并不知道自己的代码中存在安全漏洞,但它却能在生成程序后识别其中的漏洞,并尝试提供解决方案。
/ @6 V) U$ A2 P, @论文还指出,ChatGPT虽然能准确识别并拒绝“写个攻击代码”这种不道德的需求,然而它自己写的代码却有安全漏洞,这其实有着设计上的不合理之处。. t# a6 I4 H) S
我们试了试发现,ChatGPT确实会主动拒绝写攻击性代码的要求:8 L/ b, q9 p8 M1 g/ z% h

! z8 \- k# a- C: f5 H, @" C6 a. t8 ~$ t4 P1 Y

% @* M7 Q0 S4 a" @$ i$ D& T大有一种“我不攻击别人,别人也不会攻击我写的代码”自信感。
5 V; w, f/ k  n5 J* `6 \4 j/ b程序员们在用它辅助写代码的时候,也需要考虑这些问题。1 J4 p, k9 ~3 c4 R  O
Copilot也存在类似问题
5 Q" V5 l. c5 }/ S1 o1 U事实上,不止ChatGPT写的代码存在安全问题。: j7 y/ l! T! C/ u3 \1 t5 `
此前,斯坦福大学的研究人员对Copilot也进行过类似调查,只不过他们探查的是用Copilot辅助生成的程序,而并非完全是Copilot自己写的代码。  z& Z4 y# k3 C4 \# Z
研究发现,即便Copilot只是个“打辅助”的角色,经过它改写的代码中,仍然有40%出现了安全漏洞。; B# Z7 g5 g5 \" A; \$ a  r

; ?* @$ q8 {  t8 M
/ J: I" _; F$ j9 L& n4 \0 A- S8 Q8 a- s: _2 P$ f( j' r9 R
而且研究只调查了Copilot生成代码中的一部分,包括C、Python和Verilog三种编程语言写的程序,尚不知道用其他语言编写的程序中,是否还存在更多或更少的安全漏洞。
9 G' [$ ^3 Z) c) x$ m  t基于此,研究人员得出了如下结论:: ^9 L& k1 c# m" n
. t# W  l& Q1 `5 {4 u
ChatGPT等AI生成的代码安全性并不稳定,用某些语言写的代码比较安全,而用其他语言写的代码却很容易遭受攻击。整体来看,它们就是一个黑盒子,生成的代码是有风险的。3 ?% D+ j: a6 V! O3 ], ^
这并不意味着AI代码工具不能用,只是我们在使用时,必须考虑这些代码的安全性。$ E3 Z. u+ m2 e9 O  N  }" X4 T

5 U4 q+ A3 E  E3 ^作者介绍
) B: U+ p' p, v四位作者均来自加拿大魁北克大学(Universite du Quebec en Outaouais)。4 B, I2 i, }; j+ f  {* c' m

$ w, L8 |4 `7 W
# }& d- l  ?  o0 k2 {4 d0 D' X8 s
, @! \# c9 @+ k* r. vRaphaël Khoury,加拿大魁北克大学教授,曾经在拉瓦尔大学获得计算机学士、硕士和博士学位,研究兴趣集中在计算机安全方面。
) c" k- C; J1 L
# F$ e2 A6 {# ^' ]7 x
5 C" m1 @# z! ?. V
" b5 q4 S( A0 ]0 xAnderson R. Avila,魁北克大学国立科学研究院的助理教授,主要研究方向是数据隐私相关的联邦学习、网络安全和生物特征识别技术等,曾经在华为的加拿大研究院做过机器学习研究员。: A! a1 J! y, R4 M* l2 X5 ]$ v
作者Jacob Brunelle和Baba Mamadou Camara也都来自加拿大魁北克大学。0 J0 x- U  S9 y
你用ChatGPT写过代码吗?感觉它的“安全意识”如何?( _. G0 X. Z$ N' x$ e; E
论文地址:3 \# A& E8 T4 r1 x
https://arxiv.org/abs/2304.09655
# Y: Y7 L+ V; S1 E" g4 l) w/ \生成代码数据集:
% W2 [' Q- C( x0 _% J9 Zhttps://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-2-6 14:15 , Processed in 0.040971 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

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