Skip to main content
QUICK REVIEW

[论文解读] Identifying Cache-Based Side Channels through Secret-Augmented Abstract Interpretation

Shuai Wang, Yuyan Bao|arXiv (Cornell University)|May 30, 2019
Security and Verification in Computing参考文献 84被引用 9
一句话总结

本文提出 CacheS,一种静态分析工具,采用一种名为 Secret-Augmented Symbolic(SAS)的新颖抽象域,用于检测真实世界密码学二进制程序中的缓存侧信道。通过结合对秘密的细粒度跟踪与对公共数据的粗粒度过度近似,CacheS 实现了可扩展、高精度且全覆盖的上下文敏感跨过程分析,成功在 OpenSSL、Libgcrypt 和 mbedTLS 中发现 54 个此前未知的信息泄露问题。

ABSTRACT

Cache-based side channels enable a dedicated attacker to reveal program secrets by measuring the cache access patterns. Practical attacks have been shown against real-world crypto algorithm implementations such as RSA, AES, and ElGamal. By far, identifying information leaks due to cache-based side channels, either in a static or dynamic manner, remains a challenge: the existing approaches fail to offer high precision, full coverage, and good scalability simultaneously, thus impeding their practical use in real-world scenarios. In this paper, we propose a novel static analysis method on binaries to detect cache-based side channels. We use abstract interpretation to reason on program states with respect to abstract values at each program point. To make such abstract interpretation scalable to real-world cryptosystems while offering high precision and full coverage, we propose a novel abstract domain called the Secret-Augmented Symbolic domain (SAS). SAS tracks program secrets and dependencies on them for precision, while it tracks only coarse-grained public information for scalability. We have implemented the proposed technique into a practical tool named CacheS and evaluated it on the implementations of widely-used cryptographic algorithms in real-world crypto libraries, including Libgcrypt, OpenSSL, and mbedTLS. CacheS successfully confirmed a total of 154 information leaks reported by previous research and 54 leaks that were previously unknown. We have reported our findings to the developers. And they confirmed that many of those unknown information leaks do lead to potential side channels.

研究动机与目标

  • 为在真实世界密码系统中以高精度、全覆盖和可扩展性检测缓存侧信道提供解决方案。
  • 克服现有静态和动态分析工具在覆盖率低、精度低或可扩展性差方面的局限性。
  • 实现对大规模、生产级密码实现中侧信道漏洞的实际检测。
  • 通过在秘密的符号表示上进行约束求解,生成反例以支持有效调试。

提出的方法

  • 提出 Secret-Augmented Symbolic(SAS)抽象域,以细粒度方式跟踪程序秘密及其数据依赖关系。
  • 使用抽象值的符号表示,以支持约束求解,实现精确的泄露检测。
  • 应用带有 SAS 的抽象解释,对二进制代码执行上下文敏感的跨过程分析。
  • 对公共值进行过度近似,以确保可扩展性,同时在依赖秘密的路径上保持高精度。
  • 采用轻量级、非 sound 的内存建模方式,在不牺牲泄露检测正确性的情况下优化性能。
  • 集成约束求解以生成具体反例用于调试,提升工具可用性。

实验结果

研究问题

  • RQ1静态分析方法是否能在真实世界密码系统中同时实现高精度和全覆盖,以检测缓存侧信道?
  • RQ2如何扩展抽象解释,使其在保持对秘密依赖行为的高精度的同时,可扩展至大型二进制文件?
  • RQ3抽象域中的符号推理是否不仅能实现检测,还能生成反例以支持有效调试?
  • RQ4像 SAS 这样的新型抽象域在检测未知侧信道泄露方面,相较于现有抽象域能有多大优势?

主要发现

  • CacheS 成功验证了 OpenSSL、Libgcrypt 和 mbedTLS 中 154 个此前报告的信息泄露问题。
  • 该工具发现了 54 个此前研究社区未知的信息泄露点。
  • CacheS 在包含超过 295,000 条指令的二进制文件上实现了全上下文敏感的跨过程分析,耗时不足 0.5 个 CPU 小时。
  • 在所有 208 个识别出的泄露点中,仅报告了一个误报,表明其具有高精度。
  • 该分析具备足够的可扩展性,可处理真实世界密码系统,其覆盖率和性能优于先前的工具如 CacheAudit 和 CacheD。
  • 受影响库的开发人员确认,其中许多新发现的泄露点确实构成真实的侧信道威胁。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。