MicroWalk:一个在二进制文件中发现侧信道的框架
MicroWalk: A Framework for Finding Side Channels in Binaries
AI总结:
本文提出基于动态二进制插桩与互信息分析的 MicroWalk 框架,用于在无源码二进制中定位和量化微架构侧信道泄露,并首次发现 Intel IPP 与 Microsoft CNG 中的未知泄露。
摘要:
微架构侧信道会使未受保护的软件暴露于信息泄露攻击之下;在此类攻击中,软件攻击者能够追踪良性进程的运行时行为,并窃取诸如加密密钥之类的秘密。正如不同版本加密库中针对各种侧信道攻击变体而对 RSA 算法不断增加的软件补丁所表明的那样,保护安全关键算法免受侧信道攻击是一项复杂任务。软件保护通过以恒定时间运行并采用与所处理秘密无关的统一资源使用模式来避免泄露。在这方面,对软件二进制文件进行自动化测试和验证以确认其无泄露行为非常重要,尤其是在源代码不可用时。在本文中,我们提出了一种基于动态二进制插桩和互信息分析的新技术,用于高效定位并量化基于内存和基于控制流的微架构泄露。我们开发了一个名为 MicroWalk 的软件框架,用于对二进制文件进行侧信道分析,该框架可以扩展以支持新的泄露类别。通过利用 MicroWalk,我们首次对两个广泛使用的闭源加密库——Intel IPP 和 Microsoft CNG——进行了严格的泄露分析。我们在约 105 分钟的 CPU 时间内分析了由 1.12 亿条指令组成的 15 种不同加密实现。通过在经过加固的实现中定位此前未知的泄露,我们的结果表明 MicroWalk 能够高效发现软件二进制文件中的微架构泄露。
英文摘要:
Microarchitectural side channels expose unprotected software to information leakage attacks where a software adversary is able to track runtime behavior of a benign process and steal secrets such as cryptographic keys. As suggested by incremental software patches for the RSA algorithm against variants of side-channel attacks within different versions of cryptographic libraries, protecting security-critical algorithms against side channels is an intricate task. Software protections avoid leakages by operating in constant time with a uniform resource usage pattern independent of the processed secret. In this respect, automated testing and verification of software binaries for leakage-free behavior is of importance, particularly when the source code is not available. In this work, we propose a novel technique based on Dynamic Binary Instrumentation and Mutual Information Analysis to efficiently locate and quantify memory based and control-flow based microarchitectural leakages. We develop a software framework named \tool~for side-channel analysis of binaries which can be extended to support new classes of leakage. For the first time, by utilizing \tool, we perform rigorous leakage analysis of two widely-used closed-source cryptographic libraries: \emph{Intel IPP} and \emph{Microsoft CNG}. We analyze $15$ different cryptographic implementations consisting of $112$ million instructions in about $105$ minutes of CPU time. By locating previously unknown leakages in hardened implementations, our results suggest that \tool~can efficiently find microarchitectural leakages in software binaries.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。