DDOS
2018-09-28 本文已影响0人
Miracle001
DDOS(Distributed Denial of Service)
分布式拒绝服务攻击
指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,
对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。
攻击者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,
在一个设定的时间,主控程序将与大量代理程序通讯,代理程序已经被安装在网络上的许多计算机上,
代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行
DDoS就是利用更多的傀儡机(肉鸡)来发起进攻
攻击方式
DDoS攻击通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。 这种攻击方式可分为以下几种:
1. 通过使网络过载来干扰甚至阻断正常的网络通讯;
2. 通过向服务器提交大量请求,使服务器超负荷;
3. 阻断某一用户访问服务器;
4. 阻断某服务与特定系统或个人的通讯。
IP Spoofing
IP欺骗攻击是一种黑客通过向服务端发送虚假的包以欺骗服务器的做法。
具体是将包中的源IP地址设置为不存在或不合法的值。
服务器一旦接受到该包便会返回接受请求包,但实际上这个包永远返回不到来源处的计算机。
这种做法使服务器必需开启自己的监听端口不断等待,也就浪费了系统各方面的资源。
LAND attack
这种攻击方式与SYN floods类似,不过在LAND attack攻击包中的源地址和目标地址都是攻击对象的IP。
这种攻击会导致被攻击的机器死循环,最终耗尽资源而死机。
ICMP floods
ICMP floods是通过向未良好设置的路由器发送广播信息占用系统资源的做法。
Application
与前面叙说的攻击方式不同,Application level floods主要是针对应用软件层的,也就是高于OSI的。
它同样是以大量消耗系统资源为目的,通过向IIS这样的网络服务程序提出无节制的资源申请来迫害正常的网络服务。
攻击现象
1. 被攻击主机上有大量等待的TCP连接;
2. 网络中充斥着大量的无用的数据包;
3. 源地址为假 制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯;
4. 利用受害主机提供的传输协议上的缺陷反复高速的发出特定的服务请求,使主机无法处理所有正常请求;
5. 严重时会造成系统死机。
6. 突然产生巨大的攻击流量。借助流量监控设备,可以及时发现异常流量的突现。
7. 会产生大量的SYN数据包,借助wireshark抓包分析,可以迅速发现这些攻击特征。
按照TCP/IP协议的层次可将DDOS攻击分为
基于ARP的攻击、基于ICMP的攻击、基于IP的攻击、基于UDP的攻击、基于TCP的攻击和基于应用层的攻击。
基于ARP
ARP是无连接的协议,当收到攻击者发送来的ARP应答时。它将接收ARP应答包中所提供的信息。更新ARP缓存。
因此,含有错误源地址信息的ARP请和含有错误目标地址信息的ARP应答
均会使上层应用忙于处理这种异常而无法响应外来请求,
使得目标主机丧失网络通信能力。产生拒绝服务,如ARP重定向攻击。
基于ICMP
攻击者向一个子网的广播地址发送多个ICMP Echo请求数据包。
并将源地址伪装成想要攻击的目标主机的地址。
这样,该子网上的所有主机均对此ICMP Echo请求包作出答复,
向被攻击的目标主机发送数据包,使该主机受到攻击,导致网络阻塞。
基于IP
TCP/IP中的IP数据包在网络传递时,数据包可以分成更小的片段。到达目的地后再进行合并重装。
在实现分段重新组装的进程中存在漏洞,缺乏必要的检查。
利用IP报文分片后重组的重叠现象攻击服务器,进而引起服务器内核崩溃。
如Teardrop是基于IP的攻击。
基于应用层
应用层包括SMTP,HTTP,DNS等各种应用协议。
其中SMTP定义了如何在两个主机间传输邮件的过程,
基于标准SMTP的邮件服务器,在客户端请求发送邮件时,是不对其身份进行验证的。
另外,许多邮件服务器都允许邮件中继。攻击者利用邮件服务器持续不断地向攻击目标发送垃圾邮件,大量侵占服务器资源。
DDOS 的表现形式主要有两种
流量攻击
主要是针对网络带宽的攻击,即大量攻击包导致网络带宽被阻塞, 合法网络包被虚假的攻击包淹没而无法到达主机;
资源耗尽攻击
主要是针对服务器主机的攻击,即通过大量攻击包导致主机的内存被耗尽或CPU被内核及应用程序占完,造成的无法提供网络服务。
判断网站是否遭受了流量攻击
通过 Ping 命令来测试,若发现Ping超时或丢包严重(假定平时是正常的),则可能遭受了流量攻击
没有被路由器和防火墙等设备屏蔽
资源耗尽攻击
假如平时 Ping网站主机和访问网站都是正常的,发现突然网站访问非常缓慢或无法访问了,
而 Ping还可以Ping通,则很可能遭受了资源耗尽攻击
此时若在服务器上用netstat -an命令观察到有大量的SYN_RECEIVED、TIME_W AIT、FIN_W AIT_1 等状态存在,
而EST BLISHED 很少,则可判定肯定是遭受了资源耗尽攻击。
还有一种现象是,Ping 自己的网站主机 Ping 不通或者是丢包严重,
而 Ping与自己的主机在同一交换机上的服务器则正常,
原因是网站主机遭受攻击后导致系统内核或某些应用程序CPU利用率达到100%无法回应Ping命令,
其实带宽还是有的,否则就Ping不通接在同一交换机上的主机了。
centos7 最小化安装之后,默认是没有 ifconfig,netstat命令的;
yum -y install net-tools 即可;
攻击手段
当前主要有三种流行的 DDOS:
1、SYN/ACK Flood 攻击:
经典最有效的 DDOS 方法,可通杀各种系统的网络服务,
主要是通过向受害主机发送大量伪造源 IP 和源端口的 SYN 或 ACK 包,
导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务, 由于源都是伪造的故追踪起来比较困难,
缺点是实施起来有一定难度, 需要高带宽的僵尸主机支持。
少量的这种攻击会导致主机服务器无法访问, 但却可以 Ping 的通,
在服务器上用 Netstat -na 命令会观察到存在大量的 SYN_RECEIVED 状态,
大量的这种攻击会导致 Ping 失败、TCP/IP 栈失效,并会出现系统凝固现象,即不响应键盘和鼠标。
普通防火墙大多无法抵御此种攻击。
2、TCP 全连接攻击:
为了绕过常规防火墙的检查而设计的,一般情况下,
常规防火墙大多具备过滤 T earDrop、Land 等 DOS 攻击的能力,但对于正常的 TCP 连接是放过的,
殊不知很多网络服务程序(如:IIS、Apache 等 Web 服务器)能接受的 TCP 连接数是有限的,
一旦有大量的 TCP 连接,即便是正常的,也会导致网站访问非常缓慢甚至无法访问,
TCP 全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的 TCP 连接,
直到服务器的内存等资源被耗尽而被拖跨, 从而造成拒绝服务,
这种攻击的特点是可绕过一般防火墙的防护而达到攻击目的,
缺点是需要找很多僵尸主机,并且由于僵尸主机的 IP 是暴露的,因此容易被追踪。
3、刷 Script 脚本攻击
针对存在 ASP、JSP、PHP、CGI等脚本程序,并调用 MSSQLServer、MySQLServer、Oracle等数据库的网站系统而设计,
特征是和服务器建立正常的 TCP 连接, 并不断的向脚本程序提交查询、 列表等大量耗费数据库资源的调用,
一般来说, 提交一个 GET 或 POST 指令对客户端的耗费和带宽的占用是几乎可以忽略的,
而服务器为处理此请求却可能要从上万条记录中去查出某个记录, 这种处理过程对资源的耗费是很大的,
常见的数据库服务器很少能支持数百个查询指令同时执行,而这对于客户端来说却是轻而易举的,
因此攻击者只需通过 Proxy 代理向主机服务器大量递交查询指令, 只需数分钟就会把服务器资源消耗掉而导致拒绝服务,
常见的现象就是网站慢如蜗牛、ASP 程序失效、PHP 连接数据库失败、数据库主程序占用 CPU 偏高。
这种攻击的特点是可以完全绕过普通的防火墙防护, 轻松找一些 Proxy 代理就可实施攻击,
缺点是对付只有静态页面的网站效果会大打折扣,并且有些 Proxy 会暴露攻击者的 IP 地址。
怎么抵御 DDOS
完全杜绝 DDOS是不可能的,但通过适当的措施抵御90%的 DDOS 攻击是可以做到的,
基于攻击和防御都有成本开销的缘故,若通过适当的办法增强了抵御 DDOS 的能力,也就意味着加大了攻击者的攻击成本,
那么绝大多数攻击者将无法继续下去而放弃,也就相当于成功的抵御了DDOS 攻击。
防御基础
对DoS和DDoS的防范主要从下面几个方面考虑:
1. 尽可能对系统加载最新补丁,并采取有效的合规性配置,降低漏洞利用风险;
2. 采取合适的安全域划分,配置防火墙、入侵检测和防范系统,减缓攻击。
3. 采用分布式组网、负载均衡、提升系统容量等可靠性措施,增强总体服务能力。
参考措施
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 价格不贵量还足的便宜,否则会付出高昂的性能代价,
再就是网卡一定要选用 3COM 或 Intel 等名牌的,若是 Realtek 的还是用在自己的 PC 上吧。
5、把网站做成静态页面
提高抗攻击能力,给黑客入侵带来不少麻烦,至少到为止关于 HTML 的溢出还没出现,
新浪、搜狐、网易等门户网站主要都是静态页面,若你非需要动态脚本调用,那就把它弄到另外一台单独主机去,
免的遭受攻击时连累主服务器,当然,适当放一些不做数据库调用脚本还是可以的,
此外,最好在需要调用数据库的脚本中拒绝使用代理的访问,因为经验表明使用代理访问你网站的80%属于恶意行为。
6.硬件防火墙
将服务器放到具有DDoS硬件防火墙的机房。
专业级防火墙通常具有对异常流量的清洗过滤功能,
可对抗SYN/ACK攻击、TCP全连接攻击、刷脚本攻击等等流量型DDoS攻击
7.单个主机
(1)及时修复系统漏洞,升级安全补丁。
(2)关闭不必要的服务和端口,减少不必要的系统加载项及自启动项,尽可能减少服务器中执行较少的进程,更改工作模式
(3)iptables
(4)严格控制账户权限,禁止root登录,密码登录,修改常用服务的默认端口