根据SANS研究所的说法,端口扫描是攻击者用来发现可用来入侵系统的服务的最流行技术之一。尽管“端口扫描”并不是天生的敌意,但它通常是黑客试图渗透到网络或窃取/销毁敏感数据时侦察的第一步。在本文中,我们将讨论一些最佳实践,可用来防御攻击者并防止潜在的网络破坏。
从哪里开始?
要进行端口扫描,首先必须具有活动主机的列表。网络扫描是发现网络上所有活动主机并将这些主机映射到其IP地址的过程。通过活动主机列表,可以进行端口扫描,将数据包发送到主机上的特定端口并分析响应以了解有关其运行服务的详细信息或识别潜在漏洞的过程。
有关网络扫描以发现主机的更多信息
确定网络上已启动并正在运行的系统的过程称为“主机发现”。这通常是黑客在敌对攻击中使用的第一步。主机发现使用两种主要协议:地址解析协议(ARP)扫描和各种形式的Internet控制消息协议(ICMP)扫描。
ARP扫描是将IP地址映射到本地子网上的MAC地址的过程。可以将ARP请求发送到局域网(LAN)上的所有IP地址,以基于通过ARP响应进行响应的主机来确定哪些主机已启动。由于ARP请求仅在LAN内工作,因此需要将潜在的攻击者连接到您的内部网络。
要在LAN外部进行网络扫描,可以使用许多不同的ICMP数据包来代替,例如回声,时间戳和地址掩码请求。回声或ping请求用于检测是否可以访问主机,而时间戳包确定两个主机之间的延迟。您可以使用地址掩码请求来找出网络上使用的子网掩码。
通过ICMP消息发现网络上的主机都取决于收到目标主机的相应答复。如果未收到响应,则可能意味着目标地址上没有主机,或者目标主机不支持ICMP消息类型。这也可能意味着原始请求已被防火墙或数据包筛选器阻止。通常,并非源自网络内部的ICMP回显(ping)请求被防火墙阻止,但是时间戳和地址掩码请求被阻止的可能性较小。
进行端口扫描
现在,网络扫描已完成,并且已编译了可用主机的列表,可以使用端口扫描来识别可用主机在特定端口上的使用情况。端口扫描通常会将端口分为以下三类之一:
打开:目标主机以一个数据包作为响应,指示它正在侦听该端口。它还表明还使用了用于扫描的服务(通常为TCP或UDP)。
已关闭:目标主机已接收到请求数据包,但以响应进行响应,表明该端口上没有服务在监听。
已过滤:当发送请求数据包但未收到答复时,端口扫描会将端口分类为已过滤。这通常表示请求包已被防火墙过滤掉并丢弃。
端口扫描方法
如前所述,TCP和UDP通常是端口扫描中使用的协议,并且有几种使用这些协议实际执行端口扫描的方法。
TCP扫描最常用的方法是SYN扫描。这涉及通过发送SYN数据包,然后评估主机的响应,在目标端口上与主机建立部分连接。如果请求数据包未被防火墙过滤或阻止,则主机将通过发送SYN / ACK数据包(如果端口处于打开状态)或RST数据包(如果端口处于关闭状态)进行响应。
使用WhatsUp Gold可以发现一些开放性端口,映射和监视您的网络。。
TCP扫描的另一种方法是TCP连接扫描。这涉及扫描程序尝试使用TCP连接系统调用连接到目标主机上的端口,并启动完整的TCP握手过程。此过程在数据包方面产生大量开销,并且更容易检测,因此使其成为端口扫描的较少使用的方法。
其他类型的TCP端口扫描包括NULL,FIN和Xmas。这三种类型的扫描涉及操纵TCP标头标志。NULL扫描发送的包头中未设置任何标志的数据包,而FIN扫描仅设置了FIN位。Xmas扫描数据包的FIN,PSH和URG标志位已打开,从而使其看起来“像圣诞树一样亮起来”。因此,名称为Xmas scan。
UDP扫描与TCP扫描一样,将UDP数据包发送到目标主机上的各个端口,并评估响应数据包以确定主机上服务的可用性。与TCP扫描一样,接收到响应数据包则表明该端口已打开。
正在准备
如今,网络入侵检测系统和防火墙通常已预先配置为检测恶意网络扫描。但是,潜在的攻击者变得更加聪明,可以通过更改扫描频率,无序访问端口或欺骗其源地址来尝试避开常见的检测规则。保护自己免受可能利用网络漏洞的恶意网络扫描的最好方法是,首先确保漏洞不存在。
了解主机漏洞是整个网络安全的关键组成部分。作为网络工程师,您有责任保护基础架构免受恶意软件,蠕虫,黑客,木马和病毒的侵害–减少漏洞利用的机会是您的使命。
通常,这里的最佳实践是扑朔迷离,在坏人找到它们之前先扫描自己的网络是否有漏洞。