中文

基于 LLVM-CFI 分析控制流完整性

密码学与安全 2019-10-04 v1

摘要

控制流劫持攻击被用于执行恶意计算。当前在应用控制流完整性(CFI)策略后评估攻击面的方案,最好的情况也只能衡量间接转移的平均值,而无法提供关于每个调用点绝对调用目标减少量及 gadget 可用性的任何洞见。此外,工具间的比较尚不成熟或根本无法进行。CFI 已被证明是抵御控制流劫持攻击最有前途的防护手段之一,因此人们已付出诸多努力以不同方式改进 CFI。然而,对现有 CFI 防护手段缺乏系统性评估。本文提出 LLVM-CFI,一个基于 Clang/LLVM 编译器框架、用于分析最先进静态 CFI 防护的静态源代码分析框架。LLVM-CFI 通过精确建模 CFI 策略并在统一方法内对其进行评估来工作。LLVM-CFI 有助于在部署 CFI 防护后确定不同 CFI 防护所提供的安全级别,从而为漏洞利用构建/预防及更强防御迈出重要一步。我们使用 LLVM-CFI 在 Google Chrome 和 Apache Httpd 等真实程序上评估了八种最先进的静态 CFI 防御。LLVM-CFI 提供了对残余攻击面的精确分析,并据此对 CFI 策略相互排序。LLVM-CFI 还通过披露八种限制性 CFI 策略下的受保护调用目标,成功为构建类 COOP 代码复用攻击及消除残余攻击面铺平了道路。

关键词

引用

@article{arxiv.1910.01485,
  title  = {Analyzing Control Flow Integrity with LLVM-CFI},
  author = {Paul Muntean and Matthias Neumayer and Zhiqiang Lin and Gang Tan and Jens Grossklags and Claudia Eckert},
  journal= {arXiv preprint arXiv:1910.01485},
  year   = {2019}
}

备注

Accepted for publication at ACSAC'19 conference. arXiv admin note: substantial text overlap with arXiv:1812.08496