没有合适的资源?快使用搜索试试~ 我知道了~
0HAL编号:tel-034133710https://theses.hal.science/tel-034133710提交日期:2021年11月3日0HAL是一个多学科的开放获取档案库,用于存储和传播科学研究文献,无论其是否已发表。这些文献可以来自法国或国外的教育和研究机构,或来自公共或私营研究中心。0HAL(开放式多学科档案库)是一个用于存储和传播研究级科学文献的开放获取档案库,这些文献可以是已发表或未发表的,来自法国或国外的教育和研究机构,公共或私营研究实验室。0嵌入式系统的系统级安全分析0Nassim Corteggiani0引用此版本:0Nassim Corteggiani。嵌入式系统的系统级安全分析。嵌入式系统。巴黎索邦大学,2020年。英文。�NNT:2020SORUS285�。�tel-03413371�0巴黎索邦大学博士学位论文,EURECOM准备0巴黎EDITE博士学院,专业:计算机、通信和电子技术0论文题目:Towards System-WideSecurity Analysis of EmbeddedSystems0NassimCorteggiani于2020年7月31日在Biot提交并进行了答辩。0主席:Marc Dacier教授,EURECOM0评审人:Jean-Louis Lanet教授,INRIA0Konrad Rieck教授,TU Braunschweig0考官:Renaud Pacalet博士,Télécom Paristech0Marie-Lise Flottes博士,Montpellier大学/CNRS0Stéphane Di Vito,Maxim Integrated0Nicusor Penisoara,NXP Semiconductors0导师:Aurélien Francillon教授,EURECOM0前言0尽管这篇博士论文的封面上只写了我的名字,但我周围的许多人都应该得到完成这篇论文的荣誉。因此,我要对帮助我准备这篇论文的人表示感谢。0首先,特别感谢我的导师AurelienFrancillon,他一直乐于助人,提供良好的建议,并始终参与讨论和最后一刻的审查。0我要感谢我的合作者和共同作者。特别感谢GiovanniCamurati。设计和开发本论文背后的概念是一项艰巨的任务,得益于他宝贵的合作而取得成功。0然后,我要感谢EURECOM和MaximIntegrated的同事们,感谢他们的反馈、讨论和合作。0我要感谢委员会成员在校对本论文期间所付出的时间、支持和指导。特别感谢Jean-Louis Lanet教授、Marc Dacier教授和RenaudPacalet博士对本论文早期草稿提供的广泛反馈。0最后但并非最不重要的,我要感谢我的家人在我写这篇论文和我生活中的支持。0本研究得到了MaximIntegrated和EURECOM的部分支持。本文所表达的任何意见、发现、建议或结论均为本人个人观点,不反映任何机构或公司的立场或观点。0摘要0嵌入式系统的部署越来越多,例如物联网设备或关键控制系统。它们的安全性变得越来越重要,因为它们要么控制着敏感系统,要么可以被利用来实施大规模攻击。嵌入式系统的一个重要特点是微固件与与外部世界进行接口的硬件设备之间的频繁交互。这些交互通常是设计缺陷的源头,也被称为错误。一种常见的测试这些系统的方法是动态分析。然而,现有的方法通常集中于不可用源代码的软件或单独测试组件,如二进制代码、C语言编写的源代码或硬件设备。为了彻底测试这些系统,需要实现系统级别的分析。该领域的主要挑战包括性能限制、语义差异以及对硬件设备的控制/可见性水平。在本论文中,我们从设计者的角度解决了这三个挑战。首先,论文对芯片级系统分析进行了广泛讨论,指出了挑战并强调了研究方向。为了解决与设备交互时性能限制的问题(即在循环中使用硬件进行测试),我们提出了Steroids,一种高性能的USB3探针。然后,我们设计并开发了Inception,一种用于系统级别测试微固件源代码的综合方法。Inception支持不同级别的语义(例如汇编语言和C语言),这些语义在编写微固件时经常结合使用。第三,我们提出了HardSnap,一种生成整个测试系统的快照的解决方案,包括硬件和软件的状态。0摘要0连接的嵌入式系统越来越广泛地部署,例如在物联网设备或关键控制系统中。它们的安全性正变得越来越令人担忧,要么是因为它们控制着一些敏感系统,要么是因为它们可以被大规模利用来发动攻击。嵌入式系统的一个特点是固件与硬件外围设备之间的高度交互,这些外围设备通常将它们与真实世界连接起来。这些交互往往是关键错误的源头。测试这种系统的一种常见方法是动态分析。然而,目前的方法通常专注于闭源固件,并依赖于分别测试组件,如二进制代码、基于C的代码或硬件外围设备。实现系统级测试对于彻底测试这些系统是必要的。这个主题的主要挑战包括性能限制、语义差异以及对硬件外围设备的有限控制/可见性。在这篇论文中,我们从设计者的角度解决了嵌入式系统的系统级动态分析的这三个主要挑战。首先,本论文提供了关于实现片上系统(SoC)的系统范围分析的一般讨论,我们指出了挑战并突出了研究方向。为了克服与外围设备交互时的性能限制(即硬件在环测试),我们提出了一种基于USB3的高性能低延迟系统探针Steroids。其次,我们设计和开发了一种完整的解决方案Inception,用于测试系统级固件程序源代码。Inception支持不同的语义级别(例如汇编和C语言),在编写固件程序时通常会组合使用这些语义级别。第三,我们提出了一种解决方案,用于对整个测试系统进行快照,包括硬件和软件状态。我们在 HardSnap中实现了这个解决方案,它能够在测试多个执行路径时同时恢复系统到一个精确的点,同时保持分析的一致性。3.3Security evaluation methodology. . . . . . . . . . . . . . . .213.3.1Requirements on tooling . . . . . . . . . . . . . . . . .213.3.2Available tools. . . . . . . . . . . . . . . . . . . . . . 220目录01 引言..........................................................101.1 背景..........................................................301.2 问题陈述......................................................401.3 论文大纲......................................................402 背景..........................................................502.1 威胁和风险....................................................602.2 嵌入式系统....................................................702.2.1 固件........................................................702.2.2 外围设备....................................................802.2.3 硬件/软件交互..............................................902.3 静态和动态分析................................................1002.4 二进制和源代码分析............................................1102.5 动态符号执行..................................................1102.6 部分仿真测试..................................................1202.7 挑战..........................................................1502.8 贡献..........................................................1502.9 发表物........................................................1603 SoC安全评估:对方法论和工具的反思..............................1703.1 引言..........................................................1803.2 背景..........................................................1903.2.1 嵌入式系统芯片(SoCs)及其固件的安全评估.......................1903.2.2 分析环境....................................................20iiii3.3.3Methodology . . . . . . . . . . . . . . . . . . . . . . . 233.3.4Results from Hack@DAC19 . . . . . . . . . . . . . . . 243.4Research directions . . . . . . . . . . . . . . . . . . . . . . . . 253.4.1On abstraction . . . . . . . . . . . . . . . . . . . . . . 263.4.2Generating tests. . . . . . . . . . . . . . . . . . . . . 263.4.3Executing tests efficiently and effectively . . . . . . . .273.5Conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . 284Steroids: A fast, low-latency USB3 Debugger294.1Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.2Previous Work. . . . . . . . . . . . . . . . . . . . . . . . . .314.4Design Overview . . . . . . . . . . . . . . . . . . . . . . . . . 344.6Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .374.6.2Improvment in Avatar . . . . . . . . . . . . . . . . . . 385Inception:System-Wide Security Testing of Real-World5.2Overview of Inception. . . . . . . . . . . . . . . . . . . . . . 465.2.2Lift-and-merge process . . . . . . . . . . . . . . . . . .475.3Implementation and validation. . . . . . . . . . . . . . . . .515.3.2Unified Memory Layout . . . . . . . . . . . . . . . . . 525.3.4Noteworthy control-flow cases . . . . . . . . . . . . . .545.3.6Validation . . . . . . . . . . . . . . . . . . . . . . . . . 595.4.1Vulnerability detection . . . . . . . . . . . . . . . . . . 605.4.3Analysis on real-world code . . . . . . . . . . . . . . . 645.5Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6804.3 设计目标 . . . . . . . . . . . . . . . . . . . . . . . . . . 3304.5 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3604.6.1 平均每秒I/O . . . . . . . . . . . . . . . . . 3704.7 结论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3905.1 引言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4205.2.1 方法和组件 . . . . . . . . . . . . . . . 4605.2.3 Inception符号虚拟机 . . . . . . . . . . . 4905.3.1 提升和合并过程 . . . . . . . . . . . . . . . . . . 5105.3.3 应用程序二进制接口适配器 . . . . . . . . . . 5305.3.5 使用Steroids的转发机制 . . . . . . . . . . . . . . . . . 5705.4 评估和比较 . . . . . . . . . . . . . . . . . . . . 5905.4.2 时间开销 . . . . . . . . . . . . . . . . . . . . . 6305.4.4 产品开发过程中的使用 . . . . . . . . . . . 6705.6 结论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Contents6.26.3Design Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 826.4Design Overview . . . . . . . . . . . . . . . . . . . . . . . . . 83Ap06 HardSnap: 利用硬件快照进行嵌入式系统安全测试 7306.1.1 相关工作 . . . . . . . . . . . . . . . . . . . . . . . 7706.4.2 选择性符号虚拟机. . . . . . . . . . . . 8606.5 架构和实现. . . . . . . . . . . . . . . . . . . . . . . . . 88 6.5.1 硬件快照仪器. . . . . . . .. . . . . . . . . 8806.6 评估. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9106.6.2 实验二:固件分析工具的增益. . . 9606.7 限制. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10007 结论和未来的工作 10307.2 未来的工作. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1050.1 IR级别适配示例. . . . . . . . . . . . . . . . 111List of Figures5.1Presence of assembly instructions in real-world embeddedsoftware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .455.3Inception Symbolic Virtual Machine, overview of the testingenvironment.. . . . . . . . . . . . . . . . . . . . . . . . . . . 505.5Evolution of corruption detection vs.number of assemblyfunctions in the Expat XML parser (4 vulnerabilities [70],symbolic inputs, and a timeout of 9.0101 s). . . . . . . . . . 636.1Description of different Hardware/Software co-testing execu-tion. From left to right: naive and consistent but slow ap-proach; naive and fast but inconsistent approach, HardSnapapproach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8203.1基于动态分析的安全评估方法概述。手动工作和来自不同领域的人类专业知识以斜体标记。. . . . . . . . . . . . . . . 2404.2 Surrogates和Inception(4 MHz JTAG)完成1×106个读取或写入请求的平均时间。(libusb-0.1-4,Ubuntu16.04 LTS,IntelCorporation 8 Series/C220 USB Controller). . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 3805.2 InceptionTranslator概述:将高级和低级语义代码合并生成混合语义位码。包括混合源代码和汇编代码的程序的翻译摘录. . . . . . . . . . . . . . . . . . . . . . . 4805.4 由于IRQ而发生的上下文切换。. . . . . . . . . . . . . . . . . 5705.6 本机执行和Inception之间的性能比较。(libusb-0.1-4,Ubuntu16.04LTS,Intel Corporation 8 Series/C220 USB Controller). . . . . . . . . . . . . . . .. 64thetic firmware with different state selection heuristics by the06.2 HardSnap概述 . . . . . . . . . . . . . . . . . . . . . . 840106个FPGA和模拟器的快照保存或还原的平均持续时间,以微秒为单位。请注意,y轴是以对数刻度绘制的。 . . . . . . . . . . . . . . . . . . . 9406.6 迭代次数’N’(探索状态数=2 N)的持续时间。. . . . . . . . . . . . . . . . . . .. . 9906.7 用C语言编写的用例,用于验证PIC外设的正确性。. . . . . . . . . . . . . . . . . . . .. . . . . . . . . 10001 Inception系统的硬件组件,使用ARM Cortex-M3的STM32演示板。. . . . . .. . . . . . . . 10902 混合源代码和汇编的示例程序。1 原始的C源代码与内联汇编代码。2CLang生成的LLVM位码。3混合IR:由合并的位码和CLang生成的位码生成的LLVM位码。我们使用naked关键字来限制示例的大小。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100术语表0SoC 系统级芯片0PoC 概念验证0IP 知识产权0I/O 输入/输出0SPI 串行外设接口0UART 通用异步收发器0I2C 集成电路之间的串行总线0IC 集成电路0USB 通用串行总线0DMA 直接内存访问0MMIO 内存映射输入/输出0PMIO 端口映射输入/输出0DSE 动态符号执行0BSP 板级支持包0EGT 执行生成测试0ISA 指令集架构0API 应用程序编程接口0RTL 寄存器传输级0ROM 只读存储器0FPGA 现场可编程门阵列0AES 高级加密标准0SHA 安全哈希算法0CPU 中央处理器0IoT 物联网0ICE 芯片内调试器0OCD 片上调试器0JTAG 联合测试行动组0PCI-E 外围组件互连快速通道0DCC 调试通信通道0IDE 集成开发环境0AHB-AP AMBA高性能总线访问端口0IR 中间表示0ELF 可执行和可链接格式0ABI 应用二进制接口0BSS 由符号开始的块0ICMP 互联网控制消息协议0HTTP 超文本传输协议0OTP 一次性可编程0SRAM 静态随机存取存储器0SDK 软件开发工具包0VM 虚拟机0HW 硬件0SW 软件0HDL 硬件描述语言0图表列表0SSE 选择性符号执行0AXI 高级可扩展接口0PIC 可编程中断控制器
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功