Static analysis of source code security: Assessment of tools against SAMATE tests

被引:33
|
作者
Diaz, Gabriel [1 ]
Ramon Bermejo, Juan [2 ,3 ]
机构
[1] Spanish Distance Univ, UNED, Elect Elect & Control Engn Dept, Madrid 28040, Spain
[2] Base Aerea Torrejon de Ardoz, Commun & Comp Squadron Core Command, Madrid 22800, Spain
[3] Base Aerea Torrejon de Ardoz, Control Grp Spanish Air Forces Air Def Syst, Madrid 22800, Spain
关键词
Security tools; Vulnerability; Quality analysis and evaluation; Software/program verification; Security development lifecycle;
D O I
10.1016/j.infsof.2013.02.005
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Context: Static analysis tools are used to discover security vulnerabilities in source code. They suffer from false negatives and false positives. A false positive is a reported vulnerability in a program that is not really a security problem. A false negative is a vulnerability in the code which is not detected by the tool. Objective: The main goal of this article is to provide objective assessment results following a well-defined and repeatable methodology that analyzes the performance detecting security vulnerabilities of static analysis tools. The study compares the performance of nine tools (CBMC, K8-Insight, PC-lint, Prevent, Satabs, SCA, Goanna, Cx-enterprise, Codesonar), most of them commercials tools, having a different design. Method: We executed the static analysis tools against SAMATE Reference Dataset test suites 45 and 46 for C language. One includes test cases with known vulnerabilities and the other one is designed with specific vulnerabilities fixed. Afterwards, the results are analyzed by using a set of well known metrics. Results: Only SCA is designed to detect all vulnerabilities considered in SAMATE. None of the tools detect "cross-site scripting" vulnerabilities. The best results for F-measure metric are obtained by Prevent, SCA and K8-Insight. The average precision for analyzed tools is 0.7 and the average recall is 0.527. The differences between all tools are relevant, detecting different kinds of vulnerabilities. Conclusions: The results provide empirical evidences that support popular propositions not objectively demonstrated until now. The methodology is repeatable and allows ranking strictly the analyzed static analysis tools, in terms of vulnerabilities coverage and effectiveness for detecting the highest number of vulnerabilities having few false positives. Its use can help practitioners to select appropriate tools for a security review process of code. We propose some recommendations for improving the reliability and usefulness of static analysis tools and the process of benchmarking. (C) 2013 Elsevier B.V. All rights reserved.
引用
收藏
页码:1462 / 1476
页数:15
相关论文
共 50 条
  • [1] A Proposal for Source Code Assessment Through Static Analysis
    de Souza, Ricardo Lemos
    Ferreira, Fabiana Zaffalon
    Botelho, Silvia da Silva
    [J]. 2020 IEEE FRONTIERS IN EDUCATION CONFERENCE (FIE 2020), 2020,
  • [2] Comparative Analysis of Open-Source Tools for Conducting Static Code Analysis
    Kuszczynski, Kajetan
    Walkowski, Michal
    [J]. SENSORS, 2023, 23 (18)
  • [3] Analysis of the Tools for Static Code Analysis
    Nikolic, Danilo
    Stefanovic, Darko
    Dakic, Dusanka
    Sladojevic, Srdan
    Ristic, Sonja
    [J]. 2021 20TH INTERNATIONAL SYMPOSIUM INFOTEH-JAHORINA (INFOTEH), 2020,
  • [4] Identifying Security Relevant Warnings from Static Code Analysis Tools through Code Tainting
    Baca, Dejan
    [J]. FIFTH INTERNATIONAL CONFERENCE ON AVAILABILITY, RELIABILITY, AND SECURITY: ARES 2010, PROCEEDINGS, 2010, : 386 - 390
  • [5] Combinatorial Method with Static Analysis for Source Code Security in Web Applications
    Higuera, Juan Ramon Bermejo
    Higuera, Javier Bermejo
    Montalvo, Juan Antonio Sicilia
    Riera, Tomas Sureda
    Argyros, Christopher I.
    Magrenan, A. Alberto
    [J]. CMES-COMPUTER MODELING IN ENGINEERING & SCIENCES, 2021, 129 (02): : 541 - 565
  • [6] Application of source code static analysis methods to ensure security of APCS
    Knysh, Alexander, V
    Kobzev, Dmitry A.
    Davidenko, Oksana N.
    Detistov, Sergey A.
    Shechev, Ivan A.
    Khenerina, Alyona A.
    Ulyashev, Ivan I.
    [J]. NAUKA I TEHNOLOGII TRUBOPROVODNOGO TRANSPORTA NEFTI I NEFTEPRODUKTOV-SCIENCE & TECHNOLOGIES-OIL AND OIL PRODUCTS PIPELINE TRANSPORTATION, 2021, 11 (03): : 346 - 356
  • [7] Code Analysis for Software and System Security Using Open Source Tools
    Chahar, Chandrapal
    Chauhan, Vishal Singh
    Das, Manik Lal
    [J]. INFORMATION SECURITY JOURNAL, 2012, 21 (06): : 346 - 352
  • [8] Comparison of Static Code Analysis Tools
    Mantere, Matti
    Uusitalo, Ilkka
    Roning, Juha
    [J]. 2009 THIRD INTERNATIONAL CONFERENCE ON EMERGING SECURITY INFORMATION, SYSTEMS, AND TECHNOLOGIES, 2009, : 15 - +
  • [9] Analyzing False Positive Source Code Vulnerabilities Using Static Analysis Tools
    Cheirdari, Foteini
    Karabatis, George
    [J]. 2018 IEEE INTERNATIONAL CONFERENCE ON BIG DATA (BIG DATA), 2018, : 4782 - 4788
  • [10] Source Code Verification Tools for Software Security Bugs
    Michaud, Frederic
    Painchaud, Frederic
    [J]. NEW TRENDS IN SOFTWARE METHODOLOGIES, TOOLS AND TECHNIQUES, 2006, 147 : 231 - 241