基于 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