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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 888|回复: 2

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

[复制链接]

1635

主题

718

回帖

7071

积分

论坛元老

积分
7071
发表于 2023-4-24 18:38:40 | 显示全部楼层 |阅读模式 来自 江苏泰州
萧箫 发自 凹非寺
; S* \  f4 ~6 f2 Q量子位 | 公众号 QbitAI% a! g# T  g! v1 Y
) k6 ?  G( A6 D) @1 l. Z
ChatGPT知道自己写的代码有漏洞,但它不说!
, r: G* b& @0 v3 i来自加拿大的一项最新研究发现,ChatGPT生成的代码中,有不少都存在安全漏洞。$ _' P+ m# X2 H
然而在被要求评估自己代码的安全性时,ChatGPT却很快发现了这些代码中的漏洞,并给出了一些解决方案和建议。! ^& b! s0 O6 D% {4 @
8 `/ ]9 c7 y0 d

0 n1 \: J4 ?$ ?- ?$ F9 a% ?
7 b4 Z- N7 ?0 r3 c' r这意味着它并不知道自己生成了糟糕的代码,但却查得出它写的代码有漏洞,也有能力修复这些漏洞9 S# E* Y  i0 f. H7 k
而在另一篇来自斯坦福的论文中,研究人员测试了另一位著名AI程序员Copilot,也发现了类似的问题。
4 D: R5 x% ^7 r- B# f3 E5 z所以,用AI生成代码为啥会出现这种状况?
7 R0 @5 D9 h# n- Q写的程序中76%有安全漏洞
! u) h% X% `  b研究人员试着让ChatGPT生成了21个程序。
; L: X  f. I( P/ q- C/ ~& |4 z- N4 I! E整个测试过程如下,先提交需求给ChatGPT,生成相关代码,再对这些代码进行测试,并检查问题、潜在的缺陷和漏洞等。
0 M: S+ ?8 h9 o, n8 _$ y. ]' e
. `& q) u* Q7 `! R% c4 ~. |! [- j

0 k& C% A8 M/ h6 F研究人员给ChatGPT提了包括C++、C、Java和Python在内的21个写代码需求,这是评估的结果:7 ^' w3 x" L' I- J* l

# R9 M0 H) t' q" Z7 A( f8 y0 e4 F/ z* G+ Z) R! `# }6 Y8 K- ?$ l

& L( M* V5 s# D统计表明,ChatGPT生成的21个程序中,有17个能直接运行,但其中只有5个程序能勉强通过程序安全评估,不安全代码率达到76%以上。- u5 \8 g3 b: J- l4 w9 h8 _
于是,研究人员先试着让ChatGPT“想想自己生成的代码有啥问题”。' G' W5 q& t: F
ChatGPT的回应是“没啥问题”:只要用户每次的输入都是有效的,那么程序一定能运行!
2 ?8 A3 G, j4 O' Z; C* Y显然ChatGPT并没有意识到,用户并不都是行业专家,很可能只需要一个无效输入,就能“引炸”它写的程序:) b9 [; u7 D) ]8 r
6 Y9 R& r: h' G' o9 C5 x

  z/ N8 J9 I: M4 C& ^
9 z7 l/ b% h# O- Y发现ChatGPT不知道自己写的程序不安全后,研究人员尝试换了种思路——用更专业的语言提示ChatGPT,如告诉它这些程序具体存在什么漏洞。
2 G" U/ Z* g) P6 B1 x; e& N神奇的是,在听到这些针对安全漏洞的专业建议后,ChatGPT立刻知道自己的代码存在什么问题,并快速纠正了不少漏洞。3 I/ N8 ]- s4 Q. L
经过一番改进后,ChatGPT终于将剩余的16个漏洞程序中的7个改得更安全了。/ k# P# U* X" S2 m! [
研究人员得出结论认为,ChatGPT并不知道自己的代码中存在安全漏洞,但它却能在生成程序后识别其中的漏洞,并尝试提供解决方案。5 @' v3 N3 l! t
论文还指出,ChatGPT虽然能准确识别并拒绝“写个攻击代码”这种不道德的需求,然而它自己写的代码却有安全漏洞,这其实有着设计上的不合理之处。
: d' d6 h2 E" J, i, V  d( Y我们试了试发现,ChatGPT确实会主动拒绝写攻击性代码的要求:5 O& ]& {( B+ K0 b& I& G

: [; B+ E4 U: \) _/ ?) U' z9 M/ W9 A. v7 n# A9 m

' W. E1 G9 P1 g4 M/ Y大有一种“我不攻击别人,别人也不会攻击我写的代码”自信感。
% c! c; n; d% C. o0 Q: q程序员们在用它辅助写代码的时候,也需要考虑这些问题。
: w, T+ t/ h" a! |" PCopilot也存在类似问题8 |9 L+ l5 H; l
事实上,不止ChatGPT写的代码存在安全问题。
" B& S% q; o$ D) q4 a% a; K7 R" R此前,斯坦福大学的研究人员对Copilot也进行过类似调查,只不过他们探查的是用Copilot辅助生成的程序,而并非完全是Copilot自己写的代码。6 W4 k) I$ `" n$ O! D9 d
研究发现,即便Copilot只是个“打辅助”的角色,经过它改写的代码中,仍然有40%出现了安全漏洞。0 L* Y1 J' q" s. d8 x% w

0 J6 X" T8 j7 Z  l! E( q0 S
+ N) Y8 {# o/ P: {, q
# F# V5 @# F3 j2 h而且研究只调查了Copilot生成代码中的一部分,包括C、Python和Verilog三种编程语言写的程序,尚不知道用其他语言编写的程序中,是否还存在更多或更少的安全漏洞。, G" X3 L/ t; k# q- x+ }+ Y
基于此,研究人员得出了如下结论:" ]' Z, x- T* ]5 ]3 s& r
6 f% u2 v7 \% {. g" |8 I
ChatGPT等AI生成的代码安全性并不稳定,用某些语言写的代码比较安全,而用其他语言写的代码却很容易遭受攻击。整体来看,它们就是一个黑盒子,生成的代码是有风险的。) C9 V  f/ v1 |( L$ Q, r/ K
这并不意味着AI代码工具不能用,只是我们在使用时,必须考虑这些代码的安全性。+ d6 [$ x. n$ X* H1 v& _

7 f2 _( n% l  Q' Y作者介绍- J5 ?+ Q" K2 y
四位作者均来自加拿大魁北克大学(Universite du Quebec en Outaouais)。
2 q) X6 i% o2 A7 B2 b7 T+ i  h, l! `8 I& {
# Y% t- n! T" L8 K

7 e& U+ r. g& a, e. T, PRaphaël Khoury,加拿大魁北克大学教授,曾经在拉瓦尔大学获得计算机学士、硕士和博士学位,研究兴趣集中在计算机安全方面。
  T4 M2 N. j$ |* M% S. h  B- J% A* f+ l
2 a. W/ f4 _9 {

+ z3 m: g. b& s4 R) tAnderson R. Avila,魁北克大学国立科学研究院的助理教授,主要研究方向是数据隐私相关的联邦学习、网络安全和生物特征识别技术等,曾经在华为的加拿大研究院做过机器学习研究员。  F/ A: R' d5 p& u. H6 Q
作者Jacob Brunelle和Baba Mamadou Camara也都来自加拿大魁北克大学。
$ Y$ ^0 M4 [) {5 h# h1 p你用ChatGPT写过代码吗?感觉它的“安全意识”如何?* ^8 O, B# N8 s  _8 o. w
论文地址:
% ]4 Y' q7 a9 y9 S+ ]https://arxiv.org/abs/2304.09655
* S+ _* i: h  r) g生成代码数据集:: }; E* f$ S* v; [/ y- i& 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-26 16:49 , Processed in 0.039004 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2026 Discuz! Team.

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