ddos(Distributed Denial of Service,分布式拒绝服务攻击),俗称洪水攻击。是在传统的DoS攻击基础之上产生的新的破坏力更强的攻击方式。分布式拒绝服务攻击是指借助于客户/服务器技术,将多个甚至几十万个计算机联合起来作为攻击平台,对一个或多个目标发动DoS攻击,从而成倍地提高了攻击的威力。DDoS带来的破坏是巨大的,你无法阻止黑客对你的网站发动DDoS攻击,除非主动断开Internet连接。如果我们无法防止这种攻击,那么,怎样做才能最大限度地保护我们的企业网络呢?

  1、了解DDoS攻击当前主要有三种流行的DDoS攻击:

  1.1SYN/ACKFlood攻击

  这种攻击方法是经典最有效的DDoS方法,可攻击各种系统的网络服务,主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,由于源IP和源端口都是伪造的,故追踪起来比较困难。其缺点是实施起来有一定难度,需要高带宽的僵尸主机支持。

  1.2TCP全连接攻击

  TCP全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的TCP连接,直到服务器的内存等资源被耗尽而被拖跨,从而造成拒绝服务,这种攻击的特点是可绕过一般防火墙的防护而达到攻击目的,缺点是需要找很多僵尸主机,并且由于僵尸主机的IP是暴露的,因此容易被追踪。

  1.3刷Script脚本攻击

  这种攻击主要是针对存在ASP、JSP、PHP、CGI等脚本程序,并调用MSSQLServer、MySQLServer、Oracle等数据库的网站系统而设计的,特征是和服务器建立正常的TCP连接,并不断地向脚本程序提交查询、列表等大量耗费数据库资源的调用,典型的以小博大的攻击方法。常见的现象就是网站慢如蜗牛、ASP程序失效、PHP连接数据库失败、数据库主程序占用CPU偏高。这种攻击的特点是可以完全绕过普通的防火墙防护,轻松找一些Proxy代理就可实施攻击,缺点是对付只有静态页面的网站效果会大打折扣,并且有些Proxy会暴露攻击者的IP地址。

  2、发现DDoS攻击

  根据以下异常现象在网络入侵监测系统建立相应规则,能够较准确地监测出DDoS攻击。

  (1)根据分析,攻击者在进行DDoS攻击前总要解析目标的主机名,BIND域名服务器能够记录这些请求。由于每台攻击服务器在进行一个攻击前会发出PTR反向查询请求,也就是说在DDoS攻击前域名服务器会接收到大量的反向解析目标IP主机名的PTR查询请求。

  (2)当DDoS攻击一个站点时,会出现明显超出该网络正常工作时的极限通讯流量的现象。现在的技术能够分别对不同的源地址计算出对应的极限值。当明显超出此极限值时,就表明存在DDoS攻击的通讯。因此,可以在主干路由器端建立ACL访问控制规则以监测和过滤这些通讯。

  (3)特大型的ICP和UDP数据包。正常的UDP会话一般都使用小的UDP包,通常有效数据内容不超过10字节。正常的ICMP消息也不会超过64到128字节。那些尺寸明显大得多的数据包很有可能就是控制信息通讯用的,主要含有加密后的目标地址和一些命令选项。一旦捕获到(没有经过伪造的)控制信息通讯,DDoS服务器的位置就暴露出来了,因为控制信息通讯数据包的目标地址是没有伪造的。

  (4)不属于正常连接通讯的TCP和UDP数据包。最隐蔽的DDoS工具随机使用多种通讯协议(包括基于连接的协议)通过基于无连接通道发送数据。优秀的防火墙和路由规则能够发现这些数据包。另外,那些连接到高于1024而且不属于常用网络服务的目标端口的数据包也是非常值得怀疑的。

  (5)数据段内容只包含文字和数字字符(例如,没有空格、标点和控制字符)的数据包。这往往是数据经过BASE64编码后而只会含有BASE64字符集字符的特征。TFN2K发送的控制信息数据包就是这种类型的数据包。TFN2K(及其变种)的特征模式是在数据段中有一串A字符(AAA),这是经过调整数据段大小和加密算法后的结果。如果没有使用BASE64编码,对于使用了加密算法数据包,这个连续的字符就是“”。

  (6)数据段内容只包含二进制和high-bit字符的数据包。虽然此时可能在传输二进制文件,但如果这些数据包不属于正常有效的通讯时,可以怀疑正在传输的是没有被BASE64编码但经过加密的控制信息通讯数据包(如果实施这种规则,必须将20、21、80等端口上的传输排除在外)。

  3、应对DDoS攻击

  当遭受DDoS攻击的时候要如何设法存活并继续提供正常服务呢?

  由前面的介绍可以知道,若黑客攻击规模远高于你的网络频宽、设备或主机所能处理的能力,其实是很难反抗攻击的,但仍然有一些方法可以减轻攻击所造成的影响。首先是调查攻击来源,由于黑客由僵尸主机进行攻击,因此,可能无法直接查出黑客是由哪里发动攻击,必须一步一步从被攻击目标往回推,先调查攻击是由管辖网络的哪些边界路由器进来,上一步是外界哪台路由器,联络这些路由器的管理者(可能是某个ISP或电信公司)并寻求他们协助阻挡或查出攻击来源。假如,被攻击的目标只是单一IP,那么试图改个IP并更改其DNSmapping或许可以避开攻击,这是最快速而有效的方式;但是,攻击的目的就是要使正常使用者无法使用服务,更改IP的方式虽然避开攻击,以另一角度来看黑客也达到了他的目的。此外,假如攻击的手法较为单纯,可以由产生的流量找出其规则,那么利用路由器的ACLs(AccessControlLists)或防火墙规则也许可以阻挡,若可以发现流量都是来自同一来源或核心路由器,可以考虑暂时将那边的流量挡起来,当然这还是有可能将正常和异常的流量都一并挡掉,但至少其他来源可以得到正常的服务,这也是不得已的牺牲。此外,还可以考虑增加机器或频宽作为被攻击的缓冲之用,但这只是治标不治本的做法。最重要的是,必须立即着手调查并与相关单位协调解决。

  4、预防DDoS攻击

  预防DDoS攻击必须透过网络上各个团体和使用者的共同合作,制定更严格的网络标准来解决。每台网络设备或主机都需要随时更新其系统漏洞、关闭不需要的服务、安装必要的防毒和防火墙软件、随时注重系统安全,避免被黑客和自动化的DDoS程序植入攻击程序,以免成为黑客攻击的帮凶。网络管理人员可采取以下方法做好预防工作。

  4.1节点

  扫描网络管理员要定期扫描网络节点,分析并发现可能存在的安全漏洞,对新出现的漏洞及时进行修补。特别是骨干点的计算机,由于需要占用较高的带宽,因此,对这些主机本身加强主机安全是非常重要的。而且,连接到网络主节点的都是服务器级别的计算机,所以,定期扫描漏洞就变得更加重要了。

  4.2配置防火墙

  防火墙本身具备了抵御部分DDoS攻击的能力。在发现攻击行为存在时,可以牺牲备用设备引导攻击数据流,这样可以减轻或避免正常业务的顺利进行。当然如果企业或用户对网络的要求很高,笔者建议设立专用的服务器来防止DDoS攻击。

  4.3充分利用网络设备

  保护网络资源合理配置使用路由器、防火墙等网络设备,它们可将网络有效地保护起来。相对服务器的重启,网络路由器等网络设备的重启要容易得多,而且服务器数据不会有太多的损失。负载均衡技术的使用,可以在攻击发生时自动均衡设备的使用情况,最大限度地降低DDoS的攻击。

  4.4过滤服务及端口

  在默认情况下,服务器的很多端口是开放的,用户可以使用防火墙或一些管理软件来过滤不必要的服务和端口。只开放服务端口成为保障网络安全的流行做法,例如,用户可能会经常看到一个服务器只开放80端口等。

  4.5检查访问者的来源

  通过反向路由器查询的方法检查访问者的IP地址是否是真,如果发现虚假IP,应立即将其屏蔽。黑客在攻击时常采用假IP隐藏自己,因此,网络管理员有必要了解自己网络的用户访问情况。

  4.6过滤所有被保留的IP地址

  我们知道类似10.0.0.0、192.168.0.0和172.16.0.0这样的IP,并不是某个网段的固定IP地址,而是Internet内部保留的区域性IP地址,网络管理员应把被保留的IP过滤掉。

  4.7限制SYN/ICMP流量

  用户应在防火墙上配置SYN/ICMP的最大流量来限制SYN/ICMP所能占用的最大带宽。当出现大量的超过限定的SYN/ICMP流量时,管理员需要立即排查区分是否存在非法攻击行为。限制SYN/ICMP也是过去对付DDoS攻击最常使用的。据有关报道,电信级运营商已经开始积极运做,准备推出一系列的安全增值服务,IDC服务器托管商也已经积极行动起来,避免用户免受DDoS攻击的侵害,安全厂商更是在积极研究DDoS攻击的原理及防御措施,力求最大限度地扼杀DDoS攻击。笔者认为,任何个体是很难防御住巨大的数据流攻击,只有运营商、企业以及安全厂商共同联合起来,才能更好地克服DDoS给用户带来的伤害。

本篇文章来源于 黑基网-中国最大的网络安全站点 原文链接:http://www.hackbase.com/tech/2013-07-25/67671.html

相关资料来源:http://www.hackbase.com/

小型网站如何防范DDoS攻击的更多相关文章

  1. 安全性测试之防范 DDoS 攻击

    安全性测试之防范 DDoS 攻击   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:90882 ...

  2. 防范DDOS攻击脚本

    防范DDOS攻击脚本 #防止SYN攻击 轻量级预防 iptables -N syn-flood iptables -A INPUT -p tcp --syn -j syn-flood iptables ...

  3. 防范DDoS攻击的几种方式

    一.拒绝服务攻击的发展: 从拒绝服务攻击诞生到现在已经有了很多的发展,从最初的简单Dos到现在的DdoS.那么什么是Dos和DdoS呢?DoS是一种利用单台计算机的攻击 方式.而DdoS(Distri ...

  4. nginx限流模块(防范DDOS攻击)

    Nginx限流模式(防范DDOS攻击) nginx中俩个限流模块: 1.ngx_http_limit_req_module(按请求速率限流) 2.ngx_http_limit_conn_module( ...

  5. 配置 Haproxy 防范 DDOS 攻击

    作为 load balancer, Happroxy 常常作为服务器的前端,向外界用户提供服务的入口,如果能在入口处处理安全相关问题,将极大简化后端的设计.事实上,Haproxy 不仅仅是一款开源出色 ...

  6. 防范 DDoS 攻击的 15 个方法

    为了对抗 DDoS(分布式拒绝服务)攻击,你需要对攻击时发生了什么有一个清楚的理解. 简单来讲,DDoS 攻击可以通过利用服务器上的漏洞,或者消耗服务器上的资源(例如 内存.硬盘等等)来达到目的.DD ...

  7. 防范DDoS攻击的15个方法

    0x01 背景 为了对抗 DDoS(分布式拒绝服务)攻击,你需要对攻击时发生了什么有一个清楚的理解..简单来讲,DDoS 攻击可以通过利用服务器上的漏洞,或者消耗服务器上的资源(例如 内存.硬盘等等) ...

  8. iptable防范ddos攻击

    Basic DoS Protection https://github.com/MPOS/php-mpos/wiki/Basic-DoS-Protection # Rule 1: Limit New ...

  9. Nginx限制访问速率和最大并发连接数模块--limit (防范DDOS攻击)

    Tengine版本采用http_limit_req_module进行限制 具体连接请参考 http://tengine.taobao.org/document_cn/http_limit_req_cn ...

随机推荐

  1. 【PHP设计模式 08_CeLue.php】策略模式

    <?php /** * [策略模式]----和"简单工厂"模式很相似 * 根据不同运算符计算两个数的运算结果 * 常规方式就是判断运算符然后进行if...else的操作 * ...

  2. 项目管理:CocoaPods建立私有仓库

    CocoaPods是iOS,Mac下优秀的第三方包管理工具,类似于java的maven,给我们项目管理带来了极大的方便. 个人或公司在开发过程中,会积累很多可以复用的代码包,有些我们不想开源,又想像开 ...

  3. 搭建LAMP

    RPM包和源码包存放位置 /usr/local/src 源码包编译安装位置 /usr/local/apache /usr/local/mysql /usr/local/php 默认MySQL 数据库位 ...

  4. ACM题目————Anagram

    Description You are to write a program that has to generate all possible words from a given set of l ...

  5. 温故而知新 clone

    浅复制(浅克隆) 被复制对象所有变量都含有与原来对象的相同值,对象中对其他对象的引用仍然指向原来的对象,换言之,复制对象只复制考虑的对象,而不复制所引用的对象.继承自java.lang.Object类 ...

  6. android 代码整体回退

    repo forall -c 'HAHA=`git log --before="3 days" -1 --pretty=format:"%H"`;git res ...

  7. SIM卡应用-OPN,PLMN,SPN

    SIM卡应用 移动运营商已经将SIM卡用於很多不同的应用,下面列出了其中最主要的应 用∶ ·漫游应用∶确保手机可以在漫游之後选择缺省的运营商网络.一个SIM应用是可以在手机漫游到某个合作夥伴运营商网络 ...

  8. 什么是RAW数据?

    现在数码照片的存储格式,以及在网络上应用的最普遍的图片格式就是JPEG格式了(Joint Photographic Expert Group).但是作为一种有损的图像压缩格式(现在也有少数数码相机提供 ...

  9. javascript + jquery函数大全

    JAVASCRIPT Array 函数   array创建数组 concat()连接两个或更多的数组,并返回结果. join()把数组中所有元素组成字符串. pop()删除并返回数组的最后一个元素 s ...

  10. 织梦cms PHPcms 帝国cms比较

    现在建网站不需要请程序员从基础的程序开发做起了,有专业的建站工具,CMS是使用最广泛的建站工具.CMS是Content Management System 现在建网站不需要请程序员从基础的程序开发做起 ...