DDoS 攻击简介
• 分布式拒绝服务(DDoS:Distributed Denial of Service Attack)攻击是通过大规模互联网流量淹没目标服务器或其周边基础设施,以破坏目标服务器、服务或网络正常流量的恶意行为
• DDoS 攻击利用多台受损计算机系统作为攻击流量来源以达到攻击效果。利用的机器可以包括计算机,也可以包括其他联网资源(如 IoT 设备)
DDoS 攻击原理
• DDoS 攻击是通过连接互联网的计算机网络进行的,这些网络由计算机和其他设备(例如 IoT 设备)组成,它们感染了恶意软件,从而被攻击者远程控制。这些个体设备称为机器人(或僵尸),一组机器人则称为僵尸网络
• 一旦建立了僵尸网络,攻击者就可通过向每个机器人发送远程指令来发动攻击,当僵尸网络将受害者的服务器或网络作为目标时,每个机器人会将请求发送到目标的 IP 地址,这可能导致服务器或网络不堪重负,从而造成对正常流量的拒绝服务
• 由于每个机器人都是合法的互联网设备,因而可能很难区分攻击流量与正常流量
DDoS 攻击特征
• 来自单个 IP 地址或 IP 范围的可疑流量
• 来自共享单个行为特征(例如设备类型、地理位置或 Web 浏览器版本)的用户的大量流量
• 对单个页面或端点的请求数量出现不明原因的激增
• 奇怪的流量模式,例如一天中非常规时间段的激增或看似不自然的模式(例如,每 10分钟出现一次激增)
DDoS 攻击目的
• 进行勒索
• 打击竞争对手
• 报复或者政治目的
DDoS 攻击分类
1、消耗网络带宽资源
• 攻击者利用受控主机发送大量的网络数据包,占满攻击目标的带宽,使得正常请求无法达到及时有效的响应
• ICMP Flood:ICMP 洪水攻击,攻击者通过受控主机向目标发送大量的ICMP请求,以消耗目标带宽资源
• UDP Flood:UDP 洪水攻击,是目前主要的DDoS攻击手段, 攻击者会使用小包和大包的攻击方法,小包可增加网络设备处理数据包的压力,大包攻击能够严重消耗网络带宽资源
• 反射与放大攻击:攻击者不直接攻击目标,而是利用互联网某些特殊服务开放的服务器、路由器等(反射器),发送伪造请求,通过反射器对请求产生应答,反射攻击流量,同时达到隐藏攻击源的目的,也称为 DRDoS(分布式反射拒绝服务攻击)
• DNS 放大:利用伪造的 IP 地址(受害者的 IP 地址)向开放式 DNS 服务器发出请求后,目标 IP 地址将收到服务器发回的响应
• DNS 响应的数据包比查询的数据包大,攻击者发送的DNS查询数据包大小一般为 60 字节左右,而查询返回的数据包的大小通常在3000字节以上,因此放大倍数能达到50倍以上,放大效果惊人
2、消耗系统资源
• 主要通过对系统维护的连接资源进行消耗,使其无法正常连接,以达到拒绝服务的目的,此类攻击主要是因为TCP 安全性设计缺陷引起的
• TCP Flood:TCP三次握手后,客户端与服务端进行 ESTABLISHED 状态,服务器会保存连接信息到连接表内,但是这个表有大小限制,一旦服务器接收的连接数超过了连接表的最大存储量,就无法接收新的请求,达到拒绝服务目的
• SYN Flood:在三次握手中,如果服务端返回了 SYN+ACK 报文后,客户端没有进行确认回答,那么服务端就会重传,并等待客户端确认,直到TCP超时,这种状态称为半开连接;通过受控主机向目标发送大量 SYN 报文,使服务器打开大量半开连接,而连接无法马上结束,因此连接表被占满,无法建立新的 TCP 连接,造成拒绝服务
• SYN 洪水:利用 TCP 握手,通过向目标发送大量带有伪造源IP地址的 TCP SYN 数据包来实现
• 目标计算机响应每个连接请求,然后等待握手中的最后一步,但这一步确永远不会发生,因此在此过程中耗尽目标的资源
3、消耗应用资源
• 消耗应用资源攻击通过向应用提交大量消耗资源的请求,以达到拒绝服务的目的
• HTTP Flood(CC攻击):攻击者利用受控主机对目标发起大量 HTTP 请求,要求Web服务器进行处理,超量的请求会占用服务器资源,直到目标请求饱和,无法响应正常请求;主要分为 HTTP GET攻击和HTTP POST攻击
• 慢速攻击:依赖慢速流量,主要针对应用程序或服务器资源。慢速攻击所需的带宽非常少,且难以缓解,其生成的流量很难与正常流量区分开,攻击者使用单台计算机就可以成功发起慢速攻击。慢速攻击以web服务器为目标,旨在通过慢速请求捆绑每个线程,从而防止真正的用户访问服务,这个过程通过非常缓慢的传输数据来完成,但同时又可以防止服务器超时
4、应用层攻击
• HTTP 洪水攻击:类似于同时在大量不同计算机的 Web 浏览器中一次又一次地刷新 ,大量 HTTP 请求涌向服务器,导致拒绝服务
• 这种类型的攻击较简单的实现可以使用相同范围的攻击 IP 地址、referrer 和用户代理访问一个 URL;复杂版本可能使用大量攻击性 IP 地址,并使用随机 referrer 和用户代理来针对随机网址
DDoS工具
1、卢瓦(LOIC)(Low Orbit Ion Canon)
• LOTC是一个最受欢迎的DOS攻击工具。 这个工具曾经被流行的黑客集团匿名者用于对许多大公司的网络攻击
• 它可以通过使用单个用户执行 DOS 攻击小型服务器,工具非常易于使用,即便你是一个初学者。 这个工具执行DOS攻击通过发送UDP,TCP或HTTP请求到受害者服务器。你只需要知道服务器的IP地址或URL,其他的就交给这个工具吧
2、XOIC
• XOIC是另一个不错的DOS攻击工具。它根据用户选择的端口与协议执行DOS攻击任何服务器。XOIC开发者还声称XOIC比LOIC在很多方面更强大
• 一般来说,该工具有三种攻击模式,第一个被称为测试模式,是非常基本的; 第二个是正常的DOS攻击模式; 最后一个是带有HTTP / TCP / UDP / ICMP消息的DOS攻击模式
• 对付小型网站来说,这是一个很有效的DDOS工具, 但是从来没有尝试的要小心点,你可能最终会撞自己的网站的服务器
3、HULK(HTTP Unbearable Load King)
• HULK是另一个不错的DOS攻击工具,这个工具使用某些其他技术来避免通过攻击来检测,它有一个已知的用户代理列表,且使用的是随机请求
DDoS——模拟攻击
1、安装 LOIC (低轨道加农炮)
apt install mono-xbuild mono-mcs mono-devel #安装依赖环境
wget https://codeload.github.com/NewEraCracker/LOIC/zip/master
unzip master
cd LOIC-master/
./loic-net4.5.sh install
./loic-net4.5.sh run
2、配置参数,开始攻击
(注意:不要尝试未授权的站点,可以搭建自己站点尝试)
• 输入 URL ,点击 Lock on,设置 Method 模式(比如 HTTP),设置速度等其他参数
• 点击 IMMA CHARING MAH LAZER ,开始攻击
3、访问被攻击的站点
• 注意:不要尝试未授权的站点,可以自己搭建站点尝试
• 打开被攻击的站点,发现此时已经打不开
应急响应——事件处置
1、查看流量设备,发现攻击者使用僵尸网络在某时间段内发起了DDoS攻击
2、进一步对网络数据包进行抓包分析,发现攻击者使用 HTTP 请求功能向服务器发起多次请求,服务器返回多个响应文件,造成网络负载过高
3、对服务器访问日志进行排查
应急响应——根除与恢复
1、配置防火墙策略,屏蔽异常访问的IP地址
2、调整防护设备策略,在不影响业务的情况下限制 HTTP Range 形式访问
3、如果流量远远超出出口带宽,建议联系运营商进行流量清洗
应急响应——防御方法
1、攻击前的防御阶段
• 对服务器、主机、网络设备等进行安全配置并部署相关安全产品,消除可能存在的DDoS 安全隐患
2、攻击时的缓解阶段
• 遭受攻击的时候,采取措施减小DDoS 攻击造成的影响,尽量保证业务的可用性,必要时上报公安机关;通过流量分析确定攻击类型,在相关设备上调整防护策略;限制异常访问,如果攻击流量过大,可以接入运营商或 CDN 服务商,对流量进行清洗
3、攻击后的追溯总结阶段
• 对遭受的攻击进行分析总结,保存、分析攻击期间的日志,整理攻击IP地址用于溯源,若对业务产生严重影响,可上报公安机关,对系统网络进行加固,完善应急流程
应急响应——清除加固
• 尽量避免将非业务必需的端口暴露在公网上,避免与业务无关的请求和访问
• 对服务器进行安全加固,包括操作系统即服务软件,减少可能被攻击的点
• 优化网络架构,保证系统的弹性和冗余,防止单点故障发生
• 对服务器性能进行测试,评估正常业务下能承受的带宽,保证带宽有余量
• 对现有架构进行压力测试,评估当前业务吞吐处理能力
• 使用全流量监控设备(如天眼)对全网中存在的威胁进行监控分析,实时关注告警
• 根据当前技术架构、人员、历史攻击情况等,完善应急响应技术预案