一句话:提出差分模糊测试方法 DifFuzz,通过资源引导启发式检测时间与空间侧信道漏洞。
侧信道攻击使攻击者能通过观察程序在时间、内存或响应大小等资源上的行为推断秘密数据。此类漏洞涉及多条程序路径间资源使用量的相关性,难以推理和检测。本文提出 DifFuzz,一种基于模糊测试的侧信道漏洞检测方法。它分析同一程序的两个版本,并使用资源引导的启发式搜索,寻找能最大化秘密相关路径之间资源消耗差异的输入。该方法具有通用性,可应用于任意语言编写的程序;本文实现针对 Java 程序,扩展了 Kelinci 和 AFL 模糊测试器。作者在大量 Java 程序上评估 DifFuzz,证明其能发现流行应用中未知的侧信道漏洞,并表明其效果优于 Blazer 和 Themis 这两个先进的 Java 侧信道分析工具。
Side-channel attacks allow an adversary to uncover secret program data by observing the behavior of a program with respect to a resource, such as execution time, consumed memory or response size. Side-channel vulnerabilities are difficult to reason about as they involve analyzing the correlations between resource usage over multiple program paths. We present DifFuzz, a fuzzing-based approach for detecting side-channel vulnerabilities related to time and space. DifFuzz automatically detects these vulnerabilities by analyzing two versions of the program and using resource-guided heuristics to find inputs that maximize the difference in resource consumption between secret-dependent paths. The methodology of DifFuzz is general and can be applied to programs written in any language. For this paper, we present an implementation that targets analysis of Java programs, and uses and extends the Kelinci and AFL fuzzers. We evaluate DifFuzz on a large number of Java programs and demonstrate that it can reveal unknown side-channel vulnerabilities in popular applications. We also show that DifFuzz compares favorably against Blazer and Themis, two state-of-the-art analysis tools for finding side-channels in Java programs.