《表2 漏洞检测方法及其优缺点》

《表2 漏洞检测方法及其优缺点》   提示:宽带有限、当前游客访问压缩模式
本系列图表出处文件名:随高清版一同展现
《车联网安全综述》


  1. 获取 高清版本忘记账户?点击这里登录
  1. 下载图表忘记账户?点击这里登录

1漏洞检测:智能汽车中,ECU本质上是一种嵌入式设备,因此针对嵌入式设备的漏洞检测方法仍然可以用于ECU的漏洞检测。现有的嵌入式设备的漏洞检测方法有静态分析[87-89]、符号执行[90-93]、模糊测试[94-96]、机器学习[97-100]等,如表2所示。静态分析是一种静态漏洞检测技术,不需要运行软件程序,通过语法分析、数据流分析等对程序源代码进行扫描并与其规则库进行比对,就可分析程序中可能存在的漏洞并定位漏洞在源代码中的位置。常用的静态分析工具有FaultMiner[87]、ITS4[88],二者都是针对源代码的分析工具,主要检测不符合安全规范的函数调用。FaultMiner结合了数据挖掘和静态分析,而ITS4仅支持对C/C++语言的语法分析。静态分析依赖其规则库的质量。Costin[99]等提出的框架进行大规模的固件收集、过滤、解包和静态分析,并实现了集中有效的静态分析技术,通过从互联网上收集的32356个固件镜像,发现693个固件镜像有至少一个漏洞,并报告38个新的漏洞,展示了对固件安全更广泛的看法。符号执行是一种通过计算符号状态来实现程序分析的方法,它能够确定是什么输入导致程序每个部分的执行,在理论上可以发现程序中的所有漏洞。现有的符号执行引擎具有自动分析程序中所有可能路径的能力,遍历程序的执行空间,支持对二进制文件的分析,并找出漏洞,如FIE[90]、KLEE[91]、Firmalice[92]、Angr[93]。但是在实际应用过程中,具有路径爆炸、约束求解困难等问题。路径爆炸是指程序中可能路径的数目随着程序规模的增长而呈指数级增长,甚至由于失控的循环而趋于无穷。约束求解是指根据最终得到的结果求解输入向量,如果把结果条件改为漏洞条件,就能够进行漏洞挖掘。FIE是基于KLEE的一个符号执行引擎,为自动分析MSP430微控制器(现有研究中常用来模拟ECU进行实验)的固件漏洞而设计的,利用状体修剪和内存涂抹来提高代码覆盖率,并支持分析固件程序中所有可能路径的能力,同时支持分析内存安全违规和外围滥用错误两种安全问题。模糊测试是基于缺陷注入的自动化漏洞挖掘技术,基本思想与黑盒测试类似,不关心程序的内部实现细节。通过向被测程序输入半随机数据并执行程序,分析程序发生的异常来发现漏洞。半随机数据是指对被测程序来说,输入数据的格式和大部分数据是合法的,但是其他部分却属于非法数据。由于被测程序没有考虑对非法输入的处理而触发安全漏洞。模糊测试的用例可以复用于多个同输入类型的被测对象。有研究从网络协议、固件程序和模拟器执行等不同方面进行模糊测试。如黄涛[94]通过分析车内网络的总线技术和协议,研究模糊测试技术的优缺点,对车内网络进行威胁建模,提出了基于模糊测试的车控网络漏洞挖掘方案,成功发现ECU中的漏洞。戴忠华[95]等从漏洞利用的角度分析了固件的攻击面,然后根据攻击面导出相应的安全规则,提出了一种针对嵌入式设备的基于污点分析的改进模糊测试方法,实现漏洞挖掘。Avatar[96]等是一个基于时间的仲裁框架,通过在嵌入式设备之间注入一个特殊的软件代理,在模拟器中执行固件的指令,实现模糊测试等动态分析。机器学习为漏洞检测提供了新的方法,通过在大量的数据中提取漏洞特征,并对已标记的数据集建立分类模型,实现对漏洞的检测,适用于大数据时代。基于机器学习的方案一般需要建立漏洞的特征数据集,在特征数据集上采用不同的机器学习算法,如基于知识匹配[97]、对抗深度学习[98]、神经网络[99-100]。但是,基于机器学习的模型依赖于漏洞特征数据集,会导致一定的误报率和漏报率,同时,其难以检测数据集中未出现的漏洞类型。此外,有研究从嵌入式设备的底层硬件入手,实现漏洞挖掘,是主流方法的有效补充。如杨世德[101]等通过分析嵌入式系统的底层运行机制,提出了一种基于嵌入式系统底层硬件漏洞挖掘模型和方法。张鹏辉[102]等通过对固件的软硬件交互机制进行形式建模分析,提出了基于行为时序逻辑TLA的软硬件协同形式验证方法,发现了固件更新过程中的安全漏洞。李登[103]等通过对设备固件进行分类,采用二进制差量分析、字符串差量匹配、模糊哈希三种方法分析第三方库同源性,从而检测同类固件中存在的漏洞。