前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TCP/IP协议常见安全风险及防范办法

TCP/IP协议常见安全风险及防范办法

原创
作者头像
德迅云安全--陈琦琦
发布2024-03-25 18:44:47
1850
发布2024-03-25 18:44:47

TCP/IP协议常见安全风险及防范办法

概览

按各层次攻击分类

  • 应用层:漏洞,缓冲区溢出攻击,WEB应用的攻击,病毒及木马
  • 传输层:TCP欺骗,TCP拒绝服务,UDP拒绝服务,端口扫描
  • 网络层:IP欺骗,Smurf攻击,ICMP攻击,地址扫描
  • 链路层:MAC欺骗,MAC泛洪,ARP欺骗
  • 物理层:设备破坏,线路监听

防火墙对常见攻击的防范原理

  • 流量攻击
  • 扫描窥探攻击
攻击类型
攻击类型

按各层次攻击分类

1.MAC欺骗 攻击原理:MAC地址欺骗(或MAC地址盗用)通常用于突破基于MAC地址的局域网访问控制,例如在交换机上限定只转发源MAC地址修改为某个存在于访问列表中的MAC地址即可突破该访问限制,而且这种修改是动态的并且容易恢复。还有的访问控制方法将IP地址和MAC进行绑定,目的是使得一个交换机端口只能提供给一位用户的一台主机使用,此时攻击者需要同时修改自己的IP地址和MAC地址去突破这种限制。

造成影响:数据泄露

防范策略:

  • 解决方法一:安装ARP防火墙
  • 解决方法二:静态MAC地址绑定
2.MAC泛洪

攻击原理:MAC泛洪攻击的原理:MAC地址表是交换机中存在的一张记录MAC地址的表叫MAC表,交换机有着转发的机制,为了快速完成数据转发的功能,MAC表有自动学习机制,MAC表数目是有限制的,所以MAC表有老化机制。

防洪攻击即是攻击者利用这种学习机制和老化机制不断发送不同的MAC地址给交换机,充满交换机,而此时交换机只能进行数据广播,攻击者凭借此获得信息。

造成影响:(1)试交换机无法正常工作(MAC表满)(2)网络中流量增大

防范策略:

  • 1.配置静态MAC转化表
  • 2.限定交换机接入的端口的mac数量。
  • 例如:设置该交换机的该端口可以学习8个mac地址,超过了8个mac地址就停止学习,丢弃后来的mac。一般高级的交换机都有这项功能。
泛攻击
泛攻击

3.ARP欺骗 攻击原理:

ARP协议是通过广播请求来获取目标设备的MAC地址的。当一个设备需要发送数据到另一个设备时,它会发送一个ARP请求,询问局域网内的所有设备,是否有指定IP地址对应的MAC地址。目标设备收到该请求后,会回复一个ARP应答,告诉请求者它的MAC地址。

ARP欺骗利用了这种工作原理,攻击者会发送伪造的ARP数据包,将自己伪装成网关或其它设备。目标设备收到伪造的ARP数据包后,会将攻击者的MAC地址映射到目标IP地址上,并将后续数据包发送给攻击者。攻击者就可以截获目标设备发出的数据包,甚至可以修改、篡改数据包中的内容。此时,攻击者已经拦截了目标设备和网关之间的数据包传输,并可能对数据包进行抓包,修改或篡改等攻击。

同时,攻击者可以再发送伪造的ARP请求,将其它设备的IP映射到自己的MAC地址上,这样攻击者就可以中间人攻击,抓包,篡改等等。

造成影响:ARP欺骗攻击通过伪造ARP数据包来破坏网络的正常通信

防范策略:

1、使用防火墙或其它安全设备进行过滤,阻止伪造的ARP数据包通过。

2、使用ARP审计工具对网络中的ARP通信进行监测,及时发现异常情况。

3、使用ARP防窃听(ARP spoofing)软件来阻止攻击者发送伪造的ARP数据包。

4、定期清除ARP缓存表中的条目,避免攻击者利用ARP缓存攻击。

5、使用静态ARP映射的方式来配置网络设备,避免ARP欺骗攻击。

6、用动态主机配置协议DHCP Snooping功能来限制DHCP服务器的IP地址,并验证DHCP请求来源的MAC地址是否在白名单中,从而防止攻击者伪造DHCP请求来获取IP地址。

7、使用端口隔离技术,限制不同网络之间的通信,防止攻击者欺骗内部网络中的设备。

8、使用VPN等技术来加密网络通信,防止攻击者截获数据包。

二.网络层的安全问题及防范

1.IP欺骗攻击

攻击原理:IP地址欺骗是指黑客使用一台计算机上网,但借用另外一台机器的IP地址,从而冒充另外一台机器与服务器打交道。根据Internet Protocol(IP)网络互联协议,数据包头包含来源地和目的地信息。而IP地址欺骗就是通过伪造数据包包头,使显示的信息源不是实际的来源,就像这个数据包是从另一台计算机上发送的。

造成影响:

  1. 身份冒充:黑客可以通过IP地址欺骗冒充其他系统或发件人的身份,从而获取敏感信息或执行恶意操作。
  2. 拒绝服务攻击:黑客可以利用IP地址欺骗发动拒绝服务攻击,通过向目标服务器发送大量伪造的数据包,使其无法正常提供服务。
  3. 数据泄露:黑客可以利用IP地址欺骗窃取用户的个人信息、银行账户等敏感数据,给用户带来严重的财产和个人安全风险。

如何防范:

  1. 访问控制列表(ACL):防火墙可以根据预先设定的规则,限制特定IP地址的访问权限,从而减少黑客利用IP地址欺骗进行攻击的可能性。
  2. 反向路径转发检测(RPF):防火墙可以检查数据包的源IP地址是否与数据包经过的路由器的出口接口相匹配,以判断是否存在IP地址欺骗行为。
  3. 实时监控和警报:防火墙可以实时监控网络流量,并对异常流量进行警报,及时发现和阻止IP地址欺骗攻击。
2.Smurf攻击

攻击原理:攻击者向网络广播地址发送ICMP包,并将回复地址设置成受害网络的广播地址,通过使用ICMP应答请求数据包来淹没受害主机的方式进行,最终导致该网络的所有主机都对次ICMP应答请求作出答复,导致网络阻塞。更加复杂的Smurf攻击攻击将源地址改为第三方受害者,最终导致第三方崩溃。

造成影响:

  1. 带宽浪费:大量的ICMP Echo Reply占用了目标网络的带宽,造成正常的数据传输速度变慢或中断。
  2. 拒绝服务(DoS):网络被完全占用,无法提供正常的服务给合法用户。
  3. 网络不可用:目标网络可能因为过载而无法正常工作,造成网络服务的不可用性。

防范策略:

  1. 配置路由器禁止IP广播包进网
  2. 配置网络上所有计算机的操作系统,禁止对目标地址为广播地址的ICMP包响应。
  3. 被攻击目标与ISP协商,有ISP暂时阻止这些流量。
  4. 对于从本网络向外部网络发送的数据包,本网络应该将其源地址为其他网络的这部分数据包过滤掉。
3.ICMP重定向和不可达攻击

攻击原理:网络设备跨网段通讯时,发出的数据包,到达该设备指定的的网关时,网关经过查询路由表发现,目标主机不在该路由器所在的网段,此时,数据包需要再次从该接口转出时,下一跳地址在该网段的其他地方。这时,路由器启动ICMP重定向,主动向原始设备发送ICMP重定向包,告诉该设备目标网段对应的路由下一跳不在指定网关,请求重新定位新的网关地址,从而使得,数据包到达,正确的路由下一跳。避免了数据包绕路的现象。

造成影响:使用户的数据不按正常的路径转发,造成网络断开

防范策略:

ICMP 重定向攻击:一般情况下现有网络的设计是很少发出重定向,那么我们可以禁止网关发出重定向消息,主机不处理重 定向。

ICMP 不可达攻击:增加服务断开的判断机制,做多重判断,不能仅从icmp不可达来判断失去连接从而断开服务。

点击查看图片来源
点击查看图片来源
4.IP地址扫描攻击

攻击原理:IP扫描的原理是基于TCP/IP协议栈的工作方式。在TCP/IP协议中,每个主机都会分配一个唯一的IP地址。通过向目标主机发送特定的网络数据包,并分析返回的响应,扫描器可以确定目标主机上开放的端口和可用的服务。

造成影响:IP地址扫描攻击并没有直接造成什么恶劣后果,它只是一种探测行为,通常是为了后续发动破坏性攻击做准备,尽管如此,这种行为我们防火墙也不会放过的。

防范策略:

1、防火墙:配置防火墙规则,阻止未经授权的IP地址访问内部网络,可以使用防火墙的监控功能,实时检测并阻止恶意IP地址的攻击。

2、限制访问速率:限制每个IP地址在一定时间内的访问次数和访问速度,从而降低攻击者的扫描效率。

3、使用DDoS防护:部署DDoS防护设备,如高防IP、WAF等,对流量进行过滤和清洗,防止恶意流量对服务器造成影响。

4、加强身份认证:要求用户登录时输入有效的用户名和密码,或使用数字证书等方式进行身份验证,防止未经授权的用户访问系统。

5、定期更新系统和软件:及时更新操作系统和软件的安全补丁,修复已知的安全漏洞,降低被攻击的风险。

6、加密通信:使用SSL/TLS等加密技术保护数据传输过程中的安全,防止数据在传输过程中被窃取或篡改。

三.传输层安全问题及防范

1.TCP欺骗

攻击原理:TCP协议是一种基于IP协议而建立的一条面向连接的、可靠的字节流。在黑客攻击层出不穷的今天,一个攻击者可以通过发送IP地址源地址属于另一台机器的IP数据来实施欺骗。TCP欺骗的攻击者实际上并不在乎是否能收到这些数据的答复,但其他的机器将接受这些伪造数据并认为他们来自合法的拥有者。

TCP欺骗攻击模拟:

现在有舍友、我、以及舍友女朋友三个目标对象。

  1. 我首先确认舍友的对象不能上网或者处于拒绝服务状态。
  2. 我作为攻击者冒充舍友女朋友向舍友发送TCP第一次握手的SYN请求。
  3. 舍友接到SYN后,回应ACK的目标主机为自己女朋友的IP地址(因为我冒充的是他女朋友),因为舍友对象此时处于拒绝服务状态,故不会应答。
  4. 所以我获取到了舍友的SYN+ACK,进行第三次握手,发送ACK进行最终确认。
  5. 三次握手连接成功,使用舍友对象的IP跟舍友进行信息互换,你们猜我要干什么?
2.TCP拒绝服务攻击—SYN Flood攻击

攻击原理:yn_flood攻击利用了TCP协议实现上的一个缺陷,通过向网络服务所在端口发送大量的伪造源地址的攻击报文,就可能造成目标服务器中的半开连接队列被占满,从而阻止其他合法用户进行访问。这种攻击早在1996年就被发现,但至今仍然显示出强大的生命力。很多操作系统,甚至防火墙、路由器都无法有效地防御这种攻击,而且由于它可以方便地伪造源地址,追查起来非常困难。

客户端发起连接的报文即为syn报文。当攻击者发送大量的伪造IP端口的syn报文时,服务端接收到syn报文后,新建一共表项插入到半连接队列,并发送syn_ack。但由于这些syn报文都是伪造的,发出去的syn_ack报文将没有回应。TCP是可靠协议,这时就会重传报文,默认重试次数为5次,重试的间隔时间从1s开始每次都番倍,分别为1s + 2s + 4s + 8s +16s = 31s,第5次发出后还要等32s才知道第5次也超时了,所以一共是31 + 32 = 63s。 

也就是说一共假的syn报文,会占用TCP准备队列63s之久,而半连接队列默认为1024,系统默认不同,可 cat /proc/sys/net/ipv4/tcp_max_syn_backlog c查看。也就是说在没有任何防护的情况下,每秒发送200个伪造syn包,就足够撑爆半连接队列,从而使真正的连接无法建立,无法响应正常请求。 

一台普通的每秒就可以轻松伪造100w个syn包。因此即使把队列大小调大最大也无济于事。  

解决方法:

1.cookie源认证:原理是syn报文首先由DDOS防护系统来响应syn_ack。带上特定的sequence number(记为cookie)。真实的客户端会返回一个ack并且Acknowledgment number为cookie+1。而伪造的客户端,将不会作出响应。这样我们就可以知道那些IP对应的客户端是真实的,将真实客户端IP加入白名单。下次访问直接通过,而其他伪造的syn报文就被拦截。

2.reset认证:Reset认证利用的是TCP协议的可靠性,也是首先由DDOS防护系统来响应syn。防护设备收到syn后响应syn_ack,将Acknowledgement number(确认号)设为特定值(记为cookie)。当真实客户端收到这个报文时,发现确认号不正确,将发送reset报文,并且sequence number为cookie+1。

而伪造的源,将不会有任何回应。这样我们就可以将真实的客户端IP加入白名单。

通常在实际应用中还会结合首包丢弃的方式结合源认证一起使用,首包丢弃原理为:在DDOS防护设备收到syn报文后,记录5元组,然后丢弃。正常用户将重传syn报文,防护设备在收到报文命中5元组,并且在规定时间内,则转发。当重传syn报文到达一定阀值时,在启用上述的源认证。这样就能减少反射syn_ack报文的数量,缓解网络拥堵,同时对防护不产生影响。

3.端口扫描攻击

攻击原理:端口扫描攻击的原理基于网络通信中的端口概念。计算机通信时,使用端口与其他设备进行交流。攻击者通过扫描目标主机的端口,尝试发现开放的端口,以便找到潜在的攻击入口。

造成影响:

  • 系统漏洞暴露
  • 信息泄露
  • 拒绝服务攻击

防范策略:

1、防火墙设置

通过合理设置防火墙规则,限制对网络端口的访问。只允许必要的端口对外开放,对于不需要对外服务的端口,要进行关闭或限制访问权限,减少攻击者的突破口。

2、端口混淆技术

采用端口混淆技术是一种有效的防范手段。通过修改默认端口号,使得攻击者难以准确识别目标系统的开放端口,从而增加攻击的难度。

3、网络入侵检测系统(IDS)

部署网络入侵检测系统能够实时监测网络流量,及时发现异常活动。当系统检测到大量的端口扫描行为时,可以立即采取相应的防御措施,提高系统的安全性。

4、定期漏洞扫描和更新

定期对系统进行漏洞扫描,及时修补系统存在的安全漏洞。同时,保持系统和安全软件的及时更新,以防止攻击者利用已知漏洞进行攻击。

5、流量监控

通过实时监控网络流量,管理员可以迅速发现异常的端口扫描行为。流量监控系统可以分析流量模式,识别潜在的攻击,并及时采取相应的应对措施。

第二部分

一.流量型攻击
一.SYN Flood攻击防范(DDOS)

攻击介绍:当开放了一个TCP端口后,该端口就处于Listening状态,不停地监视发到该端口的SYN报文,一旦接收到Client发来的SYN报文,就需要为该请求分配一个TCB(Transmission Control Block),通常一个TCB至少需要280个字节,在某些操作系统中TCB甚至需要1300个字节,并返回一个SYNACK报文,立即转为SYN-RECEIVED即半开连接状态,而某些操作系统在SOCKT的实现上最多可开启512个半开连接

如果恶意的向某个服务器端口发送大量的SYN包,则可以使服务器打开大量的半开连接,分配TCB,从而消耗大量的服务器资源,同时也使得正常的连接请求无法被相应。而攻击发起方的资源消耗相比较可忽略不计

处理方法:

1.无效连接监视释放

这种方法不停监视系统的半开连接和不活动连接,当达到一定阈值时拆除这些连接,从而释放系统资源。这种方法对于所有的连接一视同仁,而且由于SYN Flood造成的半开连接数量很大,正常连接请求也被淹没在其中被这种方式误释放掉,因此这种方法属于入门级的SYN Flood方法。

2.延缓TCB分配方法

从前面SYN Flood原理可以看到,消耗服务器资源主要是因为当SYN数据报文一到达,系统立即分配TCB,从而占用了资源。而SYN Flood由于很难建立起正常连接,因此,当正常连接建立起来后再分配TCB则可以有效地减轻服务器资源的消耗。常见的方法是使用SYN Cache和SYN Cookie技术。

SYN Flood攻击和SYN报文扫描攻击

SYN Flood攻击的源地址不是真实的,是伪造的

SYN 报文扫描的源地址是真实的,不是伪造的

SYN报文扫描攻击可以加入黑名单

SYN Flood攻击不可能加入黑名单

1.cookie源认证:原理是syn报文首先由DDOS防护系统来响应syn_ack。带上特定的sequence number(记为cookie)。真实的客户端会返回一个ack并且Acknowledgment number为cookie+1。而伪造的客户端,将不会作出响应。这样我们就可以知道那些IP对应的客户端是真实的,将真实客户端IP加入白名单。下次访问直接通过,而其他伪造的syn报文就被拦截。

2.reset认证:Reset认证利用的是TCP协议的可靠性,也是首先由DDOS防护系统来响应syn。防护设备收到syn后响应syn_ack,将Acknowledgement number(确认号)设为特定值(记为cookie)。当真实客户端收到这个报文时,发现确认号不正确,将发送reset报文,并且sequence number为cookie+1。

而伪造的源,将不会有任何回应。这样我们就可以将真实的客户端IP加入白名单。

通常在实际应用中还会结合首包丢弃的方式结合源认证一起使用,首包丢弃原理为:在DDOS防护设备收到syn报文后,记录5元组,然后丢弃。正常用户将重传syn报文,防护设备在收到报文命中5元组,并且在规定时间内,则转发。当重传syn报文到达一定阀值时,在启用上述的源认证。这样就能减少反射syn_ack报文的数量,缓解网络拥堵,同时对防护不产生影响。

二.Connection Flood 攻击防范

攻击介绍: Connection Flood攻击的主要方式是通过发送大量TCP连接请求来占用服务器资源。攻击者使用多个源IP地址和端口号,以模拟多个客户端同时发起连接请求。这些连接请求可能是虚假的、恶意的或者根本没有实际意义的。攻击者的目标是耗尽服务器的连接资源,导致服务器无法正常响应合法用户的请

处理方法:

1.流量过滤:

使用防火墙或入侵防御系统(IDS)来识别和过滤恶意连接请求。这些系统可以根据特定规则集来识别和阻止Connection Flood攻击的流量。

2.连接限制:

通过设置最大连接数、连接速率限制等参数,对服务器进行配置,以限制每个IP地址或每个用户的连接数。这可以有效减轻Connection Flood攻击对服务器的影响。

3.负载均衡:

使用负载均衡技术将连接请求分散到多个服务器上,以增加服务器的处理能力和容错能力。这可以减轻Connection Flood攻击对单个服务器的影响。

4.反向代理:

通过使用反向代理服务器,将连接请求转发到后端服务器,并对连接请求进行验证和过滤。这可以帮助识别和拦截恶意连接请求。

5.流量监测和分析:

使用流量监测和分析工具来实时监测服务器的连接请求,并识别异常的连接模式。及时发现Connection Flood攻击并采取相应措施。与其他攻击方式相比的优势和缺点:Connection Flood攻击相对于其他攻击方式具有一些优势,但同时也存在一些缺点。

与SYN Flood不同,TCP全连接攻击是指攻击者与被攻击对象正常建立了连接,但是却没有后续的报文,占用被攻击者的资源的攻击的行为,通过配置防范功能,将TCP连接建立后不继续进行报文交互的连接作为不正常连接。当不正常连接超过阈值时,对其进行阻断

三.ICMP/UDP Flood攻击防范

攻击介绍:短时间内向特定目标发送大量的UDP/ICMP报文,致使目标系统负担过重而不能处理合法的连接

处理方法:

1. 过滤UDP流量:使用防火墙、入侵检测系统(IDS)或入侵防御系统(IPS)等设备,设置规则过滤掉无效的UDP数据包,只允许合法的UDP通信。

2. 使用流量限制器:设置流量限制器来限制每个IP地址或每个连接的UDP通信速率,以防止大量UDP数据包的洪水攻击。

3. 网络流量监测:通过使用网络监控工具,实时监测网络流量,检测异常的UDP流量并及时采取防御措施。

4. 使用反射放大攻击防御:在应用层进行防御,通过限制服务器响应的大小和频率,以减少反射放大攻击的影响。

5. 分布式防御:采用分布式防御系统,多个服务器集群共同抵抗UDP flood攻击。这样可以将攻击流量分散到多个服务器上,减轻单个服务器的负担。

6. 自动黑名单:在防火墙或入侵防御系统中使用自动黑名单机制,将频繁发起UDP flood攻击的IP地址自动加入黑名单,阻止其进一步访问服务器。

7. 流量清洗服务:如果目标服务器无法自行抵御UDP flood攻击,可以考虑使用第三方的流量清洗服务,将受攻击的流量重定向到流量清洗中心进行处理,过滤掉恶意的UDP数据包。

ICMP/UDP是无连接的协议,因此不能提供类似 SYN FLOOD代理的方式的防御方法

二.扫描窥探攻击

一.地址扫描攻击防范

攻击介绍:利用ping程序来探测目标地址,以用来确定目标系统是否存活的标识,也可使用TCP/UDP报文对目标系统发起探测

处理方法:

检测进入防火墙的ICMP,TCP和UDP报文,由该报文的源IP地址获取统计表项的索引,如目的IP地址与前一报文的目的IP地址不同,则将表项中的总报文个数增1.如在一定时间内报文的个数到达设置的阈值,记录日志,并根据配置决定是否将源IP地址自动加入到黑名单

二.端口扫描

攻击介绍:通常使用一些软件,向大范围的主机的一系列TCP/UDP端口发起连接,根据应答报文判断主机是否使用这些端口提供服务

处理方法:检测进入的TCP或UDP报文,由该报文的源IP地址获取统计表项,如目的端口与前一报文不同,将表项中的报文个数增1,如在一定时间内报文的个数到达设置的阈值,记录日志,并根据配置决定是否将源IP地址自动加入到黑名单

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • TCP/IP协议常见安全风险及防范办法
    • 概览
      • 按各层次攻击分类
      • 防火墙对常见攻击的防范原理
      • 按各层次攻击分类
      • 二.网络层的安全问题及防范
      • 三.传输层安全问题及防范
      • 第二部分
相关产品与服务
主机安全
主机安全(Cloud Workload Protection,CWP)基于腾讯安全积累的海量威胁数据,利用机器学习为用户提供资产管理、木马文件查杀、黑客入侵防御、漏洞风险预警及安全基线等安全防护服务,帮助企业构建服务器安全防护体系。现支持用户非腾讯云服务器统一进行安全防护,轻松共享腾讯云端安全情报,让私有数据中心拥有云上同等级别的安全体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档