没有合适的资源?快使用搜索试试~ 我知道了~
2015-ENST-0070EDITE - ED 130Doctorat ParisTechT H È S Epour obtenir le grade de docteur délivré parTELECOM ParisTechSpécialité « Informatique »présentée et soutenue publiquement parClémentine MAURICEle 28 octobre 2015Fuites d’information dans les processeurs récentset applications à la virtualisationDirecteurs de thèse :Aurélien FRANCILLONChristoph NEUMANNCo-encadrement de la thèse :Olivier HEENJuryM. Thomas JENSEN, Directeur de recherche, Inria Rennes, FrancePrésident de juryM. Gildas AVOINE, Professeur, IRISA et INSA Rennes, FranceRapporteurM. Jean-Pierre SEIFERT, Professeur, TU Berlin, AllemagneRapporteurM. Stefan MANGARD, Professeur, TU Graz, AutricheExaminateurM. Pierre PARADINAS, Professeur, CNAM, Paris, FranceExaminateurTELECOM ParisTechécole de l’Institut Télécom - membre de ParisTechInformation Leakage on Shared HardwareEvolutions in Recent Hardware and Applications to VirtualizationClémentine MauriceA doctoral dissertation submitted to:Télécom ParisTechAdvisors:Aurélien Francillon, Eurecom, Sophia Antipolis, FranceChristoph Neumann, Technicolor, Rennes, FranceOlivier Heen, Technicolor, Rennes, FranceJury:Thomas Jensen, Inria Rennes, FrancePresidentGildas Avoine, IRISA and INSA Rennes, FranceReviewerJean-Pierre Seifert, TU Berlin, GermanyReviewerStefan Mangard, TU Graz, AustriaExaminerPierre Paradinas, CNAM, Paris, FranceExaminerOctober 2015ContentsContentsiRésuméviiAbstractixAcknowledgmentsxiForewordxiii1Introduction11.1Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.2Problem statement. . . . . . . . . . . . . . . . . . . . . . . . .21.3Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . .31.4Organization of the thesis . . . . . . . . . . . . . . . . . . . . .52State of the art72.1Architecture of an x86 system . . . . . . . . . . . . . . . . . . .72.1.1CPU. . . . . . . . . . . . . . . . . . . . . . . . . . . . .72.1.1.1Data cache. . . . . . . . . . . . . . . . . . . .92.1.1.2Instruction cache . . . . . . . . . . . . . . . . .122.1.1.3Branch prediction unit. . . . . . . . . . . . .122.1.2Memory . . . . . . . . . . . . . . . . . . . . . . . . . . .132.2Hardware virtualization . . . . . . . . . . . . . . . . . . . . . .132.2.1CPU. . . . . . . . . . . . . . . . . . . . . . . . . . . . .142.2.2Memory . . . . . . . . . . . . . . . . . . . . . . . . . . .152.2.3I/O devices . . . . . . . . . . . . . . . . . . . . . . . . .162.2.4Attack surface of the virtualization layer . . . . . . . . .172.2.4.1Hypervisor . . . . . . . . . . . . . . . . . . . .172.2.4.2Device emulator . . . . . . . . . . . . . . . . .18i2.2.4.3Direct device assignment . . . . . . . . . . . .182.3Covert and side channels on shared resources . . . . . . . . . .182.3.1Achieving and detecting co-residency . . . . . . . . . .192.3.2Attack surface of an x86 processor . . . . . . . . . . . .202.3.2.1Data and instruction cache . . . . . . . . . . .202.3.2.2Branch prediction unit. . . . . . . . . . . . .212.3.2.3Arithmetic logic unit. . . . . . . . . . . . . .212.3.3Attack surface of the memory and memory bus. . . .222.3.3.1Memory deduplication . . . . . . . . . . . . .222.3.3.2Memory bus . . . . . . . . . . . . . . . . . . .222.4The case of the data cache of x86 processors . . . . . . . . . . .232.4.1Time-driven attacks. . . . . . . . . . . . . . . . . . . .232.4.2Trace-driven attacks. . . . . . . . . . . . . . . . . . . .242.4.3Access-driven attacks. . . . . . . . . . . . . . . . . . .242.4.4Beyond cryptographic side channels . . . . . . . . . . .262.4.5Evolutions of cache attacks. . . . . . . . . . . . . . . .272.4.5.1From single-core to muti-core CPUs . . . . . .272.4.5.2From native to virtualized environments . . .282.4.5.3From shared to non-shared memory. . . . .282.4.6Timing measurements . . . . . . . . . . . . . . . . . . .292.4.7Countermeasures . . . . . . . . . . . . . . . . . . . . . .292.4.7.1Architecture or microarchitecture level . . . .292.4.7.2Operating system or hypervisor level . . . . .302.4.7.3Application level . . . . . . . . . . . . . . . . .312.5Information leakage on GPU memory . . . . . . . . . . . . . .332.5.1Architecture . . . . . . . . . . . . . . . . . . . . . . . . .332.5.2Programming model . . . . . . . . . . . . . . . . . . . .342.5.3Offensive usage of GPUs . . . . . . . . . . . . . . . . . .342.5.3.1The GPU as the subject of attacks . . . . . . .342.5.3.2The GPU as a medium for attacks . . . . . . .352.5.4Defensive usage of GPUs. . . . . . . . . . . . . . . . .352.6Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .363Bypassing cache complex addressing: C5 covert channel373.1Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .373.2The issue of addressing uncertainty . . . . . . . . . . . . . . . . .383.3Overview of C5 . . . . . . . . . . . . . . . . . . . . . . . . . . .403.4Sender. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .413.5Receiver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .433.6Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45ii3.6.1Testbed . . . . . . . . . . . . . . . . . . . . . . . . . . . .453.6.2Native environment. . . . . . . . . . . . . . . . . . . .463.6.3Virtualized environment . . . . . . . . . . . . . . . . . .473.7Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .483.8Countermeasures . . . . . . . . . . . . . . . . . . . . . . . . . .513.8.1Hardware countermeasures . . . . . . . . . . . . . . . .513.8.2Software countermeasures . . . . . . . . . . . . . . . . .523.9Related work . . . . . . . . . . . . . . . . . . . . . . . . . . . . .523.10 Conclusions and perspectives . . . . . . . . . . . . . . . . . . .544Reverse-engineering last-level cache complex addressing554.1Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .554.2Hardware performance counters . . . . . . . . . . . . . . . . .564.3Mapping physical addresses to cache slices . . . . . . . . . . .574.4Building a compact addressing function . . . . . . . . . . . . .594.4.1Problem statement . . . . . . . . . . . . . . . . . . . . .594.4.2Manually reconstructing the function for Xeon E5-2609 v2 614.4.3Reconstructing the function automatically. . . . . . .614.5Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . .634.5.1Building a faster covert channel . . . . . . . . . . . . . .634.5.2Exploiting the Rowhammer vulnerability in JavaScript654.6Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .664.6.1Dealing with unknown physical addresses . . . . . . .664.6.2Comparison to previously retrieved functions. . . . .674.7Related work . . . . . . . . . . . . . . . . . . . . . . . . . . . . .684.8Conclusions and perspectives . . . . . . . . . . . . . . . . . . .695Information leakage on GPU memory715.1Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . .715.2Attacker model. . . . . . . . . . . . . . . . . . . . . . . . . . .725.3Impact of the GPU virtualization techniques on security . . . .735.3.1Emulation . . . . . . . . . . . . . . . . . . . . . . . . . .735.3.2Split driver model. . . . . . . . . . . . . . . . . . . . .735.3.3Direct device assignment. . . . . . . . . . . . . . . . .745.3.4Direct device assignment with SR-IOV . . . . . . . . . .745.4Experimental setup . . . . . . . . . . . . . . . . . . . . . . . . .755.5Accessing memory through GPGPU runtime . . . . . . . . . .775.5.1Native environment. . . . . . . . . . . . . . . . . . . .775.5.2Virtualized environment . . . . . . . . . . . . . . . . . .785.5.3Cloud environment . . . . . . . . . . . . . . . . . . . . .79iii5.6Accessing memory through PCI configuration space . . . . . .795.6.1Native environment. . . . . . . . . . . . . . . . . . . .805.6.2Virtualized and cloud environment. . . . . . . . . . .815.7Countermeasures . . . . . . . . . . . . . . . . . . . . . . . . . .825.7.1GPGPU runtimes . . . . . . . . . . . . . . . . . . . . . .825.7.2Hypervisors and cloud providers . . . . . . . . . . . . .825.7.3Defensive programming . . . . . . . . . . . . . . . . . .835.8Related work . . . . . . . . . . . . . . . . . . . . . . . . . . . . .835.9Conclusions and perspectives . . . . . . . . . . . . . . . . . . .8406 结论和未来方向 85 6.1 贡献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.2 未来方向 .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.2.1 攻击技术 . . . . . . . . . . . . . . . . . . . . . . . . . .. 87 6.2.2 防御技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 6.2.3扩展对CPU内部的了解 . . . . . . . . . . . . . . . . . . . . . 880附录 880A 法语摘要 89 A.1 引言 89 A.1.1 背景 89 A.1.2 问题 90 A.1.3 贡献 90 A.1.4论文组织 92 A.2 绕过复杂寻址:C5隐蔽信道 93 A.3 逆向工程最后一级缓存的寻址94 A.4 GPU内存信息泄漏 95 A.5 未来工作 96 A.5.1 新攻击 96 A.5.2 对策 97 A.5.3扩展对CPU内部工作原理的了解 970B 准确的时间测量 990C用于逆向工程寻址函数的MSR值 101 C.1 Xeon CPU 101 C.1.1 监控会话 101C.1.2 Xeon Sandy Bridge CPU的MSR地址和值 1020iv0C.1.3 Xeon Ivy Bridge CPU的MSR地址和值 103 C.1.4 Xeon HaswellCPU的MSR地址和值 104 C.2 核心CPU 105 C.2.1 监控会话 105 C.2.2MSR地址和值 1050图表清单 1070表格清单 1090参考文献 1110v0摘要0在虚拟化环境中,虚拟机监控器在软件层面提供隔离,但共享基础设施使得硬件层面的攻击成为可能。边信道和隐蔽信道是与共享硬件相关的众所周知的问题,特别是共享处理器。然而,它们依赖于随着不同硬件代际而变化的微架构特性。近年来,通用图形处理单元(GPGPU)的普及与所谓的云环境相结合。本论文探讨了这些最近的发展以及它们在虚拟化环境中信息泄漏方面的影响。我们首先研究了最新的处理器微架构。我们的第一个贡献是C5,一种跨核心的缓存隐蔽信道,用于在虚拟机之间进行评估。在这项工作之后,我们的第二个贡献是逆向工程Intel处理器最后一级缓存的复杂寻址函数,使得缓存攻击类攻击变得非常实用。在最后一部分,我们研究了GPU虚拟化的安全性。我们的第三个贡献表明,虚拟化环境容易从GPU内存中泄漏信息。0vii0摘要0在虚拟化环境中,虚拟机监控器在软件层面提供隔离,但共享基础设施使得硬件层面的攻击成为可能。边信道和隐蔽信道是与共享硬件相关的众所周知的问题,特别是共享处理器。然而,它们依赖于随着不同硬件代际而变化的微架构特性。近年来,通用图形处理单元(GPGPU)的普及与所谓的云环境相结合。本论文探讨了这些最近的发展以及它们在虚拟化环境中信息泄漏方面的影响。我们首先研究了最新的处理器微架构。我们的第一个贡献是C5,一种跨核心的缓存隐蔽信道,用于在虚拟机之间进行评估。在这项工作之后,我们的第二个贡献是逆向工程Intel处理器最后一级缓存的复杂寻址函数,使得缓存攻击类攻击变得非常实用。在最后一部分,我们研究了GPU虚拟化的安全性。我们的第三个贡献表明,虚拟化环境容易从GPU内存中泄漏信息。0ix0致谢0在我的博士论文期间,许多朋友、家人和同事给予了我支持。我很高兴认识他们,这几句话无法表达我对他们的感激之情。我感谢我的论文委员会ThomasJensen、Gildas Avoine、Jean-Pierre Seifert、Stefan Mangard和PierreParadinas,他们接受邀请来到雷恩参加我的答辩,并提出了建设性的问题和评论。我特别感谢Jean-Pierre Seifert和GildasAvoine花时间阅读论文并提供反馈。我真诚感谢我的导师AurélienFrancillon、Olivier Heen和ChristophNeumann,尽管正式的标题页上写的是等同指导我的论文,但你们在我的研究中给予了我很好的指导和自由,并且相信我疯狂的缓存攻击想法。感谢你们的耐心、支持和鼓励,尤其是在困难时期。我非常享受与你们一起工作的时光!没有我的前同事和现任同事,我在Technicolor的时光将不会如此愉快。感谢你们丰富的技术讨论或在咖啡间进行的有趣对话以及良好的氛围。特别感谢Fabien与我分享喜悦、绝望和红茶,祝你在旅程结束时好运!同时也感谢Eurecom友好的S3团队接待我短暂而阳光明媚的停留。对所有过去和现任成员致以最美好的祝愿。我要感谢StefanMangard邀请我去TUGraz,以及整个安全系统团队对我的热情欢迎。我非常喜欢在那里的时光,很高兴能够回来。特别感谢Daniel——与你一起工作很棒,我很高兴我们继续合作。也感谢你愿意阅读本文的部分内容。同样感谢Maria和Raphael,他们在几个位翻转中保持了极大的热情。非常感谢我的朋友和家人。我的父母Françoise和Patrick为我提供了一个满足我童年时期的计算机热情的环境,并在我的学习和论文期间给予了我支持。我的扩展家庭,包括我的姻亲Soizik和Marc,一直友善和鼓励。我的朋友们,无论是在他们自己的论文上工作还是从外部观察这个奇怪的世界,都给予了我难以置信的支持。你们太多了,无法在这里一一列出,但我感到很幸运能够拥有你们在我的生活中。感谢你们的支持和帮助,以及一起度过的美好时光。最后但并非最不重要的,我要感谢我亲爱的丈夫Erwan。多年来你持续的支持对我来说非常重要。没有你,我永远无法做到这一点,对此我永远感激。祝我们有更多的冒险!0xi0致谢0我的研究和这篇论文期间,许多朋友、家人和同事给予了我支持。我很高兴认识他们,这几句话无法表达我对他们的感激之情。我感谢我的论文委员会Thomas Jensen、Gildas Avoine、Jean-Pierre Seifert、Stefan Mangard和PierreParadinas,他们接受邀请来到雷恩参加我的答辩,并提出了建设性的问题和评论。我特别感谢Jean-Pierre Seifert和GildasAvoine花时间阅读论文并提供反馈。我真诚感谢我的导师Aurélien Francillon、Olivier Heen和ChristophNeumann,尽管正式的标题页上写的是等同指导我的论文,但你们在我的研究中给予了我很好的指导和自由,并且相信我疯狂的缓存攻击想法。感谢你们的耐心、支持和鼓励,尤其是在困难时期。我非常享受与你们一起工作的时光!没有我的前同事和现任同事,我在Technicolor的时光将不会如此愉快。感谢你们丰富的技术讨论或在咖啡间进行的有趣对话以及良好的氛围。特别感谢Fabien与我分享喜悦、绝望和红茶,祝你在旅程结束时好运!同时也感谢Eurecom友好的S3团队接待我短暂而阳光明媚的停留。对所有过去和现任成员致以最美好的祝愿。我要感谢Stefan Mangard邀请我去TUGraz,以及整个安全系统团队对我的热情欢迎。我非常喜欢在那里的时光,很高兴能够回来。特别感谢Daniel——与你一起工作很棒,我很高兴我们继续合作。也感谢你愿意阅读本文的部分内容。同样感谢Maria和Raphael,他们在几个位翻转中保持了极大的热情。非常感谢我的朋友和家人。我的父母Françoise和Patrick为我提供了一个满足我童年时期的计算机热情的环境,并在我的学习和论文期间给予了我支持。我的扩展家庭,包括我的姻亲Soizik和Marc,一直友善和鼓励。我的朋友们,无论是在他们自己的论文上工作还是从外部观察这个奇怪的世界,都给予了我难以置信的支持。你们太多了,无法在这里一一列出,但我感到很幸运能够拥有你们在我的生活中。感谢你们的支持和帮助,以及一起度过的美好时光。最后但并非最不重要的,我要感谢我亲爱的丈夫Erwan。多年来你持续的支持对我来说非常重要。没有你,我永远无法做到这一点,对此我永远感激。祝我们有更多的冒险!0xiixiii0前言0本文介绍了我在Technicolor和Eurecom期间完成的CIFRE博士研究工作。主要基于我作为主要作者发表的文章[ MNHF14 , MNHF15 , MLSN + 15],以及作为合著者在我访问TU Graz期间撰写的预印本[ GMM15]。在Technicolor期间,我还参与了发表的文章[MON +13],该文章超出了本论文的范围。0出版物列表0国际会议0克莱门汀∙莫里斯,尼古拉斯∙勒斯库阿内克,克里斯托夫∙诺伊曼,奥利维尔∙亨和奥雷利安∙弗朗西龙。使用性能计数器逆向工程Intel的最后一级缓存复杂寻址。在《入侵、攻击和防御研究国际研讨会论文集(RAID'15)》中,2015年11月。0克莱门汀∙莫里斯,克里斯托夫∙诺伊曼,奥利维尔∙亨和奥雷利安∙弗朗西龙。C5:跨核心缓存隐蔽信道.在《入侵检测与恶意软件及漏洞评估会议论文集(DIMVA'15)》中,2015年7月。最佳论文奖。0Clémentine Maurice,Christoph Neumann,Olivier Heen和AurélienFrancillon。虚拟化环境中GPU的机密性问题。2014年3月,第18届金融密码学与数据安全国际会议(FC'14)论文集。xiv0前言0Clémentine Maurice,Stéphane Onno,Christoph Neumann,OlivierHeen和AurélienFrancillon。通过合作指纹识别改进802.11类似设备的指纹识别。2013年8月,安全与密码学国际会议(SECRYPT'13)论文集。0预印本0Daniel Gruss,Clémentine Maurice和StefanMangard。Rowhammer.js:一种JavaScript中的远程软件诱发故障攻击。arXiv:1507.06955v1,2015年7月。0演示0ClémentineMaurice。虚拟化环境中的信息泄漏:一次GPU内存和CPU缓存之旅。IAIK,TUGraz,奥地利,2015年6月。0Clémentine Maurice,Christoph Neumann,Olivier Heen,AurélienFrancillon。虚拟化GPU中的信息泄漏。2013年12月,法国SophiaAntipolis,Labex UCN安全与隐私主题日海报展示。0Clémentine Maurice,Christoph Neumann,Olivier Heen,AurélienFrancillon。在第三届存储和云计算研讨会上的GPU虚拟化环境中的信息泄漏。2013年11月,法国雷恩。0奖项和资助0RAID学生旅行津贴,于2015年11月。0DIMVA最佳论文奖,2015年7月。0由COST Cryptacus资助,于2015年6月访问TU Graz进行短期科学任务。0由NVIDIA捐赠的GPU硬件,2013年4月。110引言0目录01.1 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2 问题陈述 . . . . . . . . . . . . . . . . . . . . . . . 201.3 贡献 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.4 论文组织结构 . . . . . . . . . . . . . . . . . . . 501.1 背景0云计算在过去的十年中被引入并逐渐流行起来。它为用户或企业提供了专用数据中心中的计算和存储的按需解决方案。对于客户来说,好处是简单性:相同的服务在不同的硬件平台上运行,无需考虑硬件的特殊性。它还将基础设施的管理需求转移到了专门的提供商身上。对于云提供商来说,好处是成本效益:多个虚拟机可以在同一台物理机上运行,这些虚拟机可以由不同的客户拥有。云计算在很大程度上依赖于虚拟化,它将软件服务与底层硬件解耦。硬件共享是云计算环境的一个核心方面。其中两个重要的硬件部件今天已经虚拟化:中央处理器(CPU)和图形处理器(GPU)。201. 引言0CPU是计算机系统的计算部分。根据摩尔定律的预测[Moo75],构成个人计算机和服务器的x86处理器变得更小、更快、更节能。处理器的速度在过去几十年里呈指数增长。现代CPU由多个核心组成,这些核心是基本的处理单元。它们还使用缓存,这是填补处理器和主存储器之间性能差距的小而快的内存。GPU主要用于个人计算机的多媒体应用,如视频游戏或高清视频编辑。随着这些新的多媒体用途的增长,GPU变得普及起来。它们高度并行的架构转向通用计算。如今,GPU也用于高性能计算,包括在服务器和集群中使用。因此,它们出现在云计算提供商提供的服务中。不同租户之间的共享硬件引发了信息泄漏的潜在威胁。特别是,CPU可以被不同用户同时访问,CPU缓存被大量共享。这导致了隐蔽和侧信道。GPU是时间共享的,即不能同时由两个用户访问,但它们可以一个接一个地访问。在这种情况下,内存隔离至关重要,以防止信息泄漏。对这些系统的攻击要么旨在在两个进程之间主动交换信息,要么是为了一个间谍进程从受害进程中窃取机密信息。01.2 问题陈述0由于共享硬件导致的信息泄漏是一个已知的问题,并且已经得到广泛研究。然而,这些攻击高度依赖于硬件。然而,我们看到硬件设计和采用方面的发展。首先,CPU微架构经常变化。例如,自2009年以来,Intel几乎每年都建立了一个新的微架构。其次,GPU被设计为提供最大的性能,而不是用于并发访问和安全性。尽管如此,它们最近被几家云计算提供商提供。由于硬件的演变或生产中的对策,一些攻击变得更加复杂或不可能执行。相反,一些修改是为了追求性能,这往往与安全性相冲突。因此,我们提出了一个问题:最近的发展如何影响由硬件共享引起的信息泄漏?这个问题引发了对这些安全问题调查的一些挑战。事实上,我们面临着两层模糊。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功