Analyzing system software components using API model guided symbolic execution

被引:3
|
作者
Yavuz, Tuba [1 ]
Bai, Ken [2 ]
机构
[1] Univ Florida, ECE Dept, Benton 321, Gainesville, FL 32611 USA
[2] Univ Florida, ECE Dept, Larsen 234, Gainesville, FL 32611 USA
基金
美国国家科学基金会;
关键词
Symbolic execution; API modeling; Specification; CHECKING;
D O I
10.1007/s10515-020-00276-5
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Analyzing real-world software is challenging due to complexity of the software frameworks or APIs they depend on. In this paper, we present a tool, PROMPT, that facilitates the analysis of software components usingAPI model guided symbolic execution. PROMPT has a specification component, PROSE, that lets users define an API model, which consists of a set of data constraints and life-cycle rules that define control-flow constraints among sequentially composed API functions. Given a PROSE model and a software component, PROMPT symbolically executes the component while enforcing the specified API model. PROMPT has been implemented on top of the KLEE symbolic execution engine and has been applied to Linux device drivers from the video, sound, and network subsystems and to some vulnerable components of BlueZ, the implementation of the Bluetooth protocol stack for the Linux kernel. PROMPT detected two new and four known memory vulnerabilities in some of the analyzed system software components.
引用
收藏
页码:329 / 367
页数:39
相关论文
共 50 条
  • [1] Analyzing system software components using API model guided symbolic execution
    Tuba Yavuz
    Ken (Yihang) Bai
    Automated Software Engineering, 2020, 27 : 329 - 367
  • [2] Detecting Hardware Trojans using Model Guided Symbolic Execution
    Dai, Ruochen
    Yavuz, Tuba
    PROCEEDING OF THE GREAT LAKES SYMPOSIUM ON VLSI 2024, GLSVLSI 2024, 2024, : 569 - 573
  • [3] Analyzing Network Protocol Binary Software with Joint Symbolic Execution
    Wen, Shameng
    Feng, Chao
    Meng, Qingkun
    Zhang, Bin
    Wu, Ligeng
    Tang, Chaojing
    2016 3RD INTERNATIONAL CONFERENCE ON SYSTEMS AND INFORMATICS (ICSAI), 2016, : 738 - 742
  • [4] SECloud: Binary Analyzing Using Symbolic Execution in the Cloud
    Zhou, Lin
    Gan, ShuiTao
    Qin, XiaoJun
    Han, WenBao
    2013 INTERNATIONAL CONFERENCE ON ADVANCED CLOUD AND BIG DATA (CBD), 2013, : 58 - 63
  • [5] Embedded software verification using symbolic execution and uninterpreted functions
    Currie, D
    Feng, XS
    Fujita, M
    Hu, AJ
    Kwan, M
    Rajan, S
    INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2006, 34 (01) : 61 - 91
  • [6] Embedded Software Verification Using Symbolic Execution and Uninterpreted Functions
    David Currie
    Xiushan Feng
    Masahiro Fujita
    Alan J. Hu
    Mark Kwan
    Sreeranga Rajan
    International Journal of Parallel Programming, 2006, 34 : 61 - 91
  • [7] Interoperability-Guided Testing of QUIC Implementations using Symbolic Execution
    Rath, Felix
    Schemmel, Daniel
    Wehrle, Klaus
    EPIQ'18: PROCEEDINGS OF THE 2018 WORKSHOP ON THE EVOLUTION, PERFORMANCE, AND INTEROPERABILITY OF QUIC, 2018, : 15 - 21
  • [8] Automated Search for Vulnerabilities in ARM Software Using Dynamic Symbolic Execution
    T. D. Ovasapyan
    P. V. Knyazev
    D. A. Moskvin
    Automatic Control and Computer Sciences, 2021, 55 : 932 - 940
  • [9] Automated Compatibility Testing Method for Software Logic by Using Symbolic Execution
    Uetsuki, Keiji
    Matsuodani, Tohru
    Tsuda, Kazuhiko
    2015 IEEE EIGHTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS (ICSTW), 2015,
  • [10] Integration Testing of Software Product Lines Using Compositional Symbolic Execution
    Shi, Jiangfan
    Cohen, Myra B.
    Dwyer, Matthew B.
    FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, FASE 2012, 2012, 7212 : 270 - 284