Résumé IA · arXiv: 2611.03742v1 · cs.CR

Fixed Detectors, Moving Code: How Well Do Static Security Analyzers Hold Up over a Decade of C/C++ Evolution?

Junhua Tang, Zhengsong Zhang. Haipeng Cai
Article original Soumis à arXiv le 02 Nov. 2026 Licence : NONEXCLUSIVE-DISTRIB 1.0 Aussi en : en

Comment lire ce résumé ? Guide illustré

L’essentiel

Les performances temporelles des analyseurs SAST dépendent du détecteur et de la couverture; les scores agrégés peuvent refléter des alertes incidentes ou des analyses dégradées plutôt qu’une meilleure détection.

Question

Les analyseurs SAST conservent-ils leur efficacité lorsque le code C/C++ évolue, et quels facteurs expliquent les variations observées? L’étude cherche aussi à distinguer les changements temporels des effets de composition des projets, des défauts de couverture et des échecs d’exécution.

Méthode

Les auteurs évaluent 20 000 cas vulnérables ou corrigés, issus de 1 116 projets et datés de 2016 à 2025, avec sept conditions de détection: trois versions de CodeQL, trois d’Infer et une configuration Semgrep. Ils comparent les populations annuelles, des paires d’années appariées par projet et étiquette (45 paires, 100 répétitions), puis des trajectoires au sein de 202 projets; ils examinent aussi des cas de forte baisse à partir des correctifs et des résultats d’exécution.

Résultats

  • Résultat Les F1 globaux vont de 0,066 à 0,478, tandis que les AUROC fondés sur les nombres d’alertes restent proches du hasard, entre 0,495 et 0,526.
    Voir le passage dans l’article
    Under our changed-file case-label scoring, the overall F1 of these tools ranges from 0.066 to 0.478, yet every overall count-based AUROC lies between 0.495 and 0.526.
  • Résultat Pour CodeQL R2024, la différence moyenne de F1 entre année tardive et année précoce est négative pour chacun des neuf écarts temporels étudiés.
    Voir le passage dans l’article
    Across the full project-matched year-pair analysis, the mean later-minus-earlier F1 for CodeQL R2024 is negative at every source-year gap, whereas Infer v1.1 and v1.3 are positive at every gap.
  • Interprétation des auteurs Les hausses de F1 des versions récentes de CodeQL s’accompagnent de hausses parallèles du rappel et du taux de faux positifs, sans meilleure séparation des étiquettes.
    Voir le passage dans l’article
    For CodeQL, higher F1 in newer releases is accompanied by nearly parallel increases in recall and false-positive rate, rather than better vulnerable/fixed separation.
  • Résultat Dans les cas de baisse sélectionnés, seule une faible part des alertes d’Infer ou de CodeQL touche une ligne modifiée par le correctif; aucun positif Semgrep n’atteint le correctif étiqueté.
    Voir le passage dans l’article
    In the selected drops, only 6 of 39 CodeQL findings and 2 of 620 Infer findings touch a changed repair line, no Semgrep positive reaches the labelled repair, and 11 of 20 Semgrep vulnerable/fixed groups are scored on disjoint files.
  • Résultat Un statut d’exécution réussi peut masquer une analyse dégradée, comme le montrent les diagnostics de parsing ou de délai d’attente enregistrés par Semgrep.
    Voir le passage dans l’article
    78.96% of Semgrep cases carry parser or timeout diagnostics although every run reports success.

Limites

  • Les résultats des comparaisons entre versions ne permettent pas d’isoler l’effet propre de la version du moteur, car plusieurs composantes du détecteur changent ensemble.
    Voir le passage dans l’article
    Because engine, rules, extraction, and recovery change together, our comparisons across releases are descriptive. They do not isolate a pure engine-version effect, and we never read them as an estimate of what a version upgrade does.
  • Les études de trajectoires reposent sur des cohortes restreintes et des pentes descriptives, qui ne constituent pas des tests de significativité par projet.
    Voir le passage dans l’article
    These slopes are descriptive summaries rather than per-project significance tests; some project-year cells are small, which is why we report the nested $\geq$5-year cohort and the underlying support alongside slope directions.
  • Les cas extrêmes examinés qualitativement ne permettent pas d’estimer la fréquence des mécanismes observés dans l’ensemble du corpus.
    Voir le passage dans l’article
    The selected cases are extremes, so the table describes which mechanisms exist, not how often they occur.

Portée

Les auteurs soutiennent que la durabilité temporelle des outils SAST doit être évaluée pour une condition de détection fixe, en contrôlant la composition des projets et en reliant les alertes aux correctifs. Il faut aussi documenter la couverture, les analyses dégradées, les échecs et les coûts, car un score agrégé seul peut donner une image trompeuse de la détection.

Rédigé par une IA à partir de l’article. Les passages cités sont vérifiés mot pour mot dans le texte analysé ; le reste peut contenir des erreurs.

Mots clés générés par l'IA : analyse statique sécurité logicielle vulnérabilités évaluation temporelle faux positifs

Pour aller plus loin

  • Résumé Complet
  • Résumé vulgarisé
  • Article de blog
  • Abstract original
L’article étudie la durabilité des analyseurs statiques de sécurité dans le temps. Il cherche à déterminer si un détecteur continue de repérer les vulnérabilités à mesure que les programmes évoluent, tout en analysant le code dans des conditions de coût acceptables. Les auteurs soulignent qu’un score élevé ne signifie pas nécessairement qu’un outil détecte mieux les défauts : des alertes sans rapport avec les réparations peuvent être comptabilisées comme des détections, tandis que des problèmes de compilation, d’extraction ou d’analyse peuvent rendre les résultats incomplets sans que le statut du programme l’indique. L’étude porte sur 20 000 cas vulnérables ou corrigés, issus de 1 116 projets C/C++ et couvrant des années de code allant de 2016 à 2025. Elle compare sept configurations : trois versions de CodeQL (2021, 2024 et 2026), trois versions d’Infer (1.1, 1.2 et 1.3) et une configuration de Semgrep comprenant 170 règles. Les auteurs comptabilisent les alertes dans les fichiers modifiés, puis calculent notamment la précision, le rappel, le score F1, le taux de faux positifs et l’aire sous la courbe ROC (AUROC) à partir du nombre d’alertes. L’évaluation comprend également trois analyses : les populations annuelles, des paires d’années appariées selon le projet et les étiquettes « vulnérable » ou « corrigé », ainsi que les trajectoires observées au sein des mêmes projets. Enfin, les auteurs examinent les baisses de score en les confrontant aux correctifs, à l’emplacement des alertes, aux règles utilisées et aux journaux d’exécution. Les scores F1 globaux vont de 0,066 pour Infer 1.1 à 0,478 pour Semgrep. Pourtant, les AUROC calculées à partir du nombre d’alertes restent proches du hasard, entre 0,495 et 0,526. Pour CodeQL, le score F1 passe de 0,123 avec la version 2021 à 0,208 avec la version 2024, puis à 0,292 avec la version 2026. Toutefois, le rappel et le taux de faux positifs augmentent presque parallèlement. Les nouvelles versions signalent donc davantage de cas vulnérables, mais aussi davantage de cas corrigés, sans mieux distinguer les deux catégories. Infer 1.2 obtient les meilleurs résultats de sa famille, avec un score F1 de 0,177 et une AUROC de 0,526, devant les versions 1.1 et 1.3. Semgrep affiche le score F1 le plus élevé, mais son rappel (0,465) est inférieur à son taux de faux positifs (0,479), et son AUROC s’établit à 0,495. Une seule règle générique portant sur l’utilisation de `memset` génère 63 % des alertes admissibles et s’applique presque aussi souvent aux cas vulnérables qu’aux cas corrigés. Les analyses temporelles produisent des résultats contrastés. Dans les comparaisons appariées, CodeQL 2024 présente un changement moyen de F1 négatif pour chacun des neuf écarts temporels, atteignant −0,162 pour l’écart le plus important. Ce profil ne traduit toutefois pas une baisse régulière d’une année à l’autre.

Cette synthèse vous a-t-elle été utile ?

Note : 0

Pourquoi avons-nous besoin de votes ?

Les votes sont utilisés pour déterminer si nous devons réexécuter nos outils de synthèse. Si le compte atteint -10, nos outils peuvent être redémarrés.

Figures et graphiques

Posez une question sur une figure en indiquant son numéro ou en utilisant son bouton de question pour demander une analyse visuelle. Au maximum deux figures et quatre panneaux par question. Les valeurs lues sur les graphiques sont approximatives ; vérifiez les données originales.

Instructions pour utiliser l'assistant IA ?

Outils pour cet article

Expliquer autrement 1 réécriture gratuite restante aujourd'hui
Enregistrer dans une collection Regroupez des articles en collections pour les comparer, les interroger et les exporter. Continuer avec Google Créer un compte gratuit Se connecter

Outils avancés Premium

Pour suivre un domaine de près : alertes de citations, diapositives de journal club, comparaison des versions et envoi vers Zotero. Découvrir Premium

Zotero
Alertes de citation Guide des alertes de citations
Lettre hebdomadaire Présenté dans « Informatique hors IA cette semaine » du 9 novembre 2026. Informatique hors IA cette semaine : des preuves aux épreuves du réel

Les articles autour de celui-ci

Les voir sur une carte

Classés selon la proximité de leur titre et de leur résumé avec ceux de cet article. Sélectionnez-en pour les lire ensemble.

Les articles les plus proches

  1. Très proche Même question Cité par cet article
    Longitudinal Analyses of SAST Tools: A CodeQL Case Study
    Jean-Charles Noirot Ferrand, Kyle Domico, Yohan Beugin et al. · 2026 · arXiv.org · preprint, non relu par les pairs · cité 1 fois · Pas encore résumé

    Longitudinal Analyses of SAST Tools étudie l’efficacité de CodeQL sur des dépôts open source au fil du temps, comme cette étude sur la stabilité temporelle des analyseurs SAST.

    Résumé scientifique

    Open-source software (OSS) pipelines rely on automated static analysis tools to prevent the introduction of vulnerabilities in code. However, there is limited understanding of the efficacy of these tools across the OSS ecosystem over time. In this paper, we introduce a novel method to evaluate static application security testing (SAST) tools through longitudinal measurements and perform the largest academic study of CodeQL -- the most prevalent static analysis tool from GitHub -- on OSS codebases. We apply our apparatus on 114 versions of CodeQL over time on 3993 CVEs from 1622 repositories to measure key properties of the tool, culminating in more than 20 billion lines of code analyzed. Fir…

  2. Proche Autre approche du problème
    Evaluating C/C++ Vulnerability Detectability of Query-Based Static Application Security Testing Tools
    Zong-Jie Li, Zhibo Liu, Wai-Kin Wong et al. · 2024 · IEEE Transactions on Dependable and Secure Computing · cité 41 fois · Pas encore résumé

    Evaluating C/C++ Vulnerability Detectability compare la détection de vulnérabilités C/C++ par des outils Q-SAST et des analyseurs conventionnels, plutôt que leur évolution temporelle.

    Résumé scientifique

    In recent years, query-based static application security testing(Q-SAST) tools such as CodeQL have gained popularity due to their ability to codify vulnerability knowledge into SQL-like queries and search for vulnerabilities in the database derived from the software. The industry has made considerable progress in building Q-SAST tools, facilitating their integration into the continuous integration (CI) pipeline, and sustaining an active community. However, we do not have a systematic understanding of their vulnerability detection capability in comparison to conventional SAST tools. We conduct the first in-depth study of Q-SAST to demystify their C/C++ vulnerability detectability. Our study i…

  3. Proche Base de cet article Cité par cet article Utilisé en profondeur par cet article
    An empirical study on the effectiveness of static C code analyzers for vulnerability detection
    Stephan Lipp, Sebastian Banescu, A. Pretschner · 2022 · International Symposium on Software Testing and Analysis · cité 180 fois · Pas encore résumé

    An empirical study on the effectiveness of static C code analyzers compare des analyseurs statiques pour détecter des vulnérabilités en C et est cité par cette étude.

    Résumé scientifique

    Static code analysis is often used to scan source code for security vulnerabilities. Given the wide range of existing solutions implementing different analysis techniques, it is very challenging to perform an objective comparison between static analysis tools to determine which ones are most effective at detecting vulnerabilities. Existing studies are thereby limited in that (1) they use synthetic datasets, whose vulnerabilities do not reflect the complexity of security bugs that can be found in practice and/or (2) they do not provide differentiated analyses w.r.t. the types of vulnerabilities output by the static analyzers. Hence, their conclusions about an analyzer's capability to detect v…

  4. Proche Contexte plus large Cité par cet article
    An Extensive Comparison of Static Application Security Testing Tools
    Matteo Esposito, Valentina Falaschi, Davide Falessi · 2024 · International Conference on Evaluation & Assessment in Software Engineering · cité 36 fois · Pas encore résumé

    An Extensive Comparison of Static Application Security Testing Tools évalue des outils SAST sur un corpus synthétique Java, apportant un contexte comparatif hors C/C++.

    Résumé scientifique

    Context: Static Application Security Testing Tools (SASTTs) identify software vulnerabilities to support the security and reliability of software applications. Interestingly, several studies have suggested that alternative solutions may be more effective than SASTTs due to their tendency to generate false alarms, commonly referred to as low Precision. Aim: We aim to comprehensively evaluate SASTTs, setting a reliable benchmark for assessing and finding gaps in vulnerability identification mechanisms based on SASTTs or alternatives. Method: Our SASTTs evaluation is based on a controlled, though synthetic, Java codebase. It involves an assessment of 1.5 million test executions, and it features…

  5. Proche Contexte plus large
    Large Language Models Versus Static Code Analysis Tools: A Systematic Benchmark for Vulnerability Detection
    Damian Gnieciak, Tomasz Szandała · 2025 · IEEE Access · cité 21 fois · Pas encore résumé

    Large Language Models Versus Static Code Analysis Tools compare des analyseurs statiques et des modèles de langage sur des vulnérabilités C#, un contexte différent de l’évolution C/C++.

    Résumé scientifique

    Modern software relies on a multitude of automated testing and quality assurance tools to prevent errors, bugs and potential vulnerabilities. This study sets out to provide a head-to-head, quantitative and qualitative evaluation of six automated approaches: three industry-standard rule-based static code-analysis tools (SonarQube, CodeQL and SnykCode) and three state-of-the-art large language models hosted on the GitHub Models platform (GPT-4.1, Mistral Large and DeepSeek V3). Using a curated suite of ten real-world C# projects that embed 63 vulnerabilities across common categories such as SQL injection, hard-coded secrets and outdated dependencies, we measure classical detection accuracy (pr…

  6. Proche Même méthode, autre problème
    Finding Fixed Vulnerabilities with Off-the-Shelf Static Analysis
    T. Dunlap, Seaver Thorn, W. Enck et al. · 2023 · European Symposium on Security and Privacy · cité 17 fois · Pas encore résumé

    Finding Fixed Vulnerabilities with Off-the-Shelf Static Analysis utilise les alertes SAST pour repérer des correctifs de vulnérabilités, tandis que cette étude examine leur correspondance avec les lignes corrigées.

    Résumé scientifique

    Software depends on upstream projects that regularly fix vulnerabilities, but the documentation of those vulnerabilities is often unreliable or unavailable. Automating the collection of existing vulnerability fixes is essential for downstream projects to reliably update their dependencies due to the sheer number of dependencies in modern software. Prior efforts rely solely on incomplete databases or imprecise or inaccurate statistical analysis of upstream repositories. In this paper, we introduce Differential Alert Analysis (DAA) to discover vulnerability fixes in software projects. In contrast to statistical analysis, DAA leverages static analysis security testing (SAST) tools, which reason…

  7. Proche Contexte plus large
    Persistent Human Feedback, LLMs, and Static Analyzers for Secure Code Generation and Vulnerability Detection
    Ehsan Firouzi, Mohammad Ghafari · 2026 · IEEE International Conference on Software Analysis, Evolution, and Reengineering · cité 8 fois · Pas encore résumé

    Persistent Human Feedback, LLMs, and Static Analyzers évalue CodeQL et Semgrep sur du code généré par des modèles, avec une vérité terrain validée par des humains.

    Résumé scientifique

    Existing literature heavily relies on static analysis tools to evaluate LLMs for secure code generation and vulnerability detection. We reviewed 1,080 LLM-generated code samples, built a human-validated ground-truth, and compared the outputs of two widely used static security tools, CodeQL and Semgrep, against this corpus. While 61% of the samples were genuinely secure, Semgrep and CodeQL classified 60% and 80% as secure, respectively. Despite the apparent agreement in aggregate statistics, per-sample analysis reveals substantial discrepancies: only 65% of Semgrep's and 61% of CodeQL's reports correctly matched the ground truth. These results question the reliability of static analysis tools…

  8. Proche Contexte plus large
    SmartCode AI: A Hybrid Static Analysis and Ensemble Transformer Framework for Secure Code Review and Automated Remediation
    N. Maheswari, A. K. Prabhakaran, R. Vignesh et al. · 2026 · International Congress on Information and Communication Technology · Pas encore résumé

    SmartCode AI associe analyse statique et modèles Transformer pour la revue et la correction de code, plutôt que d’étudier la stabilité temporelle des détecteurs.

    Résumé scientifique

    Application security vulnerabilities continue to dominate the threat landscape, contributing to nearly seventy percent of reported security breaches. The growing volume of software applications, combined with increasing architectural complexity, has significantly expanded the attack surface. Traditional Static Application Security Testing (SAST) tools remain widely adopted; however, existing approaches suffer from critical limitations. High false positive rates, often ranging between sixty and eighty percent, create alert fatigue and reduce developer trust. Pattern-based detection mechanisms lack contextual understanding of business logic, leading to misclassification of safe code as vulnera…

Les travaux antérieurs sur lesquels il s’appuie

  1. Proche Base de cet article Utilisé en profondeur par cet article
    Comparison and Evaluation on Static Application Security Testing (SAST) Tools for Java
    Kai-Xuan Li, Sen Chen, Ling-Ling Fan et al. · 2023 · ESEC/SIGSOFT FSE · cité 86 fois · Pas encore résumé

    Comparison and Evaluation on Static Application Security Testing compare des outils SAST sur Java selon leur efficacité, leur cohérence et leurs performances, et est cité par cette étude.

    Résumé scientifique

    Static application security testing (SAST) takes a significant role in the software development life cycle (SDLC). However, it is challenging to comprehensively evaluate the effectiveness of SAST tools to determine which is the better one for detecting vulnerabilities. In this paper, based on well-defined criteria, we first selected seven free or open-source SAST tools from 161 existing tools for further evaluation. Owing to the synthetic and newly-constructed real-world benchmarks, we evaluated and compared these SAST tools from different and comprehensive perspectives such as effectiveness, consistency, and performance. While SAST tools perform well on synthetic benchmarks, our results ind…

  2. Apparenté Base de cet article Utilisé en profondeur par cet article
    How Many of All Bugs Do We Find? A Study of Static Bug Detectors
    A. Habib, Michael Pradel · 2018 · International Conference on Automated Software Engineering · cité 130 fois · Pas encore résumé

    How Many of All Bugs Do We Find? mesure la détection de bogues réels par des analyseurs statiques sur des projets Java et est cité par cette étude.

    Résumé scientifique

    Static bug detectors are becoming increasingly popular and are widely used by professional software developers. While most work on bug detectors focuses on whether they find bugs at all, and on how many false positives they report in addition to legitimate warnings, the inverse question is often neglected: How many of all real-world bugs do static bug detectors find? This paper addresses this question by studying the results of applying three widely used static bug detectors to an extended version of the Defects4J dataset that consists of 15 Java projects with 594 known bugs. To decide which of these bugs the tools detect, we use a novel methodology that combines an automatic analysis of war…

  3. Proche Base de cet article
    An empirical study of security warnings from static application security testing tools
    Bushra Aloraini, M. Nagappan, D. Germán et al. · 2019 · Journal of Systems and Software · cité 66 fois · Pas encore résumé

    An empirical study of security warnings analyse les types et l’évolution des alertes SAST, et est cité par cette étude sur les variations des résultats.

    Résumé scientifique

    Abstract The Open Web Application Security Project (OWASP) defines Static Application Security Testing (SAST) tools as those that can help find security vulnerabilities in the source code or compiled code of software. Such tools detect and classify the vulnerability warnings into one of many types (e.g., input validation and representation). It is well known that these tools produce high numbers of false positive warnings. However, what is not known is if specific types of warnings have a higher predisposition to be false positives or not. Therefore, our goal is to investigate the different types of SAST-produced warnings and their evolution over time to determine if one type of warning is m…

  4. Proche* Base de cet article
    Analyzing the State of Static Analysis: A Large-Scale Evaluation in Open Source Software
    M. Beller, R. Bholanath, Shane McIntosh et al. · 2016 · IEEE International Conference on Software Analysis, Evolution, and Reengineering · cité 234 fois · Pas encore résumé

    Analyzing the State of Static Analysis évalue l’analyse statique à grande échelle dans les logiciels open source et est cité par cette étude.

  5. Proche Contexte plus large
    Do Developers Use Static Application Security Testing (SAST) Tools Straight Out of the Box? A large-scale Empirical Study
    Gareth Bennett, Tracy Hall, Steve Counsell et al. · 2024 · International Symposium on Empirical Software Engineering and Measurement · cité 13 fois · Pas encore résumé

    Do Developers Use Static Application Security Testing Tools Straight Out of the Box? étudie les pratiques de configuration SAST de développeurs, un facteur de contexte pour les résultats des analyseurs.

    Résumé scientifique

    Static application Security Testing (SAST) tools are an established means of detecting vulnerabilities early in development. Previous studies have reported low detection rates from SAST tools and recommend either combining SAST tools or configuring rule sets to detect more vulnerabilities. However, while previous work suggests that developers rarely combine or configure any of the Automatic Static Analysis Tools (ASATs) they use, it is currently unclear whether SAST tools are used directly “out of the box”. To understand how developers use SAST tools, we performed a large-scale survey involving 1,263 developers. We pre-screened developers to establish their SAST use and found that only 20% (…

Comment ces articles sont-ils trouvés ?

Nous comparons le titre et le résumé de cet article avec ceux de tous les articles résumés sur ce site, et avec les articles que Semantic Scholar recommande, ceux qu’il cite et ceux qui le citent (pour un article très cité, ses citations les plus récentes et, depuis OpenAlex, les plus citées). Parmi les travaux antérieurs et les suites, les articles qui s’utilisent en profondeur, une méthode qu’il utilise et les suites très citées remontent un peu. Les niveaux (très proche, proche, apparenté) viennent de la similarité des textes, pas d’un jugement de qualité ; * signale un article sans résumé, comparé par son titre. La phrase sous un article est écrite par une IA à partir des deux résumés : vérifiez-la dans les articles. Un article jugé hors sujet par trois lecteurs quitte la liste.

Mis à jour le 9 novembre 2026.

Avertissement : Notre outil de synthèse basé sur l'IA et l'assistant virtuel fournis sur ce site Web peuvent ne pas toujours fournir des résumés complets ou des réponses exactes. Nous vous encourageons à examiner attentivement et à évaluer le contenu généré pour vous assurer de sa qualité et de sa pertinence par rapport à vos besoins.