Skip to main content
QUICK REVIEW

[论文解读] Processor-Dependent Malware... and codes

Anthony Desnos, Robert Erra|arXiv (Cornell University)|Nov 7, 2010
Cellular Automata and Applications参考文献 10被引用 4
一句话总结

本文提出了一种新颖的处理器依赖型恶意软件方法,通过利用不同CPU架构之间浮点数算术(FPA)的不一致性。通过执行精心设计的数值计算(如三角函数和求和运算),该研究证明了不同处理器会产生不同的结果,从而实现对特定硬件的高精度识别,即使在不同的操作系统和软件环境中也能实现。

ABSTRACT

Malware usually target computers according to their operating system. Thus we have Windows malwares, Linux malwares and so on ... In this paper, we consider a different approach and show on a technical basis how easily malware can recognize and target systems selectively, according to the onboard processor chip. This technology is very easy to build since it does not rely on deep analysis of chip logical gates architecture. Floating Point Arithmetic (FPA) looks promising to define a set of tests to identify the processor or, more precisely, a subset of possible processors. We give results for different families of processors: AMD, Intel (Dual Core, Atom), Sparc, Digital Alpha, Cell, Atom ... As a conclusion, we propose two {\it open problems} that are new, to the authors' knowledge.

研究动机与目标

  • 探究是否可以设计出基于硬件级算术差异的恶意软件,以针对特定处理器,且独立于操作系统或应用程序。
  • 探索使用浮点数算术(FPA)作为可靠处理器识别指纹机制的可行性。
  • 证明基于FPA的测试能够以高精度区分不同处理器家族(例如,Intel、AMD、ARM、MIPS)。
  • 通过使‘精准打击’型恶意软件仅在特定硬件上激活,揭示网络战中的新型攻击面。
  • 提出两个开放问题:(1)设计一种线性复杂度的FPA算法以实现精确的处理器识别;(2)基于FPA行为构造处理器依赖型哈希函数。

提出的方法

  • 利用浮点数算术(FPA)作为侧信道,检测处理器特有的数值行为,利用其内在的精度和舍入差异。
  • 使用如 sin(10^37 * π) 和 ∑(10^N) 等数值表达式,生成每种处理器独有的输出签名。
  • 使用多个π的近似值(例如,Pi1 到 Pi4)以放大不同架构间浮点数计算的差异。
  • 在多种处理器(Intel、AMD、ARM iPhone、MIPS、dsPIC)上执行测试程序,并以十六进制和十进制格式记录结果。
  • 分析编译器和优化标志对FPA结果的影响,表明编译器选择可进一步提高指纹识别的粒度。
  • 提出 Proc Scope Tool 作为未来框架,通过基于FPA的测试自动化实现处理器识别。

实验结果

研究问题

  • RQ1处理器之间的浮点数算术差异是否可被可靠利用以区分不同的CPU架构?
  • RQ2编译器版本和优化设置在多大程度上影响浮点数计算结果?该影响是否可用于细化硬件指纹识别?
  • RQ3是否可以设计一种时间复杂度和空间复杂度均为线性的数值算法,通过FPA行为唯一标识处理器?
  • RQ4能否使用FPA操作构造处理器依赖型哈希函数,使得相同输入在不同处理器上产生不同输出?

主要发现

  • 不同处理器(包括Intel、AMD、ARM iPhone、MIPS和dsPIC)在计算 sin(10^37 * π) 时产生不同结果,实现了可靠的识别。
  • dsPIC33FJ21微控制器在所有π近似值下均产生相同结果(0xbee5),而其他处理器则表现出明显差异。
  • 测试 0.1 + 0.1 + 0.1 == 0.3 在除VAX 750外的所有处理器上均返回false,表明浮点数行为具有架构依赖性。
  • 编译器和优化设置显著影响FPA结果,如在广义求和 s(N) − N*10^N 中,结果随N和工具链的不同而广泛变化。
  • sin(10^10 * π1) 的计算在AMD、Intel和ARM处理器上结果一致,但在更高幂次时出现分歧,表明存在可检测的模式。
  • 作者根据 sin(10^37 * π) 计算中FPA行为的差异,观察到四种类别的处理器,凸显了细粒度硬件指纹识别的潜力。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。