Fade to Grey: Tuning Static Program Analysis

被引:3
作者
Fehnker, Ansgar [1 ]
Huuck, Ralf [1 ]
Seefried, Sean [1 ]
Tapp, Michael [1 ]
机构
[1] Univ New South Wales, Natl ICT Australia Ltd NICTA, Locked Bag 6016, Sydney, NSW 1466, Australia
基金
澳大利亚研究理事会;
关键词
Source code analysis; static analysis; C/C++; false positive reduction; case study; Firefox;
D O I
10.1016/j.entcs.2010.08.046
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Static program analysis complements traditional dynamic testing by discovering generic patterns and relations in source code, which indicate software deficiencies such as memory corruption, unexpected program behavior and memory leaks. Since static program analysis builds on approximations of a program's concrete behavior there is often a trade-off between reporting potential bugs that might be the result of an over-approximation and silently suppressing those defects in that grey area. While this trade-off is less important for small files it has severe implications when facing large software packages, i.e., 1, 000, 000 LoC and more. In this work we report on experiences with using our static C/C++ analyzer Goanna on such large software systems, motivate why a flexible property specification language is vital, and present a number of decisions that had to be made to select the right checks as well as a sensible reporting strategy. We illustrate our findings by empirical data obtained from regularly analyzing the Firefox source code.
引用
收藏
页码:17 / 32
页数:16
相关论文
共 50 条
  • [31] Static analyzer Svace for finding defects in a source program code
    Ivannikov, V. P.
    Belevantsev, A. A.
    Borodin, A. E.
    Ignatiev, V. N.
    Zhurikhin, D. M.
    Avetisyan, A. I.
    PROGRAMMING AND COMPUTER SOFTWARE, 2014, 40 (05) : 265 - 275
  • [32] Static analyzer Svace for finding defects in a source program code
    V. P. Ivannikov
    A. A. Belevantsev
    A. E. Borodin
    V. N. Ignatiev
    D. M. Zhurikhin
    A. I. Avetisyan
    Programming and Computer Software, 2014, 40 : 265 - 275
  • [33] Automatic Hierarchical Clustering of Static Call Graphs for Program Comprehension
    Gharibi, Gharib
    Alanazi, Rakan
    Lee, Yugyung
    2018 IEEE INTERNATIONAL CONFERENCE ON BIG DATA (BIG DATA), 2018, : 4016 - 4025
  • [34] Are a Static Analysis Tool Study's Findings Static? A Replication
    Liu, David
    Calver, Jonathan
    Craig, Michelle
    PROCEEDINGS OF THE 2024 CONFERENCE INNOVATION AND TECHNOLOGY IN COMPUTER SCIENCE EDUCATION, VOL 1, ITICSE 2024, 2024, : 80 - 86
  • [35] The Static Analysis of WannaCry Ransomware
    Hsiao, Shou-Ching
    Kao, Da-Yu
    2018 20TH INTERNATIONAL CONFERENCE ON ADVANCED COMMUNICATION TECHNOLOGY (ICACT), 2018, : 153 - 158
  • [36] Static Analysis of Model Transformations
    Sanchez Cuadrado, Jesus
    Guerra, Esther
    de lara, Juan
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2017, 43 (09) : 868 - 897
  • [37] Towards a Resident Static Analysis
    Menshikov, Maxim
    COMPUTATIONAL SCIENCE AND ITS APPLICATIONS - ICCSA 2019, PT II: 19TH INTERNATIONAL CONFERENCE, SAINT PETERSBURG, RUSSIA, JULY 1-4, 2019, PROCEEDINGS, PART II, 2019, 11620 : 62 - 71
  • [38] Datalog Static Analysis in Secrecy
    Kouhounestani, Mojgan
    Lee, Woosuk
    IEEE ACCESS, 2022, 10 : 56179 - 56192
  • [39] Static analysis for syntax objects
    Fisher, David
    Shivers, Olin
    ACM SIGPLAN NOTICES, 2006, 41 (09) : 111 - 121
  • [40] Static Analysis of ROP Code
    D'Elia, Daniele Cono
    Coppa, Emilio
    Salvati, Andrea
    Demetrescu, Camil
    PROCEEDINGS OF THE 12TH EUROPEAN WORKSHOP ON SYSTEMS SECURITY (EUROSEC 2019), 2019,