中文

用于检测并发相关缓存时序泄漏的对抗符号执行

密码学与安全 2018-07-10 v1 分布式、并行与集群计算 编程语言 软件工程

摘要

缓存是位于快速 CPU 与慢速内存之间的高速存储,其时序特征可能泄露程序的敏感信息,从而使攻击者能够实施侧信道攻击。现有的时序泄漏检测方法要么完全忽略缓存,要么仅关注程序自身产生的被动泄漏,而未考虑由并发运行其他线程而可能导致的泄漏。本工作中,我们表明时序无泄漏性并非一个可复合性质:一个单独运行时不泄漏的程序在与其他线程交错执行时可能变得泄漏。因此,我们开发了一种称为对抗符号执行的新方法以检测此类泄漏。它在对缓存建模的同时,系统地探索可行的程序路径及其交错,并利用 SMT 求解器判定是否存在时序泄漏。我们已在 LLVM 中实现了该方法,并在一组真实密码程序上进行了评估,总计 14,455 行 C 代码。实验证明了我们方法在检测侧信道泄漏上的高效性与有效性。

关键词

引用

@article{arxiv.1807.03280,
  title  = {Adversarial Symbolic Execution for Detecting Concurrency-Related Cache Timing Leaks},
  author = {Shengjian Guo and Meng Wu and Chao Wang},
  journal= {arXiv preprint arXiv:1807.03280},
  year   = {2018}
}