什么是DDOS攻击及怎么抵抗DDOS攻击?

什么是DDOS 攻击及怎么抵抗DDOS 攻击?

一、为何要DDOS

    随着Internet 互联网络带宽的增加和多种DDOS 黑客工具的不断发布,DDOS 拒绝服务攻击的实施越来越容易,DDOS 攻击事件正在成上升趋势。出 于商业竞争、打击报复和网络敲诈等多种因素,导致很多IDC 托管机房、商业站点、游戏服务器、聊天网络等网络服务商长期以来一直被DDOS 攻击所困扰,随 之而来的是客户投诉、同虚拟主机用户受牵连、法律纠纷、商业损失等一系列问题,因此,解决DDOS 攻击问题成为网络服务商必须考虑的头等大事。

二、什么是DDOS

    DDOS 是英文Distributed Denial of Service 的缩写,意即 分布式拒绝服务 ,那么什么又是拒绝服务(Denial of Service )呢?可以这么理解,凡是能导致合法用户不能够访问正常网络服务的行为都算是拒绝服务攻击。也就是说拒绝服务攻击的目的非常明确,就是要阻 止合法用户对正常网络资源的访问,从而达成攻击者不可告人的目的。虽然同样是拒绝服务攻击,但是DDOSDOS 还是有所不同,DDOS 的攻击策略侧重于 通过很多 僵尸主机 (被攻击者入侵过或可间接利用的主机)向受害主机发送大量看似合法的网络包,从而造成网络阻塞或服务器资源耗尽而导致拒绝服务,分布 式拒绝服务攻击一旦被实施,攻击网络包就会犹如洪水般涌向受害主机,从而把合法用户的网络包淹没,导致合法用户无法正常访问服务器的网络资源,因此,拒绝 服务攻击又被称之为 洪水式攻击 ,常见的DDOS 攻击手段有SYN FloodACK FloodUDP FloodICMP FloodTCP FloodConnections FloodScript FloodProxy Flood 等;而DOS 则侧重于通过对主机特定漏洞的利用攻击导致网络栈失效、系统崩溃、主机死机而无法提供正常的网络服务功能,从而造成拒绝服务,常见 的DOS 攻击手段有TearDropLandJoltIGMP NukerBoinkSmurfBonkOOB 等。就这两种拒绝服务攻击而言,危害较大的主要是DDOS 攻击,原因是很难防范,至于DOS 攻击, 通过给主机服务器打补丁或安装防火墙软件就可以很好地防范,后文会详细介绍怎么对付DDOS 攻击。

三、被DDOS 了吗?

    DDOS 的表现形式主要有两种,一种为流量攻击,主要是针对网络带宽的攻击,即大量攻击包导致网络带宽被阻塞,合法网络包被虚假的攻击包淹没而无法到达主 机;另一种为资源耗尽攻击,主要是针对服务器主机的攻击,即通过大量攻击包导致主机的内存被耗尽或CPU 被内核及应用程序占完而造成无法提供网络服务。

    如何判断网站是否遭受了流量攻击呢?可通过Ping 命令来测试,若发现Ping 超时或丢包严重( 假定平时是正常的) ,则可能遭受了流量攻击,此时若发现和 你的主机接在同一交换机上的服务器也访问不了了,基本可以确定是遭受了流量攻击。当然,这样测试的前提是你到服务器主机之间的ICMP 协议没有被路由器和 防火墙等设备屏蔽,否则可采取Telnet 主机服务器的网络服务端口来测试,效果是一样的。不过有一点可以肯定,假如平时Ping 你的主机服务器和接在同 一交换机上的主机服务器都是正常的,突然都Ping 不通了或者是严重丢包,那么假如可以排除网络故障因素的话则肯定是遭受了流量攻击,再一个流量攻击的典 型现象是,一旦遭受流量攻击,会发现用远程终端连接网站服务器会失败。

    相对于流量攻击而言,资源耗尽攻击要容易判断一些,假如平时Ping 网站主机和访问网站都是正常的,发现突然网站访问非常缓慢或无法访问了,而Ping 还 可以Ping 通,则很可能遭受了资源耗尽攻击,此时若在服务器上用Netstat -na 命令观察到有大量的SYN_RECEIVEDTIME_WAITFIN_WAIT_1 等状态存在,而ESTABLISHED 很少,则可判定肯定 是遭受了资源耗尽攻击。还有一种属于资源耗尽攻击的现象是,Ping 自己的网站主机Ping 不通或者是丢包严重,而Ping 与自己的主机在同一交换机上的 服务器则正常,造成这种原因是网站主机遭受攻击后导致系统内核或某些应用程序CPU 利用率达到100% 无法回应Ping 命令,其实带宽还是有的,否则就 Ping 不通接在同一交换机上的主机了。

    当前主要有三种流行的DDOS 攻击:

    1SYN/ACK Flood 攻击:这种攻击方法是经典最有效的DDOS 方法,可通杀各种系统的网络服务,主要是通过向受害主机发送大量伪造源IP 和源端口的SYNACK 包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,由于源都是伪造的故追踪起来比较困难,缺点是实施起来有一定难度,需要高带宽的僵尸主机支 持。少量的这种攻击会导致主机服务器无法访问,但却可以Ping 的通,在服务器上用Netstat -na 命令会观察到存在大量的SYN_RECEIVED 状态,大量的这种攻击会导致Ping 失败、TCP/IP 栈失效,并会出现系统凝固现象,即不响应键 盘和鼠标。普通防火墙大多无法抵御此种攻击。

    2TCP 全连接攻击:这种攻击是为了绕过常规防火墙的检查而设计的,一般情况下,常规防火墙大多具备过滤TearDropLandDOS 攻击的能 力,但对于正常的TCP 连接是放过的,殊不知很多网络服务程序(如:IISApacheWeb 服务器)能接受的TCP 连接数是有限的,一旦有大量的 TCP 连接,即便是正常的,也会导致网站访问非常缓慢甚至无法访问,TCP 全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的TCP 连接,直到 服务器的内存等资源被耗尽而被拖跨,从而造成拒绝服务,这种攻击的特点是可绕过一般防火墙的防护而达到攻击目的,缺点是需要找很多僵尸主机,并且由于僵尸 主机的IP 是暴露的,因此容易被追踪。

3 、刷Script 脚本攻击:这种攻击主要是针对存在ASPJSPPHPCGI 等脚本程序,并调用MSSQLServer MySQLServerOracle 等数据库的网站系统而设计的,特征是和服务器建立正常的TCP 连接,并不断的向脚本程序提交查询、列表等大量耗费数 据库资源的调用,典型的以小博大的攻击方法。一般来说,提交一个GETPOST 指令对客户端的耗费和带宽的占用是几乎可以忽略的,而服务器为处理此请求 却可能要从上万条记录中去查出某个记录,这种处理过程对资源的耗费是很大的,常见的数据库服务器很少能支持数百个查询指令同时执行,而这对于客户端来说却 是轻而易举的,因此攻击者只需通过Proxy 代理向主机服务器大量递交查询指令,只需数分钟就会把服务器资源消耗掉而导致拒绝服务,常见的现象就是网站慢 如蜗牛、ASP 程序失效、PHP 连接数据库失败、数据库主程序占用CPU 偏高。这种攻击的特点是可以完全绕过普通的防火墙防护,轻松找一些Proxy 代理 就可实施攻击,缺点是对付只有静态页面的网站效果会大打折扣,并且有些Proxy 会暴露攻击者的IP 地址。

四、怎么抵御DDOS

    对付DDOS 是一个系统工程,想仅仅依靠某种系统或产品防住DDOS 是不现实的,可以肯定的是,完全杜绝DDOS 目前是不可能的,但通过适当的措施抵御 90%DDOS 攻击是可以做到的,基于攻击和防御都有成本开销的缘故,若通过适当的办法增强了抵御DDOS 的能力,也就意味着加大了攻击者的攻击成本, 那么绝大多数攻击者将无法继续下去而放弃,也就相当于成功的抵御了DDOS 攻击。以下几点是防御DDOS 攻击几点:

    1 、采用高性能的网络设备

    首先要保证网络设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、口碑好的产品。再就是假如和网络提供商有特殊关系 或协议的话就更好了,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的DDOS 攻击是非常有效的。

    2 、尽量避免NAT 的使用

    无论是路由器还是硬件防护墙设备要尽量避免采用网络地址转换NAT 的使用,因为采用此技术会较大降低网络通信能力,其实原因很简单,因为NAT 需要对地址来回转换,转换过程中需要对网络包的校验和进行计算,因此浪费了很多CPU 的时间,但有些时候必须使用NAT ,那就没有好办法了。

    3 、充足的网络带宽保证

    网络带宽直接决定了能抗受攻击的能力,假若仅仅有10M 带宽的话,无论采取什么措施都很难对抗现在的SYNFlood 攻击,当前至少要选择100M 的共享 带宽,最好的当然是挂在1000M 的主干上了。但需要注意的是,主机上的网卡是1000M 的并不意味着它的网络带宽就是千兆的,若把它接在100M 的交换 机上,它的实际带宽不会超过100M ,再就是接在100M 的带宽上也不等于就有了百兆的带宽,因为网络服务商很可能会在交换机上限制实际带宽为10M ,这 点一定要搞清楚。

    4 、升级主机服务器硬件

    在有网络带宽保证的前提下,请尽量提升硬件配置,要有效对抗每秒10 万个SYN 攻击包,服务器的配置至少应该为:P4 2.4G/DDR512M/SCSI-HD ,起关键作用的主要是CPU 和内存,若有志强双CPU 的话就用它吧,内存一定要选择DDR 的高速内存,硬盘要尽 量选择SCSI 的,别只贪IDE 价格不贵量还足的便宜,否则会付出高昂的性能代价,再就是网卡一定要选用3COMIntel 等名牌的,若是 Realtek 的还是用在自己的PC 上吧。

    5 、把网站做成静态页面

    大量事实证明,把网站尽可能做成静态页面,不仅能大大提高抗攻击能力,而且还给黑客入侵带来不少麻烦,至少到现在为止关于HTML 的溢出还没出现,看看吧!新浪、搜狐、网易等门户网站主要都是静态页面,若你非需要动态脚本调用,那就把它弄到另外一台单独主机去,免的遭受攻击时连累主服务器,当然,适当放一些不做数据库调用脚本还是可以的,此外,最好在需要调用数据库的脚本中拒绝使用代理的访问,因为经验表明使用代理访问你网站的80% 属于恶意行为。

    6 、增强操作系统的TCP/IP

    Win2000Win2003 作为服务器操作系统,本身就具备一定的抵抗DDOS 攻击的能力,只是默认状态下没有开启而已,若开启的话可抵挡约 10000SYN 攻击包,若没有开启则仅能抵御数百个,具体怎么开启,自己去看微软的文章吧!《强化 TCP/IP 堆栈安全》。

    也许有的人会问,那我用的是LinuxFreeBSD 怎么办?很简单,按照这篇文章去做吧!《SYN Cookies 》。

    7 、安装专业抗DDOS 防火墙

    8 、其他防御措施

    以上几条对抗DDOS 建议,适合绝大多数拥有自己主机的用户,但假如采取以上措施后仍然不能解决DDOS 问题,就有些麻烦了,可能需要更多投资,增加服务 器数量并采用DNS 轮巡或负载均衡技术,甚至需要购买七层交换机设备,从而使得抗DDOS 攻击能力成倍提高,只要投资足够深入。

 

猜你喜欢

转载自powerclark.iteye.com/blog/552587