点击上方蓝字关注我们
谷歌的软件工程师们发布了一项提案,承诺将打击原型链污染。这类漏洞已成为网络安全的祸害。
谷歌支持的提案——已提交技术工作组TC39批准——旨在创建JavaScript对象和blueprint之间的边界。该技术的工作原理是“移除允许攻击者从对象跳转到blueprint的路径”。
该提案的技术细节已发布在GitHub上。(https://github.com/syg/proposal-symbol-proto)
什么是原型链污染?
可选的安全模式
正如GitHub帖子中所解释的,“该提案试图通过引入一种可选的安全模式来减轻原型链污染,在该模式下无法使用字符串的形式来访问prototype属性,而要求使用特定的方法(Object.getPrototypeOf)或提议使用新的符号属性来访问它们”。
该提案的合著者圣地亚哥•迪亚兹(Santiago Diaz)告诉《The Daily Swig》,“我们的目标是打破已知的漏洞利用技术,同时尽可能与现有的代码库兼容,以便在互联网上广泛采用这种缓解措施。”
负责维护JavaScript规范的工作组TC39,上周批准了该提案从第0阶段进入第1阶段,开始了五个阶段的批准之旅。
迪亚兹解释道:“这一点的意义在于,TC39将原型链污染视为一个值得研究(并有望解决)的问题。在接下来的几个月里,我们将反复研究提案的具体方面,并进行工程设计,以找到提案规范和工程实现之间的平衡,并希望使TC39成员和开发人员都能接受。”
一旦提案进入最后阶段(第4阶段),提案即被视为最终提案,浏览器厂商可以对其软件进行代码上的更改。迪亚兹总结道:“这反过来又向开发人员发出信号,要求他们开始采用这种新的缓解措施,并将其投入生产。”
解决方案
《Daily Swig》的母公司PortSwigger的安全研究员加雷斯·海斯(Gareth Hayes)对这些提议表示很感兴趣。
Hayes说:“这是一个防止原型链污染的提议,开发者可以通过执行一些代码来启用安全模式,并删除包含__proto__在内的一些属性,从而避免原型链攻击。”
“提案建议用符号属性来使网站能够继续访问__proto__,以维持网站的正常功能。攻击者无法直接使用这些符号,因为这需要执行JavaScript代码。”
谷歌的提议并不是第一个这样的提议。然而,根据谷歌的博客文章总结出,现有的使用Object.freeze、preventExtensions和seal等方法来防止对原型链进行修改的方案,通常具有许多“难以部署的缺点”。
原文链接🔗
https://portswigger.net/daily-swig/google-engineers-plot-to-mitigate-prototype-pollution
来源:The Daily Swig
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...