什么是DoS?什么是DDoS?它们的危害是什么?怎样有效预防它们?我想这是每一个网络管理人员都关心的问题。下面,我就以问答的形式,从DoS的概念、行为以及预防手段几个方面详细地论述DoS攻防。
Q:何为拒绝服务攻击?
A:DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求就无法通过。连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。例如,2000年2月6日那个星期对Yahoo网站发生的主要是带宽攻击。
Q:何为分布式拒绝服务攻击?
A:分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在Internet上的许多计算机上。代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。
Q:DDoS攻击怎样影响Web站点?
当对一个Web站点执行 DDoS 攻击时,这个站点的一个或多个Web服务会接到非常多的请求,最终使它无法再正常使用。在一个DDoS攻击期间,如果有一个不知情的用户发出了正常的页面请求,这个请求会完全失败,或者是页面下载速度变得极其缓慢,看起来就是站点无法使用。典型的DDoS攻击利用许多计算机同时对目标站点发出成千上万个请求。为了避免被追踪,攻击者会闯进网上的一些无保护的计算机内,在这些计算机上藏匿DDoS程序,将它们作为同谋和跳板,最后联合起来发动匿名攻击。
Q:有没有远离DDoS攻击危险的快速而简便的方法?
A:没有。但是有一个简单的基本原则:防止计算机被黑客劫持后成为攻击的平台,这样就在攻击发生前将问题彻底排除了。
攻击者很喜欢把非商业计算机作为攻击平台,因为这些计算机更容易被攻陷。比如,大学系统经常是攻击者选择的目标,因为它们经常是人手不足,或者是为了便于学生使用而将安全设置到最低等级。但这并不是一个国家的问题,世界上任何一个Internet服务器都可用被用来作为攻击的平台。
所以,我们必须"团结成一个整体",通过全球合作来保护Internet。最起码要从自己做起,检查自己的上网计算机,确保它们不会成为DDoS的攻击平台。这不仅仅是为了做一个Internet好公民,更是为在发生了DDoS 攻击时,有证据能表明:我的计算机是无罪的。
Q:政府能对防范DoS攻击起很大的作用吗?
A:毫无疑问,政府通过在Internet 上施加多种限制规定,就能极大地控制DoS类型的攻击,至少是那些来自本国的攻击。例如,可以对上网要求相当于驾驶执照那样的许可证,对站点要求相当于"工商许可"的许可证,对所有的 ISP进行严格规范,就象对许多公共设施(如水、气等)的要求一样。
但是请注意:限制犯罪活动和限制经济增长、教育、信息资源以及一般人身自由之间只是一线之隔,政府对此很难掌握,因此许多政府正在寻求一些非干预性的方法。例如,美国前总统Clinton曾提出在大学毕业生中发展一个信息安全计算机联合会,培养所谓"计算机警察",以反抗DDoS和其它类型的计算机犯罪。
Q:如何检测我的服务器是否存在DDoS攻击程序?
要检测DDoS攻击程序的存在,可以有2种方法:
1、通常,我们可以使用文件系统扫描工具来确定在服务器文件系统上是否存在已知的DDoS攻击程序。
同病毒软件一样,每当有新的DDoS发明出来,当前的DDoS工具就将过时,或者它对现存的DDoS进行修改而避开检查。所以,要选择最近更新的扫描工具才能检测到最新的DDoS攻击程序。
FBI提供了一个工具叫做"find_ddos",用于检测一些已知的拒绝服务工具,包括trinoo进程、trinoo主人、加强的tfn进程、tfn客户程序、tfn2k客户程序和tfn-rush客户程序。Find_ddos可以从以下地址下载:
http://www.jintaigroup.com.cn/index2/refuse/n2.htm。
请注意,FBI的这个工具并不能保证捕获所有的DDoS工具。如果侵入者安装了一个根文件包,那么find_ddos程序就有可能无法处理它。
另外,http://www.nessus.org站点也提供一个免费的扫描工具。当然还有一些商务工具也可以使用。
2、还可使用手工方法对起源于本地网络中的DDoS活动进行双重检查。
在Web服务器与Internet或者上游ISP连接之间的防火墙上建立一个滤波器,以寻找spoofed (哄骗)信息包,也就是那些不是从你自己的网络上生成的信息包。这就是所谓的出口过滤。如果在你的网络上正在生成spoofed信息包,那么这很可能是一个DDoS程序生成的。然后跟踪这些spoofed信息的源头,将计算机离线开始清理工作。
屏蔽经常受到远程控制而受到威胁的端口,比如37337。
为了对所有的变化都进行研究并采取相应的措施,建议使用nmap 或saint这样的工具经常对网络的开放端口进行扫描。Nmap,即Network Mapper,是Linux下的网络扫描和嗅探工具包,它不仅可以帮助网管人员深入探测UDP或TCP端口,直至主机所使用的操作系统,还可以将所有探测结果记录到各种格式的日志中,为系统安全服务。Info World这样评价Nmap:如果你的目的是在40000英尺高度上看看你的网络,那基于Windows的端口扫描工具就足够了,但是如果你真的关心你的网络安全,并努力想找到那些可能被侵入者发现的系统漏洞,那你最好花点时间去安装并使用一个Linux工具--Nmap。SAINT是一个基于SATAN的安全评估工具,它能定期认证并扫描所有远程可探测漏洞,包括以下特点:防火墙扫描,从CERT&CIAC的公告来更新安全检查,严厉的4级(红、黄、褐、绿)警告和一个有很多HTML特点的界面。
Q:如果在服务器上发现了一个 DDoS主机程序应该怎么办?
A:如果在系统上出现了特洛伊木马程序,就表明系统上有一个弱点被人利用了。在系统上可能已经发生了一些细微或不那么细微的变化,虽然系统可能还没有表现出外在的问题,但不能因此而放松警惕。
执行你的组织中的应急反应策略。如果现在还没有这样的策略,那么至少要执行以下这些应急步骤:
从有疑点的第一个事件开始,按照危害的严重程度,把一切都写下来。从技术上和法律上,这都是很有帮助的。
不要对外散布关于你的组织所受到的威胁的消息。这不会有任何帮助,而且还会让媒体卷进来。你只需要通知那些能帮助你解决这些问题的人,以及组织的管理人员和法律人士。
向你的组织中最权威的安全专家求助。如果没有这样的人,可以向咨询公司寻求帮助,这些公司对你正在运行的操作系统和系统软件应急处理方面的问题是很有经验的。
从网络上把受到威胁的计算机移走,最简单也最彻底的方法就是拔掉网线。如果这个计算机的作用很关键,那么就要配置一个热备份机器。如果没有热备份机器,那么就要停工喽。
要对受到威胁的计算机的文件系统进行备份。在备份之前,要把操作系统管理的所有动态数据表都转换成标准文件,以便以后进行分析。例如,当前正在执行的程序列表、当前登录用户、当前网络连接。为了更加保险,建议使用两种不同的备份程序做两个系统备份。
关掉受到威胁的计算机。
重新启动计算机。
重新格式化系统软件使用的驱动器。
重新安装操作系统。
安装操作系统的所有补丁程序包。
恢复文件系统。不要覆盖任何系统文件,恢复之前手动检测所有的口令。
把计算机重新连入网络。
检测网络上的其它计算机,看看别处有没有被利用的弱点。
Q:如何防止服务器被当做DDoS主机?
A:建议采取如下步骤:
1、首先要充分认识和理解Internet服务器上存在的弱点:
除非是已经采取了特殊措施,Internet服务器都有主机名和IP地址,Internet上的任何人都能很容易地查找到这些信息。
许多组织都不把防火墙放在Internet服务器之前,这样即使是防火墙能够轻易阻止的探测和攻击也无法阻挡。
默认状态下,服务器监听来自标准端口的服务请求,并很自然地试图处理这些请求。
服务器本来就是要在无人照料的情况下运行的,所有一般不会有一个用户现身来寻找不正常的动作。
服务器还经常需要远程管理,因此它们要接受来自用户的远程连接,这些用户通常具有非常强大的权限。
许多服务器都会在关机之后自动重新启动,而这正是那些攻击者在利用它的时候所希望的。
2、如果系统已经受到了威胁,立即备份文件系统,然后重新安装操作系统并恢复文件系统。
3、安装软件产商提供的操作系统升级程序。如果升级程序是与系统安全相关的,那在安装的时候尤其要注意。一定要仔细阅读软件产商的升级文件readme,因为有些升级程序并不是测试得那么好,其中有些缺点可能反而对你的系统造成危害。
4、对服务器进行保护。
关闭所有不必要的系统服务。操作系统所提供的许多服务并不是Web服务器所需要的,例如基于RPC的服务。要采取"先拒绝,再允许"的策略。除非这个服务是完全必要的,就先将其关闭。
首先要确定哪些基于程序的服务可以关闭,如FTP、 telnet等。在文件系统中,这些服务很容易找到,都是可执行程序。
很多系统都曾受到缓冲区溢出漏洞的威胁。
检测操作系统文档,看看它是否在内核级提供了以不可视的单独程序形式存在的服务。例如,netmask服务就可以在内核级运行。这种情况下,首先确定可以设置哪些参数,然后关闭不必要的内核级服务。
联系操作系统供应商,看看是否还有其它内核级服务不在系统文档内,如果有的话,就应该禁止它们。
一旦将所有这些不必要的服务都禁止之后,要对整个系统作一个加密校验和操作,以备今后出现疑点时使用。对于基于UNIX的系统,Tripwire能够完成这个功能,详细资料请参阅:http://www.tripwiresecurity.com/。
http://www.cert.org/security-improvement/practices/p043.html有关于加密检验和的详细信息。
配置Web服务器软件。首先要验证已经安装了最新版本的Web 服务器软件。其次,关闭Web 服务器软件所提供的所有不必要服务,比如关闭不是必须的Java支持、CGI支持和服务器端脚本支持。
限制对服务器的物理访问。要采取适当行动,确保服务器只能被指定的系统管理员访问。如果侵入者能够对服务器进行物理访问的话,只需一张软盘就能打败全世界的安全保卫措施。
Q:如何防止个人计算机成为 DDoS 主机?
A:建议采取如下步骤:
1、首先要充分认识并理解Internet客户机所存在的弱点:
Internet客户机,即连接到Internet的个人计算机,也可以受到威胁成为DDoS攻击的代理机。
全部时间都连接到Internet上的个人计算机对DDoS 侵入者特别有用。
威胁一个个人计算机的最简单也最常用的方法是通过用户下载的文件,那些作为屏保、游戏和图像形式出现的恶意程序是罪魁祸首。
那些允许后台处理和多任务处理的新个人计算机操作系统,如Windows 98、Windows NT工作站、Linux,使他们成为DDoS攻击的可能代理。
2、如果系统已经受到了威胁,理解备份文件系统,重新安装操作系统并恢复文件系统。
3、安装存在系统销售商提供的操作系统升级程序。
4、对客户机/个人计算机进行保护。
要通知本地网络上所有Internet用户,尤其是那些全部时间都连接到Internet上的用户,由于他们的计算机有可能被用作攻击代理,所以必须装备最新的检测软件。
反病毒软件中一般都包括可检测许多DDoS 程序的升级程序,建议下载并安装其最新版本。例如,Norton的相关程序可以在http://www.symantec.com/avcenter/venc/data/w32.dos.trinoo.html获得,NAI的相关程序可以在http://vil.nai.com/vil/DoS98506.asp获得。
注意,如果在客户系统上已经有恶意程序在运行,这些检测程序可能就不起作用了。Norton的情况是,开启实时保护,然后重新启动计算机,检查已经在操作中的DDoS代理程序。