2.2 物联网漏洞挖掘方法及问题
针对静态分析算法,根据其使用的架构平台不同可将其分为单架构物联网漏洞挖掘和跨架构物联网漏洞挖掘。单架构下,将数据集按照X86、ARM、MIPS等架构分离开分别进行检测,能够针对已知架构的固件进行漏洞检测;跨架构下,无论固件的架构都可以进行检测,但是无论是单架构还是跨架构,目前的算法都存在一定的问题,这也是本项目的研究的关键。
2.2.1 单架构物联网漏洞挖掘
单架构方法往往只支持一种或两种指令集架构下的漏洞挖掘。经过初步调研,常见的单架构挖掘方法有符号执行和污点分析。符号执行,用符号值替代具体值执行程序的技术,能够有效辅助静态分析技术。污点分析技术,一种分析程序中由污点源引入的数据,在经过数据流处理后,传播到污点汇聚点后,是否符合预设的策略。
本项目选择了如表格2-1所示,几个经典的单架构下物联网设备漏洞静态挖掘方法,表格中展示了他们分别适用的架构情况。
表2-1 单架构下物联网设备漏洞静态分析方法
适用架构 方法 | ARM | MIPS | X86 | 其他 |
FIE2013 | √ | |||
Constin2014 | √ | √ | ||
Firmalice2015 | √ | |||
SainT2018 | √ | √ | √ | |
Dtaint2018 | √ | √ |
针对不同架构,可以采用不同的方法进行检测,但是前提是检测时需要数据集中所有架构都来自该单架构,才能采用确定的算法进行检测,能够以高精度和高效率完成漏洞的检测。
但是若这种方法的前提不成立,即如果数据集来自特定大量不同架构,那么此时采用单架构检测就存在一定的问题。如果采用分类历遍所有算法,那么就会耗费大量的计算量,无法高效检测,并且存在一定可能无法准确检测出固件存在的漏洞。本项目对单架构方案进行了测试,通过测试算法效率精度,选择1种或几种方案,得到适应该数据集的特定跨架构高效物联网漏洞检测检测方法,在保证精度的同时大大提升检测效率。