Code Polymorphism Meets Code Encryption: Confidentiality and Side-channel Protection of Software Components

L. Morel, Damien Couroussé, Thomas Hiscock
{"title":"Code Polymorphism Meets Code Encryption: Confidentiality and Side-channel Protection of Software Components","authors":"L. Morel, Damien Couroussé, Thomas Hiscock","doi":"10.1145/3487058","DOIUrl":null,"url":null,"abstract":"In this article, we consider that, in practice, attack scenarios involving side-channel analysis combine two successive phases: an analysis phase, targeting the extraction of information about the target and the identification of possible vulnerabilities, and an exploitation phase, applying attack techniques on candidate vulnerabilities. We advocate that protections need to cover these two phases to be effective against real-life attacks. We present PolEn, a toolchain and a processor architecture that combine countermeasures to provide an effective mitigation of side-channel attacks: As a countermeasure against the analysis phase, our approach considers the use of code encryption; as a countermeasure against the exploitation phase, our approach considers the use of code polymorphism, because it relies on runtime code generation, and its combination with code encryption is particularly challenging. Code encryption is supported by a processor extension such that machine instructions are only decrypted inside the CPU, which effectively prevents reverse engineering or any extraction of useful information from memory dumps. Code polymorphism is implemented by software means. It regularly changes the observable behaviour of the program, making it unpredictable for an attacker, hence reducing the possibility to exploit side-channel leakages. We present a prototype implementation, based on the RISC-V Spike simulator and a modified LLVM toolchain. In our experimental evaluation, we illustrate that PolEn effectively reduces side-channel leakages. For the protected functions evaluated, static memory use increases by a factor of 5 to 22, corresponding to the joint application of code encryption and code polymorphism. The overhead, in terms of execution time, ranges between a factor of 1.8 and 4.6.","PeriodicalId":202552,"journal":{"name":"Digital Threats: Research and Practice","volume":"10 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Digital Threats: Research and Practice","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3487058","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

In this article, we consider that, in practice, attack scenarios involving side-channel analysis combine two successive phases: an analysis phase, targeting the extraction of information about the target and the identification of possible vulnerabilities, and an exploitation phase, applying attack techniques on candidate vulnerabilities. We advocate that protections need to cover these two phases to be effective against real-life attacks. We present PolEn, a toolchain and a processor architecture that combine countermeasures to provide an effective mitigation of side-channel attacks: As a countermeasure against the analysis phase, our approach considers the use of code encryption; as a countermeasure against the exploitation phase, our approach considers the use of code polymorphism, because it relies on runtime code generation, and its combination with code encryption is particularly challenging. Code encryption is supported by a processor extension such that machine instructions are only decrypted inside the CPU, which effectively prevents reverse engineering or any extraction of useful information from memory dumps. Code polymorphism is implemented by software means. It regularly changes the observable behaviour of the program, making it unpredictable for an attacker, hence reducing the possibility to exploit side-channel leakages. We present a prototype implementation, based on the RISC-V Spike simulator and a modified LLVM toolchain. In our experimental evaluation, we illustrate that PolEn effectively reduces side-channel leakages. For the protected functions evaluated, static memory use increases by a factor of 5 to 22, corresponding to the joint application of code encryption and code polymorphism. The overhead, in terms of execution time, ranges between a factor of 1.8 and 4.6.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
代码多态与代码加密:软件组件的机密性和侧信道保护
在本文中,我们认为,在实践中,涉及侧信道分析的攻击场景结合了两个连续的阶段:分析阶段,旨在提取有关目标的信息并识别可能的漏洞,以及利用阶段,将攻击技术应用于候选漏洞。我们主张,保护措施需要涵盖这两个阶段,才能有效抵御现实生活中的攻击。我们提出了PolEn,一种工具链和处理器架构,结合对策来有效缓解侧信道攻击:作为针对分析阶段的对策,我们的方法考虑使用代码加密;作为对抗开发阶段的对策,我们的方法考虑了代码多态性的使用,因为它依赖于运行时代码生成,并且它与代码加密的组合特别具有挑战性。代码加密由处理器扩展支持,这样机器指令只能在CPU内部解密,这有效地防止了逆向工程或从内存转储中提取有用信息。代码多态是通过软件实现的。它定期改变程序的可观察行为,使攻击者无法预测,从而减少利用侧信道泄漏的可能性。我们提出了一个基于RISC-V Spike模拟器和改进的LLVM工具链的原型实现。在我们的实验评估中,我们证明了花粉有效地减少了侧通道泄漏。对于评估的受保护函数,静态内存使用增加了5到22倍,对应于代码加密和代码多态性的联合应用。就执行时间而言,开销在1.8到4.6倍之间。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Causal Inconsistencies are Normal in Windows Memory Dumps (too) InvesTEE: A TEE-supported Framework for Lawful Remote Forensic Investigations Does Cyber Insurance promote Cyber Security Best Practice? An Analysis based on Insurance Application Forms Unveiling Cyber Threat Actors: A Hybrid Deep Learning Approach for Behavior-based Attribution A Framework for Enhancing Social Media Misinformation Detection with Topical-Tactics
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1