关键词:DoS 网络协议 服务资源 攻击类别
DoS 攻击原理
DoS 攻击是指利用网络协议漏洞或其他系统以及应用软件的漏洞耗尽被攻击目标资源,使得被攻击的计算机或网络无法正常提供服务,直至系统停止响应甚至崩溃的攻击方式,即攻击者通过某种手段,导致目标机器或网络停止向合法用户提供正常的服务或资源访问。
服务资源:网络带宽、磁盘容量、开放的进程和允许的连接。
DoS 攻击成因
- 利用现有网络协议中存在的缺点
- 利用现有软件和应用程序自身的漏洞
- 利用合法的服务请求耗尽服务资源
DoS 攻击的分类如下图所示:
以下将对每一个攻击类别做简要的介绍:
SYN Flood
攻击特征
- 目标主机的网络上出现大量的 SYN 包,而没有相应的应答包
- SYN 包的源地址可能是伪造的,甚至无规律可循
防止措施
1. 针对网络:
- 防火墙或者路由器可以在给定时间内只允许有限数量的半开连接
- 入侵检测,可以发现这样的 DoS 攻击行为
2. 针对主机:
- 限制 SYN Timeout 的时间
- 打补丁:Linux 和 Solaris 使用了一种被称为 SYN cookie 的技术来解决 SYN Flood 攻击:在半开连接队列之外另设置了一套机制,使得合法连接得以正常继续
死 ping(ping of death)
原理
- 直接利用 ping 包,即 ICMP Echo 包,有些系统在收到大量比最大包还要长的数据包,会挂起或者死机
攻击方法
- 直接利用 ping 工具,发送超大的 ping 数据包
防止措施
- 打补丁:现在所有的标准 TCP/IP 实现都已实现对付超大尺寸的包,并且大多数防火墙能够自动过滤这些攻击,包括:从 windows98 之后的 windows,NT(service pack 3 之后),linux、Solaris、和 Mac OS 都具有抵抗一般 ping of death 攻击的能力
- 防火墙能阻止这样的 ping 包
攻击指令
- Windows:ping -l 65570 [IP Addr]
- UNIX:ping –s 65570 [IP Addr]
(合法的包的大小范围是 0 -65500)
泪滴(teardrop)
原理
- 发送一系列高度碎片化的过大的 ICMP 数据包
- IP 碎片攻击利用那些在 TCP/IP 协议栈实现中,信任 IP 碎片中的包的标题头所包含的信息来实现自己的攻击。IP 分段含有指示该分段所包含的是原包的哪一段的信息,某些 TCP/IP(包括 service pack 4 以前的 NT)在收到含有重叠偏移的伪造分段时将崩溃(此部分内容将在下一篇 DDoS 实践中详细说明)
常见的 IP 碎片程序
- jolt2、teardrop、newtear、syndrop、boink 等
防御措施
- 服务器应用最新的服务包,或者在设置防火墙时对分段进行重组,而不是转发它们
带外传输攻击(Winnuke)
原理
- 向 Windows 系统的目标端口(53、137、138、139)发送带外数据,目标主机在处理带外数据时会出现挂起和重启动等异常现象,大多数情况会导致系统死机
防御措施
- 升级补丁
Echo-chargen 攻击
原理
- 各种各样的假冒攻击利用简单的 TCP/IP 服务,如 chargen 和 Echo 来传送毫无用处的占满带宽的数据
- 通过伪造与某一主机的 chargen 服务之间的一次的 UDP 连接,回复地址指向开着 Echo 服务的一台主机,这样就生成在两台主机之间的足够多的无用数据流,如果足够多的数据流就会导致带宽耗尽的拒绝服务攻击
防御措施
- 关掉不必要的 TCP/IP 服务
- 对防火墙进行配置阻断来自 Internet 对这些服务的 UDP 请求
Land 攻击
原理
- 在 Land 攻击中,构造一个特别的 SYN 包,它的原地址和目标地址都被设置成某一个服务器地址,此举将导致接受服务器向它自己的地址发送 SYN ACK 消息,结果这个地址又发回 ACK 消息并创建一个空连接,每一个这样的连接都将保留直到超时掉,对 Land 攻击反应不同,许多 UNIX 实现将崩溃,NT 变得极其缓慢(大约持续五分钟)
(这是一种比较老的攻击,目前大部分操作系统都能避免)防御措施
- 打最新的补丁
- 在防火墙进行配置,将那些在外部接口上入站的含有内部源地址滤掉(包括 10 域、127 域、192.168 域、172.16 到 172.31 域)
Ping flood
原理
- 发送大量的 ping 包耗尽服务资源。前提是掌握足够多的的肉鸡。
(PingFlood 和死 ping 不同,一个是发送大小足够大的包,一个是发送数量足够多的包)防御措施
- 防火墙
- IP 安全策略
Smurf
攻击特征
- 涉及到三方:攻击者、中间目标网络、受害者
- 以较小的网络带宽资源,通过放大作用,吃掉较大带宽的受害者系统
- smurf 放大器
smuf 放大器网络:不仅允许 ICMP Echo 请求发给网络的广播地址,并且允许 ICMP Echo-Reply 发送回去
样的公司越多,对 Internet 的危害就越大实施 smurf 攻击
- 需要长期的准备,首先找到足够多的中间网络
- 集中向这些中间网络发出 ICMP Echo 包
防御措施
针对最终受害者
- 没有直接的方法可以阻止自己接收 ICMP Echo Reply 消息
- 在路由器上阻止这样的应答消息,但是,路由器本身会遭受 DoS 攻击
- 与中间目标网络联系
针对中间网络
- 关闭外来的 IP 广播消息,但是,如果攻击者从内部机器发起攻击,仍然不能阻止 smurf 攻击
- 配置操作系统,对于广播地址的 ICMP 包不响应
Udp flood
原理
- 发送大量的 UDP 包
防御
- 防火墙
修改 ARP 缓存
原理
- ARP 是地址解析协议,将 IP 地址转换为物理地址,攻击者向肉鸡发送虚假的 IP/MAC 对应信息,篡改网关 MAC 地址,使受害者成为假网关。
修改 ARP 缓存只能被用于局域网(黑客必须已经获得局域网中某台机器的访问权)防御措施
- 网关建立静态 IP/MAC 对应关系, 各主机建立 MAC 数据库
- 建立 DHCP 服务器
- IDS 监听网络安全
修改 DNS 缓存
原理
- DNS 用于实现域名解析,也就是将域名对应到相应的 IP 地址。客户端以特定的标识 ID 向 DNS 服务器发送域名查询数据包,DNS 服务器查询之后以同样的 ID 返回给客户端响应数据包,攻击者拦截该响应数据包,并修改其内容,返回给客户端。将用户访问的合法网址重定向到另一个网址。
防御措施
- 将用户访问的合法网址重定向到另一个网址
- 直接用 IP 地址连接服务器
- 用加密的连接访问服务器,如 SSL
注:若想了解 ARP 欺骗和 DNS 欺骗的实现可查看上一篇文章四种假消息攻击
理论学习到这里就结束了,虽然这都是一些过时了的 DoS 攻击,但是了解经典、知其原理才能给自己带来收获和灵感,千里之行始于足下,懂得攻击的原理才会懂得如何防御,如果你对 DoS 感兴趣,可以关注我的下一篇文章“拒绝服务攻击的发展趋势 -DDoS(分布式拒绝服务攻击)”,会安利一个简易的 DDoS 工具哦。
(注:本人是个刚起步的小菜鸡,表达能力也不强,总结得不对的地方还请大家多多包涵,欢迎大家相互交流,共同学习,一起进步,感激不尽)
【同步更新于:https://www.jianshu.com/p/b9bd3e96f899】