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 条
  • [1] STATIC VERIFICATION OF PROCEDURE CALLS
    SAMOILOV, VY
    PROGRAMMING AND COMPUTER SOFTWARE, 1984, 10 (03) : 134 - 139
  • [2] Studying the Influence of Static API Calls for Hiding Malware
    Martin, Alejandro
    Menendez, Hector D.
    Camacho, David
    ADVANCES IN ARTIFICIAL INTELLIGENCE, CAEPIA 2016, 2016, 9868 : 363 - 372
  • [3] Apicula: Static detection of API calls in generic streams of bytes
    D'Onghia, Mario
    Salvadore, Matteo
    Nespoli, Benedetto Maria
    Carminati, Michele
    Polino, Mario
    Zanero, Stefano
    COMPUTERS & SECURITY, 2022, 119
  • [4] STATIC DETECTION OF ANDROID MALWARE BY USING PERMISSIONS AND API CALLS
    Chan, Patrick P. K.
    Song, Wen-Kai
    PROCEEDINGS OF 2014 INTERNATIONAL CONFERENCE ON MACHINE LEARNING AND CYBERNETICS (ICMLC), VOL 1, 2014, : 82 - 87
  • [5] Multiclass Malware Classification Using Either Static Opcodes or Dynamic API Calls
    Chanajitt, Rajchada
    Pfahringer, Bernhard
    Gomes, Heitor Murilo
    Yogarajan, Vithya
    AI 2022: ADVANCES IN ARTIFICIAL INTELLIGENCE, 2022, 13728 : 427 - 441
  • [6] A formal verification framework for static analysis
    Albert, Elvira
    Bubel, Richard
    Genaim, Samir
    Haehnle, Reiner
    Puebla, German
    Roman-Diez, Guillermo
    SOFTWARE AND SYSTEMS MODELING, 2016, 15 (04): : 987 - 1012
  • [7] EstiDroid: Estimate API Calls of Android Applications Using Static Analysis Technology
    Fan, Wenhao
    Zhang, Daishuai
    Chen, Ye
    Wu, Fan
    Liu, Yuan'an
    IEEE ACCESS, 2020, 8 (08): : 105384 - 105398
  • [8] Automated static analysis and classification of Android malware using permission and API calls models
    Skovoroda, Anastasia
    Gamayunov, Dennis
    2017 15TH ANNUAL CONFERENCE ON PRIVACY, SECURITY AND TRUST (PST), 2017, : 243 - 252
  • [9] API-MalDetect: Automated malware detection framework for windows based on API calls and deep learning techniques
    Maniriho, Pascal
    Mahmood, Abdun Naser
    Chowdhury, Mohammad Jabed Morshed
    JOURNAL OF NETWORK AND COMPUTER APPLICATIONS, 2023, 218
  • [10] A UML-based static verification framework for security
    Igor Siveroni
    Andrea Zisman
    George Spanoudakis
    Requirements Engineering, 2010, 15 : 95 - 118