学习如何识别和保护网络服务器免受恶意的并发式服务请求所带来的威胁
几乎就在悉尼的夏季奥运会闭幕的同时,2002年盐湖城冬奥会的售票量也陡然上升。非常显著的事实是,Internet在这种粗糙的商业行为的运作中,起的作用不再是重要,更是作为支配性的角色出现的。在第一个星期过后,Internet上的交易量就占了总售票量的85%。随着Internet在我们的生活中占据了愈加重要的地位,非常明显的,网站的操作者们也愈发受到近来的DoS(拒绝服务)攻击的严重威胁。尽管DoS并不是什么新出现的攻击手法,然而近些年来有太多的网站被卷入到了这种独特的、带有恶意的网站发展的梦魇中去——受到了DDoS(分布式拒绝服务)的攻击。
DDoS应当对一些众所周知的电子商务的服务的中止负有责任,其中也包括ZDNet。DoS包括DDoS都能引起许多系统组件产生故障——CPU,防火墙,网络的带宽——而DDoS更具威胁,因为它对服务器并发式、分布式的请求被认为是一种合法的通讯方式,因此就使得网站对这种攻击更难以采取防护措施。
比较DoS和DDoS攻击
DDoS的攻击源自于Internet上的许多分布的客户机,而典型的DoS攻击只是一台单独的客户机对一个独立的站点进行攻击。Script Kiddies采用的普通DoS策略是使许多Ping(计算机命令)请求涌进服务器中。如果有足够大的带宽,那么要压制网络服务器并且让它丧失响应Ping请求的能力也是十分容易的事情。幸运的是,我们可以很容易的战胜DoS的攻击;因为这种攻击的信息流是可以被识别的,并且也有可能将其滤除。举例来说,网络管理员可以毫不费力地让服务器端禁止对Ping的响应,因此也可以很轻松地在防火墙处滤除所有从攻击者的IP地址处发来的请求。最终,当只有一台机器受到影响时,网络管理员可以轻松的追查到DoS攻击的起源地址,这样就更有可能对其进行起诉了。
然而从另一个角度而言,DDoS却可以使上百台无辜的计算机帮助它进行攻击,使一个单独的网站承负破坏性的负载。因为这种有害的负载是从许许多多不同的源地址发出,所以要将这些攻击信息流从合法的网络交通中辨别出来就不是一件十分容易的事情了。
一般而言,DDoS攻击使受害的服务器丧失了系统资源。例如,DDoS使用非定向连接协议如HTTP向服务器发送请求,却从不中止请求。服务器在响应请求的同时,将为每个请求分配一个线程和一块内存,由于这种请求的发送从不自己结束,服务器就必须在释放这些资源之前等待一段预先规定的时间。一次成功的DDoS攻击包含着成百甚至上千的这样的请求,每一个都将占用一些资源并使得合法用户不能访问这台服务器。
DDoS攻击的工具包
在过去的一年里DDoS攻击不但变得十分平常,而且专家们也认为它们造成影响将不断地增长。这个攻击行为将增多的预言是根据DDoS工具包在Internet上越来越普及的情况下做出的。这些工具包可以使一个极为平庸的骇客有能力实施攻击行为。其中一些十分平常的以及有文档纪录的工具包包括Tribe Force Network (TFN)、Trin00和Stacheldraht。
但是首先一个可能的攻击者是如何使那么多台计算机参与进来的呢?一个恶毒的用户有可能,例如使用被设计为实施最终攻击的zombie工具,在一段时间内对上百台计算机造成危害。就如同你猜测的那样,一段zombie程序可以一直潜伏着,直至被骇客所调用。比较有代表性的是一个恶意的用户使用针对某一种操作系统或应用程序的破坏代码对目标机器进行侵袭。其中许多的机器是校园里学生管理的计算机,在这里骇客可以四处游逛,直至找到弱点。经验表明,如果骇客决意进行攻击并有充分的时间,那么任何计算机都是可以被攻击的。将校园作为目标是因为校园有相应的硬件,带宽,以及CPU处理能力。而且十分普遍的是,他们的服务器总是不能及时运行发布的补丁程序。
使用TFN工具包及其高级版本TFN2K,骇客可以通过内嵌在ICMP (Internet Control Message Protocol,Internet信息控制协议), UDP (User Datagram Protocol,用户自寻址数据包协议), 以及TCP包数据域中的命令,将自己的客户机连接到受到侵害的主zombie服务器上。数据域中的命令被加密并不易被识别出来。这台客户机可以借助TFN2K进行秘密的活动,因为TFN2K可以随机指定其IP地址和端口,还可以发送诱饵包,这样就更难以对它进行识别了。这台客户机指示着zombie服务器,给它一个目标让它攻击。它可以使用UDP, SYN (在TCP包中的一个标志位), ICMP反射信号以及 ICMP广播包。它的意图只是要耗尽目标机的资源——CPU,内存和带宽——使终端用户关闭他们的计算机去做一些更有意思的事情,如看足球,钓鱼,骑摩托或其他一些事情。
Trin00的出现已经历了一年多的时间,并且拥有相当多的记录。它可以分为三个部分——一个骇客客户端,一个被侵害的zombie服务器,以及一个在zombie服务器上运行的代理程序。骇客的客户端实际上是一个zombie连接到27665端口的telnet(远程登录)或netcat。Zombie服务器对端口27665进行监听并在端口31335进行广播。它在与主程序连接时使用密码"betaalmostdone" 和 "g0rave",同时也对Windows的版本进行查寻。如果是Windows系统则监听端口34555,如果是Unix系统就监听端口27444。在骇客的客户端和zombie端,密码通过UDP这个协议进行联系——对Unix 使用的密码是"144adsl" ,对Windows 使用的密码是"[]..ks"。Trin00有六个实施攻击的命令——mtimer, dos, mdie, mdos, mping, msize。通过查寻从相同的IP地址和端口来的UDP数据包以及发送到不同的目标端口的数据包,可以探测到Trin00的存在。多个具有相同起源IP和目标IP的ICMP中“无法到达的端口”的字段也暗示着有端口扫描进行的动作。
和Trin00类似,Stacheldraht(德语“带刺的铁丝网”)也分为三个部分。骇客的客户机通过端口16660或60001连接到控制服务器上。数据包使用在源代码中指定的密码进行blowfish加密(一种64位的加密过程)——通常是单词“sicken"。Zombie服务器处理客户机和代理程序之间的通讯。在端口65000,ICMP的如同心跳似的回声信号被用作连接主程序和代理程序之间的联系信号。ICMP包的ID域中包含数值666、667、668和669,在数据域中包括字符串如"skillz", "ficken" 和"spoofworks"。Zombie的代理端可以被指示对指定的IP地址和端口实施攻击,也能够接受远端的升级指令。
识别和预防
目前,我们还没有办法消除这些破坏性攻击的办法,但是有一些预防性的措施可以减轻它们带来的影响。网站管理员应当检查端口并确定是那些应用程序在那些端口上运行。有一些工具可以扫描服务器上可用的端口,取得端口列表并确保所有暴露的或开放的端口都是我们所期望的。你可以检查服务器上的处理和服务记录,或者你也可以远程登录到端口中查看他们如何响应。举例来说,如果它是一个Web(环球网)服务器,那么它将用服务器的软件名作为回应。你也可以对进入到你系统中的TCP/IP包中的内容进行分析。
还有一些其他的迹象也可以指示出即将到来的攻击。如果在一台服务器上所有的端口都被来自同一个IP地址的机器所扫描,那么可能有人正试图查看哪些端口是可用的。有一些工具可以对此类活动进行监测,并警告你可能发生的问题,但是如果事情真的发生了,那么显然机敏的网络管理员是要看一看服务器的记录文件的。通过查看记录文件,管理员可以确定在连续的端口上连接被拒绝的类型——可以作为某人试图在服务器的盔甲上找到开口的证据。大多数的管理员只有在绝对必要的情况下才开放那些端口和服务。尽管如此,最精明的管理员还是要安装IDS(Intrusion Detection System,入侵监测系统)。这些工具的功能十分的全面,并能够对潜在的问题进行预警。Internet安全系统X-Force就是一个非常好的安全工具。许多大型的提供网络服务的公司,如Exodus Communications,也能够积极的为客户进行端口扫描的监测服务。那么你,一个普通的家庭用户,能够如何保护自己,不使自己成为DDoS攻击者的从犯呢?很明显,对安全补丁的安装和升级就显得十分的重要了。大多数的病毒监测软件包也可以对与病毒类似的活动进行探测,例如那些想在你的系统中安装程序的电子邮件信息或网页。对于Windows系统的计算机,还有一些很好的个人防火墙,如BlackICE和ZoneAlarm,它们可以帮助你监测可疑的Internet活动。最后,你能做的最有价值的事情就是要随时了解电子邮件和应用程序的来源。禁止脚本运行是另外一个有价值的措施。还有,不去运行每一个偶然进入你收件箱的应用程序也是一个非常不错的主意。
几乎就在悉尼的夏季奥运会闭幕的同时,2002年盐湖城冬奥会的售票量也陡然上升。非常显著的事实是,Internet在这种粗糙的商业行为的运作中,起的作用不再是重要,更是作为支配性的角色出现的。在第一个星期过后,Internet上的交易量就占了总售票量的85%。随着Internet在我们的生活中占据了愈加重要的地位,非常明显的,网站的操作者们也愈发受到近来的DoS(拒绝服务)攻击的严重威胁。尽管DoS并不是什么新出现的攻击手法,然而近些年来有太多的网站被卷入到了这种独特的、带有恶意的网站发展的梦魇中去——受到了DDoS(分布式拒绝服务)的攻击。
DDoS应当对一些众所周知的电子商务的服务的中止负有责任,其中也包括ZDNet。DoS包括DDoS都能引起许多系统组件产生故障——CPU,防火墙,网络的带宽——而DDoS更具威胁,因为它对服务器并发式、分布式的请求被认为是一种合法的通讯方式,因此就使得网站对这种攻击更难以采取防护措施。
比较DoS和DDoS攻击
DDoS的攻击源自于Internet上的许多分布的客户机,而典型的DoS攻击只是一台单独的客户机对一个独立的站点进行攻击。Script Kiddies采用的普通DoS策略是使许多Ping(计算机命令)请求涌进服务器中。如果有足够大的带宽,那么要压制网络服务器并且让它丧失响应Ping请求的能力也是十分容易的事情。幸运的是,我们可以很容易的战胜DoS的攻击;因为这种攻击的信息流是可以被识别的,并且也有可能将其滤除。举例来说,网络管理员可以毫不费力地让服务器端禁止对Ping的响应,因此也可以很轻松地在防火墙处滤除所有从攻击者的IP地址处发来的请求。最终,当只有一台机器受到影响时,网络管理员可以轻松的追查到DoS攻击的起源地址,这样就更有可能对其进行起诉了。
然而从另一个角度而言,DDoS却可以使上百台无辜的计算机帮助它进行攻击,使一个单独的网站承负破坏性的负载。因为这种有害的负载是从许许多多不同的源地址发出,所以要将这些攻击信息流从合法的网络交通中辨别出来就不是一件十分容易的事情了。
一般而言,DDoS攻击使受害的服务器丧失了系统资源。例如,DDoS使用非定向连接协议如HTTP向服务器发送请求,却从不中止请求。服务器在响应请求的同时,将为每个请求分配一个线程和一块内存,由于这种请求的发送从不自己结束,服务器就必须在释放这些资源之前等待一段预先规定的时间。一次成功的DDoS攻击包含着成百甚至上千的这样的请求,每一个都将占用一些资源并使得合法用户不能访问这台服务器。
DDoS攻击的工具包
在过去的一年里DDoS攻击不但变得十分平常,而且专家们也认为它们造成影响将不断地增长。这个攻击行为将增多的预言是根据DDoS工具包在Internet上越来越普及的情况下做出的。这些工具包可以使一个极为平庸的骇客有能力实施攻击行为。其中一些十分平常的以及有文档纪录的工具包包括Tribe Force Network (TFN)、Trin00和Stacheldraht。
但是首先一个可能的攻击者是如何使那么多台计算机参与进来的呢?一个恶毒的用户有可能,例如使用被设计为实施最终攻击的zombie工具,在一段时间内对上百台计算机造成危害。就如同你猜测的那样,一段zombie程序可以一直潜伏着,直至被骇客所调用。比较有代表性的是一个恶意的用户使用针对某一种操作系统或应用程序的破坏代码对目标机器进行侵袭。其中许多的机器是校园里学生管理的计算机,在这里骇客可以四处游逛,直至找到弱点。经验表明,如果骇客决意进行攻击并有充分的时间,那么任何计算机都是可以被攻击的。将校园作为目标是因为校园有相应的硬件,带宽,以及CPU处理能力。而且十分普遍的是,他们的服务器总是不能及时运行发布的补丁程序。
使用TFN工具包及其高级版本TFN2K,骇客可以通过内嵌在ICMP (Internet Control Message Protocol,Internet信息控制协议), UDP (User Datagram Protocol,用户自寻址数据包协议), 以及TCP包数据域中的命令,将自己的客户机连接到受到侵害的主zombie服务器上。数据域中的命令被加密并不易被识别出来。这台客户机可以借助TFN2K进行秘密的活动,因为TFN2K可以随机指定其IP地址和端口,还可以发送诱饵包,这样就更难以对它进行识别了。这台客户机指示着zombie服务器,给它一个目标让它攻击。它可以使用UDP, SYN (在TCP包中的一个标志位), ICMP反射信号以及 ICMP广播包。它的意图只是要耗尽目标机的资源——CPU,内存和带宽——使终端用户关闭他们的计算机去做一些更有意思的事情,如看足球,钓鱼,骑摩托或其他一些事情。
Trin00的出现已经历了一年多的时间,并且拥有相当多的记录。它可以分为三个部分——一个骇客客户端,一个被侵害的zombie服务器,以及一个在zombie服务器上运行的代理程序。骇客的客户端实际上是一个zombie连接到27665端口的telnet(远程登录)或netcat。Zombie服务器对端口27665进行监听并在端口31335进行广播。它在与主程序连接时使用密码"betaalmostdone" 和 "g0rave",同时也对Windows的版本进行查寻。如果是Windows系统则监听端口34555,如果是Unix系统就监听端口27444。在骇客的客户端和zombie端,密码通过UDP这个协议进行联系——对Unix 使用的密码是"144adsl" ,对Windows 使用的密码是"[]..ks"。Trin00有六个实施攻击的命令——mtimer, dos, mdie, mdos, mping, msize。通过查寻从相同的IP地址和端口来的UDP数据包以及发送到不同的目标端口的数据包,可以探测到Trin00的存在。多个具有相同起源IP和目标IP的ICMP中“无法到达的端口”的字段也暗示着有端口扫描进行的动作。
和Trin00类似,Stacheldraht(德语“带刺的铁丝网”)也分为三个部分。骇客的客户机通过端口16660或60001连接到控制服务器上。数据包使用在源代码中指定的密码进行blowfish加密(一种64位的加密过程)——通常是单词“sicken"。Zombie服务器处理客户机和代理程序之间的通讯。在端口65000,ICMP的如同心跳似的回声信号被用作连接主程序和代理程序之间的联系信号。ICMP包的ID域中包含数值666、667、668和669,在数据域中包括字符串如"skillz", "ficken" 和"spoofworks"。Zombie的代理端可以被指示对指定的IP地址和端口实施攻击,也能够接受远端的升级指令。
识别和预防
目前,我们还没有办法消除这些破坏性攻击的办法,但是有一些预防性的措施可以减轻它们带来的影响。网站管理员应当检查端口并确定是那些应用程序在那些端口上运行。有一些工具可以扫描服务器上可用的端口,取得端口列表并确保所有暴露的或开放的端口都是我们所期望的。你可以检查服务器上的处理和服务记录,或者你也可以远程登录到端口中查看他们如何响应。举例来说,如果它是一个Web(环球网)服务器,那么它将用服务器的软件名作为回应。你也可以对进入到你系统中的TCP/IP包中的内容进行分析。
还有一些其他的迹象也可以指示出即将到来的攻击。如果在一台服务器上所有的端口都被来自同一个IP地址的机器所扫描,那么可能有人正试图查看哪些端口是可用的。有一些工具可以对此类活动进行监测,并警告你可能发生的问题,但是如果事情真的发生了,那么显然机敏的网络管理员是要看一看服务器的记录文件的。通过查看记录文件,管理员可以确定在连续的端口上连接被拒绝的类型——可以作为某人试图在服务器的盔甲上找到开口的证据。大多数的管理员只有在绝对必要的情况下才开放那些端口和服务。尽管如此,最精明的管理员还是要安装IDS(Intrusion Detection System,入侵监测系统)。这些工具的功能十分的全面,并能够对潜在的问题进行预警。Internet安全系统X-Force就是一个非常好的安全工具。许多大型的提供网络服务的公司,如Exodus Communications,也能够积极的为客户进行端口扫描的监测服务。那么你,一个普通的家庭用户,能够如何保护自己,不使自己成为DDoS攻击者的从犯呢?很明显,对安全补丁的安装和升级就显得十分的重要了。大多数的病毒监测软件包也可以对与病毒类似的活动进行探测,例如那些想在你的系统中安装程序的电子邮件信息或网页。对于Windows系统的计算机,还有一些很好的个人防火墙,如BlackICE和ZoneAlarm,它们可以帮助你监测可疑的Internet活动。最后,你能做的最有价值的事情就是要随时了解电子邮件和应用程序的来源。禁止脚本运行是另外一个有价值的措施。还有,不去运行每一个偶然进入你收件箱的应用程序也是一个非常不错的主意。