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 条
  • [31] A formal verification framework for static analysis: As well as its instantiation to the resource analyzer COSTA and formal verification tool KeY
    Albert E.
    Bubel R.
    Genaim S.
    Hähnle R.
    Puebla G.
    Román-Díez G.
    Román-Díez, Guillermo (groman@fi.upm.es), 2016, Springer Verlag (15): : 987 - 1012
  • [32] Exploring Behavioral Aspects of API calls for Malware Identification and Categorization
    Uppal, Dolly
    Sinha, Rakhi
    Mehra, Vishakha
    Jain, Vinesh
    2014 6TH INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND COMMUNICATION NETWORKS, 2014, : 824 - 828
  • [33] A New Mobile Botnet Classification based on Permission and API Calls
    Yusof, Muhammad
    Saudi, Madihah Mohd
    Ridzuan, Farida
    2017 SEVENTH INTERNATIONAL CONFERENCE ON EMERGING SECURITY TECHNOLOGIES (EST), 2017, : 121 - 126
  • [34] A Dynamic Malware Detection Approach by Mining the Frequency of API Calls
    Bai, Jinrong
    An, Zhenzhou
    Zou, Guozhong
    Mu, Shiguang
    COMPUTER AND INFORMATION TECHNOLOGY, 2014, 519-520 : 309 - 312
  • [35] Hovione calls for better EU inspection system for API plants
    Scott, A
    CHEMICAL WEEK, 2004, 166 (38) : 24 - 24
  • [36] API Conformance Verification for Java']Java Programs
    Li, Xin
    Hoover, H. James
    Rudnicki, Piotr
    FORMAL METHODS AND SOFTWARE ENGINEERING, 2010, 6447 : 188 - 203
  • [37] Verification of concurrent objects with asynchronous method calls
    Dovland, J
    Johnsen, EB
    Owe, O
    IEEE INTERNATIONAL CONFERENCE ON SOFTWARE - SCIENCE, TECHNOLOGY AND ENGINEERING, PROCEEDINGS, 2005, : 141 - 150
  • [38] A static API birthmark for Windows binary executables
    Choi, Seokwoo
    Park, Heewan
    Lim, Hyun-il
    Han, Taisook
    JOURNAL OF SYSTEMS AND SOFTWARE, 2009, 82 (05) : 862 - 873
  • [39] Exploiting JCVM on Smart Cards Using Forged References in the API Calls
    Volokitin, Sergei
    SMART CARD RESEARCH AND ADVANCED APPLICATIONS, CARDIS 2018, 2019, 11389 : 186 - 199
  • [40] Android Malware Detection Method Based on Permission Complement and API Calls
    Yang, Jiyun
    Tang, Jiang
    Yan, Ran
    Xiang, Tao
    CHINESE JOURNAL OF ELECTRONICS, 2022, 31 (04) : 773 - 785