当前位置: 首页 > 图文教程 > 网络编程 > ASP > 保护 XML Web 服务免受黑客攻击

ASP
Access 2000 数据库 80 万记录通用快速分页类
Microsoft JET Database Engine 错误 ''80004005'' 未指定的错误的完美解决方法
收藏的ASP常用的函数集
asp分页的一个类
ASP开发网页牢记注意事项
ASP下操作Excel技术总结分析
ASP数据岛操作类
ASP经典分页类
asp论坛在线人数统计研究
ASP调用SQL SERVER存储程序
asp输出bmp
ASP连接数据库的全能代码
ASP面向对象编程探讨及比较
web文件管理器的后续开发
一小偷类!!有兴趣的可以看看
利用ASP实现事务处理的方法
大数量查询分页显示 微软的解决办法
如何把ASP编写成DLL
asp实现树型结构
超级ASP大分页_我的类容我做主

ASP 中的 保护 XML Web 服务免受黑客攻击


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 51 ::
收藏到网摘: n/a

       Matt Powell
  Microsoft Corporation
  
  
  简介
  在与开发人员就 XML Web 服务的将来谈话的过程中我们得知,他们最大的担心之一就是害怕软件中存在的弱点可能使服务受到不怀好意的用户的攻击。这可以说既是一个坏消息,又是一个好消息。说它是坏消息,是因为攻击可能导致服务的可用性受限制、私有数据泄露,更糟糕的情况是,使计算机的控制权落入这些不怀好意的用户的手中。说它是好消息,是因为您可以获得一些真正的保护,以减少这些攻击所带来的风险。我们将介绍已出现的攻击类型,以及您如何保护自己在部署、设计和开发领域的心血。此主题的第一篇专栏文章将集中讲述部署时应考虑的问题,下一篇专栏文章将讲述在开发 XML Web 服务时需注意的设计和开发问题。
  
  攻击类型
  要找出风险所在并了解如何避免,第一步应了解服务可能遭受的攻击类型。在了解了可能遇到的问题种类后,就可以采取适当的措施来减小这些问题所带来的风险。
  
  攻击通常可分为三大类:
  
  欺骗
  利用错误
  拒绝服务
  欺骗
  在要求身份验证的系统上,最常见的黑客攻击之一是算出某个用户的身份验证证书,以该用户登录,然后访问该用户的信息。这已经很糟糕了,但如果被泄露的证书属于系统管理员或其他某个具有更高权限的用户,则风险会更大。因为,在这种情况下,攻击可能不仅限于泄露单个用户的数据,而且有泄露所有用户数据的可能。
  
  黑客可能会使用多种方法来确定用户的密码。例如:尝试对该用户有意义的字,如该用户的姓名、其宠物的名字或生日。更有恒心的黑客甚至会尝试字典中的每个字(字典攻击)。获取证书信息的其他方法包括:捕捉网络数据包并读取发送的数据中的信息;通过 DNS 欺骗,插入一台不怀好意的计算机,作为客户端和服务器之间的中介;假装系统管理员,以排除故障为由,要求用户给出其证书;或者,记录与服务器的登录握手,然后重复这一过程,尝试通过身份验证。
  
  可以通过采取诸如强制实现加强密码等措施以及使用安全身份验证机制,来缓解由欺骗所带来的大多数风险。
  
  利用错误
  决定系统弱点的关键因素之一是运行在该系统上的代码的质量。系统错误不仅仅局限于使某个特定的线程出现异常。黑客可能利用这些弱点在系统上执行他们自己的代码,访问具有较高权限的资源,或者,只是利用可能潜在地引起系统速度减慢或变得不可用的资源漏洞(由错误引起的)。这种攻击中最著名的一个例子就是红色代码蠕虫病毒,这种病毒利用 Index Server ISAPI 扩展中的错误,在受感染的系统上执行它选择的代码,然后继续寻找其他有弱点的计算机。
  
  另外一种常见攻击就是利用输入数据的有效性假设方面的错误。例如,XML Web Service 希望用户名作为参数输入的情况。如果您假设用户名仅包含 ASCII 字符串,并因此将它直接放入您的 SQL 查询,可能会使您的服务出现严重的弱点。例如,假设您的代码中有一个 SQL 查询,如下所示:
  
  sqlQuery = "SELECT * FROM Users WHERE (Username='" & UsernameInput & "')
  
  如果 UsernameInput 参数包含的内容恰好如下所示
  
  Bob') or not (Username='0
  
  那么您的服务可能会返回所有记录,而不只是特定用户的记录。
  
  拒绝服务
  拒绝服务攻击的目的不在于闯入一个站点,或更改其数据,而在于使站点无法服务于合法的请求。红色代码蠕虫病毒不仅感染计算机,并继而寻找并感染其他计算机,而且,还使得被感染的计算机向官方的白宫 Web 站点发送大量的数据包。因为数千台计算机被感染,所以发往白宫 Web 站点的请求的数目极高。因为红色代码蠕虫病毒会导致从大量计算机发出请求,所以被视作“分布式拒绝服务攻击”。由于涉及到如此众多的计算机,因此这种攻击极难限制。
  
  拒绝服务请求可能有多种形式,因为可以通过多种级别发送伪请求,以攻击您的系统。例如,您的站点可能允许用户 PING 您的 IP 地址,从而使 ICMP 消息被发送到您的服务器,然后又被返回。这是一种排除连接故障的有效方法。但是,如果数百台计算机同时向您的服务器发送数千个数据包,您会发现您的计算机忙于处理 PING 请求,而无法获得 CPU 时间来处理其他正常的请求。
  
  级别稍高的是 SYN 攻击,这种攻击需要编写一个低级网络程序,所发送的数据包看起来有如 TCP 连接握手中的第一个数据包(SYN 包)。这种攻击比 PING 请求攻击危害更大,因为对于 PING 请求,'