梦晨发自凹非寺量子位报道|公众号QbitAI GitHub的AI代码生成插件Copilot发布才两个多月,就闯下不少大祸。 照搬过开源代码,还有生成的内容包含用户隐私和歧视性预言等。 GitHub的对策也够粗暴——拉清单。 觉得不合适的词统统列入敏感词,现在连Boy和Girl都不能用了。 大神的平方根倒数速算法连代码带注释里的“whatthef**k?”就被Copilot原样照搬。 这事被曝光后,Github悄悄把能召唤出这段经典代码的“qrsqrt”提示词加入了黑名单,顺便把f**k相关的词也给加进去了。 △Copilot照搬大神代码作案现场 发现这事的是纽约大学的副教授BrendanDolan-Gavitt,他最近一项研究就是找出Copilot加密敏感词列表中的上千个词。 翻过他的履历后才发现,这位破解大师还因为找敏感词这事在IEEE上发过论文。 以色列和性别词汇都不让用 Brendan发现Copilot敏感词列表就在VSCode的插件包里,只不过是加密的。 加密后的敏感词是32位Hash值,逆运算解密不太可能。 不过这位大哥在敏感词领域颇有经验,直接用以前搜集到的常见敏感词挨个碰撞。 常见的都尝试过以后,剩下的就暴力穷举。 穷举法最大的难点在于同一个Hash值可能对应许多词,他举例“-1223469448”就对应80万个11位字母数字的组合。 于是Brendon搞了个GPT-2模型用来判断哪种组合最像英语。 就这样遇到困难解决苦难,破解方法从最开始的简单穷举,最后都用上了GPU加速和Z3解约束算法(ConstraintSolver) 最终现存的1170个敏感词他找出了1168个,只剩最后两个算出来的结果实在没有长得像人话的,只好放弃了。 通过对Copilot插件每一个版本分析,他还能跟踪具体哪个敏感词是在哪次更新中添加的。 他们把敏感词分了9大类25小类。 不过也有一些不算攻击性但可能出现争议的,比如Israel(以色列)和Palestan(巴勒斯坦),还有Man、Women、Girl、Boy这些常见的性别称谓。 敏感词对用户输入的提示词和Copilot给出的建议结果都有效。 他测试让Copilot生成一个国家列表,按字母顺序生成到伊朗、伊拉克,下一个讲道理是以色列的时候就卡住了。 Debug日志给出的信息是检测到了slur(侮辱性语言)。 Brendon认为列敏感词的方法只能算一个80分的临时措施,并不能真正解决问题,毕竟真正解决需要仔细核查训练数据,还挺花时间的。 顺便说一下,Github知道这事以后打算把敏感词列表从插件包里挪到服务器端,增加破解的难度。 在IEEE发过敏感词论文 Brendon此举吸引了大量关注,他也借机宣传了一下之前的研究。 欢迎新来的老铁,你们可能同样会喜欢我去年在IEEES&P发的论文,我们用自动方法提取了手机App里的敏感词列表和其他秘密。 在这篇论文中,他和团队测试了15万个安卓App,其中4000多个存在敏感词列表。 这些App分别来自谷歌商店,百度手机助手和三星手机预装App。 他们把敏感词分了9大类25小类。 然后重点测试了几个App,列了一个表,黑点代表存在该类的敏感词。 列几个有趣的结论: 被屏蔽最多的是下流话(13)和恐吓威胁(11)。有的App屏蔽了简单密码,比如1234这种。中文App的敏感词数量显著多于英文和韩文的。 最后,团队还把找到的所有敏感词汇总成一个大表,英文、中文和韩文部分都有。 但是由于里面的词实在太辣眼,根本不适合公开发表,论文最终版里这张大表被移除了。 除了敏感词以外,他们还发现了很多App存在秘密入口,比如NBCSports里点击13次版本号,输入密码后就能进入隐藏的Debug界面,苹果版还和安卓版密码一样。 密码是“UUDDLRLRBASS” 有点“上上下下左右左右BABA”那味了。 IEEE论文地址:https://panda.moyix.net/~moyix/papers/inputscope_oakland20.pdf 参考链接:[1]https://www.theregister.com/2021/09/02/github_copilot_banned_words_cracked/[2]https://twitter.com/moyix 度拉糖肽 https://www.lillymedical.cn/zh-cn/publication/diabetes/trulicity/P00170 ![]() |
1
![]() 鲜花 |
1
![]() 握手 |
![]() 雷人 |
![]() 路过 |
![]() 鸡蛋 |
业界动态|串串网
2025-05-10
2025-05-10
2025-05-10
2025-05-10
2025-05-10
请发表评论