最近产品提了个新需求,需要检测端口扫描行为,提到端口扫描必须绕不开端口扫描之王——Nmap。所以除了基于流量五元组统计建立统计模型的检测方案之外,识别Nmap的流量特征就成了关键了。
Nmap是网络安全人员常用的信息收集工具,主要用来探测主机、扫描端口和服务,内置了多种扫描方式。每种方式的工作原理不同,其数据包和通讯特征也不尽相同。
端口扫描,通常是指在信息收集阶段利用TCP、UDP等方式,去检测操作系统类型及开放的服务,为进一步的攻击做好准备。通常蠕虫病毒、网络攻击等常见的影响网络安全的行为,都是从扫描开始的。所以我们首先通过网络流量分析,对几种最常见扫描方式进行分析和特征提取。
Nmap常见的几种端口扫描方式
-sS (TCP SYN扫描)
SYN扫描作为默认的也是最受欢迎的扫描选项,是有充分理由的。 它执行得很快,在一个没有入侵防火墙的快速网络上,每秒钟可以扫描数千个端口。SYN扫描相对来说不张扬,不易被注意到,因为它不完成完整的TCP三次握手连接,可以应对任何兼容的 TCP协议栈,扫描速度快,效率高。 它还可以明确可靠地区分端口open(开放的), closed(关闭的),和filtered(被过滤的) 状态。
SYN扫描常常被称为半开放扫描, 因为它不打开一个完全的TCP连接。它发送一个SYN报文,但是它不会产生任何会话,目标主机几乎不会把连接记入系统日志。 SYN/ACK表示端口在监听 (开放),而RST (复位)表示没有监听者。如果数次重发后仍没响应,该端口就被标记为被过滤。
如下图,SYN扫描到关闭端口的TCP时序图,以固定端口与被扫描IP尝试连接,且会话大多具有相同的特征。