Advertisement

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

阅读量:

本文主要介绍了网络空间资产探测的核心技术和应用场景,探讨了基于ICMP存活主机发现技术的响应请求与应答机制以及时间戳请求等方法,并对比分析了基于TCP和UDP协议的不同探测方式及其适用场景。文中详细阐述了基于ICMP的技术优势及其在存活主机检测中的应用,并结合TCP和UDP协议的特点提出了半连接SYN/Ping扫描方法以提高检测效率。此外,文章还探讨了端口、服务及版本探测的技术流程,并分析了操作系统指纹识别的关键步骤及其面临的挑战。本文通过对国内外相关研究成果的对比总结,强调了网络空间资产探测在网络安全评估中的重要性,并指出了当前技术发展与国外领先水平仍存在差距的问题。

摘 要:

随着互联网技术的快速发展与应用不断深入,在智能手机、打印机、网络摄像头以及数字媒体设备等众多终端设备的共同作用下

内容目录:

0 引 言

1 基于ICMP存活主机发现技术

1.1 利用ICMP响应请求和应答探测存活主机

1.2 通过时间戳请求和应答进行存活主机探测

1.3 通过ICMP地址掩码进行存活主机探测

2 基于TCP存活主机发现技术

3 基于UDP存活主机发现技术

4 端口、服务版本扫描

5 操作系统扫描

6 结 语

0引 言

随着互联网不断发生演变的同时

网络安全中将网络空间资产探测技术视为重要的基础支撑手段。该技术通过主动探测与被动探测相结合的方式进行系统性地拓扑分析,在实际应用中能够有效识别并描绘出各参与设备之间的详细拓扑关系。基于此获得的数据信息能够对各参与设备的拓扑结构特征进行全方位描述与刻画。

近年来,网络资产探测技术已成为网络安全领域的重要研究方向之一。各国纷纷投入大量资源进行深入研究与实践探索。例如美国国防部高级研究计划局DRAPA通过其X计划致力于推动网络战能力的提升通过构建网络战情图谱为制定作战策略提供科学依据从而促进网络战任务的有效开展同时美国国土安全部DHS支持的SHINE计划则聚焦于关键基础设施的安全防护利用Shodan等工具对本地网络空间进行安全态势感知并及时向工业控制系统应急团队提供安全警示信息确保关键设施免受威胁影响

我国正致力于相关领域的研究工作。近年来,在网络空间探测技术方面取得显著进展。具体而言,在网络空间网际互连协议(Internet Protocol, IP)地址扫描与资源探测方面已取得一定成果,并可对每个IP地址的网络资源进行识别分析。然而,在基于指纹比对的网络组件精准探测技术领域仍存在较大提升空间。作为该领域的核心技术之一,基于指纹库的网络设备组件识别技术对于提高探测效率与准确性至关重要。该技术可通过请求指定设备的特定端口信息并结合自主研制的指纹比对技术和指纹数据库实现设备类型及所使用的组件识别功能

在工业控制服务探测领域中

当前阶段,在相关联网特征领域应进一步加强深入探索与研究工作。为此应着重于精准提取其指纹特征信息,并通过提高感知广度与扫描效率来实现对该类联网设备的基本认知。同时根据不同网络资产的特性展开研究工作,在提升海量联网设备信息高效率扫描能力的同时重点突破隐蔽式探测技术和被动式感知技术等关键环节的技术研发工作。通过这些技术手段确保能够全面准确地感知并测绘网络空间中的各类网络资产服务

本文主要阐述了当前网络资产探测的主要常见手段。系统归纳分析了主动探测的优缺点,并深入探讨了网络资产探测技术涉及的关键核心技术。

1基于ICMP存活主机发现技术

当目标主机位于同一网络段内时,在网络设备上实施地址解析协议(ARP)扫描技术将是首选方案。该方法不仅能够快速且精确地完成扫描任务,并且不会对正常的ARP包传输设置任何限制性措施。反之,在目标主机位于不同网络的情况下,则需要考虑采用其他协议。

在互联网中频繁出现各种错误信息,在用于发现并处理这些错误信息的过程中,互联网控制报文协议(Internet Control Message Protocol, ICMP)应运而生。相较于APR而言具有更为简单明了的工作模式,在网络管理领域ICMP显得更为复杂。作为TCP/IP协议家族中的重要一员,在网络层面上ICMP的主要职责是通过传输层与网际层之间的消息传递来实现通信功能。同时该协议也可以在特定场景下被用来完成存活主机的发现过程。

表1 ICMP报文类型

根据表1的数据可知, ICMP报文可划分为错误类型与查询两大类。其中, 查询类报文是以一对请求与应答来进行定义的。由此可见, 该方法正好契合本文所需完成的存活主机扫描任务, 因此, 在本文中使用的ICMP存活主机探测技术即为基于这种查询机制的技术。

1.1 利用ICMP响应请求和应答探测存活主机

响应请求与应答的作用在于检测发送端与接收端之间两端链路以及目标主机上的TCP/IP协议是否正常运行。广为人知且常用的ping命令正是基于这一机制设计的。当主机A向主机B发送ICMP报文时,在无任何异常的情况下(若传输路径上无故障),则会收到该ICMP报文回复(说明目标宿主已存活)。然而由于其普及程度较高(即ping工具使用的频率很高),因此很多用于保护目标主机的防火墙设备都会阻止ICMP数据通过该路径。

1.2 通过时间戳请求和应答进行存活主机探测

因为Ping方式在许多网络中受到屏蔽限制无法正常运行 于是转而寻找其他方法来解决这一问题

1.3 通过ICMP地址掩码进行存活主机探测

ICMP地址掩码请求通过源主机被发送至无盘系统,在启动阶段有助于获取自身网络分组的信息。尽管互联网工程任务组(the Internet Engineering Task Force, IETF)编写了一系列指导性文件(Request For Comments, RFC),这些文件除非目标服务器获得了相关权限许可授权资格认证信息包(ICP),否则无法生成响应消息包(ICRP)作为返回数据包的一部分。然而,在实际应用中发现大多数设备在接收到此类请求后都会成功返回响应数据包(IARP)。如果需要验证目标服务器是否处于可连接状态,请尝试向目标服务器发送相应的ICMP响应请求包(RFC),若收到确认回应,则表明该服务器确实在线。

2基于TCP存活主机发现技术

TCP是一种稳定的数据传输层协议,在其所属的TCP/IP协议家族中各层通过字节流形式实现数据发送与接收功能。该协议特别支持不同速度的数据生成与处理需求,并提供全双工通信功能。每个通信端点都配置了发送缓冲区与接收缓冲区两组独立的存储空间。此外,在消息传输过程中,本系统通过累积确认机制实现可靠的数据接收。

常用方法中使用TCP ACK和ICMP Echo机制来检测目标主机存活状态;然而,在某些网络设备配置下(如存在丢弃RST包的情况),该方法可能导致检测结果出现偏差;此时建议指定特定端口或端口范围以避免此类问题;与TCP SYN Ping扫描相比,TCP ACK Ping扫描仅需修改标志位设置为ACK即可实现类似的探测功能;此方法能够有效识别因SYN数据包被防火墙拦截或ICMP回显请求被拒绝的主机;尽管多数防火墙会对SYN包进行过滤处理;但结合使用TCP ACK和SYN两种Ping扫描方式能够显著提高通信连接建立的成功概率;通过向目标主机发送带有ACK标志位的TCP报文并观察其响应机制来判断是否存在问题;若目标主机在线状态则会返回相应的错误信息(如RST包)以指示通信受阻情况

3基于UDP存活主机发现技术

在数据链路层中运行的用户数据报协议(UDP)与TCP在功能上具有等同性。然而,在实现功能时存在显著差异:由于UDP不具备基于连接的特性,在进行端口探测时无法像TCP那样直接依赖于连接建立过程。这不仅限制了我们对Telnet等基于TCP命令执行的能力,并且也直接影响了对UDP端口进行扫描的有效性与可靠性。因此,在尽管这种协议在结构上更为简单的情况下,在实际应用中对其端口进行有效扫描仍是一项具有挑战性的任务。

当一个UDP端口接收到一个UDP数据包时,
若该端口被关闭,
它会发送回一个ICMP无法访问的报文;
反之,
如果该端口处于开放状态,
则会忽略 incoming packets without any feedback.
同样地,
当一个TCP连接成功建立时,
若该连接断开,
会导致客户端收到丢包通知;
否则,
会保持正常的通信流程.
具体来说,在TCP协议下,
断开连接会导致客户端发送确认报文并重传数据块;
而网络错误或拥塞则会触发重传机制.
这些机制确保了数据传输的稳定性和可靠性.

这种做法的优势在于能够实现对UDP端口的探测;然而 scan result 的有效性相对较低;当一个 UDP data packet 被发送而不收到相应确认时;可能的原因包括 UDP port 已处于开放状态;也可能是由于 data packet 在传输过程中丢失导致;此外 scan speed 较慢;这是因为 according to RFC1812 specifications daily generation rate of ICMP error messages is strictly regulated to prevent overload. A Linux system typically restricts the generation rate to 80 ICMP messages every 4 seconds.

4端口、服务本扫描

根据协议类型划分的方法下,
端口探测可被划分为两种主要类别:
一种是基于其技术架构更为复杂的TCP类别的探查手段,
另一种则是相对简单的UDP类别的探查方法。
图1展示了这种类型的探查过程。

图1 端口扫描方法

其中,广受欢迎的同步序号标记法(Synchronize Sequence Numbers, SYN)是一种常用的安全检测手段。该方法运行效率极高,在短时间内即可完成对数以万计的目标地址的定位。使用该方法时不易被现有的安全装置察觉。

如图3所示为服务及版本检测流程图。在该流程中,首先进行端口检测,并且这一操作同时作为服务检测与版本检测的基础工作。通过端口检测可以有效排除离线网络设备以及已关闭的端口,从而使后续的任务范围得以缩小,并且能够提高整体识别效率。文中采用了基于半连接TCP SYN的方法(如图2所示)。其扫描原理是向目标主机的指定端口发送SYN包发起连接请求。当目标主机接收到SYN包后会用SYN/ACK应答来确认连接请求。随后,在等待SYN/ACK应答的过程中,探测器会用RST包发起应答以替代ACK应答。这样会导致三方握手过程未能完成并无法建立正常的TCP连接。因此,在系统日志中不会记录此扫描结果,并且这种扫描方法通常不会在目标主机上留下任何扫描痕迹。

图2 半连接TCP SYN扫描原理

主要依据是通过捕获目标计算机上的Service Banner位图来进行指纹比对的手段,在此基础上可实现网络空间内各服务及其相应版本的识别与定位工作。基于这一特征可实现网络空间内各服务及其相应版本的识别与定位工作。当客户端与服务器建立连接时,在服务器端接收相关位图数据后会自动分析并返回匹配结果;这些结果可能包括目标计算机上运行的服务类型及具体配置参数等关键指标。

对扫描到的IP地址和端口信息进行分类处理,并将所有具有相同开放端口的IP地址归为一类。针对每一类别别别别别别别别别别别别的别采用多线程策略分别实施服务探测和版本识别。在上述流程中,在服务探测与版本识别的过程中,通过端口号来判断某些服务是否存在误识别的情况。banner信息所包含的数据作为服务与版本探测的基础信息来源。通过对比这些信息的变化情况,则能较为全面地了解网络中的各项服务及其相应 versions 的具体情况。为了完整记录数据包传输过程中的状态变化情况,在上述流程中采用了传统的检测手段来进行各项 service 与 version 的具体确认。

在完成端口扫描之后(段落1),若开放端口为TCP类型(段落2),则需随后尝试建立连接并等待6秒的时间(段落3)。其中包含的一些常见服务如FTP、SSH等(段落4)均会发送特定类型的Banner信息(段落5)。操作人员将捕获到的Banner信息与预定义的服务指纹进行比对(段落6)。若服务指纹完全匹配成功,则表示该端口的服务已成功识别完毕(段落7);反之则需继续执行后续扫描流程(段落8)。当空探针检测失败或者发现目标为UDP类型时(段落9),则需按照预先设定的探测顺序依次展开探测与识别工作(段落10)。如果所有预设条件未能满足,则应检查指纹记录中是否存在退探测指令(段落11),若存在则按照该指令生成相应的探测包并发送出去(段落12)。系统将根据接收到的响应数据重新执行指纹比对操作(段落13),直至完成最终确认工作为止(段落14)。

图3 服务及版本探测探测流程

操作系统扫描

通过分析网络层中的TCP/IP标志位特征值以及应用程序层收集到的 banner 信息进行操作系统探测。基于应用层收集 banner 信息能够方便地识别一部分终端设备的操作系统类型。当捕获到一组标志位值与预设模式吻合时,则完成了针对这些设备的操作系统探测任务。比如,在实际操作中可以通过解析某些Web服务的HTTP报头字段来推断出相关操作系统的详细属性。

操作系统的探测主要可分为两大类:一类是基于传统操作系统识别技术的操作系统探测方法;另一类则是基于TCP/IP协议栈指纹特征的操作系统探测方法。在传统操作系统分类中又可分为两种:第一种是依赖于操作系统内置功能的技术——具体包括Telnet、文件传输协议(File Transfer Protocol, FTP)以及Ping命令的使用;第二种则是通过Ping探测目标主机的操作系统类型,并结合返回的生存时间(Time To Live, TTL)值来判断其类型的特点。需要注意的是,在TCP协议栈参与通信的过程中,默认不会指定TTL跳转值这一特性使得不同的操作系统具有显著的TTL值差异(如表2所示)。尽管通过TTL值判断操作系统的方法操作简便易行但其敏感度较低且存在可变性问题因此可信度有待提高。

表2 常用操作系统的TTL和窗口大小

当前被广泛应用的操作系统识别手段主要是基于TCP/IP协议栈的指纹特性。由于TCP/IP协议栈的设计存在显著差异性特点,在这种基础之上能够提取出独特的特征来进行操作系统识别。主要采用主动探测和被动探测两种主要方式。

主动探测:客户端向目标主机发送数据请求。目标主机接收此数据请求后会做出相应回应。通过分析返回的数据包内容,可以推断出远程主机的操作系统类型。这些数据包内容与主机通过Telnet和FTP等常见网络协议交换的数据相等;此外还可以包含经过精心构造的完整、部分完整或错误的数据包。
这些数据包内容与主机通过Telnet和FTP等常见网络协议交换的数据相等;此外还可以包含经过精心构造的完整、部分完整或错误的数据包。

(2)被动探测:被动探测技术采用不主动发送数据包的方式,并通过各种抓包工具捕获网络中的数据流量。随后对这些数据流量进行分析以推断目标计算机的操作系统信息。

主动探测在检测IP时具有高度的针对性,并且其部署过程较为简便,在系统层面的应用中尤为常见。根据目标系统的不同反应可以识别出各类操作系统的特征。通过向目标主机发送特定格式的数据包来分析其响应信息,这一技术手段即为操作系统指纹分析的核心方法。其中调整的关键参数包括窗口大小、窗口字段长度、分片标识符以及时间戳信息等因素,并且这些细节还包括像TTL这样的关键指标

生成多达16个探测包以执行主动扫描任务的操作系统指采用TCP、UDP和ICMP等多种协议来传输数据。通过主动探测机制识别过程的具体流程将在后文介绍。

通过持续不断地向目标主机端口发送六个带有SYN位设置的TCP数据包序列,在生成相应的响应数据字段中包含如SEQ字段、OPS字段、WIN字段以及T1字段等作为指纹特征值。

(2)发送两个不同的ICMP echo请求,响应数据构成IE指纹特征值;

(3)发送一个UDP包给一个关闭的端口,响应数据构成U1指纹特征值;

(4)发送带ECN位的TCP请求,响应数据构成ECN指纹特征值;

在最后一组实验中, 我们传输了6个不同类型的TCP数据包; 这些数据包的系统反馈信息将对应于 T2 至 T7 各个端点的指纹特征数据, 其中 T2、 T3 和 T4 这三个端点属于已开启状态; 而剩下的三个端点 (即 T5、 T6 和 T7) 则保持关闭状态.

(6)结果处理。对返回的数据包进行数据处理和整理,并生成向量。随后对生成的向量进行比对以匹配指纹数据库文件中的相关内容。从而完成了对单一操作系统类型的识别过程。

操作系统的指纹是基于主动探测手段获取的TCP/IP响应包进行提取的。该方法能够有效提取包含SCAN字段、SEQ字段以及WIN字段等多种信息的数据包,并且还包含ECN字段和一些辅助信息如T1至T7时延参数以及U1缓存区信息和IE信息等。具体示例见下文

每一次扫描结果都用%作为分隔符。

SCAN字段中包含用于扫描的主机相关信息。其中:D值为9/2 表示此次扫描发生在特定日期;OT字段显示为80%,CT字段值为7 表示此次指纹识别使用了指定的TCP端口;CU字段数值为31290 说明此次指纹识别使用了对应的UDP端口;PV=N表明目标IP地址属于非私有地址范畴;DS值设定为4 代表探测点至目标主机之间跨越了四跳距离;G=Y 信号此次扫描结果良好;TM字符串记录为57C9147B 提供了详细的执行时间信息;P变量代表探测主机上运行的操作系统类型。

其中SP字段赋值为102,则代表TCP协议中的初始序列号(ISN)。而GCD字段设为1,则表明该协议应用中每条数据报所携带的数据量。此外,在此配置下_ISR字段赋值为10C,则表明该网络设备能够发送的有效序列号的数量/秒。当TI字段等于Z时,则返回的是SEQ探针应答的数据包中被探测源地址对应的IP头信息标识。值得注意的是,在这种情况下变量Z被赋值为零,则意味着对于所有的IP数据包而言,其ID字段均被置零处理。当II字段等于I时,则返回的是ICMP探针应答的数据包中目标机器对应的IP头信息标识。最后但同样重要的一点是:当TS字段等于7时,则返回的是该应用层协议所传输的数据报的时间戳信息。

在OPS字段中:
例如,在OPS字段中:
O1=M5B4具体说明了TCP数据包每次能够传输的最大可传输的数据分段数;
ST11则具体说明了ACK的可选字段信息以及与数据包的时间戳相关的内容;
其中N被定义为空操作;
W0则代表了当前系统窗口大小的具体数值。

WIN字段中的测试表示6个探针返回值的初始化窗口大小。

ECN字段中:R标志位为Y表明目标对探测设备作出了响应;DF标志位为Y意味着IP数据包的分段标记已被设置;T字段值为40显示回应数据包中的TTL信息;TCP初始窗口大小设定为3354字节反映了目标节点的网络控制能力;CC选项参数为M5B4NNS提供了目标节点的拥塞控制策略;Y标志位确认目标支持采用ECN机制进行流量管理

第一个TCP探针的响应结果是T1;第二个探针传输的是一个DF位为空的数据包。该数据包指定窗口大小(字节数)后返回了结果T2;第三个TCP探针被标记了FIN、URG、PSH和SYN位后发送出去;该数据包大小设定为256字节后返回了结果T3;第四个探针被标记了ACK位并同时设置了DF位;发送出去的数据报文中还包含了FIN和URG控制位,并指向已关闭的服务端口;第七个发送的数据报文同时包含了FIN、URG和PSH控制位,并且其窗口大小设定为了65,532字节(即65 537-4=65,533?),随后返回了结果T7。

U1的表现是基于UDP数据包探测返回的结果。该探针的响应数据字段包含300个C字符,并且其响应字段的值被设定为U1。

IE探测基于ICMP协议响应结果。

该技术的优势在于其针对特定目标的能力。即使这些目标不具备自主生成流量特征或流量未经过检测节点进行传输的情况下,我们仍可通过构建特定形式的探针包来进行有效检测,同时也能根据实际需求灵活配置探针部署位置,从而提高检测效率和准确性。然而,该技术也存在一些限制性因素:当被监控对象察觉到异常探针行为时,可能会自动过滤掉非预期来源的探针数据包,这将导致最终检测结果失真;此外,该技术还无法完整描绘网络中某些关键节点间的拓扑关联关系;最后,由于其工作原理会导致持续发送探针数据包的行为,这不仅会增加网络运行时的整体负载压力,还会使实时监控指标出现一定的偏差

6结 语

设备资产识别在网络安全评估与威胁预警方面发挥着关键作用,在当前数字经济时代背景下具有重要战略意义。作为国民经济和社会生活的重要领域之一,互联网空间已经成为国家经济发展的重要支撑点之一。而作为衡量国家核心竞争力的关键指标之一,在当前信息化建设快速发展的背景下,
网络安全已成为国家安全体系中不可或缺的一环。
掌握并提升网络资产探测能力是深入研究和探索现代互联网环境的基础工作。
研究并提升该类技术有助于增强我国网络安全事件应急指挥能力建设水平。
目前我国具备进行网络空间IP地址扫描的能力,
能够准确识别每个IP地址所连接的各类资源,
但相较于国际领先水平,
在精准探测技术和相关技术领域仍存在提升空间

全部评论 (0)

还没有任何评论哟~