Skip to main content
QUICK REVIEW

[论文解读] Finding Tizen security bugs through whole-system static analysis

Daniel Song, Jisheng Zhao|arXiv (Cornell University)|Apr 22, 2015
Advanced Malware Detection Techniques参考文献 39被引用 6
一句话总结

本文提出了一种基于 LLVM 的全系统静态分析框架,用于检测基于 Linux 的开源消费设备平台 Tizen 中的安全漏洞。通过扩展 LLVM 以支持精确的信息流分析和控制流分析,作者识别出系统库中缺失的安全检查以及应用程序中危险的数据流,发现了此前未知的漏洞,若未修补,可能导致利用。

ABSTRACT

Tizen is a new Linux-based open source platform for consumer devices including smartphones, televisions, vehicles, and wearables. While Tizen provides kernel-level mandatory policy enforcement, it has a large collection of libraries, implemented in a mix of C and C++, which make their own security checks. In this research, we describe the design and engineering of a static analysis engine which drives a full information flow analysis for apps and a control flow analysis for the full library stack. We implemented these static analyses as extensions to LLVM, requiring us to improve LLVM's native analysis features to get greater precision and scalability, including knotty issues like the coexistence of C++ inheritance with C function pointer use. With our tools, we found several unexpected behaviors in the Tizen system, including paths through the system libraries that did not have inline security checks. We show how our tools can help the Tizen app store to verify important app properties as well as helping the Tizen development process avoid the accidental introduction of subtle vulnerabilities.

研究动机与目标

  • 为解决在 Tizen 大型 C/C++ 代码库中检测细微安全漏洞的挑战,特别是系统库中可能缺失的安全检查问题。
  • 开发一种可扩展且精确的静态分析流水线,支持对应用程序的信息流分析和对系统库的控制流分析。
  • 通过自动化验证 Tizen 应用商店中应用程序的安全属性,减少对基于权限检查的依赖,从而降低误报率。
  • 通过识别绕过关键安全检查的库路径,支持系统级安全加固。
  • 构建一种通用、可重用的分析基础设施,可通过 LLVM 前端扩展至其他编程语言。

提出的方法

  • 基于 LLVM 基础设施构建自定义静态分析引擎,对 Tizen 的原生代码库执行全系统分析。
  • 扩展 LLVM 的分析能力,以高精度处理 C++ 中的复杂特性,如继承和函数指针使用。
  • 实现全程序信息流分析,以检测来自用户联系人等敏感数据源到网络调用等不可信输出的数据泄露。
  • 对系统库执行控制流分析,识别绕过安全检查的执行路径,表明潜在漏洞。
  • 仅在必要时使用可信代码注解引导分析,减少误报,确保开发者能够实际采纳。
  • 利用堆 SSA 形式建模对象特定的数据流,相比传统污点跟踪方法提升了精度。

实验结果

研究问题

  • RQ1全系统静态分析方法能否检测出 Tizen 系统库中绕过安全检查的先前未知安全缺陷?
  • RQ2基于 LLVM 的信息流分析在识别 Tizen 应用中危险数据流的同时,能否有效降低误报率?
  • RQ3静态分析在多大程度上能够检测由不安全的 C/C++ 习语(如函数指针覆写或缓冲区溢出)引发的漏洞?
  • RQ4将静态分析集成到 Tizen 应用商店流水线中,能否在不完全依赖基于权限检查的前提下提升安全验证能力?
  • RQ5如何使静态分析在可扩展性和精确性方面足够强大,以分析 Tizen 原生代码库这类大型复杂系统?

主要发现

  • 分析发现了 Tizen 系统库中多条因缺少安全检查而可能导致被利用的路径,表明存在潜在缺陷。
  • 后续的手动分析确认,高层软件层通常会补偿这些缺失的检查,因此在实际中并未导致可利用的漏洞。
  • 信息流分析成功识别出从敏感数据源(如用户联系人)到不可信输出(如网络调用)的非平凡数据流,可能带来隐私风险。
  • 扩展后的 LLVM 基础设施在处理 C++ 特性(如继承和函数指针)方面实现了高精度,支持了准确的静态分析。
  • 该工具链展现出强大的可扩展性,能够对 Tizen 代码库的相当大一部分实现完整分析。
  • 作者预计,其分析的高精度可在未来支持代码优化,例如将动态分发替换为静态调用,从而提升性能。

更好的研究,从现在开始

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

无需绑定信用卡

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