DDoS介绍
DDoS是英文Distributed Denial of Service的缩写,意即“分布式拒绝服务”,那么什么又是拒绝服务(Denial of Service)呢?可以这么理解,凡是能导致合法用户不能够访问正常网络服务的行为都算是拒绝服务攻击。也就是说拒绝服务攻击的目的非常明确,就是要阻止合法用户对正常网络资源的访问,从而达成攻击者不可告人的目的。分布式拒绝服务攻击一旦被实施,攻击网络包就会从很多DOS攻击源(俗称肉鸡)犹如洪水般涌向受害主机,从而把合法用户的网络包淹没,导致合法用户无法正常访问服务器的网络资源,因此,拒绝服务攻击又被称之为“洪水式攻击”,常见的DDOS攻击手段有SYN Flood、ACK Flood、UDP Flood、ICMP Flood、TCP Flood、Connections Flood、Script Flood、Proxy Flood等。
目前而言,黑客甚至对攻击进行明码标价,打1G的流量到一个网站一小时,只需50块钱。DDoS的成本如此之低,而且攻击了也没人管。
关于DDos攻击的常见方法
1. SYN Flood:利用TCP协议的原理,这种攻击方法是经典最有效的DDOS方法,可通杀各种系统的网络服务,主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK 包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务。TCP通道在建立以前,需要三次握手:
a. 客户端发送一个包含SYN标志的TCP报文, 同步报文指明客户端所需要的端口号和TCP连接的初始序列号
b. 服务器收到SYN报文之后,返回一个SYN+ ACK报文,表示客户端请求被接受,TCP初始序列号加1
c.客户端也返回一个确认报文ACK给服务器,同样TCP序列号加1
d. 如果服务器端没有收到客户端的确认报文ACK,则处于等待状态,将该客户IP加入等待队列,然后轮训发送SYN+ACK报文
所以攻击者可以通过伪造大量的TCP握手请求,耗尽服务器端的资源。
2. HTTP Flood:针对系统的每个Web页面,或者资源,或者Rest API,用大量肉鸡,发送大量http request。这种攻击主要是针对存在ASP、JSP、PHP、CGI等脚本程序,并调用MSSQLServer、MySQLServer、Oracle等数据库的网站系统而设计的,特征是和服务器建立正常的TCP连接,并不断的向脚本程序提交查询、列表等大量耗费数据库资源的调用,典型的以小博大的攻击方法。缺点是对付只有静态页面的网站效果会大打折扣。
3. 慢速攻击:Http协议中规定,HttpRequest以\r\n\r\n结尾来表示客户端发送结束。攻击者打开一个Http 1.1的连接,将Connection设置为Keep-Alive, 保持和服务器的TCP长连接。然后始终不发送\r\n\r\n, 每隔几分钟写入一些无意义的数据流, 拖死机器。
4. P2P攻击:每当网络上出现一个热门事件,比如XX门, 精心制作一个种子, 里面包含正确的文件下载, 同时也包括攻击目标服务器的IP。这样,当很多人下载的时候, 会无意中发起对目标服务器的TCP连接。
DDOS攻击现象判定方法
1.SYN类攻击判断:A.CPU占用很高;B.网络连接状态:netstat –na,若观察到大量的SYN_RECEIVED的连接状态;C.网线插上后,服务器立即凝固无法操作,拔出后有时可以恢复,有时候需要重新启动机器才可恢复。
2.CC类攻击判断:A.网站出现service unavailable提示;B.CPU占用率很高;C.网络连接状态:netstat –na,若观察到大量的ESTABLISHED的连接状态 单个IP高达几十条甚至上百条;D.用户无法访问网站页面或打开过程非常缓慢,软重启后短期内恢复正常,几分钟后又无法访问。
3.UDP类攻击判断:A.观察网卡状况 每秒接受大量的数据包;B.网络状态:netstat –na TCP信息正常。
4.TCP洪水攻击判断:A.CPU占用很高;B.netstat –na,若观察到大量的ESTABLISHED的连接状态 单个IP高达几十条甚至上百条
DDoS攻击防御方法:
1. 过滤不必要的服务和端口:可以使用Inexpress、Express、Forwarding等工具来过滤不必要的服务和端口,即在路由器上过滤假IP。比如Cisco公司的CEF(Cisco Express Forwarding)可以针对封包Source IP和Routing Table做比较,并加以过滤。只开放服务端口成为目前很多服务器的流行做法,例如WWW服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。
2. 异常流量的清洗过滤:通过DDOS硬件防火墙对异常流量的清洗过滤,通过数据包的规则过滤、数据流指纹检测过滤、及数据包内容定制过滤等顶尖技术能准确判断外来访问流量是否正常,进一步将异常流量禁止过滤。单台负载每秒可防御800-927万个syn攻击包。
3. 分布式集群防御:这是目前网络安全界防御大规模DDOS攻击的最有效办法。分布式集群防御的特点是在每个节点服务器配置多个IP地址(负载均衡),并且每个节点能承受不低于10G的DDOS攻击,如一个节点受攻击无法提供服务,系统将会根据优先级设置自动切换另一个节点,并将攻击者的数据包全部返回发送点,使攻击源成为瘫痪状态,从更为深度的安全防护角度去影响企业的安全执行决策。
4. 高防智能DNS解析:高智能DNS解析系统与DDOS防御系统的完美结合,为企业提供对抗新兴安全威胁的超级检测功能。它颠覆了传统一个域名对应一个镜像的做法,智能根据用户的上网路线将DNS解析请求解析到用户所属网络的服务器。同时智能DNS解析系统还有宕机检测功能,随时可将瘫痪的服务器IP智能更换成正常服务器IP,为企业的网络保持一个永不宕机的服务状态。
DDoS攻击的网络流量清洗
当发生DDOS攻击时,网络监控系统会侦测到网络流量的异常变化并发出报警。在系统自动检测或人工判断之后,可以识别出被攻击的虚拟机公网IP地址。这时,可调用系统的防DDOS攻击功能接口,启动对相关被攻击IP的流量清洗。流量清洗设备会立即接管对该IP地址的所有数据包,并将攻击数据包清洗掉,仅将正常的数据包转发给随后的网络设备。这样,就能保证整个网络正常的流量通行,而将DDOS流量拒之门外。
采用云DDoS清洗方式,可以为企业用户带来诸多好处。其表现在不仅可以提升综合防护能力,用户能够按需付费,可弹性扩展,而且还能够基于大数据来分析预测攻击,同时能够免费升级。对于企业用户来说,则可实现零运维、零改造。
CC攻击防御方法
1. 利用Session做访问计数器:利用Session针对每个IP做页面访问计数器或文件下载计数器,防止用户对某个页面频繁刷新导致数据库频繁读取或频繁下载某个文件而产生大额流量。(文件下载不要直接使用下载地址,才能在服务端代码中做CC攻击的过滤处理)
2. 把网站做成静态页面:大量事实证明,把网站尽可能做成静态页面,不仅能大大提高抗攻击能力,而且还给骇客入侵带来不少麻烦,至少到现在为止关于HTML的溢出还没出现,看看吧!新浪、搜狐、网易等门户网站主要都是静态页面,若你非需要动态脚本调用,那就把它弄到另外一台单独主机去,免的遭受攻击时连累主服务器。
3. 增强操作系统的TCP/IP栈
Win2000和Win2003作为服务器操作系统,本身就具备一定的抵抗DDOS攻击的能力,只是默认状态下没有开启而已,若开启的话可抵挡约10000个SYN攻击包,若没有开启则仅能抵御数百个,具体怎么开启,自己去看微软的文章吧!《强化 TCP/IP 堆栈安全》。也许有的人会问,那我用的是Linux和FreeBSD怎么办?很简单,按照这篇文章去做吧!《SYN Cookies》。
4. 在存在多站的服务器上,严格限制每一个站允许的IP连接数和CPU使用时间,这是一个很有效的方法。CC的防御要从代码做起,其实一个好的页面代码都应该注意这些东西,还有SQL注入,不光是一个入侵工具,更是一个DDOS缺口,大家都应该在代码中注意。举个例子吧,某服务器,开动了5000线的CC攻击,没有一点反应,因为它所有的访问数据库请求都必须一个随机参数在Session里面,全是静态页面,没有效果。突然发现它有一个请求会和外面的服务器联系获得,需要较长的时间,而且没有什么认证,开800线攻击,服务器马上满负荷了。代码层的防御需要从点点滴滴做起,一个脚本代码的错误,可能带来的是整个站的影响,甚至是整个服务器的影响!
5. 服务器前端加CDN中转(免费的有百度云加速、360网站卫士、加速乐、安全宝等),如果资金充裕的话,可以购买高防的盾机,用于隐藏服务器真实IP,域名解析使用CDN的IP,所有解析的子域名都使用CDN的IP地址。此外,服务器上部署的其他域名也不能使用真实IP解析,全部都使用CDN来解析。
另外,防止服务器对外传送信息泄漏IP地址,最常见的情况是,服务器不要使用发送邮件功能,因为邮件头会泄漏服务器的IP地址。如果非要发送邮件,可以通过第三方代理(例如sendcloud)发送,这样对外显示的IP是代理的IP地址。
总之,只要服务器的真实IP不泄露,10G以下小流量DDOS的预防花不了多少钱,免费的CDN就可以应付得了。如果攻击流量超过20G,那么免费的CDN可能就顶不住了,需要购买一个高防的盾机来应付了,而服务器的真实IP同样需要隐藏
WAF介绍
WAF(Web Application Firewall)的中文名称叫做“Web应用防火墙”,利用国际上公认的一种说法,WAF的定义是这样的:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。通过从上面对WAF的定义中,我们可以很清晰的了解到,WAF是一种工作在应用层的、通过特定的安全策略来专门为Web应用提供安全防护的产品。
根据不同的分类方法,WAF可分为许多种。从产品形态上来划分,WAF主要分为以下三大类:
1.硬件设备类:目前安全市场上,大多数的WAF都属于此类。它们以一个独立的硬件设备的形态存在,支持以多种方式(如透明桥接模式、旁路模式、反向代理等)部署到网络中为后端的Web应用提供安全防护。相对于软件产品类的WAF,这类产品的优点是性能好、功能全面、支持多种模式部署等,但它的价格通常比较贵。国内的绿盟、安恒、启明星辰等厂商生产的WAF都属于此类。
2.软件产品类:这种类型的WAF采用纯软件的方式实现,特点是安装简单,容易使用,成本低。但它的缺点也是显而易见的,因为它必须安装在Web应用服务器上,除了性能受到限制外,还可能会存在兼容性、安全等问题。这类WAF的代表有ModSecurity、Naxsi、网站安全狗等。
3.基于云的WAF:随着云计算技术的快速发展,使得其于云的WAF实现成为可能。国内创新工场旗下的安全宝、360的网站宝是这类WAF的典型代表。它的优点是快速部署、零维护、成本低。对于中、小型的企业和个人站长是很有吸引力的。
DDoS攻击测试工具
1. 卢瓦(LOIC) (Low Orbit Ion Canon):LOTC是一个最受欢迎的DOS攻击工具。 这个工具被去年流行的黑客集团匿名者用于对许多大公司的网络攻击。它可以通过使用单个用户执行DOS攻击小型服务器,工具非常易于使用,即便你是一个初学者。 这个工具执行DOS攻击通过发送UDP,TCP或HTTP请求到受害者服务器。 你只需要知道服务器的IP地址或URL,其他的就交给这个工具吧。
2. XOIC:XOIC是另一个不错的DOS攻击工具。它根据用户选择的端口与协议执行DOS攻击任何服务器。XOIC开发者还声称XOIC比上面的LOIC在很多方面更强大呢。
3. R-U-Dead-Yet:R-U-Dead-Yet是一个HTTP post DOS攻击工具。它执行一个DOS攻击长表单字段,通过POST方法提交。这个工具提供了一个交互式控制台菜单,检测给定的URL,并允许用户选择哪些表格和字段应用于POST-based DOS攻击。
4. OWASP DOS HTTP POST:这是另外一个很好的工具。您可以使用这个工具来检查您的web服务器能否够捍卫得住别人的DOS攻击。当然,不仅对防御,它也可以用来执行DOS攻击哦。
5. DAVOSET:DAVOSET是另一个很好的执行DDOS攻击工具。 最新版本的工具新增支持cookie以及许多其他功能。