Clueless is a binary instrumentation tool that characterises explicit cache side channel vulnerabilities of programs. It detects the transformation of data values into addresses by tracking dynamic instruction dependencies. Clueless tags data values in memory if it discovers that they are used in address calculations to further access other data. Clueless can report on the amount of data that are used as addresses at each point during execution. It can also be specifically instructed to track certain data in memory (e.g., a password) to see if they are turned into addresses at any point during execution. It returns a trace on how the tracked data are turned into addresses, if they do. We demonstrate Clueless on SPEC 2006 and characterise, for the first time, the amount of data values that are turned into addresses in these programs. We further demonstrate Clueless on a micro benchmark and on a case study. The case study is the different implementations of AES in OpenSSL: T-table, Vector Permutation AES (VPAES), and Intel Advanced Encryption Standard New Instructions (AES-NI). Clueless shows how the encryption key is transformed into addresses in the T-table implementation, while explicit cache side channel vulnerabilities are note detected in the other implementations.
翻译: cluless 是一个二进制仪表工具, 描述程序清晰的缓存侧通道脆弱性。 它通过跟踪动态指令依赖性, 检测数据值转换成地址的情况。 如果发现数据值被用于计算地址以进一步访问其他数据, 则在记忆中标记数据值。 cluless 可以报告执行过程中每个点使用的数据量。 也可以具体指示它跟踪某些存储数据( 如密码), 以便查看它们是否在任何执行时点被转换为地址。 它返回跟踪数据如何转换为地址的痕迹, 如果它们这样做的话。 我们首次在 SPEC 2006 上展示了 Clulessless 数据值, 并定性了数据值, 成为这些方案中的地址。 我们进一步展示了微基准和案例研究中的数据值。 案例研究是 OpenSSL: T表、 Victorictor AES (VPAES) 和 Intel 高级加密标准新指令( AES- NNI) 是如何被转换为地址的。 我们第一次在 Speareal 中演示了其他加密频道的易变换位点。