网络安全知识之DDOS介绍
2017-12-03 21:39
323 查看
一. 神马是DDOS?——野蛮且残忍的攻击方式
DOS:DOS的全称是Denial of Service,意思是拒绝服务。其目的就是通过各种手段,使网络或者计算机无法提供正常服务。DDOS:DDOS攻击就是高级的DOS攻击,全称是Distributed Denial of Service,意思是分布式拒绝访问攻击。随着计算机科技的发展,服务器的性能也再不断的提升,靠单一的机器来对服务器进行DOS攻击已经杯水车薪,所以出现了分布式DOS攻击,即利用成千上万的机器来对服务器发起DOS攻击,这些成千上万的机器被成为“肉鸡”。
DDOS的比喻:譬如有一个黑客想攻击你家的电话,那么他可以找来几百个人同时给你家打电话,这样正常用户想联系你时会一直占线,可以理解为 你的电话遭遇了“DDOS攻击”。
二. 发生在身边的DDOS——比特币交易网站崩溃
亲身经历:2013.11.21:我入手莱特币(简称LTC,比特币的兄弟)。入手时60元一个,买了1w的。交易网站是 中国最大的LTC交易平台 OKCOIN。
2013.11.29:LTC疯涨到380元一个,1w变成了4w。周围的同事都疯了一样,紧紧握住手中的币,深深相信LTC的价格将直奔1000元。
2013.12.10:OKCOIN交易网站出现了无法访问的现象,随后OKCOIN官方微博发布声明:OKCOIN正在遭受DDOS攻击,用户的资金不受影响,稍安勿躁。LTC的价格开始下跌。
2013.12.15:央行发表正式声明,声明称:虚拟货币不是
4000
货币,之后将禁止其买卖。BTC和LTC的价格开始大跌。LTC从200+降到40而后反弹回150,这期间只用了3-4个小时。
2013.12月底:OKCOIN交易网站又遭受了几次DDOS的攻击,不过此时的用户的心理素质已经变强,攻击后价格波动不大。趁着价格波动,又入手1w。
2014.初:LTC价格仍旧居高不下,央行又陆续发表了n次声明。
2014.中:LTC价格终于跌回20元。当时有朋友说,LTC终究会涨回去的,我半信半疑。
2015年今天:LTC价格仍旧在20元左右徘徊。算了算,赔了1w。
结论:在金融的世界,技术DDOS神马的都是浮云,政策才是王道。珍爱生命,远离虚拟货币。
三. 小试牛刀——Target is CRM
实验原理:利用slowloris脚本来对Apache进行攻击实验方法:
1. 在192.168.22.194的8082端口上布置CRM的服务
2. 在192.168.22.194上布置Apache服务,默认在80端口监听,并设置转发规则如下:
ProxyPass / http://127.0.0.1:8082/
ProxyPassReverse / http://127.0.0.1:8082/
3. 访问http://192.168.22.194/,可以正常访问CRM服务
4. 在192.168.11.243,运行attack.sh
5. 再次访问http://192.168.22.194/,观察效果
6. 在192.168.22.194上运行netstat -anpt | grep 80,观察效果
四. 琳琅满目的攻击方式——DDOS的原理及工具
1. DDOS攻击原理一个比较完善的DDOS攻击体系,分为4大部分,如下图:
2. DDOS攻击方式
(1) 畸形HTTP请求
原理:此种攻击方式利用Web Server的设计缺陷,以极低的速度往服务器发送Http请求,但是该请求是畸形的:正常的Http请求以两个\r\n表示头部的结束,攻击者只发送一个。这时Web Server认为该请求的头部尚未结束,保持连接不放。这样一来,Web Server将会保持大量的恶意连接,而Web Server对于并发的连接数都是有上限的(Apache默认是256),当达到上限时,将无法提供正常服务。
工具:Slowloris(Perl编写),就是利用这个原理来进行攻击。
(2) SYN FLOOD
原理:SYN FLOOD利用TCP三次握手的固有漏洞来进行攻击。攻击机器向目标机发送SYN(第一次握手)后,不接收服务器返回的ACK并给与回应,这种情况下,服务器一般会重试并等待一段时间后再丢弃这个连接,等待的时间是分钟级(30s-2min)。当攻击者向服务器大量发送这种SYN包,并且不做回应时,服务器将维护一个非常巨大的半连接列表并忙于重试,消耗大量的资源而导致无法提供正常服务。
工具:TFN2K(C语言编写)和LOIC(低轨道离子炮,C#编写),都提供了SYN FLOOD的攻击模式。
(3) HTTP FLOOD
原理:利用大量的“肉鸡”,向服务器发送http请求。当请求量达到一定QPS时,服务将崩溃。当请求的后天处理涉及数据库请求时,往往瓶颈会出现在数据库;当不涉及数据库时,瓶颈会出现在web容器(jetty)。
工具:LOIC,任意打压工具。
(4) PING FLOOD
原理:PING是通过发送ICMP报文来探寻网络主机是否存在的一个工具。由于ICMP基于无连接,所以主机A可以伪装成主机B向主机C发送ICMP报文,那么主机C会将回应发送到主机B,A不受任何影响。当服务器接收到大量的PING时,有可能会崩溃,瓶颈可能出现在 服务器资源 或 网络带宽。
工具:TFN2K提供了PING FLOOD模式。
五. 人无远虑,必有近忧——如何防范
1. 被DDOS时攻击的现象(1) 服务响应变慢甚至无法响应
(2) 被攻击的服务器上充斥着大量的TCP连接,大多数处于SYN_RECV和TIME_WAIT状态
查看方法:netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'
(3) 网络中充斥着大量的无用数据包
(4) 服务器CPU占有率很高
2. 防御方法
(1) 防火墙
如果能够通过netstat观察出攻击者的IP特征,可以用iptables临时封掉最大嫌疑的ip或ip段。
(2) 调整服务配置
(i) 修改tcp_synack_retries,减少服务器收到SYN包后的重试次数——针对SYN FLOOD
(ii) 减小TCP的SYN的半连接的超时时间——针对SYN FLOOD
(iii) 增大Apache或nginx的并发连接数量——针对畸形HTTP请求
(3) 加机器
对于HTTP FLOOD的攻击方式,最简单的方法就是加机器,以暴制暴,看谁耗得过谁,毕竟攻击者的资源也是有限的。
(4) 取消域名绑定
一般攻击者是根据域名来对一个服务进行攻击,所以取消域名绑定,可以让攻击者失去目标,同时通知你的用户通过ip访问服务。
(5) nginx限制客服端的访问频次
可参考:http://www.aichengxu.com/view/38512
(6) 第一个也是最重要的是:联系运维!
相关文章推荐
- liunx中的网络安全介绍了一些网络知识
- 网络安全知识之XSS介绍
- 交换机知识--网络安全介绍
- 2006-08-31 老婆陪读开始了,网络安全基础知识 48%
- 网络安全基础知识16个问答
- 网络安全开发包介绍
- [转]网络安全设备Bypass功能介绍及分析 - [网络编程]
- 推荐一篇网络安全方面的文章,介绍HTTPS
- 网络安全知识学习
- 网络安全基础知识之侦察与工具
- 网络安全入门知识16问
- 【网络安全】DDoS解决方法小结
- (转)网络安全科普知识~同学编的~
- Linux网络编程--网络知识介绍
- [转]网络安全工具开发函数库介绍
- 大学生应该了解的网络安全知识
- 安全知识 细分网络攻击类型
- 网络知识介绍
- 网络安全设备Bypass功能介绍及分析