APP下载

网络资产探测关键技术研究*

2022-12-07吴剑章

网络安全与数据管理 2022年11期
关键词:IP地址报文数据包

邵 磊,余 晓,吴剑章

(1.东南大学 网络空间安全学院,江苏 南京 210096;2.东南大学 继续教育学院,江苏 南京 210096)

0 引言

网络资产探测的目的是探测目标范围内在线的主机及其开放的端口、服务、操作系统等信息。掌握资产信息是进行网络资产全生命周期管理的前提,结合资产标识技术可以追踪任何一个网络资产的在线情况、版本信息,为更新版本、下线不再使用的资产等管理工作提供信息基础。还可以结合最新的漏洞信息,更好地保护面临威胁的网络资产,避免被不法分子利用而造成财产损失。

1 网络资产探测概述

网络资产可以定义为具有网络连接的任何对于企业、高校等组织具有价值的资源。网络资产主要可以分类为硬件和软件,硬件包含各种通信、计算、存储类等设备;软件主要是指运行在硬件上的各类服务,例如Web服务、数据库、操作系统等。

网络资产探测方法可以分类为:主动探测、被动探测和基于安全搜索引擎探测[1]。本文根据各类方法所需要使用的相关技术,从技术角度分类为扫描识别技术、性能优化技术、隐蔽扫描技术和机器学习技术。扫描识别指的是直接进行资产探测的相关技术,如通过主动发送数据包进行扫描。性能优化是指对于扫描技术在效率上的优化技术。由于资产探测往往伴随着被防火墙、入侵检测系统等发现的风险,如对一段互联网协议(Internet Protocol,IP)地址进行顺序扫描很容易被网管察觉并警告,这就需要使用到隐蔽扫描。现如今,机器学习的应用范围不断扩大,而在网络资产方面,它可以应用于根据常见协议的指纹特征进行操作系统识别。

2 相关技术

2.1 扫描识别技术

2.1.1 网络协议

常见可用于网络探测的协议有:地址解析协议(Address Resolution Protocol,ARP)、网际控制报文协议(Internet Control Message Protocol,ICMP)、传输控制协议(Transmission Control Protocol,TCP)、用户数据报协议(User Datagram Protocol,UDP)、简单网络管理协议(Simple Network Management Protocol,SNMP)等。

ARP作为网络层的协议,其功能是将网络层使用的IP地址解析为数据链路层使用的介质访问控制(Media Access Control,MAC)地 址。给 目 标 主 机 发送ARP请求,如果目标主机响应请求返回了MAC地址,说明目标主机是在线的,否则说明目标主机不在线,所以ARP协议可以用于主机扫描,Arping命令就是通过该协议实现的。它的优点在于局域网内精度很高,且可以突破防火墙[2],然而应用范围较窄,只能在局域网内使用。

ICMP属于网络层的协议,差错报告报文和询问报文是该协议的两个不同种类。ICMP的差错报告报文和询问报文都可以用来进行主机扫描,只要目标主机有响应就说明该主机在线。Jiang Weihua[3]等人就使用ICMP报文进行了主机扫描,甚至通过分析ICMP数据包的IP首部特点来辨别不同的操作系统[3-4]。Ping和Traceroute也是该协议的应用,但是由于Ping工具使用率很高,许多注重安全的主机防火墙都不允许通过ICMP报文。

TCP是传输层的协议,它提供了可靠的面向连接的服务。通过发送TCP报文到目标主机的目标端口,既可以确定该主机是否在线,也可以确定目标端口是否打开。TCP扫描主要有:Connect扫描、SYN扫描、ACK扫 描、FIN扫 描、NULL扫 描、XMAS扫 描 等。

TCP Connect扫描又叫全连接扫描,顾名思义,就是源主机和目标主机进行三次握手建立完整的连接,根据目标主机的不同反应,结果可能分为三种情况:(1)建立了完整连接,既确定了主机在线,也确定了目标端口是开放的;(2)源主机发出SYN请求后,目标主机返回了带RST标记的响应报文,虽然表明了目标端口是关闭的,但是可以确认目标主机在线;(3)源主机发出SYN请求后,目标主机没有回应,可能该主机不在线,也可能目标端口受到了防火墙保护。TCP Connect扫描实现简单,但是容易在目标主机中留下大量TCP建立连接的日志,易被发现。

TCP SYN扫描,又称为半连接扫描,源主机和目标主机并不会建立一个完整的TCP连接。源主机向目标主机发送SYN请求后,如果目标主机返回SYN/ACK响应,表明目标端口处于打开状态,之后源主机发送RST报文断开连接。如果目标主机响应的是RST报文,说明目标端口处于关闭状态,如果没有响应,说明目标主机不在线或被防火墙保护。SYN扫描的优点在于不会在目标主机留下相关日志,相比全连接扫描更加隐蔽。

TCP ACK扫描是源主机发送一个只设置ACK标志位的请求,不管目标主机的端口是否打开,该主机都会响应一个RST数据包,而如果没有收到响应,说明目标主机可能不在线或者受到防火墙保护,如果收到ICMP终点不可达的差错报文,说明目标主机受到了防火墙保护。考虑到目标主机如果响应了RST报文,则说明该主机一定在线,所以ACK扫描可以用于主机扫描。

TCP FIN扫描是源主机发送一个带有FIN标记的数据包到目标主机端口,通常情况下,如果目标端口是关闭的,那么目标主机会发送一个RST响应包。如果主机没有任何反应,说明端口打开或者受防火墙保护。如果收到ICMP终点不可达的差错报文,说明目标受到防火墙保护。TCP FIN扫描的优点是更加隐蔽,不会留下痕迹,但是容易受到误导,因为在收不到响应时无法区分目标端口是打开的还是受到了防火墙保护,而且有的操作系统在端口打开的时候也会发送RST响应。SYN扫描如果和FIN扫描结合起来使用可以简单地做一些操作系统识别,但是识别能力有限。

TCP NULL扫描是将发送的TCP数据包首部标记都置为0,TCP XMAS扫描则是将FIN、URG、PSH标记都置为1,它们与FIN扫描类似,不同操作系统可能有不同的实现。通常情况下,如果目标主机端口处于关闭状态,会发送一个RST响应包,如果没有响应说明端口打开或者受到防火墙保护,如果收到了ICMP终点不可达的差错报文,说明端口受到防火墙保护。

一些常见的扫描工具如Nmap[5]、Zmap[6]、Masscan[7]都使用了TCP协议进行主机、端口扫描。Nmap功能强大,它支持以上所有类型的扫描,优点是搜索结果较为全面,缺点是速度较慢。DNmap[8]使用分布式架构,对Nmap的探测速度进行了改进。Yuan[9]等人使用Go语言结合TCP全连接扫描开发了名为HIRFL的扫描器,其扫描速度比Nmap快。Beverly[10]基于TCP SYN和ACK扫描开发了Yarrp,能够以100 kpps的速度在30 min内发现超过40万个路由器接口。Li[11-12]在TCP扫描的基础上,使用了可编程的交换机开发了快速可扩展的IMap扫描器。Zhang等通过将Zmap和Nmap相结合[13],开发了扫描VxWorks主机信息的软件,并提供人性化的管理界面和扫描报告。Sivanathan[14]等通过TCP全连接的方式将TCP扫描用于物联网设备的识别和分类。

UDP是无连接、尽最大努力交付的传输层协议。UDP扫描一般是利用ICMP协议进行的,源主机向目标主机端口发送一个长度为0的UDP数据包,如果收到了ICMP终点不可达的差错报告报文,说明目标端口是关闭的。如果收到了UDP响应报文,说明目标端口是打开的。如果没有响应,那么目标端口可能打开着,也可能受到了防火墙保护。Nmap也具备UDP扫描功能,使用“-sU”参数便可以进行UDP扫描。Jung[15]等基于UDP协议提出了一种新的技术用于扫描物联网设备,它包含了主扫描和辅助扫描两个部分,主扫描使用简单服务发现协议(Simple Service Discovery Protocol,SSDP),辅助扫描使用名称服务器协议(Network Basic Input/Output System Name Service,NBNS)和多播域名解析协议(Multicast Domain Name System,MNDS),平均速度比Nmap快1 524倍。Kumar[16]等基于UDP协议设计了使用多个IP地址扫描目标端口的扫描器,比传统扫描方法快约190倍。

SNMP是基于UDP协议设计的用于管理网络节点的应用层协议,可以实现对网络中的资源进行监控。现 在 已 经 有 了 三 个 版 本:SNMPv1、SNMPv2c、SNMPv3。SNMP三个主要组件分别是:管理信息结构(Structure of Management Information,SMI)、管理信息库(Management Information Base,MIB)和管理协议,其中管理信息结构和管理信息库是ASN.1语法定义的模块。SNMP用对象标识符(Object Identifier,OID)唯一标识一个被管理对象,所有被管理对象的集合就是管理信息库,它是一个树型结构,所以又称MIB树。管理信息结构的工作是为管理信息库定义被管理对象的标准、规定数据类型以及分配OID。网络管理者、代理者、被管理设备共同组成了SNMP所管理的网络,代理者和管理者通过协议数据单元(Protocol Data Unit,PDU)进 行 通 信。在 进 行 网 络 探测 时,MIB库 中 的ipAddrTable、ipRouteTable、ipNetTo-MediaTable是需要关注的三个对象,ipAddrTable对象中包含了每个接口对应的IP地址,ipRouteTable对象可以获取到直接与该设备连接的子网和路由器信息,ipNetToMediaTable记录了该设备路由表中的ARP映射。Handoko[17]等通过使用SNMP创建实时网络拓朴,设计并开发了可以监控网络节点信息的应用程序。Saheb[18]等通过结合ICMP和SNMP协议实现了网络资源的自动发现和监控。Roquero[19]等提出了一种具有灵活的多线程体系结构的SNMP管理器体系结构,并使用自适应轮询算法有效减少了轮询不断增加的SNMP AGENT带来的资源消耗。使用SNMP可获得足够多的主机信息用于资产管理,但是现有路由器大多默认不打开SNMP协议,且需要知道Community的值才能访问MIB。

2.1.2 流量分析

流量分析往往用于被动探测,通过在网络节点部署探针来捕获数据,分析这些网络流量的特征可以确定流量来源主机的某些特征[20]。不同操作系统对于TCP/IP协议栈的实现有所不同,可以根据TCP/IP数据报的指纹特征来区分操作系统的类别,常用的指纹特征有窗口大小、是否分片、数据包生存时间、最大报文长度、可选字段等。

应用层服务一般会使用较为固定的端口,可以通过TCP/IP数据包中的端口号来进行服务识别,其结果一般是较为准确的,服务及其对应的端口号见表1。

表1 常见服务对应的端口号

2.1.3 搜索引擎

搜索引擎,如百度、谷歌等是互联网上最常见的工具,不同于这类普通搜索引擎,网络安全搜索引擎如Shodan,可以搜索到主机及其打开的端口、服务等,除此之外,还能搜索到暴露公网的硬件设备,如路由器、打印机、网络摄像头等。Shodan支持关键词搜索,如country:“CN”,可以搜索到位于中国的网络资产。除了使用Shodan网页进行搜索,还可以注册并生成一个API key在编程开发时直接调用Shodan的搜索接口。Zolotykh[27-28]对Shodan的扫描行为进行了分析,发现其使用TCP和UDP协议进行扫描,且使用了许多强度不同的爬虫进行端口探测和Banner信息抓取。除了Shodan之外,常见的网络安全搜索引擎还有结合了Zmap的Censys、结合了Nmap的ZoomEye等。搜索引擎对于暴露于公网的网络资产有着强大的搜索能力,且隐蔽性强,缺点在于还无法对内网资产进行有效探测。

2.2 性能优化技术

2.2.1 无状态技术

通常的TCP SYN扫描需要建立一个完整的会话,源主机向目标主机发送SYN请求后,如果目标主机返回SYN/ACK响应,表明目标端口处于打开状态,之后源主机发送RST报文断开连接。Zmap和Masscan使用了TCP SYN无状态扫描,无状态指的是它们使用独立的发送和接收线程,在发送SYN数据包时,对探测地址进行哈希编码,而后发送RST取消连接,数据包发出后并不记录目标主机的回执状态,而是在目标响应SYN/ACK数据包时对其中的源IP、源端口等信息进行校验,这样避免了存储连接状态的开销,缺点是会丢失大约2%的数据[6]。

2.2.2 并行化技术

为了进一步提高扫描速度,研究人员引入了并行化技术,如针对传统扫描工具Nmap速度不够快的问题,开发了使用分布式架构的DNmap[8]工具,提高了网络扫描效率。Zmap的开发者在文献[29]中对随机IP生成操作进行分片,每组都能生成与其他组互不相交的随机IP子集,使得该工具可以应用到多线程中。胡栋梁[30]等使用了三层模型的分布式架构,利用消息中间件改进了传统单点主动扫描技术,降低了CPU使用率和扫描响应时间。

2.2.3 零拷贝技术

常用的探测工具使用Libpcap进行数据包的捕获与发送,但数据采集性能不佳。PF_RING[31]被提出来提高数据采集性能,它是一种新型的套接字,其对性能的提高主要靠轮询(Polling)、内存映射(Mmap)和环形缓冲区(Ring buffer)来实现。PF_RING的结构如图1所示,在创建套接字时环形缓冲区也被创建出来,数据包在到达网卡后,处理器以轮询的方式将数据写入缓存区,使用轮询方式的优点是可以减少处理器响应中断的时间。内存映射使得应用程序可以直接读取内核态环形缓冲区的数据,避免了将数据包从内核态到用户态的一次拷贝。为了进一步减少开销,PF_RING ZC(Zero Copy)实现了直接网卡访问(Direct NIC Access,DNA)[32-33],将网卡内存和寄存器直接映射到用户空间,支持了零拷贝技术,Zmap和Masscan都支持PF_RING ZC模式。面对网络流量突发而出现随机丢包的情况,Ye[34]等人在PF_RING的基础上设计了可以自动调节内核缓冲区空间大小的PF_RING-TA。

对83例胃癌患者的性别,肿瘤的位置、直径、Borrmann分型、分化程度、浸润深度、淋巴结转移和远处转移,以及新辅助化疗和 CTC阳性等指标,进行COX单因素和多因素回归分析。结果发现,胃癌患者术后生存的独立影响因素为肿瘤分化程度、新辅助化疗和 CTC阳性这3项指标(P值分别为0.035、0.011和<0.001,表2和表3)。

图1 PF_RING结构

2.3 隐蔽扫描技术

2.3.1 随机IP地址生成

考虑到如果对一个IP地址空间的所有IP进行顺序扫描很容易被入侵检测系统或防火墙发现,所以有必要对所有IP打乱顺序,生成随机IP地址的方法主要有Zmap使用的基于素数原根的方法和Masscan使用的加密算法。Zmap的开发者在文献[29]中又进一步对该操作进行分片,每组都能生成与其他组互不相交的随机IP子集,使得该方法可以应用到多线程中。Beverly[10]开发的工具则通过加密算法生成随机的IP地址和生存时间(Time To Live,TTL),使源主机能够以随机的TTL值和打乱的IP地址扫描目标地址空间。

2.3.2 多 源IP扫 描

为隐蔽扫描行为,可以使用多个源IP进行扫描,稀释单个IP被发现的风险,使得各IP看起来像在进行正常通信。据研究,安全搜索引擎Shodan使用了超过40个IP地址进行扫描,而这些IP地址分布在超过10个国家和地区[27-28]。

2.4 机器学习技术

对于操作系统的识别,除了使用常规的TCP/IP指纹库进行匹配之外,将机器学习应用于操作系统识别的研究也越来越多。Lastovicka[35]等人选取TTL、TCP窗口大小、初始SYN包大小作为特征,对比了朴素贝叶斯、决策树、K最近邻算法、支持向量机四种机器学习算法,得出了决策树最适合进行操作系统识别的结论。Fan[36]等人通过提取IP协议、TCP协议和TLS协议数据包的指纹特征,使用LightGBM算法(主要思想是利用弱分类器进行迭代以获得最优模型),通过实验证明该算法的操作系统类型识别率达96.35%,操作系统版本识别率达84.72%,优于Lastovicka在文献[35]中得出的最优算法。Song[37]等人基于端口号、TTL、是否分片、窗口大小等特征,对比了传统的指纹匹配、K最近邻算法、决策树和神经网络算法对操作系统的识别率,发现神经网络算法的精确度达94%,高于其他识别方法。Kumar[38]等基于SYN包大小、TTL、窗口大小、HTTP USERAGENT等特征,对比了K最邻近算法、人工神经网络、决策树、朴素贝叶斯、随机森林5种算法,其中K最邻近算法以96.22%的准确率成为操作系统识别最好的算法,并得出对分类结果影响最大的参数是TTL。可以看出,选取TCP/IP数据报首部的不同字段或者结合其他协议的某些字段都会影响机器学习在操作系统的识别率,如何选择合适的指纹特征和机器学习算法是今后的重要课题。

3 总结

网络资产探测相关的三类技术总结如下:

扫描识别相关的技术主要有网络协议、流量分析、搜索引擎,主要目标是扫描在线的主机、端口以及对运行的服务、操作系统进行识别。网络协议主要指的是通过ARP、ICMP、TCP等协议进行网络资产探测,优点是速度快、应用范围广、可用于不自己产生流量的资产,缺点在于可能被防火墙阻挡、被入侵检测系统发现、难以探测受到保护的资产。流量分析指的是通过收集网络流量,分析其源头的资产信息,优点是不容易被发觉、受保护的资产也有一定发现能力,缺点是主要用于内网、速度取决于探针的位置、发现不了不产生流量的资产。搜索引擎指的是使用Shodan等网络安全搜索引擎探测网络资产,优点是速度快、对于公网设备具有探测能力,缺点是不能用于内网、探测结果取决于搜索引擎。对比三种方法,从应用范围角度,网络协议众多,既可用于公网,也可用于内网,流量分析主要应用于内网,搜索引擎主要应用于公网;从速度角度,网络协议和搜索引擎速度较快,流量分析速度取决于探针位置;从隐蔽性角度,流量分析和搜索引擎不直接访问目标,隐蔽性高于主动发送数据包的网络协议。

性能优化技术包括无状态技术、并行化技术、零拷贝技术,主要目标是优化主机、端口扫描的速度。无状态技术是指不保存TCP SYN连接状态,使用独立的发送和接收线程,优点是避免了存储连接状态的开销,缺点是会丢失一些数据包。并行化技术是指将并行化引入网络资产探测,优点是可以提高探测速度,缺点是增加了成本。零拷贝技术是指避免网卡到用户态的数据拷贝,优点是减少了数据包拷贝带来的开销,缺点是依然可能产生丢包。对比三种方法,从数据完整性角度,无状态和零拷贝技术都会产生丢包问题,并行化技术不会;从开销角度,无状态和零拷贝技术都减少了开销,而并行化技术增加了开销。

隐蔽扫描技术包括随机IP地址生成和多源IP扫描,主要目标在于隐蔽扫描主机、端口的行为。随机IP地址生成指的是对于要扫描的目标IP地址空间,生成一个完整随机不重复的序列,避免对目标进行顺序扫描,优点是增加了探测的隐蔽性,缺点是增加了计算随机IP地址序列的开销。多源IP扫描指的是使用多个源IP对目标进行扫描,优点是能够稀释单个IP探测被发现的风险,缺点是增加了探测成本。对比两种方法,从开销角度,随机IP地址生成增加了计算开销,多源IP增加了成本开销;从速度角度,随机IP地址生成增加了探测时间,多源IP扫描可以结合并行技术,速度更快。

机器学习技术主要通过使用相关算法对TCP/IP协议指纹数据进行训练以识别操作系统。其优点是带来了多种指纹特征识别的方法,准确率比传统指纹匹配高。其缺点是增加了运算开销,且不同研究选取的指纹不同,暂时还没有统一的标准。

4 未来研究方向

尽管网络资产探测技术已经有了众多科研成果,但要用于网络资产全生命管理还需要在以下三个方向进一步研究:

(1)探测结果的全面性

进行网络资产管理的前提就是要对被管理资产应知尽知,单个探测方法显然不足以达到全面探测的效果,一方面可以针对被忽略的网络资产研究新的探测方法,另一方面可以根据具体的场景结合多维探测技术以提高结果的全面性。

(2)探测结果的准确性

考虑到错误的探测结果可能不利于网络资产全生命周期管理的漏洞管理流程,需要知道正确的服务、操作系统版本才能根据该版本存在的漏洞进行预防、弥补工作。传统探测工具Nmap、新型的机器学习方法在操作系统识别准确率方面依然存在不足,还需进一步研究。

(3)探测速度

对于提高探测速度的研究很多,但是在提高探测速度的同时,又会产生数据包的丢失问题,进而导致探测结果的全面性和准确性下降,如何在保证全面性和准确性的情况下尽可能提高探测速度也需要深入研究。

5 结论

网络资产探测在网络安全和网络资产管理方面是必不可少的部分,面对发展越来越快的网络技术和数量越来越多的网络资产,如何快速、全面、准确地进行网络资产探测也需要进一步研究。本文介绍了网络资产探测一些相关的技术,希望可以基于这些技术开发更优秀的网络探测工具,为学校、企业等组织的网络资产全生命周期管理提供便利。

猜你喜欢

IP地址报文数据包
基于J1939 协议多包报文的时序研究及应用
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
CTCS-2级报文数据管理需求分析和实现
铁路远动系统几种组网方式IP地址的申请和设置
浅析反驳类报文要点
SmartSniff
IP地址切换器(IPCFG)
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考