KALD: Detecting Direct Pointer Disclosure Vulnerabilities

被引:3
作者
Belleville, Brian [1 ]
Shen, Wenbo [2 ]
Volckaert, Stijn [3 ]
Azab, Ahmed M. [1 ]
Franz, Michael [4 ]
机构
[1] Google, Mountain View, CA 94043 USA
[2] Zhejiang Univ, Inst Cyberspace Res, 38 Zheda Rd, Hangzhou 310027, Zhejiang, Peoples R China
[3] Katholieke Univ Leuven, Dept Comp Sci, Imec DistriNet, B-3000 Leuven, Belgium
[4] Univ Calif Irvine, Donald Bren Sch Informat & Comp Sci, Dept Comp Sci, Irvine, CA 92697 USA
基金
美国国家科学基金会;
关键词
Kernel; Layout; Linux; Smart phones; Tools; Memory management; Program analysis; static analysis; address leakage; security; operating systems security; LLVM; Linux kernel;
D O I
10.1109/TDSC.2019.2915829
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Modern operating system kernels deploy Kernel Address Space Layout Randomization (KASLR) to mitigate control-flow hijacking attacks. KASLR randomizes the base addresses of the kernel's code and data segments. However, it randomizes both with a single offset and does not randomize the internal layout of either of these segments, so relative addresses remain known to adversaries. If the kernel discloses a single code or global data pointer, an adversary can therefore infer the entire layout of the kernel's code segment and bypass KASLR. In this paper, we present Kernel Address Leak Detector (KALD), a tool that finds direct disclosure vulnerabilities by statically analyzing the kernel source code. KALD can analyze the source code of modern operating system kernels and find previously unreported leaks. KALD compiles a list of functions that can leak information to user-space accessible locations, and it uses the results of a points-to analysis to determine whether individual invocations of such functions can disclose kernel pointers. We show that KALD successfully detects several direct disclosure vulnerabilities in the Linux kernel and that it is flexible enough to be useful in practice.
引用
收藏
页码:1369 / 1377
页数:9
相关论文
共 42 条
  • [1] [Anonymous], 2018, CVE-2018-7755
  • [2] [Anonymous], 2016, SAMSUNG KASLR BYPASS
  • [3] [Anonymous], 2015, CVE-2015-0089
  • [4] [Anonymous], 2013, EVASI0N IOS 7 0 X JA
  • [5] [Anonymous], 2016, P USENIX SEC S
  • [6] [Anonymous], 2017, CVE-2017-14954
  • [7] [Anonymous], 2009, PROC 2 EUROPEAN WORK
  • [8] [Anonymous], 2015, CVE-2015-1097
  • [9] [Anonymous], 1994, Program analysis and specialization for the C programming language
  • [10] [Anonymous], 2015, CVE-2015-8569