“服务器端模板注入”漏洞被披露出来,那么,它与跨站脚本之间有何区别?相应地,防御策略也是否有所不同?
Michael Cobb:验证并清除来自不受信任来源的输入是软件开发人员需要遵守的重要原则,以防止恶意代码注入攻击如跨站脚本(XSS)和SQL注入等。尽管清理用户输入是安全编程的核心原则,然而数据未被清理的情况仍旧时有发生,且生成黑客可以攻击用户及系统的漏洞。
Web安全公司PortSwigger的研究人员研制了Web应用安全测试工具Burp Suite,该工具最新发现一个不知名的注入漏洞级别的漏洞,他们将其称作“服务器端模版注入”。
模版引擎广泛用于从展示层分离程序逻辑,维基、博客和内容管理系统都倾向于使用模版引擎。不仅因为这是良好的编程实践,也因为它能够使懂很少HTML知识的员工轻松地更新和维护网站内容或编写HTML格式的电子邮件。它们也让专业的网页设计师利用这些代码快速而高效地建站。流行的模板包括Twig、Jade以及XWike Enterprise。
一些引擎使用简单的字符串,占位符由数据替换。举个例子,一封电子邮件模板开头可能是 “Dear {user_firstname}” ,在模板引擎中,”user_firstname” 则由底层数据库中的’first name‘所取代。其他模板也用所谓的”if-defined-conditionals”来测试数据存在与否,有些则包括额外的灵活性,诸如用for-each循环、递归宏和嵌入式表达来提供更丰富的功能。
对于驻留在服务器上的模板引擎代码来说,验证和清理任何用户提供的添加进模板的输入和内容都是非常必要的;否则,则很可能发生服务器端模板注入攻击。不像XSS攻击,它能够直接攻击底层Web服务器,而非只是它的用户。尽管一些模板引擎部署了沙箱来限制访问,确保能安全处理不信任的输入,PortSwigger公司发现很多这类注入攻击都能绕过这些沙箱。该项研究解释了检测和利用模板注入漏洞的方法,并演示了利用五个最流行模板引擎的各种利用方式,包括沙箱逃避。
目前PortSwigger并不确定该模板注入攻击有多普遍,不过它打算使用Burp Suite来检测这类注入漏洞。简单和相对扁平的模板如Mustache不会引起风险,用户无法从模板语言中调用函数,尽管HTML输出仍然需要被清理。Wikipedia背后的开源模板引擎MediaWiki是更为灵活的引擎,根据PortSwigger,其沙箱环境在防止沾染潜在危险模块和功能方面做的非常好。
该研究表明企业开发团队不应该盲目依赖网站开发工具来实现最佳实践。安全团队需要仔细评估模板引擎是如何处理用户输入的以及内置安全检查或沙箱是否会被规避。阅读福袋文档可以在输入检查使显示明显的缺点,不过分析师应该仔细检查模板的代码以及是哪些引擎能够允许用户输入以及查看是否安全检查会被绕过。缓解技巧之一就是将模板引擎置于一个强化的Docker容器沙箱环境中,来追踪任何恶意代码执行。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
华为宋端智:“防患于未然”才是安全的最高境界
面对这次WannaCry的爆发,有效地破解它只是第一步,更关键的是用户要提升防御未知威胁的技能,建立无处不在的安全体系……
-
威胁检测和管理的演变(二)
对于任何新IT技术,重要的是,不要被供应商的营销炒作蒙蔽了双眼。更专注于检测和响应并不意味着端点防御技术不再具有相关性。
-
安全沙箱程序:深度防御还是分层漏洞?
在这篇文章中,我们会讨论应用程序沙箱、或者安全程序沙箱的概念,包括这些程序到底是什么、它们如何工作以及它们带来的漏洞是否比阻止的漏洞更多。
-
VUPEN公司披露谷歌浏览器中的沙箱缺陷
VUPEN公司称其研究团队发现了谷歌浏览器中的一个零日漏洞。该漏洞让研究团队绕过了Chrome所有的安全功能,包括地址空间布局随机化(ASLR),数据执行保护(DEP)。