Falska larm, riktiga problem : En utvärdering av statiska kodanalysverktyg

Static analysis tools are widely used to detect vulnerabilities in C/C++ code, yet their effectiveness across realistic and synthetic datasets remains underexplored. This thesis systematically evaluates five prominent static analysis tools: Cppcheck, Flawfinder, Semgrep, Clang-Tidy, and Snyk Code. The evaluation was done using two contrasting datasets: the Juliet Test Suite, offering synthetic examples with clearly labeled vulnerabilities, and PrimeVul, providing real-world vulnerable functions paired with their corresponding patches. An evaluation system was implemented, including automated build support across diverse open-source projects, tool output normalization, and metric-based classification of results. Performance was assessed using many metrics, such as Precision, Recall, F1, pair-wise comparative measures, and the Matthews Correlation Coefficient. The results reveal that all tools perform relatively poorly on the synthetic dataset and really poorly on the realistic dataset. This highlights the need for tool improvement and dataset improvements, as well as the importance of dataset diversity in benchmarking static analysis tools.

Publication Details

Journal
KTH Publication Database DiVA (KTH Royal Institute of Technology)
Published
2025-01-01
Primary Topic
Web Application Security Vulnerabilities
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Falska larm, riktiga problem : En utvärdering av statiska kodanalysverktyg

KTH Publication Database DiVA (KTH Royal Institute of Technology)
Web Application Security Vulnerabilities
article

Falska larm, riktiga problem : En utvärdering av statiska kodanalysverktyg

article en

Abstract

Static analysis tools are widely used to detect vulnerabilities in C/C++ code, yet their effectiveness across realistic and synthetic datasets remains underexplored. This thesis systematically evaluates five prominent static analysis tools: Cppcheck, Flawfinder, Semgrep, Clang-Tidy, and Snyk Code. The evaluation was done using two contrasting datasets: the Juliet Test Suite, offering synthetic examples with clearly labeled vulnerabilities, and PrimeVul, providing real-world vulnerable functions paired with their corresponding patches. An evaluation system was implemented, including automated build support across diverse open-source projects, tool output normalization, and metric-based classification of results. Performance was assessed using many metrics, such as Precision, Recall, F1, pair-wise comparative measures, and the Matthews Correlation Coefficient. The results reveal that all tools perform relatively poorly on the synthetic dataset and really poorly on the realistic dataset. This highlights the need for tool improvement and dataset improvements, as well as the importance of dataset diversity in benchmarking static analysis tools.

KTH Publication Database DiVA (KTH Royal Institute of Technology)
Openalex Percentile: Top 35%
Web Application Security Vulnerabilities
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Falska larm, riktiga problem : En utvärdering av statiska kodanalysverktyg · KTH Publication Database DiVA (KTH Royal Institute of Technology) (2025) | TGRS Research Map | TGRS