支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


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

发布日期:2025-04-15 05:09:13 浏览次数: 1570 作者:腾讯技术工程
推荐语

知名程序员也中招AI编程陷阱,啄木鸟团队深度解析XSS漏洞风险。

核心内容:
1. 知名程序员Simon Willison遭遇AI编程安全问题
2. AI助手生成代码隐藏XSS漏洞的过程解析
3. XSS漏洞如何引发公司数据泄露灾难

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家


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

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


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



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


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


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

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

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

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

  • 第二步

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

  • 第三步

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


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




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



三,XSS引发的灾难级事故

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


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


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


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


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



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


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

  • 先说说漏洞原理和特征

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



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


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

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

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


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


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

  • 如何对抗XSS漏洞?

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


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


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


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



✧ 静态扫描 :针对多种语言、不限框架项目代码,通过大模型针对项目函数进行依次识别,精准分析出与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的‘成长烦恼’需要技术界与安全界共同应对——既要享受技术红利,也要筑牢防护根基。”

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询