中文

面向功能性侧信道的数据驱动调试

密码学与安全 2020-02-11 v2 机器学习 软件工程

摘要

通过侧信道的信息泄露是一个普遍存在的问题,即使在安全关键应用中也是如此。当攻击者知道服务器的某个秘密值在特定时间内保持固定时,便会产生功能性侧信道。然后,攻击者可以观察服务器在一系列不同公开输入上的执行,每个公开输入都与同一秘密输入配对。因此,对于每个秘密,攻击者观察到从公开输入到执行时间等的函数,并可以比较不同秘密下的这些函数。首先,我们引入了一种针对功能性侧信道的不干扰概念。我们关注噪声观测的情况,并通过实例表明,在采用标准定义会被判定为无信息泄露或被低估的程序中,实际存在功能性侧信道。其次,我们开发了一个用于调试程序功能性侧信道的框架和技术。我们将进化模糊测试技术扩展以生成利用响应时间对公开输入的功能依赖性的输入。我们改编了功能数据分析中已有的结果和算法来对函数建模并发现侧信道的存在。我们使用标准决策树学习的功能扩展来精确定位导致侧信道的代码片段(若存在)。我们在一系列微基准测试和真实 Java 程序上对我们的工具 FUCHSIA 进行了实证评估。在基准测试集上,我们表明 FUCHSIA 在检测侧信道类别方面优于最先进技术。在真实程序上,我们展示了 FUCHSIA 在分析具有数千个方法的 Java 程序中的功能性侧信道时的可扩展性。此外,我们展示了 FUCHSIA 在发现侧信道方面的实用性,包括 OpenJDK 中的一个零日漏洞以及 Jetty 中的另一个此后由开发者修复的漏洞。

关键词

引用

@article{arxiv.1808.10502,
  title  = {Data-Driven Debugging for Functional Side Channels},
  author = {Saeid Tizpaz-Niari and Pavol Cerny and Ashutosh Trivedi},
  journal= {arXiv preprint arXiv:1808.10502},
  year   = {2020}
}

备注

To Appear in NDSS'20 (17 pages, 11 figures)