TCP 攻击在网络安全领域具有至关重要的地位。随着互联网的飞速发展,网络安全问题日益凸显,而 TCP 攻击作为一种常见的网络攻击手段,其影响广泛而深远。
在当今数字化时代,大量的信息通过网络进行传输和交互,TCP 协议作为一种广泛应用的传输层协议,其安全性直接关系到整个网络系统的稳定运行。一旦遭受 TCP 攻击,可能会导致企业数据泄露、服务中断,给个人和组织带来巨大的损失。
TCP 攻击的原理主要是利用 TCP 协议在设计和实现过程中存在的漏洞。例如,TCP 三次握手过程中的漏洞就被攻击者广泛利用。在正常的 TCP 连接建立过程中,需要经过三次握手:首先,客户端发送 SYN 报文请求建立连接;服务器收到后回复 SYN-ACK 报文;客户端再回应 ACK 报文,连接建立成功。然而,攻击者可以利用这个过程进行攻击,如 TCP SYN 泛洪攻击。攻击者向目标主机发送大量伪造的 TCP SYN 连接请求,目标主机在接收到这些请求后会向攻击者回复 TCP SYN-ACK 包,然后等待攻击者响应 TCP ACK 包。但攻击者并不会回复,而是持续发送 TCP SYN 连接请求,导致目标主机长时间等待连接建立,占用大量资源,最终无法正常工作。
此外,TCP SYN 扫描攻击也是常见的 TCP 攻击方式之一。攻击者利用 TCP 协议的三次握手过程,向被攻击主机某个端口发送第一次握手连接请求,如果被攻击主机此端口在监听状态,则会回复 TCP SYN-ACK 包。攻击者并不响应第三次握手,而是迅速发送 TCP RST 包,以无痕迹的方式获取目标主机的开放端口信息。
TCP 攻击的广泛影响不仅体现在对单个主机的攻击上,还可能对整个网络造成严重破坏。例如,当大量主机同时遭受 TCP 攻击时,网络带宽可能会被大量的攻击流量占用,导致正常的网络通信受阻。同时,TCP 攻击还可能引发连锁反应,影响其他依赖网络服务的系统和应用。
二、常见 TCP 攻击方式
(一)SYN Flood 攻击
SYN Flood 攻击是一种非常危险且常见的拒绝服务攻击方式。其原理是利用 TCP 三次握手的缺陷,攻击者在短时间内发送大量伪造的 TCP SYN 连接请求包给受害者。当 TCP 服务器收到这些 SYN 包时,会为每个连接分配一个特定的数据区,并向攻击者回复 TCP SYN - ACK 包,然后等待攻击者回复 ACK 包以完成连接建立。但攻击者并不会回复 ACK 包,而是持续发送大量具有不同源地址(伪造的)的 SYN 包。这将给 TCP 服务器造成很大的系统负担,因为服务器要为这些半打开连接分配资源,最终导致系统不能正常工作。据统计,在一些严重的攻击案例中,服务器可能在几分钟内就被大量的半打开连接耗尽资源,无法为合法用户提供服务。
(二)IP 欺骗攻击
IP 欺骗攻击是通过伪造 IP 地址来破坏目标计算机的正常连接。攻击者利用其他主机的 IP 地址,假装自己来自该主机,以获得未被授权访问的信息。例如,攻击者可以伪装成被信任的主机,向目标计算机发送带有 SYN 标志的数据段请求连接。首先,攻击者使被信任主机的网络暂时瘫痪,以免对攻击造成干扰。然后,通过嗅探或者 ARP 欺骗等方式,猜测目标机的 ISN 基值和增加规律。接着,把源地址伪装成被信任主机,发送请求连接。当目标机发送 SYN + ACK 包时,由于被信任主机已瘫痪无法收到这个包。最后,攻击者再次伪装成被信任主机向目标机发送 ACK,此时发送的数据段为之前预测的目标机的 SEQ + 1,从而建立连接并发送命令请求。
(三)TCP 重置攻击
TCP 重置攻击利用协议设定,发送伪造重置报文段来断开通信双方的连接。在 TCP 重置攻击中,攻击者通过向通信的一方或双方发送伪造的消息,告诉它们立即断开连接,从而使通信双方连接中断。正常情况下,如果客户端发现到达的报文段对于相关连接而言是不正确的,TCP 就会发送一个重置报文段,从而导致 TCP 连接的快速拆卸。攻击者利用这一机制,通过向通信方发送伪造的重置报文段,欺骗通信双方提前关闭 TCP 连接。如果伪造的重置报文段完全逼真,接收者就会认为它有效,并关闭 TCP 连接。
(四)UDP Flooding 攻击
UDP Flooding 攻击与其他攻击类似,通过发送大量 UDP 报文使目标计算机忙于处理而无法正常工作。UDP Flood 攻击是一种利用 UDP 协议进行的拒绝服务攻击,攻击者通过发送大量的 UDP 数据包来占用目标系统的网络带宽和资源,从而使系统无法正常响应合法用户的请求。在正常情况下,当服务器在特定端口接收到 UDP 数据包时,会先检查是否有程序在该端口接收数据包。如果没有程序在该端口接收数据包,则服务器会使用 ICMP 数据包进行响应,以通知发送方目的地不可达。但在 UDP Flooding 攻击中,攻击者发送大量 UDP 数据包,使目标服务器忙于处理这些数据包,无法响应合法用户的请求。
(五)端口扫描攻击
端口扫描攻击通过发送不同报文判断目标计算机开放端口,为后续攻击做准备。端口扫描主要有多种方式,如全 TCP 连接扫描,此扫描试图与每一个 TCP 端口进行“三次握手”通信,如果能够成功建立连接,则证明端口开放,否则为关闭。还有 SYN 扫描,扫描器向目标主机的一个端口发送请求连接的 SYN 包,在收到 SYN/ACK 后,不是发送 ACK 应答而是发送 RST 包请求断开连接,这样不会被记录到系统日志中。另外,NULL 扫描、FIN 扫描、ACK 扫描等方式也各有特点,都是通过不同的报文标志位设置来判断端口状态。
(六)分片 IP 报文攻击
分片 IP 报文攻击利用目标计算机处理分片报文的机制,发送部分报文消耗其资源。IP 报文在网络传输中可能会因为超过传输网络的 MTU(最大传输单元)而被分片。攻击者可以发送部分分片报文,让目标计算机等待其他分片报文到来,从而占用目标计算机的资源。如果目标计算机长时间等待分片报文,会影响其正常处理其他网络流量的能力。
(七)SYN 和 FIN 比特同时设置攻击
此攻击利用协议未规定的畸形报文,判断操作系统类型进行进一步攻击。在正常的 TCP 协议中,SYN 比特用于建立连接,FIN 比特用于关闭连接。当攻击者同时设置 SYN 和 FIN 比特发送报文时,不同的操作系统可能会有不同的反应。攻击者可以根据目标计算机的反应来判断其操作系统类型,然后针对特定的操作系统进行更有针对性的攻击。例如,某些操作系统可能会忽略这种畸形报文,而另一些操作系统可能会产生错误响应,攻击者可以利用这些错误响应来进一步攻击目标计算机。
三、TCP 攻击案例分析
(一)半链接攻击案例
TCP 半连接攻击是一种常见的攻击方式,它利用了 TCP 三次握手过程中的漏洞。在正常的 TCP 连接建立过程中,客户端发送 SYN 报文请求建立连接,服务器收到后回复 SYN - ACK 报文,客户端再回应 ACK 报文,连接建立成功。然而,在半连接攻击中,攻击者向目标服务器发送大量伪造的 TCP SYN 连接请求,服务器在接收到这些请求后会为每个连接分配资源,并向攻击者回复 TCP SYN - ACK 包,然后等待客户端的 ACK 包以完成连接建立。但攻击者并不会回复 ACK 包,而是持续发送大量的 SYN 包,导致服务器长时间等待连接建立,占用大量资源。
据统计,在一些严重的半连接攻击案例中,服务器可能在几分钟内就被大量的半打开连接耗尽资源,无法为合法用户提供服务。例如,在一个企业的网络环境中,攻击者利用半连接攻击使企业的服务器无法正常工作,导致企业的业务中断,给企业带来了巨大的损失。
攻击过程如下:攻击者首先伪造大量不存在的 IP 地址,向服务器不断地发送 SYN 包。服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时。这些伪造的 SYN 包将长时间占用未连接队列,正常的 SYN 请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。
(二)DNS 攻击案例
DNS 劫持和欺骗攻击是常见的网络攻击方式之一。DNS 欺骗攻击就是攻击者在域名解析请求的过程中冒充 DNS 域名服务器进行响应,然后回复给用户一个虚假的地址。
DNS 欺骗攻击的原理是利用了 DNS 协议设计时的安全缺陷。因为所有 DNS 解析服务都是采用标准的一问一答模式,DNS 服务器的 IP 地址和端口号都是对外公布的。现在的 Internet 上存在的 DNS 服务器有绝大多数都是用 bind 来架设的,使用的 bind 版本主要为 bind 4.9.5 + P1 以前版本和 bind 8.2.2 - P5 以前版本。所有的 DNS 服务器有个共同的特点,就是会缓存所有已经查询过的结果,这个问题就引起了下面的几个问题的存在。
在域名解析请求的过程中 DNS 没有提供认证机制,查询者在收到应答时无法确认应答信息的真假,这样极易导致欺骗。同样地每一台 DNS 服务器也无法知道请求域名服务的主机或其他的 DNS 服务器是否合法,是否盗用了地址。
可以通过在终端命令窗口 ping 域名,就可以看到该域名对应的 IP 地址。例如,我们访问今日头条官网的时候,在浏览器地址栏输入头条地址 https://www.toutiao.com/,看似我们访问的是域名,而实际上是通过 IP 地址访问的今日头条官网。可以在终端命令窗口 ping 今日头条官网域名,就可以看到该域名对应的 IP 地址了。
(三)通过抓包分析攻击案例
通过 tcpdump 抓包分析服务器受 DDoS 攻击是网络安全中的一项重要技能。以下是一个通过 tcpdump 抓包分析服务器受 DDoS 攻击的案例。
案例背景:假设我们怀疑某台服务器正在受到 DDoS 攻击,流量异常增大,服务器响应变慢。我们使用 tcpdump 来捕获和分析网络流量,以确定攻击的类型和来源。
- 使用 tcpdump 抓包
首先,在目标服务器上运行 tcpdump 命令来捕获网络流量:sudo tcpdump -i eth0 -w capture.pcap。其中,-i eth0 指定网络接口,这里是 eth0;-w capture.pcap 将捕获的数据写入文件 capture.pcap。
- 分析捕获的流量
捕获一段时间后,停止 tcpdump,然后使用 Wireshark 或 tcpdump 本身来分析捕获的数据。假设我们使用 Wireshark:wireshark capture.pcap。
分析步骤:
过滤 HTTP 流量:如果我们怀疑是 HTTP DDoS 攻击,可以在 Wireshark 中使用过滤器 http 来只显示 HTTP 流量。
检查源 IP 地址:查看是否有大量来自相同 IP 地址或不同 IP 地址的请求。如果有大量不同 IP 地址的请求,可能是 HTTP DDoS 攻击。
检查请求频率:如果同一 IP 地址在极短时间内发出大量请求,可能是 DoS 攻击。
- 使用 tcpdump 进行细节分析
使用 tcpdump 本身也可以进行一些简单的分析。例如,我们可以使用以下命令查看特定源 IP 的流量:tcpdump -r capture.pcap src
192.168.1.1。其中,-r capture.pcap 读取捕获文件;src
192.168.1.1 过滤源 IP 为
192.168.1.1 的流量。
案例结论:通过分析捕获的流量,我们发现有大量来自不同 IP 地址的 HTTP 请求,并且请求频率非常高。这些特征表明服务器正遭受 HTTP DDoS 攻击。接下来,可以根据分析结果采取相应的防御措施,如启用 WAF(Web 应用防火墙)、限制 IP 访问频率或启用 DDoS 防护服务。
(四)TCP 新建会话攻击案例
TCP 新建会话攻击是一种针对目标服务器的攻击方式。攻击者首先建立大量的有效会话,然后缓慢地响应一个 ACK 包和不完整的请求,使会话长时间保持打开状态。
攻击原理:攻击者首先建立大量的有效会话,然后缓慢地响应一个 ACK 包和不完整的请求,使会话长时间保持打开状态。流量服务器系统等待缓存资源瞬间被占满,服务器瘫痪,从而不能响应正常的服务请求。
在 supernova 测试仪中可应用的场景:
- 网关模式:测试仪同时模拟客户端和服务器,测试数据包穿过受测设备(防火墙、交换机、路由器等),得到受测设备的性能。
- 应用服务模式:测试仪只模拟客户端,向被测服务器发送数据包,从而得到该服务器运行状态来测试服务器的性能。
用例功能介绍:
- 分配 cpu 核:用例的运行需要分配 cpu 核数,最高性能需要分配一定的核数。
- 限速配置:TCP 新建会话攻击支持多种流量模型,包括固定速率、随机速率、梯形速率、雪崩速率、正弦速率、楼梯速率等。
- 抓包设置:可以设置需要抓的协议类型,指定 IP 地址、端口、文件大小或者包数。可在运行前或运行中设置抓包。
- 客户端源端口范围设置:可以设置发送端口的范围。范围大小:1 - 65,535 可以选择,也可以使用单一端口。
- 对象设置:可以选择载荷流量,也可以创建新的载荷流量。
案例:
- TCP 新建会话攻击用例拓扑图:测试仪使用“应用服务模式”模拟 TCP 新建会话攻击的客户端,来测试服务器上服务器的性能。
- TCP 新建会话攻击用例目的:TCP 新建会话攻击攻击者首先建立大量的有效会话,然后缓慢地响应一个 ACK 包和不完整的请求,使会话长时间保持打开状态,流量服务器系统等待缓存资源瞬间被占满,服务器瘫痪,查找出服务器存在该漏洞,以便尽快地修复漏洞,从而提高应用程序的健壮性及抵御意外输入的安全性。
- TCP 新建会话攻击预计结果:出现服务器系统等待缓存资源被占满,服务器瘫痪。
测试步骤:
- 创建 TCP 新建会话攻击用例,配置参数。
(1)在应用服务模式中,创建 TCP 新建会话攻击,选择应用服务模式,配置被测设备的 IP 地址。
(2)分配 CPU 核数。
(3)抓包设置,本次运行结果需要看发送报文是否有效,需要抓包查看。
(4)点击启动用例。
(5)在监控中查看运行界面。
(6)生成报告用例手动终止或者到时后,可在报告页面生成报告。
对预期结果进行验证:
- 抓包报文正常发送:建立缓慢地响应一个 ACK 包和不完整的请求,使会话长时间保持打开状态符合预期结果.流量接收 5.6M/S 流量发送 3M/S。
- 服务器系统有等待缓存资源被占满:查看服务器运行情况:Cpu 资源占据 100%。符合期望预期。
- 服务器瘫痪:停止用例后:正常访问服务器。无法打开服务器网址,服务器瘫痪。停止用例后可以正常访问服务器。符合期望预期。
四、TCP 攻击防范策略
(一)使用防火墙和安全设备
防火墙是网络安全防护的重要工具之一,对于 TCP 攻击有着显著的防范作用。防火墙可以通过设置访问控制规则,过滤掉恶意的 TCP 数据包。例如,对于常见的 SYN Flood 攻击,防火墙可以检测到大量的伪造 SYN 包,并采取相应的措施,如限制连接请求的速率、丢弃来自可疑源 IP 的数据包等。
DDoS 云清洗服务则专门针对分布式拒绝服务攻击,包括基于 TCP 的攻击。当检测到攻击流量时,云清洗服务会将流量引流到清洗中心,去除恶意流量后再将合法流量回注到目标网络,确保业务的连续性。
CDN(内容分发网络)也能在一定程度上防范 TCP 攻击。CDN 将网站的内容分发到全球各地的服务器上,当用户请求访问时,会从离用户最近的服务器提供服务。这样不仅可以提高访问速度,还能分散攻击流量,降低单个服务器遭受攻击的风险。
(二)静态 MAC 地址绑定等方法
对于 MAC 欺骗攻击,可以采用静态 MAC 地址绑定的方法。将特定设备的 MAC 地址与 IP 地址进行绑定,这样可以防止攻击者通过修改 MAC 地址来冒充合法设备。例如,在交换机上设置静态 MAC 地址绑定,只允许特定 MAC 地址的设备访问网络,从而有效防范 MAC 欺骗攻击。
针对 MAC 泛洪攻击,可以配置静态 MAC 转化表,并限定交换机接入端口的 MAC 数量。例如,设置交换机的某个端口可以学习的 MAC 地址数量为 8 个,超过这个数量后就停止学习并丢弃后来的 MAC 地址。一般高级的交换机都具备这项功能。
对于 ARP 欺骗攻击,可以使用多种防范策略。首先,使用防火墙或其他安全设备进行过滤,阻止伪造的 ARP 数据包通过。其次,使用 ARP 审计工具对网络中的 ARP 通信进行监测,及时发现异常情况。还可以使用 ARP 防窃听软件来阻止攻击者发送伪造的 ARP 数据包。定期清除 ARP 缓存表中的条目,避免攻击者利用 ARP 缓存攻击。使用静态 ARP 映射的方式来配置网络设备,避免 ARP 欺骗攻击。用动态主机配置协议 DHCP Snooping 功能来限制 DHCP 服务器的 IP 地址,并验证 DHCP 请求来源的 MAC 地址是否在白名单中,从而防止攻击者伪造 DHCP 请求来获取 IP 地址。使用端口隔离技术,限制不同网络之间的通信,防止攻击者欺骗内部网络中的设备。使用 VPN 等技术来加密网络通信,防止攻击者截获数据包。
(三)更新系统和应用程序
及时更新系统和应用程序对于提高网络安全性、防范 TCP 攻击至关重要。软件开发商会不断修复已知的漏洞和安全问题,通过更新系统和应用程序,可以确保设备拥有最新的安全防护机制。例如,针对 TCP SYN 泛洪攻击等常见的 TCP 攻击方式,更新后的系统可能会采用更先进的连接管理机制和资源分配策略,降低被攻击的风险。
同时,更新系统和应用程序还可以提高设备的整体性能和稳定性。新的版本通常会优化代码,提高处理效率,减少资源占用,从而使设备在面对攻击时能够更好地应对。此外,及时更新还可以确保设备符合最新的安全标准和规范,提高网络的整体安全性。据统计,定期更新系统和应用程序可以降低约 70%的被攻击风险。
墨者安全 防护盾
墨者安全作为专业级别安全防护专家,在应对 Webshell 风险隐患方面展现出了卓越的能力。其拥有全面的检测机制,能够精准识别 Webshell 的各种类型和变体,无论是复杂的大马,还是隐蔽的内存马,都难逃其敏锐的监测。
墨者安全防护盾具备强大的实时监控功能,对服务器的各项活动进行 7*24 小时不间断的监视。一旦发现任何可疑的 Webshell 活动迹象,立即发出警报,并迅速采取隔离和清除措施,将风险扼杀在萌芽状态。
在防护策略上,墨者安全防护盾采用了多层次的防御体系。不仅能够在网络层面阻挡外部的恶意访问和攻击,还能深入系统内部,对服务器的文件系统、进程等进行深度检查和保护,确保 Webshell 无法植入和运行。
同时,墨者安全防护盾拥有快速的应急响应能力。当 Webshell 攻击事件发生时,专业的安全团队能够迅速介入,进行深入的分析和处理,最大程度减少攻击带来的损失,并帮助用户快速恢复服务器的正常运行。
墨者安全防护盾还注重用户教育和培训,为用户提供关于 Webshell 防范的专业知识和最佳实践,帮助用户提升自身的安全意识和防范能力,共同构建坚实的网络安全防线。