免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 系统安全 > 应用程序级拒绝服务攻防(4)

应用程序级拒绝服务攻防(4)

时间:2011-11-02 22:42来源:未知 整理:寂涯网络 点击:


防御 XML 实体扩展攻击的最简单方法就是在 XML 解析逻辑架构中简单地禁用内联 DTD
模式的使用即尽量减少可能的攻击面:关闭并未使用的功能,这样攻击者就不能滥用职权。
如果应用程序体系结构要求解析内联DTD文件,就应该采取一些额外措施来保护代码。第一
步限制扩展的实体的大小。记住,这里讨论的攻击者通过创建扩展成大字符串的实体执行攻
击,并迫使解析器消耗大量内存。某些框架允许覆盖字符串数量(可通过实体扩展创建),
从而缓解攻击。例如,对于.NET 应用程序,就可以设置 XmlReaderSettings 对象的
MaxCharactersFromEntities属性来实现。确定合理的最大值,并设置相应的属性:
  
另一种 XML 实体攻击类型是外部实体解决方案攻击。没有将实体替换字符串定义为常
量,仍然可以定义他们以便于从外部URL中 pull值。
<!ENTITY stockprice SYSTEM "http://www.stockticker.cxx/price"> 
 
XmlReaderSettings settings = new XmlReaderSettings();
settings.ProhibitDtd = false;
settings.MaxCharactersFromEntities = 1024;
 虽然实际行为取决于所实现的特定的 XML 解析器,但是每当 XML 解析器遇到
“&stockprice;”实体时,解析器就会请求 http://www.stockticker.cxx/price,然后替
换从 stockprice 实体接收到的响应请求。该功能非常有用,但它给某些恶意的拒绝服务攻
击提供便利。
滥用外部实体功能的最简单方式就是将XML 解析器发送给永远不会返回的资源;也就是
说,发送到无限循环中。其他替代方案则是流回无限量数据,或者如果攻击者不能或不愿建
立自己的网页——可能是因为不想留下任何证据——那么反而可以在第三方网站上将外部
实体指向某个非常大的资源。
同样,防御这种攻击的最简单方式就是完全禁用内联DTD架构。如果想允许本地实体扩
展,但却不需要外部实体扩展,那么一些框架将允许你通过改变XML 解析器的冲突解析程序
来禁用外部实体扩展逻辑。该方法在不同框架中也不尽相同。在.NET 框架中,为了禁用外
部实体扩展,可以简单地设置XmlReaderSettings对象的XmlReader属性来设置无效属性: 
XmlReaderSettings settings = new XmlReaderSettings(); settings.XmlResolver =
null; 
然而,在某些Java XML解析器实施过程中,将解析器对象设置为解析器应使用默认解
析器的无效信号。
XMLReader reader = XMLReaderFactory.createXMLReader();
reader.setEntityResolver(null);   

在这种情况下,需要实现自定义解析类。如果想解析外部实体,还需要实现自定义的解析程

该逻辑解决了账户在支付前固定持有的问题,但也造成了导致拒绝服务攻击漏洞的竞争
状态。如果两个用户相互沟通好同时向对方的账户中支付,用户A可以获得用户B 的账户锁,
同时用户 B 获得了对用户 A 的帐户锁。然后两个线程都在等待释放永远无法获得的
payer_account锁,从而将无限期地挂起。通常认为该问题为常规问题;但由于Dos威胁的
存在,它同样也是安全问题。2004 年发现苹果公司的 QuickTime 流媒体服务器很容易受到
该类故意死锁的攻击。该问题的解决方案在计算机科学中很有名;可查看哲学家问题和银行
家算法的相关参考。传统的高优先级“zero-day”漏洞可能越来越难发现和利用,但拒绝服
务攻击的新技术却不断地出现。作为有关Dos威胁和缓解技术行业开发者,这一点很重要。
我们还面临保密性和完整性的威胁。

本页地址 http://www.jybase.net/xitonganquan/20111102547.html

百度搜索更多

谷歌搜索更多

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com