泄漏!知名程序员AI受害,3000字带你避坑

一,开源大佬也难逃“AI安全问题”

在程序员的世界里,Simon Willison是一个知名人物。

他不仅是Django框架的联合创始人,几乎每一位开发者,都用过他写的Django Web框架(全球超过60%的Python Web应用基于此框架开发),还是创造了开源工具Datasette,在github上拿下9.9k star的优秀开源者。

泄漏!知名程序员AI受害,3000字带你避坑

就是这样一位堪比“程序员启蒙”式的地表最强开源者,也没逃过AI的谎言。

他用AI助手生成的代码中,竟藏着经典的XSS漏洞。

附:关于AI编程其中的风险及漏洞原理,我们的AI安全系列文章有详细介绍过—最新AI叛变!除了祈祷,程序员还能做什么?

二,漏洞是如何被AI“写”进去的?

Simon的遭遇是个典型的技术蒙太奇,整个过程仅仅用了三步,并且他无意间在博客里记录下了自己的“受害”过程(tools.simonwillison.net | tools)。

  • 第一步
    他决定开发一个支持HTML富文本的幻灯片工具,允许用户上传自定义内容,可以用于处理演示文稿,有创建幻灯片,处理图片,生成 HTML 代码等一系列能力。

  • 第二步

    他调用了AI助手进行编程,向AI助手描述了详细的功能需求,要求AI助手输出一段代码。

  • 第三步

    AI助手根据他的需求,生成了一段符合需求的代码。


可惜的是这段代码并未做安全过滤,而且经啄木鸟AI编程安全团队验证,这段代码存在XSS安全漏洞。如果黑客利用了这个漏洞,可以把作恶触手伸到每一个用了这段开源代码的公司。

泄漏!知名程序员AI受害,3000字带你避坑

泄漏!知名程序员AI受害,3000字带你避坑

注:我们已在尝试与该作者取得联系,告知我们的风险扫描结果,并期待协助解决。

三,XSS引发的灾难级事故

——假设用AI写的这个有xss漏洞的项目,流入市场,被黑客利用后,将会面临什么?

你是一位开发,有一天接到需求,要开发一个活动公告板,用来发布公司的活动通知(如培训日程、年会安排)。产品经理说,公告板需要支持上传富文本内容,因为要用html来美化内容排版。

你在github上进行一番搜索,发现了一个这个开源项目刚好符合你们的需求,于是你复用了其中的代码,交付了需求,活动公告板顺利上线。

但同时黑客发现了这段代码里存在XSS漏洞,并且利用了它,往公告功能里插了一段恶意脚本,且这段脚本会获取企微聊天记录、系统密码等。

之后每一位点开公告查看的同事,都会被窃取聊天记录和账号密码,恶意脚本渗透到全公司员工的电脑中,黑客就这样轻而易举获取你们公司的全部系统权限和机密文件。

泄漏!知名程序员AI受害,3000字带你避坑

(啄木鸟团队验证该漏洞属实)

四,程序员代码里的XSS漏洞,为啥能泄漏全公司的数据

  • 先说说漏洞原理和特征

XSS的本质是浏览器误将用户输入当作代码执行 。比如用户提交<script>窃取cookie的代码</script>,未过滤的网站会直接执行该脚本,导致所有网站访问者信息泄露。

泄漏!知名程序员AI受害,3000字带你避坑

举个简单的栗子?,你是个超市老板(网站发布者/编写者),进货的时候,黑客在货物中偷偷做了手脚(利用漏洞),每一个顾客来买东西,只要靠近这批货,都会被伤害。

这里的“伤害”,可能就是用户的个人信息、账号密码、信用卡密码等信息被黑客窃取。

  • 为什么漏洞会流入市场?

(1)隐蔽性:恶意脚本通常被巧妙地隐藏,看似只是普通的HTML标签或格式化内容,开发者和用户往往难以察觉其潜在的危险。而黑客可能将恶意脚本藏在公告、广告、评论或任何可以输入的地方,外观上没有任何异常。

(2)开发者疏忽:在开发过程中,许多开发者可能忽视了对用户输入的过滤和安全检查,尤其是在时间紧张或重视功能实现、界面美化的情况下。由于缺乏安全性意识,恶意脚本得以执行。

(3)第三方库和开源项目的风险:开发者常使用开源项目来加速开发,但有些开源代码可能存在安全漏洞。如果这些项目没有经过充分审查,漏洞便可能被引入到实际应用中。

  • 如何对抗XSS漏洞?

(1)  输入过滤:所有用户输入的数据都应该经过严格的检查和清理,尤其是针对HTML、JavaScript等敏感代码。通过对特殊字符(如 <、>、& 等)进行编码或替换,以确保不同类型的输入都能得到妥善处理。

(2)  输出转义:即便对用户输入进行了过滤,也不能掉以轻心。当将用户输入的数据插入到HTML、JavaScript或CSS等内容中时,必须确保这些数据不会被浏览器当作代码执行。通过对输出数据进行转义(例如将 < 转换为 &lt;),可以有效防止潜在的XSS攻击。泄漏!知名程序员AI受害,3000字带你避坑

(3)  内容安全策略(CSP):CSP是一种浏览器端的安全机制,通过指定允许加载的资源和执行的脚本来源,来减少XSS攻击的风险。即便攻击者成功注入了恶意脚本,也无法从不受信任的源加载或执行这些脚本。通过配置严格的CSP规则,开发者可以进一步减少XSS漏洞带来的影响。

(4)  漏洞狩猎:AI虽然容易被坏人利用,用来生成漏洞。但我们也可以利用AI来识别和修复漏洞。随着AI技术的发展,越来越多的安全团队用AI做漏洞检出和修复,我们啄木鸟AI编程安全团队也在对此场景做对应能力建设。

泄漏!知名程序员AI受害,3000字带你避坑

✧ 静态扫描 :针对多种语言、不限框架项目代码,通过大模型针对项目函数进行依次识别,精准分析出与web入口点相关的代码(即处理用户输出信息的入口函数),通过大模型的精准语义和代码逻辑理解能力,识别未经安全过滤的输入点,转换成后续检测逻辑可使用的信息,帮助提升xss漏洞的检测效果。

✧  动态测试 :自动化工具模拟攻击者注入<svg onload=alert(1)>等500种XSS变体,验证防护是否生效。

四,AI编程时代的思考

Simon的案例揭示了一个悖论:AI既可以是安全守护者,也可以是漏洞制造者。2025年某企业通过AI模型自动修复了83%的XSS漏洞,但同期由AI生成的漏洞数量也增长了55%。

在使用AI进行编程时,需要注意以下问题:

1.  零信任原则:永远怀疑AI的“完美答案”

● 在Prompt中强调安全要求:在向AI提出编程请求时,务必明确要求生成的代码符合安全标准。例如,提示AI“请生成防XSS的Python代码,使用Django自动转义机制”以确保AI生成的代码具备基本的安全防护。

● 对AI生成代码进行“红队测试”:即模拟攻击者利用漏洞进行渗透测试。通过人工验证输入处理代码的逻辑,确保其能够有效防止XSS攻击。

2.  建立安全协作流水线

AI编程带来的安全问题始终存在,开发团队不应忽视。建议建立自有的安全协作流水线,把安全测试和代码审计贯穿始终。

● 每一次AI生成的代码都应该经过严格的安全审查和自动化测试,确保 AI 遵循了企业的安全编码规范。

● 自动化工具应与人工审核相结合,确保AI生成的代码不会成为攻击的源头。持续监督AI的行为并调整,确保其不断适应新的安全威胁。

3.  警惕供应链污染

● 优先选择经过安全审计的开源项目:优先使用那些已经经过严格安全审计的项目,这样至少能保证代码源是可信的。

● 使用SBOM(软件物料清单):SBOM常用于跟踪软件组件及其依赖关系的工具。通过SBOM,开发者能够清晰地了解所有依赖项的来源和版本,从而减少潜在的安全风险。如果发现某个依赖项存在安全漏洞,可以迅速采取措施进行替换或修复。

我们作为专注AI编程安全的研究团队,也在不断改进和推出针对这一类场景的定向防护解决方案。例如,啄木鸟3.0系统,专注于自动识别和修复AI生成代码中的潜在安全漏洞,帮助开发者更好地管理和应对AI编程带来的安全挑战。

通过这些措施,我们可以在享受AI带来的开发效率提升的同时,确保代码的安全性和可靠性。

在这个技术与风险赛跑的时代,唯有将安全意识植入开发基因,方能避免“用AI挖坑,再用AI填坑”的无限循环。

借用一位大佬说的话:“AI的‘成长烦恼’需要技术界与安全界共同应对——既要享受技术红利,也要筑牢防护根基。”

前沿技术大模型技术新闻资讯

5000字图文讲透:MCP+A2A协议如何让AI从「大模型」进化到「超级分布式智能体」

2025-5-15 15:55:32

前沿技术多模态技术新闻资讯

AI 时代的超级应用,是一个超级框

2025-5-15 16:25:24

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
搜索