A framework for the static verification of API calls

被引:6
|
作者
Spinellis, Diomidis [1 ]
Louridas, Panagiotis [1 ]
机构
[1] Athens Univ Economist & Business, Dept Management Sci & Technol, GR-10434 Athens, Greece
关键词
static analysis; API; library; programming by contract; FindBugs;
D O I
10.1016/j.jss.2006.09.040
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
A number of tools can statically check program code to identify commonly encountered bug patterns. At the same time, programs are increasingly relying on external APIS for performing the bulk of their work: the bug-prone program logic is being fleshed-out, and many errors involve tricky subroutine calls to the constantly growing set of external libraries. Extending the static analysis tools to cover the available APIS is an approach that replicates scarce human effort across different tools and does not scale. Instead, we propose moving the static API call verification code into the API implementation, and distributing the verification code together with the library proper. We have designed a framework for providing static verification code together with Java classes, and have extended the FindBugs static analysis tool to check the corresponding method invocations. To validate our approach we wrote verification tests for 100 different methods, and ran FindBugs on 6.9 million method invocations on what amounts to about 13 million lines of production-quality code. In the set of 55 thousand method invocations that could potentially be statically verified our approach identified 800 probable errors. (C) 2006 Elsevier Inc. All rights reserved.
引用
收藏
页码:1156 / 1168
页数:13
相关论文
共 50 条
  • [41] Recommending API Function Calls and Code Snippets to Support Software Development
    Nguyen, Phuong T.
    Di Rocco, Juri
    Di Sipio, Claudio
    Di Ruscio, Davide
    Di Penta, Massimiliano
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2021, 48 (07) : 2417 - 2438
  • [42] MapperDroid: Verifying app capabilities from description to permissions and API calls
    Solanki, Rajendra Kumar
    Laxmi, Vijay
    Bezawada, Bruhadeshwar
    Gaur, Manoj Singh
    COMPUTERS & SECURITY, 2021, 111
  • [43] Android Malware Detection based on Useful API Calls and Machine Learning
    Jung, Jaemin
    Kim, Hyunjin
    Shin, Dongjin
    Lee, Myeonggeon
    Lee, Hyunjae
    Cho, Seong-je
    Suh, Kyoungwon
    2018 IEEE FIRST INTERNATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE AND KNOWLEDGE ENGINEERING (AIKE), 2018, : 175 - 178
  • [44] Android Malware Detection Method Based on Permission Complement and API Calls
    YANG Jiyun
    TANG Jiang
    YAN Ran
    XIANG Tao
    Chinese Journal of Electronics, 2022, (04) : 773 - 785
  • [45] FOCUS: A Recommender System for Mining API Function Calls and Usage Patterns
    Nguyen, Phuong T.
    Di Rocco, Juri
    Di Ruscio, Davide
    Ochoa, Lina
    Degueule, Thomas
    Di Penta, Massimiliano
    Proceedings - International Conference on Software Engineering, 2019, 2019-May : 1050 - 1060
  • [46] Measuring the Declared SDK Versions and Their Consistency with API Calls in Android Apps
    Wu, Daoyuan
    Liu, Ximing
    Xu, Jiayun
    Lo, David
    Gao, Debin
    WIRELESS ALGORITHMS, SYSTEMS, AND APPLICATIONS, WASA 2017, 2017, 10251 : 678 - 690
  • [47] DroidMat: Android Malware Detection through Manifest and API Calls Tracing
    Wu, Dong-Jie
    Mao, Ching-Hao
    Wei, Te-En
    Lee, Hahn-Ming
    Wu, Kuo-Ping
    PROCEEDINGS OF THE 2012 SEVENTH ASIA JOINT CONFERENCE ON INFORMATION SECURITY (ASIAJCIS 2012), 2012, : 62 - 69
  • [48] API's Gerard calls Obama's OCS strategy 'positive'
    Dittrick, Paula
    OIL & GAS JOURNAL, 2010, 108 (16) : 38 - 38
  • [49] Machine Learning for Android Malware Detection Using Permission and API Calls
    Peiravian, Naser
    Zhu, Xingquan
    2013 IEEE 25TH INTERNATIONAL CONFERENCE ON TOOLS WITH ARTIFICIAL INTELLIGENCE (ICTAI), 2013, : 300 - 305
  • [50] A Robust Malware Detection System Using Deep Learning on API Calls
    Liu, Yingying
    Wang, Yiwei
    PROCEEDINGS OF 2019 IEEE 3RD INFORMATION TECHNOLOGY, NETWORKING, ELECTRONIC AND AUTOMATION CONTROL CONFERENCE (ITNEC 2019), 2019, : 1456 - 1460