《软件学报杂志》发表论文赏析
作者:张卫东,尹丽波,李红,文辉,孙利民
单位:张卫东,中国科学院大学 网络空间安全学院, 北京 100049;物联网信息安全技术北京市重点实验室(中国科学院 信息工程研究所), 北京 10009311,尹丽波,国家工业信息安全发展研究中心, 北京 10004002,李红,中国科学院大学 网络空间安全学院, 北京 100049;物联网信息安全技术北京市重点实验室(中国科学院 信息工程研究所), 北京 10009303,文辉,中国科学院大学 网络空间安全学院, 北京 100049;物联网信息安全技术北京市重点实验室(中国科学院 信息工程研究所), 北京 10009304,孙利民,中国科学院大学 网络空间安全学院, 北京 100049;物联网信息安全技术北京市重点实验室(中国科学院 信息工程研究所), 北京 10009305
摘要:由于软件代码复用和第三方SDK的广泛使用,开源组件普遍存在于物联网设备固件中.威胁固件的安全漏洞往往存在于组件的某些特定版本中,识别物联网设备固件中开源二进制组件的版本信息,对于物联网的安全评估与应急响应意义重大.现有的基于版本字符串的版本信息提取方法不适用于组件版本字符串缺失的情况.设计和实现了一种不依赖于版本字符串的开源组件版本识别方法Protues.该方法的核心思想是通过开源组件相邻版本源码间的差异构造一条版本差异链,从而将版本识别问题转化为待查组件在版本差异链上的滑动查询问题.进一步地,为了提高识别准确率,采用条件判断表达式来表征版本差异链上的节点.为了验证该方法的实用性,对来自于4种开源组件Samba,Msmtp,Nginx和Libgcrypt的共428个二进制文件进行了版本识别实验,实验结果表明,该方法能够准确识别的版本数达到418个,识别准确率约为98%.
关键词:物联网;固件;开源组件;版本识别;条件表达式
基金资助:国家重点研发计划(2018YFB0803402);国家自然科学基金(U1536107);中国科学院信息工程研究所基础前沿项目(Y7Z0311104)