定量和定性相结合的物联网漏洞分类方法研究*

2020-03-26 08:26朱治丞张宇光
通信技术 2020年2期
关键词:跨平台复杂度漏洞

兰 昆,朱治丞,张宇光

(中国电子科技集团公司第三十研究所,四川 成都 610041)

0 引 言

2018年以来,以VPNFilter为代表的物联网大规模攻击事件层出不穷,各种物联网僵尸网络变种屡出,物联网漏洞和安全问题日趋严重。物联网系统软件和硬件异构同源、跨平台等特点,导致其漏洞分类方法发生新变化,在当前漏洞分类研究中关注较少,是亟需深入研究的新课题。文献[1]深入分析比较有代表性的Microsoft公司、CVE安全组织和Fortify Software公司的漏洞分类方法;文献[2]对漏洞分类的研究现状、漏洞分类模型等进行分析;文献[3]指出对信息系统漏洞进行分类的基本原则,并对25种漏洞分类方法进行了对比分析;文献[4]提出了一种基于星型网模型的安全漏洞分类方法,利用星型网的特点,将所有漏洞构造成一个7维数据空间。但是,目前的漏洞分类方法主要集中于计算机和网络系统,没有专门针对物联网漏洞的分类方法,将已有分类方法直接应用于物联网存在准确性、覆盖全面性等问题[5],需要开展深入的物联网漏洞分类方法研究。本文在深入讨论物联网漏洞特点的基础上,提出了一种新的物联网漏洞分类方法——VCECI。该方法从物联网设备、同源跨平台漏洞、漏洞的影响效果和漏洞利用复杂度3个维度对物联网漏洞进行科学分类,采用定量和定性相结合的途径划分物联网漏洞,对物联网漏洞分类方法的研究和应用具有一定的参考意义。

1 物联网漏洞分析

1.1 物联网漏洞简述

物联网漏洞是产品自带或其设计方面存在的弱点,入侵者可以利用该弱点执行恶意指令、访问未授权数据或实施拒绝服务攻击等。漏洞可能存在于物联网系统的不同位置,最明显的是物联网系统的软件和硬件、系统策略和供应链以及用户本身[6]。

1.2 物联网漏洞特点

消费性和生产性物联网以及智慧城市的高速发展,推动数百亿物联网设备上线联网运行。数据和场景的高维多态,设备的随机和随需分布,导致物联网漏洞的复杂性、存在方式和利用方法等将超过传统互联网领域。

物联网系统的硬件和软件通常都可能存在漏洞。硬件漏洞非常难识别,并且由于硬件兼容性、互操作性以及修复漏洞代价大,已识别出的硬件漏洞很难修复。软件漏洞可以出现在操作系统、应用软件、控制软件、通信协议和设备驱动程序中。开发人员和软件复杂性等很多因素会导致软件设计缺陷,不完全理解目标需求,任务开始执行前没有制定周密的研发计划,开发者和用户间缺乏深入沟通,资源、技术和知识缺乏,以及管理和控制系统开发失败等人为因素,通常会造成技术漏洞。

物联网系统的漏洞存在遗传性。由同种因素产生的物联网软件或硬件漏洞,往往会通过跨不同操作系统平台或CPU的编译操作,以及“寄生”在功能模块或组件中被第三方开发用户调用等,导致新开发的产品与生俱来带有该类型漏洞或者变种。例如,2017年曝光的某国际知名产商调制解调器漏洞,在其系列产品和相关设备均存在同样属性的硬编码后门账号漏洞,攻击者可以利用这类性漏洞架设僵尸网络等,造成了严重破坏。

1.3 物联网漏洞分类面临的挑战

从物联网漏洞挖掘与利用角度分析,对其进行分类主要存在3方面挑战。

(1)物联网终端漏洞在受影响实体、类型划分、存在位置、产生原因、利用方式以及造成危害等方面,具有不确定、不清晰的特征。物联网产品存在定制化的生产模式,造成同源跨平台的微差异化漏洞呈几何倍数增加,导致物联网漏洞的数量远远超过传统互联网系统漏洞;

(2)对物联网设备的硬件驱动程序进行漏洞分析,面临种类繁多、逆向分析十分耗时费力等问题。特别是一些小型化、低成本物联网设备的固件提取难以入手,且现有工具对物联网终端设备固件的支持并不完备,是传统互联网漏洞分析方法在物联网漏洞挖掘方面遇到的挑战;

(3)传感器、微型控制器等物联网装置的安全防护能力较弱,且极易成为网络攻击跳板。但是,此类设备存在的漏洞主要是逻辑型漏洞,软件实现多以第三方代码库跨平台编译部署的“拼装”方式为主,因此对此类漏洞的表述和分类方法需要新的思路。

2 已有漏洞分类方法

2.1 代表性的漏洞分类方法分析

目前,对漏洞的分类在国际上还没有统一的标准和通用的方法,主流漏洞分类方法主要有以下几类[7]。

(1)微软公司的漏洞分类法。依据不同的软件类型对软件漏洞做出分类,或者根据软件自身的漏洞所导致的影响以及漏洞利用方法对软件漏洞进行分类,通用性差,且存在同一漏洞属于不同分类方法的重叠情况,并没有很好地指出软件漏洞本身的特征和漏洞的运行机制[8]。

(2)CVE(Common Vulnerabilities &Exposures)安全组织的分类方法。CVE建立了一套统一的表述语言和命名流程,为认同度高的信息安全漏洞或者较为明确的弱点给出一个公共名称,使用一个共同的名字。CVE分类方法目前还没有形成系统的漏洞分类方法体系,没有体现漏洞自身的属性特征。

(3)Fortify Software公司漏洞分类方法。它是以软件代码自身的程序输入、API调用错误、安全策略、时间和状态、错误处理、代码质量、区分以及环境方面存在的缺陷为标准对漏洞进行分类,对专用漏洞分析工具有一定的依赖性。

(4)OWASP(Open Web Application Security Project)开源计划也提出了针对物联网漏洞的分类方法。该方法按照用户名枚举、弱口令、账户锁定、未加密服务、双因素身份认证、加密不完善、更新过程未加密、代码更新位置可写、拒绝服务、存储介质可移除、没有手动更新机制、更新升级机制缺失、固件更新的最新时间不可查、固件和存储内容可提取、设备的代码执行流可控、设备管理员权限暴露以及不安全的第三方组件,将物联网漏洞分为17类[9],但交叉重叠现象明显。

此外,国内有些研究机构针对计算机软件漏洞分类,提出了复杂巨系统理论结合系统工程中定性定量的方法对软件漏洞进行分类的方法[10]。

2.2 已有漏洞分类方法应用于物联网漏洞分类的不足

在物联网漏洞的发现和防护过程中,目前的互联网漏洞分类方法存在明显不足。

(1)目前的漏洞分类方法对于物联网特有的同源跨平台漏洞涵盖较弱[11];

(2)目前公开报道的专门针对物联网漏洞分类方法的研究很少;

(3)已有典型软件漏洞分类方法的本质是以商业服务的视角对软件漏洞做出分类[12],直接应用于物联网漏洞分类,较为零散;

(4)常见的分类方法并不能够表现出物联网漏洞利用过程中的复杂程度,在漏洞的防治机理和方法上也不能够给出相应的参考价值;

(5)已有分类方法没有涵盖物联网感知层系统或装置的新型漏洞,如各类小微传感器的资源耗尽漏洞[13]、“黑洞”攻击类漏洞等;

(6)目前的分类方法没有体现物联网产品研发过程中的异构多源结合、第三方开源资源复用以及多平台编译融合的特点,对物联网中间件、平台环境类软件漏洞属性表现较弱[14]。

3 物联网漏洞分类方法——VCECI

3.1 基础或依据

物联网设备类型复杂,形态各异,随处可见。利用同一个平台或套件进行软件、硬件的模块化迭代开发,从而适配不同行业应用的需求,即所谓同源性。这是目前物联网设备/系统研发较为普遍的模式[15],因此将导致不同设备的软/硬件及其存在漏洞的差异化,以及漏洞利用方式的多样性。此外,物联网漏洞的影响效果和漏洞利用复杂度具有很强的相关性[16]。

3.2 基于物联网漏洞的同源性、影响效果和利用复杂度的分类方法——VCECI

根据上述分析,提出物联网漏洞三维分类方法 ——VCECI(Vulnerability Classification Based on IoT Equipment Name、Consanguine Cross-platform Vulnerability、Influence),从物联网设备、同源跨平台漏洞、漏洞的影响效果和漏洞利用复杂度3个维度对物联网漏洞进行科学分类和标识。VCECI是一种定量和定性相结合的漏洞分类方法,物联网设备和同源跨平台漏洞属于定性方面,而漏洞的影响效果和漏洞利用复杂度从定量角度对物联网漏洞进行划分。

3.2.1 VCECI分类方法

VCECI科学分类方法从3个维度对物联网漏洞进行分类:①根据物联网产品类型;②根据漏洞的同源跨平台漏洞属性;③漏洞的影响效果和漏洞利用复杂度。VCECI科学分类方法如表1所示。

表1 VCECI分类方法

其中,物联网产品类型漏洞可以包含几乎已知的物联网产品;同源跨平台漏洞分成已知漏洞和未知漏洞两类,对于已知漏洞强调对同源漏洞在不同平台上的标识,对于未知漏洞则着重体现同一种未知漏洞源特征在不同平台上的标识;漏洞的影响效果和利用复杂度则从漏洞利用的方法和可能造成的危害后果进行划分。

3.2.2 VCECI方法的标识机制

(1)物联网产品类型漏洞的标识:XXX产品漏洞的方式,如网络摄像头漏洞、智能门锁、智能电视、智能穿戴腕表以及路由器漏洞等;

(2)同源跨平台漏洞的标识分为两种:已知漏洞标识形式为漏洞源名称_平台名称,如“OpenSSL_ARM”等;未知漏洞标识形式为未知漏洞特征_平台名称,如“OMG CORBA中间件崩溃_MIPS”等,其中平台名称特别关注同一漏洞源的跨平台特性;

(3)漏洞的影响效果和漏洞利用复杂度划分的漏洞标识:漏洞影响效果|漏洞利用复杂度系数(系数的产生将由数学计算公式计算得出),如DDoS|1。

3.2.3 定性和定量相结合的综合标识机制

在VCECI方法中,通过漏洞的影响效果和漏洞利用复杂度划分漏洞的过程,使用了漏洞影响效果结合漏洞利用复杂度系数的定性和定量结合的综合标识方法,如图1所示。

图1 定性和定量相结合的综合标识机制

这种方法将每一个物联网漏洞从危害程度和利用难度进行深入分解,极大地降低了以往漏洞分类方法中存在的交叉重复性。其中,定性方法是对物联网漏洞影响效果的特征性、概括性描述,描述清楚漏洞导致什么后果或危害。漏洞利用复杂度系数属于定量方法,需要依据数学计算公式计算漏洞利用复杂度系数,是VCECI方法区别于常规分类方法的重点内容。

3.3 物联网漏洞利用复杂度系数的计算

漏洞利用一直是网络安全研究人员关注的热门话题之一。一种新型漏洞利用方式的出现,意味着一种新的安全漏洞的产生。不同的物联网漏洞对应着不同的漏洞利用方法,其复杂性呈现出很大的差异性,但对于漏洞利用复杂度目前并没有标准的描述[17]。在本文的研究过程中,着重考察研究方法的可行性,因此对漏洞利用复杂度进行了基本定义。

3.3.1 基本定义

经过对物联网漏洞进行系统性研究,认为决定物联网漏洞利用复杂度的影响因子主要有3个方面:漏洞利用步骤、漏洞利用所需资源、编写漏洞利用代码。

(1)漏洞利用步骤为S,S为变量,即漏洞利用过程共需要有n步;

(2)漏洞利用所需工具资源为R,R为变量,即漏洞利用过程中需要借助使用的工具(如固件分析工具Binwalk、代码动态调试工具Ollydbg等)数量;

(3)编写漏洞利用代码为D,D为变量。在项目研究的初期阶段,为集中开展原理性研究;简化计算过程暂时定义D为二进制变量,只有两种状态:需要编写漏洞利用代码则D=1,不需要编写漏洞利用代码则D=0,如弱口令漏洞,仅需直接输入猜中的口令即可完成权限获取。随着研究工作的深入,可以把D设置为非二进制变量。

(4)漏洞利用复杂度为函数Y,Y=F(S,R,D)。通过函数F计算Y值,进而标定出漏洞利用复杂度,亦可以将Y计算值进行归一化处理,从而得出归一化处理值的范围(1、2、3、4、5……)。

3.3.2 函数Y的形式分析

物联网漏洞利用复杂度=(漏洞利用步骤、漏洞利用所需资源、编写漏洞利用代码),即Y=F(S,R,D),可以有多种数学方法体现3因素决定的物联网漏洞利用复杂程度,如加权求和平均法、判断矩阵等。可以视研究工作的深度,选择不同的数学模型,进而通过Y值大小比较出物联网漏洞利用的难易程度。

4 VCECI分类方法应用与相关实验

4.1 物联网漏洞利用复杂度数学计算公式设定

考虑到项目研究的阶段性特征和物联网漏洞挖掘技术的不断进步,物联网漏洞利用复杂度=(漏洞利用步骤、漏洞利用所需资源、编写漏洞利用代码),即Y=F(S,R,D),初步设计为采用加权求和平均函数。Y=r1S+r2R+r3D,其中r1、r2、r3为加权系数。根据物联网漏洞的特点,结合前期工作经验,设定权重分别为r1=4.4、r2=3.6、r3=2,于是Y=4.4S+3.6R+2D。通过公式计算出每种物联网漏洞的Y值Y1、Y2、Y3、…、Yn,在此基础上依据多次实验的结果分析可进一步分析出归一化方法。对Y值进行归一化处理,Y值越小,表明漏洞利用越简单。

对物联网漏洞利用复杂度进行数学计算,是VCECI方法能够明显减少漏洞重复的核心之一,但其具体计算途径将不仅限于此处讨论的方法。随着研究工作的深入,可以使用其他数学方式进行计算。

4.2 评价指标

考虑到漏洞分类方法的实用性问题,结合已有漏洞分类方法的评估方式,实验评价主要考虑3个方面。

(1)VCECI方法确定的漏洞类型所划分出漏洞的重复率;

(2)VCECI漏洞分类方法对已有漏洞库的兼容情况;

(3)VCECI漏洞分类方法对新发现漏洞的兼容情况。

4.3 实验步骤与结果分析

4.3.1 实验步骤

(1)选取2019年9月30日前Microsoft公司、CVE安全组织和Fortify Software公司等发布漏洞库中的物联网漏洞,作为已有漏洞库的实验样本;

(2)采用python语言实现本项目提出的VCECI方法及物联网漏洞利用复杂度数学计算公式;

(3)使用VCECI方法对2019年9月30日前Microsoft公司、CVE安全组织和Fortify Software公司发布的软件漏洞库进行初次划分操作;

(4)对所选取的实验基准漏洞库进行去重复化操作,评估实验结果;

(5)持续跟踪国内外从2019年10月1日开始新公开发布的物联网漏洞,并作为实验输入,视为未知漏洞。

4.3.2 实验结果

研究发现,截至目前,Microsoft、Fortify Software、CVE、CNNVD以及CNVD等国内外知名漏洞库并没有专门标识物联网漏洞,需要根据公开报道的每一个漏洞描述进行判断识别,工作量很大。实验初期阶段,选择508个已经公开的物联网漏洞作为实验样本,对这些漏洞按照VCECI方法进行重新分类,结果如下。

(1)不同分类方法对同一漏洞的分类结果比较

选择CVE-2018-11976、CVE-2019-10540、CVE-2019-10539、CVE-2019-10921以 及 CVE-2015-2051漏洞,分别用VCECI方法分类,对比情况如表2所示。

表2 不同方法对漏洞的分类结果对比

使用VCECI分类法对CVE-2018-11976、CVE-2019-10540和CVE-2019-10539进行划分,明确区分漏洞的产品、漏洞源和漏洞利用复杂度,并且可以对同一类型的同源漏洞进行概括,降低了重复率。

(2)漏洞重复率统计

选择的508个漏洞均为CVE漏洞,因此应用VCECI方法的程序逐一对这508个漏洞进行研究分析。分类处理后输出的漏洞个数为481个,发现其中重复的同源漏洞为27个,重复率约为5.3%。可见,使用VCECI方法能够有效辨析物联网漏洞中同源跨平台现象,从而降低物联网漏洞库的重复率。两种方法实验结果对比情况如图2所示。

为评估实验结果,人工对508个CVE漏洞进行对比分析,发现其中确实存在同源跨平台物联网漏洞交叉重复现象,而VCECI方法可以发现这种问题。

(3)实验结论

经过实验,VCECI方法确定的漏洞类型所划分的漏洞重复率较低,且可以对所选取的已知508个CVE漏洞实现全覆盖。经过跟踪研究,它对2019年10月1日后新出现的漏洞兼容性也较好。

图2 漏洞分类实验重复率比较

(4)存在的不足及下一步的工作

物联网漏洞利用复杂度的计算方法存在人工依赖性高的问题,对于物联网漏洞数量很多的情况,实际可操作性需要提升。后期可以利用人工智能算法训练出较为合理的物联网漏洞复杂度算法,提高效率,同时需要进一步加大样本数量开展更多实验,以验证VCECI方法的鲁棒性。

5 结 语

漏洞分类方法是研究物联网漏洞及安全防护的重要内容。本文分析已有漏洞分类方法在表征物联网漏洞时出现的问题,结合物联网终端设备的软件和硬件开发特点,提出从物联网设备、同源跨平台漏洞、漏洞的影响效果和漏洞利用复杂度3个维度对物联网漏洞进行科学分类的方法——VCECI,深入阐述VCECI方法的分类过程,并选择一定数量的物联网漏洞,实验验证了VCECI方法的可行性。该方法有助于对物联网漏洞进行有效划分,提高分类的准确性。后续的研究工作将结合最新的物联网漏洞库持续开展实验,训练出更合理的物联网漏洞利用复杂度系数,提高VCECI方法的适用性。

猜你喜欢
跨平台复杂度漏洞
漏洞
跨层级网络、跨架构、跨平台的数据共享交换关键技术研究与系统建设
一款游戏怎么挣到全平台的钱?
毫米波MIMO系统中一种低复杂度的混合波束成形算法
Kerr-AdS黑洞的复杂度
基于selenium的SQL注入漏洞检测方法
非线性电动力学黑洞的复杂度
基于C++语言的跨平台软件开发的设计
漏洞在哪儿
某雷达导51 头中心控制软件圈复杂度分析与改进