浅谈网络资产指纹识别

随着网络技术的飞速发展,网络资产的种类和数量不断增加,网络资产指纹识别技术在网络安全中的重要性日益凸显。

互联网资产指纹库的建立对于网络空间测绘和资产管理至关重要。它就像一个巨大的数据库,存储了各种数字资产的“身份证”信息,通过这些指纹信息可以准确识别和管理网络资产。本文将详细介绍互联网资产指纹库的构建方法、指纹提取技术及其应用。

本文将简要介绍网络资产指纹识别的基本概念、工作原理及其主要方法。

一、网络资产指纹识别概述

“指纹”是指手指腹部凸起的纹路,每个人的指纹都是独一无二的。在互联网资产管理中,指纹也有类似的作用,即每个资产都有独特的标识,可以用来区分和识别。这些指纹包含了资产的生产厂商、型号、版本等详细信息,形成了互联网资产的“身份证”。网络资产指纹识别是通过爬虫引擎抓取网络资产相关数据,并将其与网络资产指纹库进行比对,从而实现对网络资产的识别。爬虫引擎抓取的数据主要包括IoT设备、软件版本、设备型号、服务组件、应用名、服务器操作系统、开放端口、服务名等。

网络资产指纹库是通过对网络空间中各种网络设备的型号、服务组件、版本、协议等特征进行分析,并经过充分测试验证后形成的准确指纹特征库。这些指纹特征可以对当年内新增的各类产品和应用系统(如工控系统、IoT设备、WebCMS等)进行识别和添加。

二、互联网资产指纹库的构建

构建互联网资产指纹库的关键在于从资产的元数据中提取指纹特征。资产元数据包含协议、banner、body、title、server、header、证书等信息。具体步骤如下:

  1. 端口扫描:首先对目标主机进行TCP/UDP端口扫描,确定其开放的端口。例如,通过发送ICMP ECHO、TCP SYN/ACK包等方式来探测目标机。
  2. 协议识别:根据开放端口确定相应的应用协议,建立连接后,通过协议特性发送特定数据包,获取资产指纹信息。
  3. 元数据分析:对采集到的元数据进行分析,确定哪些信息可以作为指纹特征,建立指纹数据库。

三、指纹匹配过程

在扫描结果的基础上,要得到准确的网络资产识别结果,离不开指纹匹配的过程。识别结果的准确性很大程度上取决于特征匹配的准确性。由于网络技术在不同行业和领域(如工控网、物联网等)的广泛应用,网络服务日趋多样化,对每一类网络资产进行识别都需要提取专用的指纹特征信息。因此,识别方法具有一定的通用性。

系统采用的指纹识别方法主要有两种:常规特征匹配和基于机器学习算法的特征匹配。

四、常规指纹特征匹配

常规指纹特征匹配方法包括对常见操作系统指纹的识别。例如,IPv4头中的总长度(total length)、标志(ID)、是否分片(DF)、生存时间(TTL)字段等,TCP头中的可选项,TCP头部的窗口大小(wsize)可选项等,以及ICMP、UDP协议指纹、SYN-ACK包重传时延等。

在匹配方法上,除了最基础的精确匹配外,还考虑到网络延时和动态服务的实际情况,类似正则表达式的模糊匹配方法也被应用。例如,在操作系统识别中,某些字段允许使用“*”进行模糊匹配,从而粗略地给出目标操作系统所属的大类。此外,还采用了综合加权匹配的方法,如Nmap的指纹评分表对各响应数据项的指纹识别能力进行了量化评分,在计算响应同该条指纹的匹配率时引入各数据项的评分作为加权,从而进一步提高识别的准确率。

五、基于机器学习的特征匹配

随着数据挖掘技术的发展,国内外很多研究人员将机器学习方法引入到操作系统指纹识别领域,极大地提高了指纹匹配的能力。例如,Beverly等引入朴素贝叶斯分类器进行操作系统指纹识别,实现了对未精确匹配指纹的识别,但其结果的准确性受限于样本分布情况,具有一定的不确定性。Sarraute等利用Nmap指纹库训练的神经网络模型识别操作系统指纹,比Nmap自身识别的准确率要高,但由于需要使用RPC服务识别版本,其适用范围受到限制。

有些系统采用了奇异值分解和有向无环图的方法,先对初始操作系统指纹生成的矩阵进行奇异值分解,并提取奇异值特征,然后基于有向无环图生成的多类分类器对未知指纹的奇异值特征进行分类。该方法在降低向量维数的同时对未精确匹配的指纹也具有较高的识别率。

六、互联网资产指纹提取实例

  1. 协议数据指纹提取

    • 案例一:某资产使用SNMP协议,扫描结果显示“CCR1009-7G-1C-1S+”,可以判断该资产是MikroTik的一款路由器。
    • 案例二:扫描结果显示“Apple AirPort - Apple Inc.”,可以判断该资产是苹果公司的AirPort产品。
  2. 网站数据指纹提取

    • 案例一:某网站标题显示“H3C H100 路由器登录”,通过标题和网站源码中的关键词,可以判断该资产是新华三集团的H100型号路由器。
    • 案例二:某网站源码中包含“<div class='prod_modelName'>RT-AX86U</div>”和“用华硕路由器帐号登录”,可以判断该资产是华硕的RT-AX86U路由器。

 

六、互联网资产指纹库的应用

互联网资产指纹库在实际应用中,可以用于以下几个方面:

  1. 设备识别:通过爬虫引擎抓取网络设备数据,与指纹库比对,实现对网络节点设备、打印机、无线接入设备、网络摄像头等的识别。
  2. 服务协议识别:通过扫描识别网络设备的开放端口及其使用的服务协议。
  3. 操作系统识别:通过ICMP主动探测和TCP握手被动探测结合的方法,识别网络设备的操作系统类型和版本。
  4. Web应用识别:通过分布式前端探针服务器采集域名的IP、WHOIS、网站首页代码、服务信息、SSL证书等,进行处理和存储。

七、应用实例

  1. 设备/产品识别:通过爬虫引擎抓取网络设备相关数据进行比对,从而实现对主流网络节点设备(如网络打印机、无线接入设备、网络摄像头等)的识别。

  2. 网络服务识别:爬虫引擎抓取的网络设备数据主要包括软件版本、前端框架、应用名、服务端语言、服务器操作系统、开放端口、服务名等。

八、总结

互联网资产指纹库的建立和维护是网络空间测绘的重要基础。通过构建全面、准确的指纹库,可以有效识别和管理网络资产。随着机器学习和人工智能技术的发展,指纹识别的准确性和效率将进一步提高,为网络安全提供更有力的保障。互联网资产指纹库的建设不仅需要不断更新和扩展,还需要结合实际应用场景进行优化和改进,从而更好地服务于网络安全和资产管理。

通过本文的详细介绍,希望读者能对互联网资产指纹库有一个深入的了解,并在实际工作中有效应用这一技术。

posted @ 2018-08-17 22:26  elloit  阅读(792)  评论(0)    收藏  举报