CN109375945B - 物联网设备的固件版本探测方法及漏洞修复率评估方法 - Google Patents
物联网设备的固件版本探测方法及漏洞修复率评估方法 Download PDFInfo
- Publication number
- CN109375945B CN109375945B CN201810989193.6A CN201810989193A CN109375945B CN 109375945 B CN109375945 B CN 109375945B CN 201810989193 A CN201810989193 A CN 201810989193A CN 109375945 B CN109375945 B CN 109375945B
- Authority
- CN
- China
- Prior art keywords
- firmware version
- firmware
- web
- equipment
- version
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开一种物联网设备的固件版本探测方法及漏洞修复率评估方法,该探测方法包括:S1.获取固件镜像文件;S2.将各固件镜像文件解压后提取文件系统,并确定每个文件系统的Web根目录;S3.搜索Web静态资源,每个设备型号下分别提取各Web静态资源在各种固件版本中的特征值,构建对应的固件版本特征表;S4.获取所需设备类型的IP地址列表以及固件版本特征表,进行指纹扫描,提取出对应的指纹,识别得到设备的固件版本号;该评估方法包括获取目标漏洞的型号版本信息,根据上述探测方法的结果计算目标漏洞的修复率。本发明具有实现方法简单、探测精度及效率高以及可不触发漏洞实现漏洞修复率评估等优点。
Description
技术领域
本发明涉及物联网设备技术领域,尤其涉及一种物联网设备的固件版本探测方法及漏洞修复率评估方法。
背景技术
随着物联网的发展,联网设备数量迅速增长,其种类多样、生产商繁多,由于设备存在漏洞,各类安全问题也频频发生。由于联网设备一般处于无人职守状态,因此即使发现漏洞,也不能及时得以修复,所以对联网设备,对其已知漏洞的修复率进行评估具有重要意义。若不进行版本探测,目前的传统方法是利用漏洞触发代码编写扫描程序,通过漏洞攻击测试来判断其修复情况,但在非授权条件下对他人的联网设备进行攻击性测试是违法行为,测试者很难得到大范围用户的集体授权,且即使已授权,测试者也需要针对所有固件版本编写漏洞触发与测试程序,非常费时费力,因此需要一种能够在线识别设备生产商、型号、固件版本号而无需触发漏洞的方法。
如针对最新公开的“零日”漏洞,还没有提供修复方案时,所有固件版本都受到影响,此时通过设备搜索引擎查找特定范围的漏洞型号设备,可直接评估该零日漏洞的影响力,但对于先前已经公开的漏洞,只有部分旧版本固件受到影响,因此就需要探测联网设备的固件版本号,从而判断漏洞是否已经修复,进而评估漏洞的影响力。
目前对于设备生产商和型号的在线识别已有成熟的技术和产品,而针对其固件版本号的识别还缺少有效的技术手段,但固件版本号却是判断设备是否存在漏洞的最关键信息,因而亟需提供一种能够实现固件版本探测而不会触发漏洞的方法。
现有技术中通常是通过设备搜索引擎实现在线物联网设备搜索,如经典的设备搜索引擎Shodan,能识别包括服务器、路由器、交换机、公共IP打印机、网络摄像头等计算设备,Censys能够更加快速的扫描整个互联网搜索所有联网设备,并返回一份有关资源(如设备、网站和证书)配置和部署信息;国内也有类似的搜索引擎,如FOFA可以从不同维度(如地区、端口号、网络服务等)搜索网络组件,ZoomEye可用于搜索网站组件和主机设备。
如上述的现有技术中设备在线搜索引擎,通常是通过访问设备开放的端口(如80,21),获得相应服务(如http,ftp)的标旗信息,许多标旗信息中标注了设备的生产商和型号,但一般不会标注设备的固件版本号,因而现有技术中的设备搜索引擎只能识别联网设备的生产商和型号,无法识别设备所运行固件的版本号,即固件版本号,甚至对于有些设备,其生产商和型号信息是以图片而非文本格式存在的,而现有搜索引擎尚不具备图像语义识别能力,对于该类型设备的生产商和型号亦无法识别。
有从业者提出通过构建Web接口指纹来帮助识别固件的方法,即针对实际的物理设备或者是通过虚拟机上固件模拟得到的虚拟化设备,选取包括Web网站地图、HTTP有限状态机,基于HTML内容和HTTP头的加密哈希和模糊哈希作为固件特征,由构建的固件特征来帮助识别固件。但是该方案对Web接口的指纹提取必须依赖于固件仿真虚拟化设备,而现有的固件仿真技术只能成功仿真模拟大约10%的固件,因而是无法用到真实网络中的大规模的设备固件指纹识别中,即无法实现大规模在线识别联网设备固件版本号,且使用模拟设备进行测试,与真实设备的指纹可能并不一致,其实际探测精度并不高。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现方法简单、不会触发漏洞、可适用于大规模设备固件版本识别中,且探测精度及效率高的物联网设备的固件版本探测方法,以及实现方法简单、不会触发漏洞的漏洞修复率评估方法。
为解决上述技术问题,本发明提出的技术方案为:
一种物联网设备的固件版本探测方法,步骤包括:
S1.分别获取不同设备型号的各种固件版本所对应的固件镜像文件并存储至数据库,得到固件镜像文件库;
S2.分别将所述固件镜像文件库中各所述固件镜像文件解压后提取其中的文件系统,并确定每个所述文件系统的Web根目录;
S3.遍历搜索所述Web根目录以查找所有的Web静态资源,每个设备型号下分别提取各所述Web静态资源在各种固件版本中的特征值,构建得到对应的固件版本特征表,并存储至固件版本特征库中;
S4.获取所需设备型号的IP地址列表,以及从所述固件版本特征库中获取对应的固件版本特征表,进行固件版本指纹扫描,每次扫描时探测目标IP设备的所述Web静态资源的特征,并与所述固件版本特征表进行差异性比较,提取出对应的固件版本指纹存储到固件版本指纹库中,并识别得到目标IP设备的固件版本号。
作为本发明的进一步改进,所述步骤S2中对每个所述文件系统定位Web根目录的具体步骤为:
S21.遍历搜索所述文件系统,找到所述文件系统中指定web文件后,提取对应的文件存储路径;
S22.根据各所述文件存储路径中路径的末层子目录名称、路径中包含的典型Web根目录文件数量以及路径中包含的web文件总数量确定所述Web根目录。
作为本发明的进一步改进,所述步骤S22的具体步骤包括:
S221.为每条所述文件存储路径设定相同的初始权重值;
S222.判断各所述文件存储路径中路径的末层子目录名称是否是指定web根目录名称,如果是,对应路径的权重值加1;以及判断各所述文件存储路径中是否包含指定的典型Web根目录文件,如果是,对应路径的权重值加1;以及将所述文件存储路径中包含web文件数量最多的路径的权重值加1;
S223.比较各所述文件存储路径的权重值,取权重值最大的所述文件存储路径确定为所述Web根目录。
作为本发明的进一步改进:所述指定web文件具体包括文件扩展名为htm、html、js、css、cgi、jsp、asp、php类型的文件;所述指定web根目录名称具体包括/www、/web、/htdocs/、/cgi-bin中任意一种或多种;所述指定Web根目录文件具体包括/start.htm、/index.htm、以及/login.htm中任意一种或多种。
作为本发明的进一步改进:所述特征值具体为哈希值,即所述步骤S3中构建得到对应的固件版本特征表时,具体对每个设备型号的所有固件版本,分别计算各所述静态资源的哈希值,构建得到所述固件版本特征表。
作为本发明的进一步改进,所述固件版本特征表具体为:各列对应设备的每个固件版本,各行分别表示每个静态资源相对于所述Web根目录的存储路径,表中各元素为所在行对应的静态资源在对应列所在固件版本中的哈希值。
作为本发明的进一步改进:所述静态资源包括指定的图片文件、指定的资源文件以及指定的静态页面中的一种或多种,所述指定的图片文件包括以jpg、gif、png、bmp中任意一种或多种后缀名结尾的图片文件,所述指定的资源文件包括以js或css后缀名结尾的资源文件,所述指定的静态页面包括不包含动态代码的且以htm、html、php、asp、cgi中任意一种或多种为后缀名结尾的静态页面。
作为本发明的进一步改进:所述固件版本特征表中各列对应指定设备型号的每个固件版本,各行对应搜索到的各静态资源,所述步骤S4中进行固件版本指纹扫描时,具体通过按照所述IP地址列表探测各目标IP的静态资源,删除所述固件版本特征表中与探测结果不匹配的固件版本或删除未反馈探测结果的静态资源,最终由所述固件版本特征表中剩余列得到目标IP设备的固件版本,以及由所述固件版本特征表中剩余行得到固件版本指纹。
作为本发明的进一步改进,所述步骤S4中进行固件版本指纹扫描的具体步骤为:
S41.读取所述IP地址列表,以及加载获取的所述固件版本特征表,并初始化行位置N=1;
S42.判断所述固件版本特征表中第N行资源是否存在列版本差异,如果是,转入执行步骤S43,否则删除第N行资源,并设置N=N+1,返回执行步骤S42;
S43.向目标IP发送Web请求,探测目标设备的第N行资源;
S44.判断目标IP是否成功反馈探测结果,如果是,删除所述固件版本特征表中与探测结果不匹配的列版本,转入执行步骤S45,否则删除第N行资源,并设置N=N+1,返回执行步骤S42;
S45.判断N是否为最后一行,如果是,由所述固件版本特征表中剩余列得到目标IP设备的固件版本,以及由所述固件版本特征表中剩余行得到固件版本指纹并更新所述固件版本指纹数据库,完成单目标设备IP探测,否则设置N=N+1,返回执行步骤S42。
本发明进一步提供一种物联网设备的漏洞修复率评估方法,该方法包括:
使用上述固件版本探测方法探测目标设备对应IP列表中的固件版本号,输出版本探测结果;
获取目标设备漏洞的型号版本信息,根据获取的所述型号版本信息以及所述版本探测结果计算目标设备漏洞在IP列表区域内的修复率。
与现有技术相比,本发明中物联网设备的固件版本探测方法的优点在于:
1)本发明物联网设备的固件版本探测方法,通过构建固件镜像文件库,对固件镜像文件库中每个文件系统定位Web根目录后,提取每个设备型各静态资源在不同固件版本中的特征值构建固件版本特征表,基于固件特征表与IP地址列表执行指纹扫描,即实现基于设备固件中的嵌入式Web文件差异性分析比较,通过静态分析和动态扫描来获得固件版本指纹,可以实现针对联网设备的固件版本号的在线识别,且可适用于大规模的设备固件指纹识别中实现高效的固件版本探测。
2)本发明物联网设备的固件版本探测方法,通过对设备IP地址列表进行指纹扫描,基于不同固件版本特征的对比,不断删除固件版本特征表中与探测结果不匹配的固件版本或静态资源,可以结合指纹扫描与Web文件差分对比实现固件版本指纹的高效、精确探测。
3)本发明物联网设备的固件版本探测方法,通过结合文件系统中web文件、Web根目录文件的状态进行Web根目录定位,可以快速、准确的定位到各文件系统的Web根目录。
与现有技术相比,本发明漏洞修复率评估方法的优点在于:本发明漏洞修复率评估方法,先通过上述探测方法探测设备的固件版本,可以结合指纹扫描与Web文件差分比对探测得到设备的固件版本,通过判断设备运行的固件版本号,来判断漏洞是否已经通过更新固件的方式得以修复,不会触发漏洞,使得可以合法的探测互联网设备中已知漏洞是否被修复,进而评估设备漏洞在一定范围内的修复率,可以对已知漏洞、有修复方案漏洞的影响力进行有效评估。
附图说明
图1是本实施例物联网设备的固件版本探测方法的实现流程示意图。
图2是本实施例实现物联网设备固件版本探测的实现原理示意图。
图3是本实施例实现固件版本指纹扫描的实现流程示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
如图1、2所示,本实施例物联网设备的固件版本探测方法步骤包括:
S1.固件镜像文件库构建:分别获取不同设备型号的各种固件版本所对应的固件镜像文件并存储至数据库,得到固件镜像文件库;
S2.Web根目录定位:分别将固件镜像文件库中各固件镜像文件解压后提取其中的文件系统,并确定每个文件系统的Web根目录;
S3.固件版本特征库构建:遍历搜索Web根目录以查找所有的Web静态资源,每个设备型号下分别提取各Web静态资源在各种固件版本中的特征值,构建得到对应的固件版本特征表,并存储至固件版本特征库中;
S4.基于指纹识别的固件版本探测:获取所需设备型号的IP地址列表,以及从固件版本特征库中获取对应的固件版本特征表,进行固件版本指纹扫描,每次扫描时探测目标IP设备的Web静态资源的特征值,并与固件版本特征表进行差异性比较,提取出对应的固件版本指纹存储到固件版本指纹库中,并识别得到目标IP设备的固件版本号。
本实施例通过上述方法,通过构建固件镜像文件库,对固件镜像文件库中每个文件系统定位Web根目录后,提取每个设备型各静态资源在不同固件版本中的特征值构建固件版本特征表,基于固件特征表与IP地址列表执行指纹扫描,即实现基于设备固件中的嵌入式Web文件差异性分析比对,通过不同固件版本特征的比对,获得能够识别特定固件版本或版本号范围的一个特征或多个特征的组合,即为指纹,从而能够结合静态分析和动态扫描获得固件版本指纹,可以实现针对联网设备的固件版本号的在线识别,且可适用于大规模的设备固件指纹识别中实现高效的固件版本探测。
本实施例通过启发式扫描方式,结合对固件的静态分析和对设备的动态扫描,能够快速提取固件版本指纹,并同时识别出设备运行的固件版本号,所需的固件镜像文件和实际设备IP易于获得,相比于传统的必须基于设备固件的虚拟执行,可以适用于各类型设备中,具有通用性及可扩展性。
需要说明的是,本实施例上述所称固件,典型的如家用路由器升级时需要下载最新的压缩包文件即为最新版本的固件。
在具体应用实施例中,步骤S1具体步骤包括:
针对主流设备生产商网站编写网络爬虫,针对不同设备型号的所有固件版本,获取其固件镜像文件(Firmware image)的下载地址;
利用具有多线程、断点续传功能的下载软件,针对上述获得的下载地址下载相应的固件镜像文件,并按照“/生产商/型号/版本号”的路径格式存储至数据库,得到固件镜像文件库。
若仅需分析特定生产商的特定设备型号等,也可以直接手动获取固件镜像文件构建固件镜像文件库。
在具体应用实施例中,步骤S2使用固件镜像解压缩工具(如binwalk),对固件镜像文件库中的固件镜像文件进行解压,从中提取文件系统;针对每一个解压后的文件系统,再进行Web目录定位,自动确定嵌入式Web服务的根目录。
本实施例中,步骤S2中对每个文件系统定位Web根目录的具体步骤为:
S21.遍历搜索文件系统,找到文件系统中指定web文件后,提取对应的文件存储路径;
S22.根据各文件存储路径中路径的末层子目录名称、路径中包含的Web根目录文件以及路径中包含的web文件数量确定Web根目录。
本实施例上述Web根目录定位方法,通过结合文件系统中web文件、Web根目录文件的状态,可以快速、准确的定位到各文件系统的Web根目录。
本实施例中,步骤S22的具体步骤包括:
S221.为每条文件存储路径设定相同的初始权重值;
S222.判断各文件存储路径中路径的末层子目录名称是否是指定web根目录名称,如果是,对应路径的权重值加1;以及判断各文件存储路径中是否包含指定的Web根目录文件,如果是,对应路径的权重值加1;以及将文件存储路径中包含web文件数量最多的路径的权重值加1;
S223.比较各文件存储路径的权重值,取权重值最大的文件存储路径确定为Web根目录。
本实施例中,指定web文件具体包括文件扩展名为htm、html、js、css、cgi、jsp、asp、php等类型的文件;指定web根目录名称具体包括/www、/web等;指定Web根目录文件具体包括/start.htm、/index.htm、/login.htm等。
在具体应用实施例中,执行Web目录定位时,首先通过遍历搜索,找到文件系统中典型的web文件,如文件扩展名为htm、html、js、css、cgi、jsp、asp、php等类型的文件,提取文件存储路径;把每一条路径的初始权重值设为0,然后进行以下三项判断:a)若路径的末层子目录名称是典型的web根目录名称,如www、/web等,则权重值加1;若该路径中包含典型的Web根目录文件(包括但不限于/start.htm、/index.htm、/login.htm),则权重值加1;若路径中包含的web文件数量最多,则权重值加1;经上述加权后,将权重值最大的路径确定为Web根目录。
若使用上述方法无法找到正确的Web根目录,也可通过手动输入方式输入“Web根目录”。
本实施例通过上述方法确定Web根目录后,进一步通过步骤S3遍历搜索Web根目录,找到所有Web静态资源,即Web文件,静态资源具体可包括指定的图片文件、指定的资源文件以及指定的静态页面等,其中图片文件包括但不限于以jpg、gif、png、bmp等后缀名结尾的图片文件,资源文件包括但不限于以js、css等后缀名结尾的资源文件,静态页面包括但不限于不包含动态代码的且以htm、html、php、asp、cgi等为后缀名结尾的静态页面;对每个设备型号,分别提取上述各Web静态资源在各种固件版本中的特征值,构建得到对应的固件版本特征表,即固件Web目录中的每一个静态文件的访问路径与其内容的组合,构成该固件的一条特征,一个固件通常包含几十至几百条特征。
本实施例特征值具体为哈希值,即步骤S3中构建得到对应的固件版本特征表时,具体对每个设备型号的所有固件版本,分别计算各静态资源的哈希值,构建得到固件版本特征表,由表中各列对应设备的每个固件版本,各行分别表示每个静态资源相对于Web根目录的存储路径,表中各元素为所在行对应的静态资源在对应列所在固件版本中的哈希值。
在具体应用实施例中,针对每类“生产商-型号”的所有固件版本,分别计算所有静态资源的哈希值,构造固件版本特征表,其中表的各列分别代表该“生产商-型号”设备的每个固件版本,各行分别代表每个静态资源相对于Web根目录的存储路径(如/pic/logo.png),表中特定行与列交汇的单元格中存储相应的静态资源在对应的固件版本中的哈希值,若某版本中不存在某资源,则该单元格留空,或标记为不存在,得到的固件版本特征表如表1所示。处理完毕后,将该“生产商-型号”的固件版本特征表存储至固件版本数据库中。
表1:固件版本特征表。
固件版本1 | 固件版本2 | 固件版本3 | … | 固件版本N | |
静态资源1 | 哈希值-1 | 哈希值-2 | 哈希值-1 | … | 哈希值-2 |
静态资源2 | 哈希值-3 | 哈希值-4 | 哈希值-3 | … | 哈希值-4 |
静态资源3 | 哈希值-5 | 无此资源 | 哈希值-5 | … | 哈希值-6 |
… | … | … | … | … | … |
静态资源M | 哈希值-7 | 哈希值-7 | 无此资源 | … | 哈希值-8 |
本实施例中,如上述,固件版本特征表中各列对应指定设备型号的每个固件版本,各行对应搜索到的各静态资源,步骤S4中进行固件版本指纹扫描时,具体通过按照IP地址列表探测各目标IP的静态资源,删除固件版本特征表中与探测结果不匹配的固件版本或删除未反馈探测结果的静态资源,最终由固件版本特征表中剩余列得到目标IP设备的固件版本,以及由固件版本特征表中剩余行得到固件版本指纹。采用上述方法对设备IP地址列表进行指纹扫描,基于不同固件版本特征的差分对比,不断删除固件版本特征表中与探测结果不匹配的固件版本或静态资源,可以探测得到每个IP设备上所运行的固件版本号或版本号范围,得到相应的指纹,可以结合指纹扫描与Web文件比对实现固件版本指纹的高效、精确探测。
如图3所示,本实施例步骤S4中进行固件版本指纹扫描的具体步骤为:
S41.读取IP地址列表,以及加载获取的固件版本特征表,并初始化行位置N=1;
S42.判断固件版本特征表中第N行资源是否存在列版本差异,如果是,转入执行步骤S43,否则删除第N行资源,即固件版本特征表中第N行所代表的静态资源文件,并设置N=N+1,返回执行步骤S42;
S43.向目标IP发送Web请求,探测目标设备的第N行资源;
S44.判断目标IP是否成功反馈探测结果,如果是,删除所述固件版本特征表中与探测结果不匹配的列版本,即静态资源,转入执行步骤S45,否则删除第N行资源,并设置N=N+1,返回执行步骤S42;
S45.判断N是否为最后一行,如果是,由固件版本特征表中剩余列得到目标IP设备的固件版本,以及由固件版本特征表中剩余行得到固件版本指纹并更新所述固件版本指纹数据库,完成设备IP列表探测,,并设置N=N+1,返回执行步骤S42。
通过上述步骤,对固件版本特征表中各行资源进行列版本差异性分析,如果各列(版本)在该行(资源)上不存在差异,则该行(资源)对区分各列(版本)是无意义的,不可能成为指纹,发送HTTP会造成不必要的测试时间,则将该行资源删除以提高探测速度,可以基于启发式扫描方式实现高效的固件版本探测。
在具体应用实施例中,例如针对某个静态Web资源(如logo.jpg),对目标IP设备的探测结果显示到其哈希值为AAAA,而固件版本特征表中,针对该静态资源,v1~v5版本的对应特征为BBBB,v6~v9版本特征为AAAA,则由该次探测,可排除设备运行固件为v1~v5版本的可能性,则删除特征表中相应的列以加快探测的速度。
以下以某一设备型号具有三个固件版本1.0.0.1,v1.0.0.2,v1.0.0.3为例对上述固件版本指纹方法进行进一步说明,所构建的固件版本特征表如表2所示。
表2:固件版本特征表。
V1.0.0.1 | V1.0.0.2 | V1.0.0.3 | |
/IMG/logo.png | AAAAAAAA | AAAAAAAA | AAAAAAA |
/CSS/login.css | BBBBBBBB | 404 | BBBBBBBB |
/Setting.htm | DDDDDDDD | CCCCCCCC | CCCCCCCC |
本实施例中固件版本的Web根目录中有三个Web静态资源,即/IMG/logo.png,/CSS/login.css,/setting.htm.,单元格(2,2)被记作404,表明测试该版本(v1.0.0.2)的该资源(/CSS/login.css)时,所发送的HTTP请求将收到状态码为404的响应,因为通过固件分析来构建特征表时发现该版本不存在该资源。由于单元格(2,2)在该行的三个单元格中是唯一的,单元格(2,2)可以作为v1.0.0.2版本的指纹,类似的,单元格(3,1)在该行中也唯一的,单元格(3,1)即表示第一列(v1.0.0.1)的第三行(setting.htm)的哈希值为DDDDDDDD,可以作为v1.0.0.1版本的指纹;
v1.0.0.3版本的指纹难以直接识别,本实施例采用上述固件版本指纹扫描方法进行扫描,假设当前被测试的IP运行着v1.0.0.3版本的固件,那么测试第一行时,执行步骤S42,第一行不存在列差异(全是AAAAAAAA),因此该行对于区分版本没有意义,直接删除该行;递归测试至第二行时,返回的测试结果为BBBBBBBB,执行步骤S44,删除与测试结果不匹配的列(v1.0.0.2);递归测试至第三行时,返回的测试结果为CCCCCCCC,执行步骤S44,删除与测试结果不匹配的列(v1.0.0.1),此时,表中第一行及第一、二列均被删除,只剩下单元格(2,3)与(3,3)共同作为第三版本指纹,即这两项特征都符合时,设备运行的固件版本即为v1.0.0.3,完成版本号探测。
在具体应用实施例中,首先利用设备搜索引擎获得特定“生产商-型号“的联网设备的IP地址列表,并从固件版本特征库中提取该“生产商-型号”对应的固件版本特征表,使用上述方法进行固件版本指纹扫描,探测每个IP设备上所运行的固件版本号或版本号范围,并输出相应的指纹存储到固件版本指纹库中。
由于某些“生产商-型号”设备可能存在十几个不同的固件版本,每个版本中可能包含几百个Web文件,本实施例通过上述扫描方法,可以实现大规模固件版本高效而完备的扫描,且由于Web文件可能是动态的,即离线后端分析与在线前端扫描的结果不一致,无法用作指纹,即使是静态文件,也可能面临无授权访问的问题,本实施例上述方法可以规避上述问题,本实施例当无权访问时,即对应S44中反馈探测结果失败的情况,此时不进行匹配,直接删除行,且前后端分析结果不一致的问题只针对Web动态文件存在,本实施例构建特征表时,只选取Web静态资源,不会存在前后端分析不一致的问题。
本实施例还包括物联网设备的漏洞修复率评估方法,该方法包括:
使用上述固件版本探测方法探测目标设备对应IP列表中的固件版本号,输出版本探测结果;
获取目标设备漏洞的型号版本信息,根据获取的型号版本信息以及所述版本探测结果计算目标设备漏洞在IP列表区域内的修复率。
对于无人值守的联网设备而言,其固件很少被更新,即使漏洞已公开,也往往不会被很快修复,本实施例考虑漏洞修复率评估问题,先通过上述探测方法探测设备的固件版本号,可以结合指纹扫描与Web文件差分比对探测得到设备的固件版本,且不会触发漏洞(不触犯网络安全法),使得可以在不触发漏洞的情况下探测已知漏洞是否被修复,进而评估设备漏洞在一定范围内的修复率,相比于传统的只关注零日漏洞、无修复方案漏洞的影响,可以对已知漏洞、有修复方案漏洞的影响力进行有效评估。
在具体应用实施例中,首先采用现有的设备搜索引擎,可以在特定范围内找到大量的、真实的联网设备进行在线测试,通过威胁情报网站获得特定设备漏洞的型号版本信息,即哪些固件版本存在漏洞,以及哪些不存在漏洞;然后结合前序步骤对目标设备IP列表中的版本探测结果,计算该漏洞在IP列表区域内的修复率,能够结合设备搜索引擎与威胁情报信息,评估已知漏洞在特定范围内的修复率。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
Claims (9)
1.一种物联网设备的固件版本探测方法,其特征在于,步骤包括:
S1.分别获取不同设备型号的各种固件版本所对应的固件镜像文件并存储至数据库,得到固件镜像文件库;
S2.分别将所述固件镜像文件库中各所述固件镜像文件解压后提取其中的文件系统,并确定每个所述文件系统的Web根目录;
S3.遍历搜索所述Web根目录以查找所有的Web静态资源,每个设备型号下分别提取各所述Web静态资源在各种固件版本中的特征值,构建得到对应的固件版本特征表,并存储至固件版本特征库中;
S4.获取所需设备型号的IP地址列表,以及从所述固件版本特征库中获取对应的固件版本特征表,进行固件版本指纹扫描,每次扫描时探测目标IP设备的所述Web静态资源的特征,并与所述固件版本特征表进行差异性比较,提取出对应的固件版本指纹存储到固件版本指纹库中,并识别得到目标IP设备的固件版本号;
所述固件版本特征表中各列对应指定设备型号的每个固件版本,各行对应搜索到的各静态资源,所述步骤S4中进行固件版本指纹扫描时,具体通过按照所述IP地址列表探测各目标IP的静态资源,删除所述固件版本特征表中与探测结果不匹配的固件版本或删除未反馈探测结果的静态资源,最终由所述固件版本特征表中剩余列得到目标IP设备的固件版本,以及由所述固件版本特征表中剩余行得到固件版本指纹。
2.根据权利要求1所述的物联网设备的固件版本探测方法,其特征在于,所述步骤S2中对每个所述文件系统定位Web根目录的具体步骤为:
S21.遍历搜索所述文件系统,找到所述文件系统中指定web文件后,提取对应的文件存储路径;
S22.根据各所述文件存储路径中路径的末层子目录名称、路径中包含的Web根目录文件数量以及路径中包含的web文件总数量确定所述Web根目录。
3.根据权利要求2所述的物联网设备的固件版本探测方法,其特征在于,所述步骤S22的具体步骤包括:
S221.为每条所述文件存储路径设定相同的初始权重值;
S222.判断各所述文件存储路径中路径的末层子目录名称是否是指定web根目录名称,如果是,对应路径的权重值加1;以及判断各所述文件存储路径中是否包含指定的Web根目录文件,如果是,对应路径的权重值加1;以及将所述文件存储路径中包含web文件数量最多的路径的权重值加1;
S223.比较各所述文件存储路径的权重值,取权重值最大的所述文件存储路径确定为所述Web根目录。
4.根据权利要求3所述的物联网设备的固件版本探测方法,其特征在于:所述指定web文件具体包括文件扩展名为htm、html、js、css、cgi、jsp、asp、php类型中任意一种或多种的文件;所述指定web根目录名称具体包括/www、/web/、htdocs以及CGI-BIN中一种或多种;所述指定Web根目录文件具体包括/start.htm、/index.htm、/login.htm中任意一种或多种。
5.根据权利要求1~4中任意一项所述的物联网设备的固件版本探测方法,其特征在于,所述特征值具体为哈希值,即所述步骤S3中构建得到对应的固件版本特征表时,具体对每个设备型号的所有固件版本,分别计算各所述静态资源的哈希值,构建得到所述固件版本特征表。
6.根据权利要求5所述的物联网设备的固件版本探测方法,其特征在于:所述固件版本特征表具体为:各列对应设备的每个固件版本,各行分别表示每个静态资源相对于所述Web根目录的存储路径,表中各元素为所在行对应的静态资源在对应列所在固件版本中的哈希值。
7.根据权利要求1~4中任意一项所述的物联网设备的固件版本探测方法,其特征在于:所述静态资源包括指定的图片文件、指定的资源文件以及指定的静态页面中的一种或多种,所述指定的图片文件包括以jpg、gif、png、bmp中任意一种或多种为后缀名结尾的图片文件,所述指定的资源文件包括以js或css后缀名结尾的资源文件,所述指定的静态页面包括不包含动态代码的且以htm、html、php、asp或cgi为后缀名结尾的静态页面。
8.根据权利要求1所述的物联网设备的固件版本探测方法,其特征在于,所述步骤S4中进行固件版本指纹扫描的具体步骤为:
S41.读取所述IP地址列表,以及加载获取的所述固件版本特征表,并初始化行位置N=1;
S42.判断所述固件版本特征表中第N行资源是否存在列版本差异,如果是,转入执行步骤S43,否则删除第N行资源,并设置N=N+1,返回执行步骤S42;
S43.向目标IP发送Web请求,探测目标设备的第N行资源;
S44.判断目标IP是否成功反馈探测结果,如果是,删除所述固件版本特征表中与探测结果不匹配的列版本,转入执行步骤S45,否则删除第N行资源,并设置N=N+1,返回执行步骤S42;
S45.判断N是否为最后一行,如果是,由所述固件版本特征表中剩余列得到目标IP设备的固件版本,以及由所述固件版本特征表中剩余行得到固件版本指纹并更新所述固件版本指纹数据库,完成单目标设备IP探测;否则设置N=N+1,返回执行步骤S42。
9.一种物联网设备的漏洞修复率评估方法,其特征在于,该方法包括:
使用权利要求1~8中任意一项所述的固件版本探测方法探测目标设备对应IP列表中的固件版本号,输出版本探测结果;
获取目标设备漏洞的型号版本信息,根据获取的所述型号版本信息以及所述版本探测结果计算目标设备漏洞在IP列表区域内的修复率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810989193.6A CN109375945B (zh) | 2018-08-28 | 2018-08-28 | 物联网设备的固件版本探测方法及漏洞修复率评估方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810989193.6A CN109375945B (zh) | 2018-08-28 | 2018-08-28 | 物联网设备的固件版本探测方法及漏洞修复率评估方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109375945A CN109375945A (zh) | 2019-02-22 |
CN109375945B true CN109375945B (zh) | 2022-04-12 |
Family
ID=65404020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810989193.6A Active CN109375945B (zh) | 2018-08-28 | 2018-08-28 | 物联网设备的固件版本探测方法及漏洞修复率评估方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109375945B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221900B (zh) * | 2019-06-05 | 2021-06-15 | 中国科学院软件研究所 | 一种Dockerfile基础镜像版本信息自动补全方法和装置 |
CN110659502B (zh) * | 2019-09-05 | 2021-09-28 | 中国科学院软件研究所 | 一种基于文本信息关联关系分析的项目版本检测方法及系统 |
CN110572399B (zh) * | 2019-09-10 | 2022-05-20 | 阿波罗智联(北京)科技有限公司 | 漏洞检测处理方法、装置、设备及存储介质 |
CN110704267B (zh) * | 2019-09-23 | 2022-08-30 | 福建经联网络技术有限公司 | 一种核心控制芯片固件分析与验证系统 |
CN111680286B (zh) * | 2020-02-27 | 2022-06-10 | 中国科学院信息工程研究所 | 物联网设备指纹库的精细化方法 |
CN111400259B (zh) * | 2020-03-24 | 2023-04-21 | 中孚信息股份有限公司 | 一种目录内容的遍历方法 |
CN111580856A (zh) * | 2020-04-22 | 2020-08-25 | 中国科学院信息工程研究所 | 针对mips架构的物联网设备组件版本信息提取方法 |
CN111580822A (zh) * | 2020-04-22 | 2020-08-25 | 中国科学院信息工程研究所 | 基于vex中间语言的物联网设备组件版本信息提取方法 |
CN111782511B (zh) * | 2020-06-17 | 2022-12-09 | 国家计算机网络与信息安全管理中心 | 固件文件的分析方法、设备及存储介质 |
CN111797403B (zh) * | 2020-06-21 | 2021-03-05 | 佛山市勇合科技有限公司 | 基于大数据和物联网的数据处理方法及云计算服务器中心 |
CN112241311A (zh) * | 2020-10-22 | 2021-01-19 | 杭州安恒信息技术股份有限公司 | 一种固件仿真模拟方法、装置、电子设备及可读存储介质 |
CN112491799B (zh) * | 2020-10-28 | 2023-03-24 | 深圳市广和通无线股份有限公司 | 通信模块远程修复方法、装置、计算机设备和存储介质 |
CN112651026B (zh) * | 2020-12-30 | 2024-05-24 | 微梦创科网络科技(中国)有限公司 | 一种具有业务安全问题的应用版本挖掘方法及装置 |
CN113641423B (zh) * | 2021-08-31 | 2023-07-07 | 青岛海信传媒网络技术有限公司 | 显示设备及系统启动方法 |
CN116561768B (zh) * | 2023-05-19 | 2024-05-28 | 国家计算机网络与信息安全管理中心 | 设备固件漏洞检测方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976319A (zh) * | 2010-11-22 | 2011-02-16 | 张平 | 基于行为特征的BIOS固件Rootkit检测方法 |
EP2799985A2 (en) * | 2013-05-01 | 2014-11-05 | Starkey Laboratories, Inc. | Unobtrusive firmware updates for hearing assistance devices |
CN105739465A (zh) * | 2016-01-28 | 2016-07-06 | 南京邮电大学 | 基于物联网的设备管理系统和方法 |
CN107273751A (zh) * | 2017-06-21 | 2017-10-20 | 北京计算机技术及应用研究所 | 基于多模式匹配的安全漏洞在线发现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020199044A1 (en) * | 2001-05-30 | 2002-12-26 | Joel Futterman | Method and apparatus for loading a mirror image software copy across circuit cards |
-
2018
- 2018-08-28 CN CN201810989193.6A patent/CN109375945B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976319A (zh) * | 2010-11-22 | 2011-02-16 | 张平 | 基于行为特征的BIOS固件Rootkit检测方法 |
EP2799985A2 (en) * | 2013-05-01 | 2014-11-05 | Starkey Laboratories, Inc. | Unobtrusive firmware updates for hearing assistance devices |
CN105739465A (zh) * | 2016-01-28 | 2016-07-06 | 南京邮电大学 | 基于物联网的设备管理系统和方法 |
CN107273751A (zh) * | 2017-06-21 | 2017-10-20 | 北京计算机技术及应用研究所 | 基于多模式匹配的安全漏洞在线发现方法 |
Non-Patent Citations (1)
Title |
---|
基于WEB 信息的特定类型物联网终端识别方法;任春林等;《通信技术》;20170531;第1003-1009页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109375945A (zh) | 2019-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109375945B (zh) | 物联网设备的固件版本探测方法及漏洞修复率评估方法 | |
CN108334781B (zh) | 病毒检测方法、装置、计算机可读存储介质和计算机设备 | |
Tramontana et al. | Automated functional testing of mobile applications: a systematic mapping study | |
CN109359468B (zh) | 漏洞检测方法、装置及设备 | |
CN103632100B (zh) | 一种网站漏洞检测方法及装置 | |
US10642726B2 (en) | Method, apparatus, and system for blaming a test case/class for a survived mutation | |
US20170068676A1 (en) | Layer Identification and Dependency Analysis for Management of Images | |
US11570196B2 (en) | Method for determining duplication of security vulnerability and analysis apparatus using same | |
CN109104421B (zh) | 一种网站内容篡改检测方法、装置、设备及可读存储介质 | |
CN114692169B (zh) | 应用大数据和ai分析的页面漏洞处理方法及页面服务系统 | |
CN104462985A (zh) | bat漏洞的检测方法以及装置 | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN111428233B (zh) | 一种嵌入式设备固件的安全性分析方法 | |
JP2016099857A (ja) | 不正プログラム対策システムおよび不正プログラム対策方法 | |
CN111339535A (zh) | 面向智能合约代码的漏洞预测方法、系统、计算机设备和存储介质 | |
CN108228312A (zh) | 通过解释器执行代码的系统和方法 | |
KR102021383B1 (ko) | 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치 | |
JP2012174082A (ja) | 情報処理装置及び情報処理方法及びプログラム | |
CN115391230A (zh) | 一种测试脚本生成、渗透测试方法、装置、设备及介质 | |
CN113031995B (zh) | 一种更新规则的方法、装置、存储介质以及电子设备 | |
CN113378172B (zh) | 用于识别敏感网页的方法、装置、计算机系统和介质 | |
CN114610516A (zh) | 应用程序的修复方法、装置、计算机设备以及存储介质 | |
CN113360397A (zh) | 系统功能的回归测试方法、装置、设备及存储介质 | |
Pham et al. | Modular conformance testing and assume-guarantee verification for evolving component-based software | |
CN110704483A (zh) | 用户路由流程定位方法、设备、存储介质及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |