APP下载

基于搜索的物联网设备识别框架

2018-08-11邹宇驰朱红松孙利民

信息安全学报 2018年4期
关键词:标语型号准确率

邹宇驰, 刘 松, 于 楠, 朱红松, 孙利民, 李 红, 王 旭

1中国科学院大学网络空间安全学院 北京中国100049

2中国科学院信息工程研究所物联网信息安全技术北京市重点实验室 北京中国100093

1 引言

随着物联网(Internet of Things, IoT)技术的飞速发展, 各种类别、类型、品牌、型号的物联网设备在日常生活中发挥着重要的作用, 如家用路由器、IP Camera、网络打印机、工业物联网中的工业控制系统(Industrial Control System)等。有报告显示[1], 目前有超过50亿的物联网设备, 这个数量在2020年将会达到200亿。这些设备在被分配公网IP地址的情况下, 可以借助互联网较为方便地直接与之交互或管理。但随之而来的是这些设备缺乏安全防护或者设计上的缺陷或者软件漏洞的曝光以及黑客利用这些不安全因素实施恶意行为。如2016年10月份美国东海岸断网事件, 归咎为大量的IP Camera存在弱密钥的缺陷。由此可见, 物联网设备给网络空间带来的安全问题不容忽视。

经过调研发现, 相同品牌或相同型号的设备会存在相同漏洞, 如 CVE-2015-7254[2], 影响了华为路由器下的HG532e、HG532n、HG532s等三种型号。因此, 在网络空间中快速、准确地识别出物联网设备,细粒度地判断其产品属性, 再通过漏洞库进行准确标识, 既能有助于建立物联网设备安全分布态势图,又能帮助管理员加固设备防护, 加强资产管理, 帮助后续制定防护策略, 为安全防护方案提供参考。Shodan[3]与 Censys[4]是目前商用化最好的面向实体设备的搜索服务系统, 是开展安全研究的重要资源平台。

本文提出一种基于搜索的物联网设备产品属性识别框架, 着重提升对物联网设备产品相关属性的识别能力。通过实时地对类型、品牌、型号库搜索更新, 实现对不同类型、不同厂商甚至不同型号的物联网设备的识别能力的提升。本文通过属性信息库自动化构建框架、数据获取与预处理模块、设备产品属性分级识别模块三个主要部分定义了物联网设备产品属性完整识别框架。

首先, 通过爬虫等自动化的抓取手段, 自动化地、实时地搜索电商平台上出现的物联网设备产品属性相关信息, 不断更新设备信息库。其次, 建立全连接之后, 发送针对特定协议或端口的特定探测报文, 获得物联网设备返回的协议标语信息, 利用自然语言处理(Natural Language Process, NLP)的方式,除去协议标语中的停用词、特殊符号等非关键性因素后, 再对标语信息进行分词。最后利用自动化收集的信息库以及相关内容过滤标语信息中的标识信息,如类型、品牌、型号等。

通过对以上研究方案的实现, 克服了对物联网设备识别能力不全、识别粒度较粗的问题。目前可识别品牌种类库达到1200种以上, 型号种类库达到12000种以上, 构建效率远高于人工指纹模式, 且自动形成对新品类设备的识别能力。通过在真实的公网环境中的实测,本框架利用 Onvif协议标语对公网视频监控设备型号识别准确率最高达到 97%, 利用FTP协议标语对型号识别准确率达到 91%, 利用Ethernet/ip协议标语对工业控制系统设备型号识别准确率达到97%, 利用Bacnet协议标语对工业控制系统型号识别准确率可达到98%。

2 相关工作

近些年来对于物联网设备的识别研究工作逐渐成为一个热点。2005年, Kohno等[5]根据设备硬件中存在的微小偏差, 利用时钟偏移值, 实现对远程设备的指纹识别技术; 2010年, Cui等[6]对暴露在公网上的弱口令设备进行类别以及类型的分析, 可识别范围从企业设备(防火墙、路由器)到消费电子设备(VoIP, IPTV机顶盒)等; 2015年, Radhakrishnan等[7]提出基于人工神经网络的指纹识别算法 GTID来进行物联网设备类型识别, 能达到较好的精确率; 2016年,曹来成等[8,9]通过提取首页http数据包头部字段和状态码作为设备特征, 基于设备特征向量之间的余弦相似度, 通过 K-means聚类方法实现对设备的划分; 同年还提出了网络空间终端识别框架, 该框架利用http的标语信息和 HTML源代码双重因素进行终端设备品牌识别; 2017年, 任春林等[10]通过机器学习的方法, 能够根据WEB页面信息识别设备是否是视频监控设备; 同年, Miettinen等[11]提出对特定网络中物联网设备类型的识别方法; Li等[12,13]通过视频监控WEB页面提出一种自动化的视频监控设备分类方法; 同年, 他们通过设备登录页面的特征, 提出了一种GUIDE的设备识别框架, 该框架首先通过特征提取方法筛选出页面的关键字特征, 然后通过构建分类器进行视频监控设备的识别, 达到了较高的识别正确率; Meidan等[14]应用机器学习算法于网络流量数据, 从而准确识别连接到网络的物联网设备类型; 2018年, Bezawada等[15]提出了基于物联网设备指纹的类型识别方法, 通过从网络流量中提取设备行为的近似特征, 用于训练设备类型的机器学习模型; Shaikh等[16]提出一种机器学习的方法实现对网络空间中物联网设备的二分类模型, 实现对网络空间中恶意的物联网设备活动的准确识别。用于搜索 SCADA工控设备的 Modscan[17]工具和用于发现西门子PLC设备的Plcscan[18]工具则是利用专有协议的标语信息进行设备识别,通过人工构建对应的设备专有协议指纹库, 对设备的专有协议标语信息进行识别, 从而对设备进行识别分类, 区分出设备的类型; Feng等[19]分析了17个常用工控专有协议, 提出了针对互联网工控系统设备的识别指纹。

但是, 以上研究对物联网设备的识别工作仍有些许不足。人工提取指纹能帮助解决一部分识别, 但是人工指纹容易退化, 对较新的、相似型号的设备识别能力不够, 识别效率较低。引入机器学习或者深度学习的方法对网络流量进行分析, 虽然提高了设备识别的自动化程度, 但是当前只能识别到设备类型或设备品牌, 识别粒度较粗。而相同品牌的不同型号设备的页面、标语甚至流量特征信息很类似, 无法良好区分出设备的型号。对于新出现的设备, 已有的设备识别分类器将会失效, 需要重新训练分类器, 而且重新训练的代价较高, 并且对于不同类型设备可能提取的特征会有所不同。

经过调研后发现, 与物联网设备进行有效连接后, 物联网设备返回的报文头部常常带有丰富的与产品属性相关的信息, 如设备类型、品牌、型号等,这部分信息不仅仅反映了设备基本情况, 同时还包含了丰富的语义信息, 如已知型号可以帮助推断设备类型与品牌, 已知类型与型号可以推断品牌。属性信息之间的互相关联能增加对设备的判别能力, 提高识别准确率。

根据物联网设备产品属性特性, 通过搜索的方式, 自动化构建了产品属性信息库, 实现了物联网设备识别框架。通过信息库的建立, 可以准确且高效的针对不同协议标语情况, 提出相对应的解析、识别方法, 更能获得未曾在标语中出现的产品属性, 从而提升对网络空间中整体物联网设备的识别能力。

本文围绕物联网安全状态分析的现实需求,以实现准确、高效、细粒度地物联网设备在线识别为目标, 在现有设备网络属性识别方法的基础上,研究物联网设备产品属性的网络识别框架, 为进一步研究网络空间中物联网系统安全问题打下坚实的基础。

3 物联网设备识别框架

3.1 概述

为了实现对物联网设备准确、细粒度的识别, 本文设计了如图 1所示物联网设备识别框架, 总共分为三部分: 属性信息库自动化构建框架, 数据采集与预处理模块, 设备产品属性分级识别模块。属性信息库自动化构建框架自动地从互联网电商平台搜索产品属性等相关信息, 构建产品属性信息库。数据采集和预处理模块获取标语信息模块, 并剔除不相关内容。设备产品属性分级识别模块对处理后的标语信息进行分级提取, 分别提取出设备类型、品牌、型号等, 再根据标语信息中出现的语义信息推断设备基本信息。

3.2 属性信息库自动化构建框架

产品属性库自动化构建是识别物联网设备产品属性的基础, 同时也是发现新物联网设备品牌、型号的有效手段。目前网络空间中物联网设备种类纷繁复杂, 相同类型的相同品牌有多种型号, 若都采用人工收集的方式无疑大大增加了工作难度, 还可能导致识别滞后的问题。如何有效地收集、统计物联网设备的类别、类型、品牌、型号等关键属性, 是本文需要解决的问题之一。因此, 本文采用自动化地方式构建产品属性信息库, 可以有效降低人工参与品牌型号收集工作, 提升收集效率。

图1 物联网设备识别框架Figure 1 IoT device recognition framework

3.2.1 物联网产品属性分类

网络空间中的物联网设备纷杂多样, 种类繁多。无论是用于安防的视频监控系统还是用于基础设施的供气供电的工业控制系统, 其中涵盖的物联网设备也是多种多样, 设备之间关系复杂。如图2展示的是安防系统、家居系统和智能电网系统。从图中可以得知, 安防系统中既有视频监控设备IP Camera(网络摄像机)、NVR(Network Video Recorder, 网络硬盘录像机), 又有交换机和网关; 家居系统中既有智能家居设备智能开关、智能吊灯, 又有路由器设备; 智能电网系统中既有工控设备 PLC(Programmable Logic Controller, 可编程逻辑控制器)、SCADA (Supervisory Control And Data Acquisition,数据采集与监视控制设备), 同样也有交换机设备。难点在于这三个系统中的设备既有其独特性又有重复, 若没有一个合理的设备的属性分层标准, 则很难将物联网设备的产品属性划分清楚。

对于上文的描述, 提出一种属性分层方式, 即各系统中都可能出现的设备划分为一层, 每个系统中独特的设备划分到一层。这样可以有效的解决设备类型分类的问题, 但如何确定每一类具体的内容以及与品牌型号的关系, 则需要确定一个标准。

物联网设备种类丰富, 同一种类的物联网设备由很多厂商生产, 并且同一品牌同一类型的物联网设备有多种不同的型号。Hikvision(海康威视)的 IP Camera的类型有很多, 如 DS-2DF1-611、DS-2CD1-203代表的是两个不同型号的海康威视的视频监控设备。对于物联网设备的所属类别来说, 若直接把设备都归类为物联网设备, 则其划分太过于粗糙, 不能很好地确定此设备的具体用途, 因此需要在设备类型前再设置一个类别, 来划分物联网设备所属的具体的种类。

图2 纷繁多样的物联网设备Figure 2 Diverse IoT devices

因此, 可以将设备的产品属性以层级关系定义。定义的产品属性有设备类别、设备类型、设备品牌和设备型号。其特性如下:

· 设备类别: 指的是设备归属的系统, 表示的含义是设备的主要用途。比如视频监控系统、工业控制系统和路由交换系统等。

· 设备类型: 指的是具有相同本质特点的同类设备, 表示的含义是设备的名称。比如视频监控系统下的NVR, 工业控制系统下的PLC。

· 设备品牌: 指的是设备的品牌, 表示设备的所属。比如海康威视、Simens(西门子)、Scneider(施耐德)。

· 设备型号: 指的是设备的具体型号。比如DS-2DF1-611代表的是海康威视的 IP Camera,S7-200代表的是西门子的PLC。

通过确定需要识别的设备产品属性的定义标准,则可以得知设备类别、设备类型、设备品牌和设备型号的关系, 划分标准如图3所示。通过这种划分方式, 发现物联网设备的产品属性之间具有交叉和继承关系, 交叉关系是指同一类别的设备如DVR可以被不同厂商生产, 如Dahua或者海康威视; 继承关系是指已知某个设备是 DVR, 那么可以推断其肯定是视频监控设备。通过对以上属性的分析, 本文构建了10种类别库, 53种类型库, 部分结果如表1所示。

表1 设备类别分类表Table 1 IoT device category classification table

3.2.2 设备品牌库构建

构建品牌库的目的是通过品牌库中的品牌特性与待识别设备的协议标语信息进行比较, 过滤并识别出待识别设备的标语信息中的品牌。同时得到设备的厂商, 品牌参数, 设备品牌的相关描述以及所属类别等信息。

通过对设备的协议标语信息观察发现, 设备的协议标语信息中出现的设备品牌信息基本上都是品牌英文名称。图4展示的是 FTP、TELNET等协议标语信息, 如FTP协议标语中出现品牌名MikroTik。因此有必要对设备品牌建立一个完善的库, 不仅只存储品牌名, 还需存储与之相关的信息, 如品牌描述、品牌所属国家等。这些信息有助于更好地对品牌属性进行刻画。因此设计如表 2所示的品牌库结构。设备的所属国家字段, 其目的是为了更好的统计品牌库中收集的品牌数量在国内外的分布情况。对于品牌和设备厂商的关系, 一个设备厂商下会有多个不同的品牌, 但是一个品牌只能属于一个设备厂商。而对于在设备品牌库中设置设备品牌链接和设备品牌描述信息字段, 则是为了方便进一步了解设备品牌的其它具体信息, 更好和更全面的掌握识别出来品牌设备的其他产品属性。

图3 物联网设备属性划分标准Figure 3 Standard for attribute classification of IoT device

表2 设备品牌库结构Table 2 Structure of IoT device manufacture database

3.2.3 设备型号库构建

设备型号库构建的目的是通过型号库中的设备型号信息与待识别的协议标语信息比较, 过滤出待识别设备标语信息中的型号信息, 从而标记出设备的型号, 根据设备产品属性信息库的划分标准, 进一步推导出设备所属类型、类别以及品牌信息。通过构建的设备型号库可知设备的品牌信息, 通过得到的设备品牌信息, 则可以在品牌库中进一步查询获取设备品牌相关的其他信息。如图 4所示, 图中TEL-NET协议中的BCM96338是设备型号, Router代表其设备类型, 根据型号库, 可以推断其品牌为Beet-el, 同样已知了设备的型号信息之后, 可以获取设备类别类型信息。因此, 构建表3所示的型号库结构, 增加该型号对应的品牌、类型、类别信息。

3.2.4 设备品牌型号库自动化收集框架

在品牌型号库模型构建好后, 下一步则为收集设备品牌和型号等属性信息。但是由于物联网设备海量异构, 物联网设备品牌和型号种类庞大, 若靠人工收集物联网设备品牌和型号信息, 难度较大。一是人工收集成本太高, 二是人工收集对于发现新设备品牌和型号也相对滞后。

表3 设备型号库结构Table 3 Structure of IoT device model database

一般情况下, 设备品牌和型号信息可以在各厂商的官网上查到对应的信息, 常规的品牌型号爬取需要对各厂商的网站分别进行爬取, 过程较为烦琐。但发现各大物联网设备厂商下属有多个代理厂商,代理厂商会将设备基本属性公布在第三方电商平台网站上, 如亚马逊, ZOL, IT168等。图 5显示的是ZOL上搜索打印机显示结果, 可以发现产品属性品牌和型号都结构化的呈现在网页上, 包括该设备是否具备联网功能, 对于不具备联网功能的型号, 收集框架并不会将其爬取, 如爱普生R330这款打印机,收集框架并不会将其收录。通过对这部分第三方电商平台上的设备基本属性信息进行爬取与收集, 可以降低构造爬虫的开销, 同时收集更为方便。

本文依据此类网站网页展示的品牌、型号等结构化特性, 提出一种设备品牌、型号自动化收集框架。自动化的爬取和收集设备品牌、型号等属性, 使得收集设备品牌和型号的方法更具有一般性, 若有新的需求可以增加对应的爬虫, 具有良好扩展性,并能周期性更新和收集品牌和型号。

图4 协议标语部分信息Figure 4 Part information of protocol banners

图5 电商平台结构化的品牌型号Figure 5 Structured manufacture and model of E-commerce platform

图6为品牌型号库自动化收集框架, 基于Python的Scrapy架构, 使用异步网络框架Twisted, 实现了对产品属性的自动化收集工作。框架分为四个过程: 启动过程, 数据解析过程, 数据获取归一化过程,自动入库过程。

(1) 启动过程

根据需求, 设定了两套启动方案, 其一为主动启动, 方便配置待爬取网站, 待爬取类型、品牌、型号等属性信息。其二为定时启动, 通过设定爬取周期,定时对特定网站进行爬取。

(2) 数据解析过程

数据解析过程包含两个步骤, 首先启动爬虫框架对目标网页进行特定信息收集, 即对设备产品属性页面进行特定信息收集; 然后使用对应网页的解析规则获取产品属性元素, 即品牌、型号以及基本参数。对于非联网设备进行剔除, 因为本框架对物联网的识别是基于远程连接获取的标语信息, 对于非联网的设备不适用。

根据不同网站的页面结构及其特性, 需要针对对应网站建立产品属性提取规则, 构建对应网站页面解析器, 完成对产品属性的解析。在提取设备页面上的品牌型号信息时, 需要提取设备的品牌、设备的型号、型号的相关描述信息、型号的标签信息以及设备型号图片等。

(3) 数据获取归一化过程

数据获取归一化, 其目的是将(2)过程得到的页面面元素信息归一化为品牌元素(品牌中文、品牌英文和品牌参数), 型号元素(型号名称、型号标签、对应型号设备链接、型号详情、型号图片和型号参数)和类型元素。其中品牌元素的中英文通过程序调用有道词典API自动获取。

(4) 自动化入库过程

根据数据获取归一化过程可以得到品牌、型号和类型的三元组关系。将品牌元素自动存储到品牌库中, 将品牌英文, 型号元素, 类型元素以及根据产品属性分层标准得到的类别信息自动存储到型号库中。从而完成了品牌库和型号库数据自动收集过程。

图6 物联网设备品牌型号自动化收集框架Figure 6 Automatic collecting framework of IoT device manufacture and model

如图7所示为自动化收集框架从2017年9月份至2018年1月份累计收集到的品牌与型号数量情况,可以发现, 到 2018年1月份, 去重后的品牌种类达到2397种, 去重后的型号种类达到56282。

图7 设备品牌型号统计图Figure 7 IoT device manufacture and model statistics

2017年8月份代表当时收集到的人工指纹情况。到2018年1月份, 与人工指纹相比, 自动化收集框架新增品牌种类2227种, 新增型号种类54439种。图8展示的为随着时间的推移, 工业控制系统、路由交换系统以及视频监控系统三类不同设备类别识别数量的变化情况。对图8的分析发现, 从2017年9月份到2017年12月份, 视频监控系统识别数量保持持续性增长, 但从 2018年开始出现下跌, 同样变化的还有工控系统。原因在于之前被识别为视频监控系统的设备出现了一定的误报率, 经过对算法的改进, 将识别准确率提升到90%以上, 因而剔除了这些误报设备,导致了识别数量的下降。同样情况的还有工控系统。而可识别的路由交换系统的数量, 在保证较高准确率的前提下, 实现了与品牌型号数量的同步增长。

3.3 标语数据采集与预处理模块

标语采集是指采集全网或者特定网络范围内的基于TCP或者UDP协议的应用层协议标语信息。利用全连接或半连接的方式发现设备存活端口, 接着对这些设备存活端口构造并发送特定协议探测包,获取存活端口的响应信息, 这部分响应包信息被称为协议标语信息。图9显示的是一种基于TCP协议获取协议标语信息的方式。

协议标语信息分为两种, 一种是可读字符串标语, 一种是不可读字符串标语。针对不同协议标语设计不同的预处理流程。

对可读协议标语, 首先需要过滤掉非物联网设备, 为了过滤此类非物联网设备的协议标语信息,建立了一个非物联网设备关键词库, 如 Nginx或者Apache等, 这种词汇标识了该设备有很大概率为WEB服务器。判读特定协议标语在特定字段上的词是否在非物联网设备关键词库内, 若在则标记此设备为非物联网设备, 排除掉此设备。接着需要把冗余部分信息剔除, 如Telnet协议标语信息, 其中存在不少冗余信息, 如 等, 需要将特殊符号、标点符号以及不可打印字符剔除。对于单个词语中的词语长度小于3的, 直接删除该词语; 然后根据过滤规则库中的规则, 进一步过滤掉混淆字符, 比如日期、无用数字等。为了进一步减少不相关字符串的干扰, 对剩余的协议标语信息使用自然语言处理的方式, 将NLTK(Natural Language Toolkit)库中收集的英文停用词在协议标语中删除。接着使用 NLTK库中Tokenize分词工具对剩余协议标语进行分词, 得到分词后的标语词汇列表。

图8 类别识别数量统计图Figure 8 Recognizable category statistics

图9 TCP协议标语抓取Figure 9 Capturing TCP banner

对于不可读字符串协议, 需要将其转码后, 得到可读的形式, 然后复用可读字符串处理流程。

经过以上预处理后的标语信息, 是后续用于设备产品属性识别的关键基础。

3.4 设备产品属性分级识别模块

图10显示了FTP、RTSP等8种不同类型的协议标语信息, 根据协议的标语信息分析可以发现,若使用产品属性信息库与协议标语直接比较存在许多困难, 其困难主要体现在: (1)协议种类多样化, 有的通用协议如SNMP返回16进制字符串, 有的通用协议如 Http返回字符串, 还有一些工控设备专有协议如Ethernet/ip返回是键值对的形式。协议标语内容格式不一致直接导致识别方法无法提取有效的信息来进行识别, 需要确定一种让识别更加有效的数据提取方案。(2)协议标语信息内容复杂, 在设备的协议标语信息中, 设备信息杂糅多样, 有的标语信息中只有类型、品牌或者型号信息的一种, 有的标语信息中含有此三种属性的两种或者三种。

图10 多种类型协议标语Figure 10 A great diversity of protocol banners

为了解决以上困难, 在保证型号识别准确率和品牌型号召回率的情况下, 本论文提出并实现基于搜索的设备产品属性识别框架。如图 11所示, 本框架分为四个部分, 分别为数据采集部分, 数据预处理部分, 信息库匹配部分和人工验证反馈部分。

针对困难一实现了特定协议解析器方法, 针对特定协议标语内容格式, 如3.3节所述的方案采用对应协议解析器, 完成协议有效信息的获取与预处理;本框架针对困难二实现了分级识别方法, 按照顺序依次识别出协议信息中的类型、品牌和型号。由于3.3节介绍了相关数据采集与预处理部分, 因此本节着重介绍属性信息库匹配和人工验证反馈部分。

选择类型、品牌、型号过滤顺序的原因是, 协议标语的语义信息对于识别研究是非常重要的, 比如三星有款打印机型号名为100, 若直接用型号名匹配,对于返回标语信息中带有 100字样的都会被识别为三星打印机, 这种完全脱离语义的识别模式大大降低识别准确率。但是, 当配合上类型或者品牌信息,可以有效对 100这个字符串进行筛选, 也就是说没有过滤品牌或者类型, 单纯只有型号, 该设备并不会被成功识别。

因此, 本文采用类型或者品牌结合型号的方式共同对设备进行识别。其次, 利用信息库可以获取除设备类型、品牌、型号之外的其他设备产品属性信息, 比如设备厂商、官网等。图12显示信息库匹配的 3个阶段: (1)类型匹配阶段; (2)品牌匹配阶段;(3)型号匹配阶段。通过以上3个阶段, 可以过滤大部分物联网设备产品基本信息。最后本文通过验证反馈的方式, 进一步提高设备识别准确率。

3.4.1 设备类型匹配阶段

物联网设备类型匹配阶段, 是使用类型库中的类型与标语词汇列表中的词进行匹配, 得到设备的类型, 如算法1所示。因为标语与类型集合中存在大小写, 而匹配算法对大小写敏感, 因而需要将标语词与类型集合全转为小写, 接着把标语中分词后的列表中Lbanner每个元素与已有设备类型集合Stype进行比较, 最终得到过滤类型后的标语词汇列表(Lftbl)。

图11 产品属性识别框架Figure 11 Product properties recognition framework

图12 阶段匹配识别过程Figure 12 Phase matching

算法1. 类型匹配算法.

输入: 标语分词后的列表Lbanner, 设备类型集合Stype

输出: 过滤设备类型标签Ttype, 过滤类型后的标语词汇列表Lftbl

过程 1.判断Lbanner是否有元素在Stype

3.4.2 设备品牌匹配阶段

物联网设备品牌匹配阶段, 是使用品牌库中的品牌与过滤类型后的标语词汇列表中的词进行匹配,得到设备的品牌, 如算法2所示。因为品牌集合中存在大小写, 而匹配算法对大小写敏感, 因而需要将品牌集合全转为小写, 接着把过滤类型后的标语词汇列表Lftbl中的每个元素与已有设备品牌集合Sbrand进行比较, 最终得到过滤品牌后的标语词汇列表(Lftbbl)以及过滤得到品牌(Tbrand)。

算法2. 品牌匹配算法.

输入: 过滤类型后的标语词汇列表Lftbl, 设备品牌集合Sbrand

输出: 过滤设备品牌标签Tbrand, 过滤类型、品牌后的标语词汇列表Lftbbl

过程 1.判断Lftbl是否有元素在Sbrand

3.4.3 设备型号匹配阶段

通过3.2节自动构建的自动爬取框架, 当前已收集的物联网设备类型有53种, 已收集品牌有2082个,所以对于类型和品牌直接使用库匹配过滤, 但是对于型号匹配识别存在如下两个问题:

(1) 由于型号库数量较大, 有52617个不同型号,直接遍历型号库中所有型号与Lftbbl中的词汇进行比较, 时间复杂度高;

(2) 即使当前收集了万数级的型号, 但仍存在部分未收集完全的型号。

因此, 本文根据型号库中收集到的型号信息规律, 如表 4型号规则分析表所示, 构造正则表达式,通过这部分正则, 可筛选出潜在的设备型号。通过实验分析, 经过正则表达式抽取, 型号匹配时间降低了一倍。同时为了验证正则表达式的科学性, 通过使用正则表达式对所有收集的型号进行过滤验证, 发现已收集的所有型号都满足表4对应的规则。

表4 型号规则分析表Table 4 Model rule analysis table

另外, 经过调研后发现, 有的品牌的部分型号名称相似, 直接字符串比较可能会导致部分未收集的型号丢失, 如表5所示, 海康威视DVR存在极其相似的型号。因此, 本文采用字符串关联算法来匹配识别, 找出更多设备的型号, 并且根据同一系列的设备型号推算出设备的品牌、类型以及类别信息。将这部分潜在的设备型号与型号库中的型号进行相似度匹配识别, 将满足阈值的标语型号输出, 得到设备型号。这样做不仅降低了与型号库比较次数, 提高了整体效率, 更是克服了因为型号库可能收集不全而导致的型号未能正确识别的其他相似型号设备的问题。

为了描述方便, 定义设备型号全集为Smodel, 特定类型下的设备型号集合为Stmodel, 特定品牌下的设备型号集合为Sbmodel, 特定类型和特定品牌下的设备型号集合为Stbmodel其中Stmodel⊆Smodel,Sbmodel⊆Smodel,Stbmodel⊆Stmodel,Stbmodel⊆Sbmodel。算法具体描述如算法3所示, 通过将算法1和2中得到的设备类别、品牌信息作为输入, 缩小型号库范围, 接着利用正则表达式, 提取Lftbbl中潜在的型号, 对这部分潜在型号与型号库中的型号, 调用算法 4中的型号相似度比较算法, 得到满足阈值的型号信息, 算法 4中LevenshteinRatio被用来计算两个字符之间相似度。

表5 相似型号分析表Table 5 Similarity model analysis table

算法3. 型号匹配算法

输入: 过滤类型、品牌后的标语词汇列表Lftbbl,设备型号集合Smodel, 设备类型标签Ttype, 设备品牌标签Tbrand, 相似度匹配阈值TMS

输出: 过滤设备型号标签Tmodel

过程 1. 根据Ttype,Tbrand筛选出型号SRM

过程 2. 正则表达式提取潜在型号

过程 3. 潜在型号与型号集合元素进行相似度比对

算法4. 型号相似度比较算法ModelSimilarity.

输入: 潜在型号candmodel, 类型、品牌过滤后的型号集合SRM, 型号相似度门限TMS

输出: 相似型号列表Lsm

过程 1. 分治法求潜在型号与型号集合元素间的LevenshteinRatio距离

为了选取TMS的参数具体的值, 设计TMS参数选择实验, 具体的实验步骤如下:

(1) 从型号库中随机选择 20个不同的型号, 每个型号数量为 10, 总共构成 200个型号数据集。型号包括的设备类型有IP Camera、PLC、路由器和打印机, 覆盖的设备品牌有18种。此处设每一种系列的型号数据属于一类, 构成的类别向量用Y表示, 则Y=(y1,y2,…,y20), 型号集合构成X,X=(x1,x2,…,x200)。设xmn为X集合中属于Y中某一类的型号,n的取值为1,2,3,…,20,m的取值为1,2,3,…,200;

(2) 将每一系列的型号字符串进行排序, 即将属于Y每一类的X进行排序;

(3) 从每一类排好序的型号中随机选择一个型号作为此类的基准型号, 记为Qs=(xy1,xy2,…,xy20), 基准型号集中有20个型号, 每一个型号都属于Y中的不同类;

(4) 将Qs中的每一个型号与X中的每一个型号分别进行LevenshteinRatio距离相似度计算, 得到Qs中的每一类型号与X中的每个型号的相似度, 以及每一个相似度下的型号对, 即(xyn,xm),其中n的取值为1,2,3,…,20,m的取值为1,2,3,…,200;

(5) 通过将(4)得到的相似度与TMS比较, 若相似度大于TMS, 则将相似度对应的型号对中的xm归类为xyn, 记为x*mn从而得到每个xyn下的型号分类结果;

(6) 最后根据每个xyn下的型号分类结果, 求每个xyn类别下的型号分类的准确率和召回率; 其中型号分类准确率用Pm表示, 型号分类召回率用Rm表示。计算公式如下:

(7) 计算型号分类准确率的均值和方差, 型号分类召回率的均值和方差;

(8) 设置TMS的阈值范围为 50%~100%, 每隔10%设置一次TMS阈值取值, 即TMS阈值为[50%, 60%,70%, 80%, 90%, 100%], 将步骤(5)到步骤(7)重复操作。

得到的实验结果如表 6所示。为了保证在识别准确的情况下召回更多种类的型号, 因此TMS的取值为90%最合适。

由于TMS是在小范围型号数据集上进行的实验,在整个型号数据集上并不具有说服依据, 因此, 本文选择在整个型号库中进行实验, 验证TMS取值的科学性。实验步骤同小范围型号数据集, 最终得到实验结果如表7所示。

表6 相似度阈值小范围取值分析Table 6 A small range value analysis of similarity degree threshold

表7 相似度阈值大范围取值分析Table 7 A large range value analysis of similarity degree threshold

观察发现当TMS选择90%时, 准确率在大范围型号数据集上的准确率只有 96.90%, 而不是小范围得到的 100%, 经过对数据集的分析发现, 存在部分不同类型或者品牌的型号极其相似, 但由于型号相似比对算法基于 Levenshtein距离, 因而不同类型或品牌且相似型号计算的距离会大于设定的TMS。比如HP有一款型号为6000r的服务器, 同时IBM还有一款6000R的服务器, 根据LevenshteinRatio计算导致这 2款不同品牌的设备有可能被识别为一个产品,因此导致了在准确率方面略有下降, 但该准确率在可接受范围内。与TMS取100%相比, 发现了虽然准确率略有降低, 但召回率得到了提升, 证明在大范围数据集上, 本方法可以有效找到更多相似的型号。综合以上原因, 继续选择TMS为90%。

3.4.4 验证反馈

数据预处理过程中的关键字提取部分的过滤规则库是根据初始的设备协议标语信息样本集合提取出来的。但通常情况下能够接触的样本集合也比较有限, 根据少量的样本集合获取得到的过滤规则库通常是有偏的, 不全面的, 这样最终也会影响设备匹配识别的准确率。例如, 表8给出的是FTP协议原始标语, 通过最初始的设备过滤规则库, 在经过数据预处理之后得到的标语词汇列表如表 9所示。然后通过匹配识别之后, 会将此标语识别成型号为5070的富士打印机。但实际上根据此FTP协议标语是无法获取设备的品牌和型号。通过观察发现, “You are user number N of M”是FTP协议标语返回格式的一种, 其目的是告诉访问者的顺序, 因而此语句中的字符不能用来区分设备的品牌或型号, 反而会影响到最终的设备型号匹配识别的准确率。

表8 FTP协议标语原始信息样例Table 8 Raw FTP protocol banner

表9 预处理后的FTP协议标语信息样例Table 9 Preprocessed FTP protocol banner

经过上述验证发现, 需要将 FTP协议标语中的“You are user number N of M”这句话过滤, FTP协议标语的过滤规则库需要添加一条新的规则。

为了验证反馈阶段对识别方法的影响, 本次实验利用了通用协议标语——FTP协议标语数据集通过如下步骤进行验证:

(1) 数据获取, 通过 Zgrab[20]探测工具对全网开放FTP协议的设备进行标语抓取, 得到超过2000万的设备FTP协议标语信息;

(2) 识别匹配, 使用品牌型号库设备识别模块对FTP协议标语数据进行处理和识别;

(3) 结果统计, 对识别的结果进行统计;

(4) 抽样验证, 抽样验证识别结果的准确性(此处主要是对型号的识别准确率进行抽样验证);

(5) 根据验证结果, 判断识别型号错误的原因;

(6) 更新过滤规则库的规则;

(7) 再次识别, 重复步骤(2)—(6), 直至规则无法进一步添加。

在使用品牌型号库识别方法对FTP协议标语识别过程中, 新增了两条规则, 并且将此方法在FTP协议标语的设备型号识别准确率从 64.8%提高到了94%。如上文所述, 规则和协议之间存在映射关系。其中新增的两条规则如下:

规则 1: 若设备 FTP协议标语信息中存在“You are user number N of M”,在数据预处理阶段将此句话删除, 如表10所示。在全网中, 设备FTP协议标语信息中存在此语句的标语有 3165393条, 而错误的将此语句的数字识别成型号的有659945条, 占比高达 21%; 增加此规则之后, 可以将型号准确率提高到84%。

规则 2: 根据品牌型号库算法模型的识别方法,若在前两阶段都未识别出设备的产品属性, 则在第三阶段即型号匹配识别阶段, 增加一个过滤数字字符串过程。其意义是根据设备FTP协议标语中进行了规则1过滤之后, 仍然存在26万左右的数据其标语中含有数字字符串, 但是不能代表设备的型号,因此需要将其过滤。增加规则2之后, 可以将型号准确率从84%提高到94%。表11展示了人工验证反馈对型号准确率的影响。

表10 规则处理后的FTP协议标语信息样例Table 10 FTP protocol banner after regularization processing

表11 人工验证反馈影响Table 11 Feedback effect of manual verification

4 框架性能评估

由于物联网设备品牌型号总数较多, 为了验证本文提出的框架对品牌型号识别覆盖度情况, 分别利用框架与人工指纹在 4.1节进行品牌型号识别覆盖度验证实验。算法4提出了正则过滤型号的方法,为了验证该方法有效性, 在4.2节设计了正则抽取对算法效率的影响实验。最后, 为了验证整体框架识别的准确性与细粒度的情况, 在4.3节设计了2种视频监控系统协议 Onvif、FTP的型号准确率验证实验,在4.4节设计了2种工控系统协议Ethernet/ip、Bacnet的型号准确率验证实验。

4.1 品牌型号识别覆盖度验证

为了验证基于搜索的设备产品属性识别框架是否能够召回更多设备品牌和型号, 本次实验利用了全网扫描探测的部分协议标语数据集对品牌和型号种类覆盖度进行了验证, 具体的验证步骤如下:

(1) 数据获取: 对20个工控专有协议、3个视频监控专有协议、3个打印机专有协议和6个通用协议在全网空间进行标语信息抓取;

(2) 识别匹配: 使用基于搜索的设备识别框架以及人工收集指纹分别对上述32个协议标语信息数据集分别识别;

(3) 结果统计: 统计步骤(2)的识别结果, 将识别结果按照类别、类型、品牌和型号聚类;

(4) 结果分析: 通过对聚类结果分析可知, 经过4个月自动化构建的品牌型号库识别出的物联网设备品牌种类超过了1200种, 识别的物联网设备型号种类超过了12000种, 识别的数量远远大于2年收集到的人工指纹库的170种设备品牌, 1843种设备型号。

通过品牌型号库的识别方法, 能够有效的发现网络空间中的设备品牌和型号。与人工指纹收集相比, 本方法极大地提高了设备识别的覆盖能力。

4.2 正则抽取对算法影响

由于型号库中的型号数量庞大, 达到万数量级,为了能够达到快速匹配识别的效果, 故对已经过滤完品牌和类型的标语数据列表Lftbbl进行了正则抽取过程, 进一步过滤掉非型号相关词汇。

为了验证在型号匹配识别之前加入正则抽取过程的确能够节约时间, 故据此设计了一个对照实验,通过对照实验进行验证。实验步骤如下:

(1) 数据获取: 通过从 Censys中下载全网的FTP协议标语数据、SSH协议标语数据和 Http协议标语数据;

(2) 数据过滤: 通过本章提到的非物联网设备过滤方法分别对步骤(1)中的三个协议标语数据过滤,分别得到三个协议标语数据的物联网设备数据集;保证得到的数据集在使用库识别方法识别中, 一定会经过类型、品牌和型号匹配识别阶段;

(3) 实验数据抽取: 从步骤(2)中得到的三个协议标语的数据集分别抽取 2万条协议标语数据作为实验数据, 即2万条Http协议标语数据集Ω1、2万条FTP协议标语数据集Ω2和2万条SSH协议标语设备数据集Ω3;

(4) 对照实验: 分别准备库匹配算法的两套程序A和B进行实验, 其中A是在库匹配算法中使用了正则抽取模块、B是没有使用正则抽取模块的库匹配算法。

使用三组数据集分别对A和B进行测试, 计算A和B在完成三组数据集完整的识别过程中各自消耗的时间。

实验结果如表12所示。从实验结果中可以看出,利用正则抽取方法对Lftbbl进行过滤可以节省更多的匹配时间, 即在库匹配算法中使用正则抽取, 可以让整个品牌型号库识别方法达到更快的识别效果。通过实验结果数据可知, 不使用正则抽取整个识别方法的时间是使用正则抽取所花的时间2倍到9倍左右, 因此正则抽取可以极大的提高算法的性能。

表12 正则抽取对算法性能影响Table 12 Regular extraction effects on algorithm performance

4.3 视频监控设备型号识别

为了验证物联网设备识别框架对互联网视频监控设备识别的有效性, 通过如下步骤进行验证:

(1) 数据获取: 选取视频监控设备2个常用协议Onvif与FTP, 进行全网标语抓取, 得到Onvif协议标语813404条, FTP协议标语13110691条;

(2) 识别匹配: 使用本文提出的框架, 对得到的Onvif与FTP协议标语信息进行识别, 得到识别结果,其中被识别为视频监控设备的数据分别为305622与12302条;

(3) 数据集压缩: 对识别出是视频监控设备的 2个协议数据进行压缩, 去除重复标语信息后, 得到Onvif协议覆盖型号3441, FTP协议覆盖型号378种;

(4) 验证结果: 通过对(3)去重之后的数据进行型号识别准确率验证, 得到的设备型号识别准确率分别为97%与90.87%。

通过对以上 2种不同视频监控设备常用协议进行识别, 如表 13所示, 可以发现本文提出的物联网设备识别框架, 对不同协议可以达到不同型号识别准确率, 最高可以达到 97.00%, 最低可以达到90.87%。一定程度上可以说明本文提出的框架的确可以达到细粒度对视频监控设备的识别。

表13 Onvif与FTP标语VSS识别结果分析Table 13 VSS recognition results analysis of Onvif and FTP

4.4 工控设备型号识别

为了能够验证本识别框架对工业物联网环境下的工控设备识别的有效性, 本次实验利用工控设备专有协议标语——Ethernet/ip与 Bacnet通过如下步骤进行验证:

(1) 数据获取: 通过对全网开放 Ethernet/ip与Bacnet协议的设备进行标语抓取, 得到设备Ethernet/ip协议标语数据8759条, Bacnet协议标语数据12203条;

(2) 识别匹配: 使用本文提出的方法分别对得到的协议标语数据进行识别, 得到识别结果, 其中Ethernet/ip识别出工控设备的数据为5811条, Bacnet识别出工控设备的数据为7361条;

(3) 数据集压缩: 对识别出是工控设备的数据进行压缩, 去除重复的标语信息后, 统计发现Ethernet/ip协议覆盖型号种类290种, Bacnet协议覆盖型号种类220种;

(4) 验证结果: 通过对(3)去重之后的数据进行型号识别准确率验证, 得到的设备型号识别准确率分别为97.00%与97.77%。具体内容如表14所示。

通过对以上 2种不同工控系统设备专有协议进行识别分析, 本文提出的物联网设备识别框架对工业物联网环境下的工控设备识别仍然适用, 同时还能达到较高的型号识别准确率。

本方法不仅仅支持Ethernet/ip与Bacnet协议, 同时还支持其他 18种的工控设备专有协议标语, 但Shodan目前仅支持15种。本方法与物联网设备搜索引擎Shodan在全网工控设备识别数量上比较如图13所示。图13显示了11种不同工控设备数量对比, 除了fox协议识别数量比Shodan少之外, 剩余10种都是领先或者与Shodan持平。出现fox协议识别数量少于Shodan的现象, 有很大可能性是因为探测系统对fox协议探测数据包收集还不够全, 导致识别出的fox设备数量稍微低于Shodan。

表14 Ethernet/ip与Bacnet标语ICS识别结果分析Table 14 Analysis of ICS recognition results of Ethernet/ip and Bacnet banners

图13 工控协议下的设备数量分析Figure 13 Number of recognizable ICS device statistics

5 未来工作

本文提出了一种基于搜索的物联网设备产品属性识别框架。收集了2397种的物联网设备品牌种类,56282种物联网设备型号种类, 确定了 10种设备类别, 目前可识别的物联网品牌种类达到1200种以上,可识别物联网型号种类达到 12000种以上。通过设计算法成功实现对物联网设备协议标语信息内容的提取工作。本文还对公网上的视频监控设备系统以及工业控制系统进行了实验。实验表明, 本框架在对通用、专用协议, 视频监控和工控设备都有较好表现,产品属性识别准确率均超过90%。

实验表明, 尽管论文提出方法能够实现对设备产品属性可以进行准确识别和标定, 但在设备识别率方面并不高。实验表明, 互联网可探测存活设备有4~5亿, 物联网设备根据推断在 1亿左右(包含家用路由器), 而当前能识别的设备不超过5000万。主要问题包括:

(1) 大量设备在进行协议标语抓取过程中受到防火墙等防护设备的拦截, 导致很大一部分开放端口不能抓到正常返回的标语信息;

(2) 随着安全意识的提升, 大量物联网设备都在提供服务信息前增加统一认证过程, 仅通过标语信息难以区分不同设备;

(3) 部分探测数据包收集不够完善, 导致探测获取原始标语信息的数量不全。

未来将在探测的友好度、探测数据包的完整性以及探索除上层协议标语外的其他设备特征提取技术和利用方法方面进行改进, 以提升对物联网设备识别比例。

猜你喜欢

标语型号准确率
标语变变变
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
航天型号批生产管理模式的思考
型号产品配套管理模式探索与实践
航天型号全要素管理的初步实践
标语变变变
“滥挂标语”
高速公路车牌识别标识站准确率验证法