Secret-dependent timing behavior in cryptographic implementations has resulted in exploitable vulnerabilities, undermining their security. Over the years, numerous tools to automatically detect timing leakage or even to prove their absence have been proposed. However, a recent study at IEEE S&P 2022 showed that, while many developers are aware of one or more analysis tools, they have major difficulties integrating these into their workflow, as existing tools are tedious to use and mapping discovered leakages to their originating code segments requires expert knowledge. In addition, existing tools focus on compiled languages like C, or analyze binaries, while the industry and open-source community moved to interpreted languages, most notably JavaScript. In this work, we introduce Microwalk-CI, a novel side-channel analysis framework for easy integration into a JavaScript development workflow. First, we extend existing dynamic approaches with a new analysis algorithm, that allows efficient localization and quantification of leakages, making it suitable for use in practical development. We then present a technique for generating execution traces from JavaScript applications, which can be further analyzed with our and other algorithms originally designed for binary analysis. Finally, we discuss how Microwalk-CI can be integrated into a continuous integration (CI) pipeline for efficient and ongoing monitoring. We evaluate our analysis framework by conducting a thorough evaluation of several popular JavaScript cryptographic libraries, and uncover a number of critical leakages.
翻译:多年来,提出了许多自动检测时间泄漏的工具,甚至证明没有这些工具。然而,最近在IEEEE S & P 2022进行的一项研究显示,尽管许多开发者了解一种或多种分析工具,但他们很难将这些工具纳入工作流程,因为现有工具对于使用和测绘发现渗漏到其源代码部分十分乏味,因此需要专家知识。此外,现有工具侧重于C类汇编语言,或分析二进制语言,而工业和开放源社区则转向口译语言,特别是JavaScript。在这项工作中,我们引入了Microwalk-CI,这是一个新的侧通道分析框架,方便地纳入JavaScript发展工作流程。首先,我们扩展现有的动态方法,采用新的分析算法,以便有效地本地化和量化渗漏,从而适合实际发展。我们然后提出一种从JavaScript应用程序生成执行痕迹的技术,可以与我们最初设计用于双向流分析的其他算法一起进一步分析。最后,我们讨论如何通过不断的流化的流化分析,我们如何进行一个不断的流化的流化的流化分析。