[发明专利]用于减缓跨站弱点的方法和装置在审
申请号: | 201180023769.X | 申请日: | 2011-06-08 |
公开(公告)号: | CN102893576A | 公开(公告)日: | 2013-01-23 |
发明(设计)人: | G·伯德加尼;A·沙拉巴尼 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 北京市中咨律师事务所 11247 | 代理人: | 张亚非;于静 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 减缓 弱点 方法 装置 | ||
技术领域
本公开大体而言涉及数据处理系统中的Web应用的跨站脚本弱点,且更具体而言涉及防止web浏览器访问的web应用的脚本语言中嵌入恶意代码。
技术背景
跨站脚本(Cross-Site Scripting,XSS)为普遍性问题,其中在一个形式中,来自客户端的用户输入原样(as-is)反射(reflect)或回送(echoback)至返回的来自服务器超文本标记语言(HTML)输出中。此类型的弱点意味着,攻击者可精巧地制作非常特定的有效负荷,该有效负荷当在输出中回送时包括在浏览器中执行的脚本。由于脚本是作为输出的一部分返回的,因此脚本可以访问与返回该输出的域(例如,网站)有关的所有cookie及数据。将精巧地制作的有效负荷发送至远程牺牲者将会使有弱点的网站返回恶意脚本,从而允许恶意脚本与有弱点的网站充分交互,而不受由浏览器的同源策略(same origin policy)的安全机制施加的限制。
跨站脚本的最简单解决方案为输入验证,该输入验证不允许可在返回的输出中导致脚本动作的任何字符或模式。输入验证是使用肯定安全模型(positive security model)、否定安全模型(negative security model)或模型的组合来执行的,该肯定安全模型定义允许什么,该否定安全模型定义不允许什么。在二者状况下,不满足所定义的条件的请求被拒绝或修改。
在否定安全模型中,通常定义用于阻挡的已知攻击模式。举例而言,具有已知为攻击有效负荷的“<script>”的值的输入可被阻挡。此模型中的主要挑战是要一直了解最新的存在的所有可能的攻击模式(尤其在使用一般(generic)模式时)。否定安全输入验证通常将不会达成完全保护,因此如果可能,则建议开发者使用肯定安全模型。
在肯定安全输入验证模型中,由于成功利用(exploit)仅具有字母数字字符的跨站脚本问题是困难的,所以可指定仅允许字母数字字符的定义。肯定安全输入验证模型的主要挑战在于中断应用的可能性。举例而言,应用的逻辑可能需要使用可能危险的字符,从而导致覆盖所有可能的跨站脚本攻击向量、而不中断应用的功能成为越来越困难的任务。
用于跨站脚本的替代解决方案为通过编码输出来净化输出。在输入得以添加至输出以前编码输入将确保浏览器不会将输出中接收到的输入作为脚本来处理。因为回送的输入可在包括返回属性的部分、标签(tag)的值、在批注(comment)内或在脚本标签内的许多不同上下文中被添加至输出,所以编码输入需要匹配特定上下文。
举例而言,考虑在以下具有URL(统一资源定位器)的代码片断中的请求:
ht tp://server/welcome.j sp?name=John。
该示例在诸如以下的输出中原样返回两个不同上下文中的名称(name)参数:
为在“Hello”语句中利用跨站脚本,攻击者将发送诸如以下的请求:http://server/welcomejsp?name=John<script>hijack()</script>于是,请求被返回为:
脚本将由于第一回送内容而被成功利用,且属性中的值将为简单值。此问题的解决方案将为使用HTML编码技术,且尤其以符号“<”代替符号“<”。
为在第二种情况中利用跨站脚本,攻击者将发送不同请求,例如:
http://server/welcome.jsp?name=John;hijack()//
于是,请求被返回为:
示例中的脚本因回送内容的第二实例及新添加的JavaScriptTM码(Java和所有基于Java的商标和徽标是Oracle和/或其附属企业的商标或注册商标)而被成功利用。欢迎文字(welcome text)仍为纯文本。对该示例的问题的解决方案将是使用STRING(字符串)编码技术,该STRING编码技术将以/(反斜线+双引号)替换双引号。
刚刚描述的解决方案是有效(valid)的且是明确定义的,但是需要修改应用代码,这是昂贵的且有时是困难的过程,尤其在处理遗留应用、第三方模块及外包应用时。代码修改需要时间,从而当已布署系统时,会使系统曝露,直至代码修复为止。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180023769.X/2.html,转载请声明来源钻瓜专利网。