Sci论文 - 至繁归于至简,Sci论文网。 设为首页|加入收藏
当前位置:首页 > 计算机论文 > 正文

智能 IoT 固件安全研究样本库的设计与实现论文

发布时间:2023-07-10 13:45:34 文章来源:SCI论文网 我要评论














SCI论文(www.lunwensci.com)


  摘 要 :随着物联网设备的爆发式增长,人们对物联网设备的安全性也愈发重视,大量研究人员对物联网设备的安全性进 行研究。为了给物联网固件安全研究提供分析和实验样本,本文广泛搜集、整理了主流物联网厂商的设备固件,设计了固件信 息分析与提取方法对收集的固件进行处理,最后使用 Django 开源 Web 应用框架实现了可视化的固件样本管理系统,为相关 物联网固件安全研究提供有力支撑。

  Design and Implementation of Intelligent IoT Firmware Security Research Sample Library

  ZENG Wendi, WU Lifa

  (School of Computer Science, Nanjing University of Posts and Telecommunications, Nanjing Jiangsu 210023)
 
  【Abstract】:As the number of IoT devices continues to grow explosively, people are placing more and more emphasis on the security of these devices. Consequently, a large number of researchers are conducting studies on IoT device security. In order to provide analytical and experimental samples for research on IoT firmware security, this article has extensively collected and organized firmware from major IoT manufacturers. The collected firmware has been processed using a firmware information analysis and extraction method, and a visual firmware sample management system has been implemented using the Django open source web application framework. This system provides strong support for research on IoT firmware security.

  【Key words】:internet of things devices;management system;web crawler;firmware security

  0 引言

  随着设备硬件与通信技术的发展,物联网设备数量 呈爆发式增长,据中国互联网协会统计, 2020 年我国 物联网产业规模已突破 1.7 万亿元,预计到 2025 年, 我国移动物联网连接数将达到 80.1 亿。在物联网设备 为人们提供生活上便利的同时,也伴随着如隐私泄露、 远程控制、系统损坏等安全隐患。大量物联网安全事件 是由于物联网设备存在安全漏洞导致,根据国家互联网 应急中心发布的 2020 年联网智能设备安全态势报告, 全年收录通用型联网智能设备漏洞 3047 个,同比上涨 28%,全年共捕获 341.10 万个联网智能设备恶意样本, 同比上升 5.25%。

  设备的安全漏洞主要存在于设备的固件之中。固件 通常是指嵌入在硬件设备中的软件 , 是运行在物联网设 备上的核心软件之一,担任着一个系统最基础最底层工 作 [1]。对固件安全进行研究,对于提高物联网设备、系 统的安全性具有重要意义。

\


  当前针对固件的安全分析主要分为静态分析与动态 分析两类,其中静态分析主要指的是在不实际运行固件 的情况下对固件进行分析,通过与典型固件缺陷模式的 匹配,达到检测潜在安全缺陷的目的 [2]。在固件静态分 析方面,研究人员通过检查配置项 [3]、二进制比对 [4]、逆 向分析 [5]、检查第三方组件 [6] 以及检测固件组件交互 [7] 等方法评估固件安全性。动态分析则需要通过全仿真 [8.9]、半实物仿真 [10]、部分仿真 [11]、重托管 [12] 以及基于真实设 备进行调试 [13] 等方法实际运行固件,通过输入各种类型 的数据观察输出结果与数据流向来测试固件的安全性。

  上述安全研究需要大量各类物联网设备固件作为研 究分析的对象、实验验证样本,尽管部分学术论文公布 了其研究用的固件样本集,但一般缺少固件相关信息导 致难以使用。针对上述问题,本文通过网络爬虫搜集了 一组全面的固件与芯片文档数据集,根据固件与芯片文 档的结构特点,在现有工具的基础上提出一套固件安全 研究常用信息提取方法,最后使用 Django 框架实现了 一个综合性的固件安全研究数据集分析与管理系统,为 固件安全分析提供有力支撑。

  1 固件安全研究常用信息提取

  1.1 固件安全研究常用信息说明

  在固件安全分析中最常用的信息主要包括固件使用 的指令集、操作系统以及装载基址。指令集决定了固件 中的二进制代码如何翻译,物联网固件使用的指令集主 要包括 MIPS、ARM、PowerPC 等, 同时一些研究 [14] 专 注于特定指令集的固件。物联网固件使用的操作系统类型 主要分为两类,一类是 Linux、Windows 等通用操作系统, 另一类是实时操作系统(RTOS,Real Time Operating System) [15]。装载基址指的是芯片中可执行文件装入 内存的基地址,通过设置正确的装载基址可以使得反汇 编工具建立准确的交叉引用,有利于研究人员在反汇编 清单中快速浏览得到有效信息 [16]。

  1.2 数据集搜集

  本文基于 Kim[9] 等人的研究,使用 Scrapy 框架开 发了网络爬虫用于搜集固件资源。

  在固件来源方面,针对目前主流的 14 个物联网设 备供应商官网编写了不同的爬虫程序用于搜集固件。爬 取固件的同时,也搜集了固件的基础信息,包括厂商名、 设备名、版本号、发布日期、下载链接、设备类型等, 最终在排除搜集到的非固件的文件后,收集了来自 14 个不同供应商共 8062 个固件,具体情况如表 1 所示。
\

  爬取过程中,本文搜集了每种产品的所有历史版本 固件,因为虽然相同产品固件的指令集与操作系统通常 不会变化,但是供应商可能在固件版本升级的过程中对 固件进行加密,如果最新固件无法解密,可以尝试对其 旧版本固件进行分析。

  在芯片手册方面,本文搜集了 4 家芯片厂商官网的 芯片手册,分别为 Texas Instrument、NXP、dialog 以 及 Nordic。由于芯片厂商往往不只生产物联网设备使用 的低耗芯片,所以在收集过程中需要注意芯片类型是否符合要求,最后收集情况如表 2 所示,其中系列手册只 收集 TI 厂家的原因是该厂家有时会将芯片资料存在其 所属用户手册中。
\

  为了建立设备固件与芯片手册之间的联系,本文爬 取了 Openwrt 设备库与 Techinfodepot 网站上所有的 设备信息,包括设备使用的芯片型号、芯片所属厂家与 设备类型等信息,去重后一共搜集到 4093 种不同型号 的设备信息。

  1.3 固件安全研究常用信息的提取

  固件的指令集与操作系统可以通过解析固件本体获 得。固件一般为整合了所有软件的二进制文件,内部通 常是多个文件或者数据的集合,所以在解析前需要通过 binwalk 等工具对其进行分割解包。binwalk 可以依据 魔术字识别固件中的文件信息,并根据文件信息从固件 中分割出文件,再按照不同的文件类型处理分割后的文 件, 这一过程一般称为解包。binwalk 的缺陷在于不支 持 UBI 类型的新型文件系统,本文使用脚本将 UBI 文 件系统的解包软件 ubi_reader 与 binwalk 绑定, 根据 binwalk 的文件信息扫描结果使用对应解包软件,提高 了固件解包成功率。本文设计的固件解析方法流程如图 1 所示 :
\


  第一步 :使用 binwalk 扫描固件中的文件信息, 查找是否包含 uboot 头文件, uboot 是一种广泛用于 Linux 系统的引导程序, 其文件头信息中包含了引导的 程序内容与指令集信息,如果包含 uboot 头且显示引 导程序为 Linux 内核,则直接得到固件的操作系统与 指令集信息,反之则继续解析。

  第二步 :解包固件, 利用关键字判断固件中是否包 含文件系统,如果包含则根据文件系统类型选择解包软 件继续解压文件系统,在解压后的文件系统中尝试寻找 elf 格式的可执行文件。elf 文件是一种 Linux 系统中特 有的可执行文件类型,其文件头信息中包含固件使用指 令集类型。若固件不包含文件系统或文件系统中无 elf 格式文件则继续第三步。

  第三步 :此时可以判断固件不为 Linux 系统,使 用 binwalk 识别所有固件解包文件的指令集,统计占 比最大的指令集类型为该固件的指令集。最后对已搜集固件的解析结果如表 3 所示。
\


  固件的装载基址可以在其对应的芯片手册中提取, 芯片手册中的内存映射图说明了设备外设对应的内存地 址范围,而固件通常存放在设备的 flash 芯片中,所以 内存映射图中 flash 芯片的起始地址就是固件的装载基 址。同时分析人员在分析反汇编代码时如果遇到未知的 地址,也可以通过查找内存映射图中该地址所对应外围 设备的功能,理解该段代码的作用。

  因为芯片手册基本为 PDF 格式,而 PDF 文档的结 构类似于 B+ 树,叶节点为文档页面。提取内存映射图 的难点在于获取章节名对应的页码,因为 PDF 文档只提供章节名对应的索引 id,而并未直接提供索引对应的 页码。本文使用 Python3 中的 PyPDF2 库实现了提取 内存映射表的方法,先使用 PdfFileReader 类加载目 标手册得到文档的所有章节名与其对应的索引 id,再基 于树的先序遍历方法遍历整个文档结构,得到该 PDF 文档的索引 id 与页码对应表,从而得到章节的对应页 码,最后使用关键字定位内存映射图所在章节,将该章 节与下一章节之间的所有内容进行复制就得到了内存映 射图。最后从收集的 206 份芯片文档中成功提取了 136 张内存映射图。

  2 固件样本管理系统设计实现

  为管理收集到的大量固件样本,方便安全研究人员 检索所需的研究样本,本文设计并实现了固件样本管理 系统。系统采用 PyCharm 开发平台, 使用 Django 框架 默认的 admin 管理后台结合 PostgreSQL 数据库完成。

  2.1 系统功能设计

  本系统的体系结构如图 2 所示,主要包括系统管理、 固件信息管理、芯片文档管理、设备信息管理等 4 个模块。

\

  其中用户管理模块负责存储与管理注册用户的账号 信息,包括用户名、密码、注册时间等 ;权限管理模块 则是负责管理各用户的权限。

  固件信息管理模块包含三个子功能模块 :下载功能 需要向用户提供将固件与其相关芯片文档下载到本地的 功能 ;增删改查模块需要向用户提供固件信息的基本管 理功能,包括使用户能上传本地固件与信息至数据库 中、删除选定固件、修改固件信息以及按照需求指定检

  索条件搜索固件等功能 ;固件信息解析模块需要提供固 件解析功能,并在解析后将信息更新入库。

  芯片文档管理模块包含三个子功能模块 :下载功能 模块能使用户将选中芯片型号文档下载到本地 ;文档信 息增删改查模块需要向用户提供上传芯片文档信息、删 除选定芯片文档信息、修改芯片文档信息以及按照芯片 品牌或者型号搜索芯片文档等功能 ;提取内存映射图模 块能解析用户选中芯片文档的内存映射图,在提取完成 后将内存映射图路径保存入库。

  设备信息管理模块由于不涉及实际文件,只需提供 设备信息的增删改查功能即可。

  2.2 库表设计

  通过对系统需求的分析,设计了 3 个数据表,如图 3 所示。
\

  各数据表详情如下 :

  (1) 固件表 firmware。固件表用于存储固件的相 关信息,字段包括 id、厂家品牌、产品名、固件版本、 发布日期、下载链接、产品类型、存储路径、指令集、 操作系统、文件系统。

  (2) 设备信息表 device。设备信息表用于存储搜集 到的设备相关信息,字段包括 id、厂家品牌、产品名、 使用芯片的厂商、使用芯片型号、描述、设备类型。

  (3)芯片文档表 chip_doc_table。芯片文档表用 于存储收集到的芯片文档信息,字段包括 id、芯片厂 商、芯片型号、用户手册存放路径、数据表存放路径、 内存映射图存放路径。

  3 系统效果

  固件库管理界面如图 4 所示, 用户可以通过该视图 右侧的过滤器按照厂家、设备类型、指令集、操作系统 四个条件筛选固件,如在图 4 中就通过过滤器筛选出了 所有属于 dlink 厂家的固件,同时也能通过搜索框对固件名进行检索。检索到需求固件后,可以通过功能框下 载选中的固件,与固件有关联的芯片文档与内存映射图 也会一起下载到本地。同时,用户在上传固件后,可以 通过功能框的分析选中固件选项对勾选固件分析其所用 指令集与操作系统。

\
 


  4 结语

  本文总结了物联网固件安全研究中常用的固件相关信 息,收集并解析主流物联网厂商公开固件与芯片文档,通 过设备信息结合两者形成样本数据集,最后基于 Django 的 admin 后台管理系统与 PostgreSQL 数据库, 设计 并实现了固件安全研究样本库管理系统。系统让固件分 析人员能更快捷的上传、分析与下载固件与相关资料, 提高了固件安全分析的效率。

\

  参考文献

  [1] 李涛,田迎军,葛阳晨,等.物联网固件漏洞安全检测综述[J]. 信息安全研究,2022.8(12):1146-1155
  [2] Chess B,McGraw G.Static Analysis for Security[J].IEEE Security & Privacy,2004.2(6):76-79. 
        [3] WEN H,LIN Z,ZHANG Y.FirmXRay:Detecting Bluetooth Link Layer Vulnerabilities From Bare-Metal Firmware[C].Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security. 2020.
  [4] Costin A,Zaddach J,Francillon A,et al.A Large-Scale Analysis of the Security of Embedded Firmwares[C]// Proceedings of the 23rd USENIX Security Symposium. 2014: 95– 110.
  [5] 胡刚.固件代码逆向分析关键技术研究[D].解放军信息工程 大学,2011.
  [6] ZHAO B,JI S,XUJ,et al.A Large-scale EmpiricalAnalysis of the Vulnerabilities Introduced by Third-party Components in IoT Firmware[C].Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis. 2022.
  [7] Redini N,MacHiry A,Wang R,et al.Karonte:Detecting Insecure Multi-Binary Interactions in Embedded Firmware[C]. 2020 IEEE Symposium on Security and Privacy(SP).2020:1544– 1561.
  [8] CHEN D D, EGELE M,WOO M,et al.Towards Automated Dynamic Analysis for Linux-based Embedded Firmware[C]. Proceedings 2016 Network and Distributed System Security Symposium.2016.
  [9] KIM M,KIM D,KIM E,et al.FirmAE:Towards Large- Scale Emulation of IoT Firmware for Dynamic Analysis [C]. Annual Computer Security Applications Conference.2020. [10] Corteggiani N,Francillon A.HardSnap:Leveraging Hardware Snapshotting for Embedded Systems Security Testing[C].2020 50th Annual IEEE/IFIP International Conference on Dependable Systems and Networks(DSN). 2020.
  [11] Cao C,Guan L,Ming J,et al.Device-Agnostic Firmware Execution Is Possible:A Concolic Execution Approach for Peripheral Emulation[C].Annual Computer Security Applications Conference(ACSAC’20).2020.
  [12] Gui Z,Shu H,Kang F,et al.FIRMCORN:Vulnerability- Oriented Fuzzing of IoT Firmware via Optimized Virtual Execution[J].IEEE Access,2020.8:29826–29841.
  [13] 赵亚新,郭玉东,舒辉.基于JTAG的嵌入式设备固件分析技 术[J].计算机工程与设计,2014.35(10):3410-3415.
  [14] 勉斌,贾张涛,冯大成,等.一种通用的MIPS64处理器指令集 虚拟化仿真方法:中国,CN115421863A[P].2022-12-02
  [15] 姚尧. 轻量级物联网设备固件认证绕过漏洞检测[D].西安: 西安电子科技大学,2019.
  [16] 朱瑞瑾.ARM设备固件装载基址定位的研究[D].北京:北京 理工大学,2016.
 
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!


文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/59079.html

发表评论

Sci论文网 - Sci论文发表 - Sci论文修改润色 - Sci论文期刊 - Sci论文代发
Copyright © Sci论文网 版权所有 | SCI论文网手机版 | 鄂ICP备2022005580号-2 | 网站地图xml | 百度地图xml