端口扫描攻击检测及防御攻略

译文 精选
安全 应用安全
端口扫描数据一旦落入坏人之手,可能会成为更大规模恶意活动的一部分。因此,了解如何检测和防御端口扫描攻击至关重要。

译者 | 晶颜

审校 | 重楼

端口扫描用于确定网络上的端口是否开放以接收来自其他设备的数据包,这有助于网络安全团队加强防御。但恶意行为者也可以利用这一过程来寻找易受攻击的端口。

在深入研究什么是端口扫描攻击以及如何预防和阻止它们之前,让我们先看看什么是端口和端口扫描。

什么是端口?

端口是一个通信端点,数据单元称为数据包通过它流动。传输层协议使用端口号码进行通信和交换数据包。最著名的传输层协议是传输控制协议TCP和用户数据报协议UDP,前者是一种面向连接的协议,在发送数据之前需要建立连接后者是一种无连接协议,不需要建立双向连接即可开始通信。

TCP和UDP使用的每个端口都与一个特定的进程或服务相关联。端口的取值范围是0 ~ 65535,在网络连接的设备之间是标准化的。端口0在TCP/IP网络中是保留的,不应该在TCP或UDP消息中使用。端口1到1023是众所周知的端点,用作Internet协议的默认值,由互联网数字分配机构(IANA定义。

端口1024 ~ 29151是为在IANA注册的端口预留的号码,用于关联特定协议。49152 ~ 65535范围内的端口是临时端口,用于动态连接。

一些最常用的端口包括

  • 用于HTTP协议TCP 80端口和UDP 80端口
  • 用于HTTPS协议TCP 443端口和UDP 443端口
  • 用于邮件服务器如SMTPTCP)的TCP 465端口
  • 用于DNS的TCP 53端口和UDP 53端口。

端口扫描及其用途

端口扫描是由某人发送的一系列消息,以了解给定计算机提供的计算机网络服务。

端口扫描器是识别连接互联网的设备上哪些端口和服务打开或关闭的应用程序。端口扫描器可以在所有65,536个端口上向目标计算机发送连接请求,并记录哪些端口响应以及如何响应。从端口接收到的响应类型表明它们是否在使用中。

企业防火墙一般以以下三种方式响应端口扫描

  • 打开。如果一个端口是打开的,或者正在监听,它就会响应请求。
  • 关闭。一个关闭的端口会用一条消息进行响应,表明它收到了打开的请求,但拒绝了它。这样,当一个真正的系统发送一个打开的请求时,它知道请求已被接收,但无需不断重试。然而,这个响应也揭示了在被扫描的IP地址后面存在一台计算机。
  • 没有响应,也称为过滤或丢弃,这既不涉及确认请求也不发送回复。没有响应向端口扫描器表明防火墙可能过滤了请求数据包,端口被阻塞或没有端口。例如,如果端口被阻塞或处于隐身模式,则防火墙不会响应端口扫描程序。有趣的是,被封锁的端口违反了TCP/IP行为规则,因此,防火墙必须抑制计算机关闭端口的回复。安全团队甚至可能发现公司防火墙并没有封锁所有的网络端口。例如,如果标识协议Identification Protocol使用的113端口被完全阻塞,那么与某些远程Internet服务器如internet Relay Chat的连接可能会被延迟或完全拒绝。由于这个原因,许多防火墙规则将端口113设置为关闭,而不是完全阻止它。

端口扫描的一般目标是绘制出系统的操作系统及其运行的应用程序和服务,以便了解其保护措施及可能存在的潜在漏洞。

端口扫描的类型

由于TCP和UDP是最常用的传输层协议,因此它们经常用于端口扫描。

根据设计,TCP发送一个确认ACK数据包,让发送方知道是否收到了数据包。如果接收不到信息、被拒绝或接收错误,则发送一个否定ACKnegative ACK报文。另一方面,UDP在接收数据包时不发送ACK如果没有收到信息,它只响应ICMPInternet控制消息协议端口不可达消息。

具体来说主要存在以下几种类型的端口扫描技术

  • Ping扫描或Sweep扫描扫描几台计算机上的相同端口,以查看它们是否处于活动状态。这包括发送ICMP回显请求,以查看哪些计算机响应。
  • TCP SYN扫描或TCP半开放扫描是最常见的端口扫描类型之一。它通过发送TCP同步报文来发起通信,但不完成连接。
  • TCP连接也称为全连接扫描类似于TCP SYN扫描,因为它发送TCP SYN包来启动通信,但这种扫描通过发送ACK来完成连接。
  • 频闪(Strobe扫描是尝试只连接到选定的端口,通常少于20个。
  • UDP扫描查找打开的UDP端口。
  • 在FTP bounce扫描中,FTP服务器被用来扫描其他主机。通过FTP服务器进行的扫描尝试会伪装端口扫描器的源地址。
  • 在分段扫描fragmented scan中,TCP头被分成几个包,以防止被防火墙发现。
  • 隐形扫描Stealth scans包括种扫描技术,试图阻止连接请求被记录。

什么是端口扫描攻击?

端口扫描并不一定意味着网络攻击。了解为什么要收集端口扫描信息以及这些信息的用途非常重要。

作为侦察过程的一部分,端口扫描是恶意行为者常用的一种信息收集方法。攻击者可以使用通过端口扫描收集的数据来查找设备正在运行的服务,并了解正在使用的操作系统。然后,这些数据可以帮助攻击者标记易受攻击的系统,意图利用它们获得对网络的访问权限

安全团队和渗透测试人员还使用端口扫描数据来识别漏洞、网络上可能需要注意的新设备、潜在的错误配置和安全覆盖中的其他缺口,以加强防御。

当路由器报告多次暴力探测的周期性事件时,它会记录来自端口扫描器的端口请求。这可能是恶意的,也可能不是,因为大多数面向互联网的系统每天都会被扫描。

端口扫描的做法与互联网一样古老。虽然协议随着时间的推移而变化,安全工具和系统也随着时间的推移而发展,但检测和处理端口扫描警报仍然很重要,特别是当未经授权的恶意行为者扫描自己的系统时。

如何检测端口扫描攻击?

端口扫描攻击需要在检测到端口扫描攻击后才能阻止。如果正确安装和配置,现代安全设备可以通过跟踪访问本地网络中的系统的尝试来有效地检测端口扫描。

大多数安全设备都可以链接来自同一源的正在进行的重复扫描尝试,无论它们针对的是单个主机还是多个主机。为了实现效率最大化,端口扫描攻击可能需要在相对较短的时间内探测许多不同系统上的许多不同端口,这使得攻击尝试更容易被检测到。

为了逃避检测,一些攻击者可能会在较长的时间范围内探测开放端口,在这种情况下,检测端口扫描攻击变得更加困难。然而,对攻击者来说,这样做的缺点是可能需要数小时、数天甚至更长时间才能找到一个易受攻击的系统。

如何防止网络中的端口扫描?

防止端口扫描是不可能的。任何人都可以选择一个IP地址并扫描它的开放端口。

为了保护企业网络,安全团队应该自行开展内部扫描,找出攻击者在其网络的端口扫描期间会发现什么。但是,请注意,针对许多云托管服务如AWS的安全评估和渗透测试需要在扫描之前获得批准。

一旦安全管理员发现哪些端口响应为打开,他们就可以进一步检查这些端口是否有必要从公司网络外部访问。如果没有必要,安全管理员应该关闭或阻止它们。如果认为开放端口是必要的,管理员应该开始研究网络中存在哪些开放的漏洞,并应用适当的补丁来保护网络。

某些类型的防火墙拥有自适应行为,这意味着如果可疑的IP地址正在探测它们,它们会自动阻止先前打开和关闭的端口。防火墙还可以配置为在管理员检测到来自单个主机的多个端口的连接请求时向管理员发出警报。然而,攻击者可以通过在频闪或隐身模式下进行端口扫描来绕过这种保护机制

总之,组织可以通过始终配置防火墙和入侵检测系统,来检测并阻止不寻常的连接尝试和请求。例如,在端口扫描完成后,攻击者可能会发起一些探测攻击,以验证先前的研究结果获取所需的额外信息,以巧妙地发动主攻此外,将异常活动输入SIEM系统可以提供实时反馈并改进对事件的自动响应。

端口扫描工具

组织可以采用以下工具执行端口扫描

  • Advanced Port Scanner
  • Angry IP Scanner
  • Metasploit
  • Netcat
  • NetScanTools
  • Nmap
  • SolarWinds Port Scanner
  • Unicornscan

原文标题:Port scan attacks: What they are and how to prevent them,作者:Michael Cobb



责任编辑:华轩 来源: 51CTO
相关推荐

2013-01-10 09:19:53

2009-09-28 11:05:29

Ruby端口扫描

2022-06-15 13:40:38

端口扫描工具开源工具

2020-12-14 10:32:28

Web安全工具多线程

2024-06-19 19:07:53

2010-09-17 09:40:16

2009-01-15 09:52:00

2009-11-18 09:59:41

2023-10-16 18:51:04

Masscan网络安全

2010-09-13 15:55:43

制作端口扫描器

2021-05-31 08:54:30

RustScanRust端口扫描器

2010-12-22 21:57:00

Angry IP Sc

2013-07-27 20:19:14

2010-09-30 15:20:01

2015-12-14 16:03:45

LinuxUnix端口扫描

2017-05-16 10:39:02

2016-09-30 15:59:41

2017-06-08 19:19:10

2015-05-13 10:36:43

2010-09-15 15:12:49

点赞
收藏

51CTO技术栈公众号