Aller au contenu principal

StaticCodeAudit

Changelog

Évolution complète de StaticCodeAudit : fonctionnalités, améliorations et jalons par version.

Ce qu'on a livré, ce qu'on livre ensuite

Snapshot honnête de l'état du produit. « Fait » est en production. « En cours » est en construction maintenant. « À venir » est planifié mais pas commencé — dates indicatives.

Fait — livré

  • Couverture standards 100 % : 697/697 règles builtin mappées à CWE ou WCAG (665 + 32)
  • DSL étendu : multi-CWE par règle, champ CVE, champ WCAG — tout propagé en JSON / SARIF / HTML
  • SARIF rule.properties.tags + objet JSON finding.compliance — compatible GitHub code-scanning, DefectDojo, plateformes ASOC
  • Loader de packs hors-bande (rules-updates/) avec vérification SHA-256 et spec manifest.json figée
  • D.2 Performance : cache de règles + analyse incrémentale (3× plus rapide en cache chaud)
  • Moteur taint : Python AST + JS/Java/C#/PHP lexical, détection multi-flow, contrôle de compatibilité kind

En cours — en construction

  • Pipeline veille CVE : ingestion quotidienne NVD / OSV / GitHub Advisory, filtrage par langages SCA
  • Console authoring opérateur : écrire une règle .sca, valider sur fixtures en sandbox, staging pour publication
  • Espace client : téléchargement authentifié des packs de règles (par tier d'abonnement)
  • Notifications email : alerter les abonnés actifs quand un nouveau pack est publié

À venir — planifié

  • DSL v2 : vérification de signature Ed25519 au chargement (clé publique embarquée dans le binaire à la build)
  • D.2.3 finalisation : vraie parallélisation (refactor des exécuteurs pour thread-safety)
  • Langages supplémentaires : Go, Ruby, Kotlin, Swift — selon demande client
  • Moteur taint : sanitizers cross-ligne / scope-level (actuellement RHS-only)
  • Plugins IDE : VS Code + JetBrains (visualiseur findings read-only, lit le dernier JSON d'audit)

Aucun engagement sur les dates. On livre quand c'est prêt. Priorités pilotées client — dites-nous ce qui compte le plus pour vous.

Historique des versions

v1.4.0 Nouveau Mai 2026

Moteur taint dataflow Phase 7/8 (F1 = 1,000 sur Python ET multilangue JS/Java/C#/PHP) plus 3 règles supply-chain inspirées de l'attaque npm TanStack/Mistral (mai 2026, 170 paquets compromis). Suppression du moteur taint legacy (-3 519 LOC net). Total : 700+ règles sur 8 catégories.

Moteur dataflow taint (Phase 7/8)

  • Implémentation clean-room — CFG, IR 3-adresses, treillis et worklist avec matching hybride dotted + regex (~6 200 LOC code, 3 800 LOC tests)
  • F1 = 1,000 sur le corpus de fixtures SCA interne — zéro faux négatif, zéro faux positif, sur Python ET multilangue (JS/Java/C#/PHP)
  • Profile loader (Flask, Django, Express, Spring, Laravel, .NET) injecté automatiquement dans les règles taint par catégorie — même précision que Snyk Code, sans cloud ni dépendance externe

Couverture supply-chain (TanStack/Mistral mai 2026)

  • Règle npm_git_dependency — détecte les dépendances pinées sur un commit Git GitHub/GitLab/Bitbucket, qui contournent les advisories du registre npm
  • Règles ide_config_exfil (JS + Python) — détectent les écritures silencieuses dans .claude/settings.json, .vscode/tasks.json, .cursor/, .aider/, .codeium/ utilisées comme vecteurs de persistance
  • Couverture préventive native — pas de télémétrie, pas de sandbox cloud, chaque détection tourne hors ligne sur la machine du développeur
v1.3.0 Nouveau Mai 2026

D.2 Performance — cache des règles et analyse incrémentale rendent les analyses à chaud jusqu'à 3× plus rapides, idéal pour les pipelines CI/CD et les hooks pre-commit.

Performance

  • Cache des règles : règles DSL parsées une seule fois, conservées entre les exécutions
  • Analyse incrémentale : seuls les fichiers modifiés depuis le dernier scan sont réanalysés (hash de contenu)
  • Jusqu'à 3× plus rapide en analyse à chaud (re-scans de code inchangé)
v1.2.0 Amélioré Avril 2026

+53 règles de détection pour les catégories non-sécurité : Architecture, Maintenance, Accessibilité/UX, Interface/UI. Sources : axe-core (WCAG 2.2), Ruff, Pylint, PMD, PHPMD, SonarJS, eslint-plugin-jsx-a11y, HTMLHint et SonarQube Cloud API.

Nouvelles règles — 8 vagues

  • +16 règles UX/accessibilité (HTML + JSX) : axe-core WCAG 2.0/2.1/2.2, aria-hidden, viewport zoom, sous-titres vidéo, jsx-a11y
  • +6 règles UI (HTML) : balises dépréciées, styles en ligne, viewport manquant, type de bouton, target blank, dimensions d'image
  • +24 règles Maintenance : Python (Ruff/Pylint), Java (PMD), PHP (PHPMD), JavaScript (SonarJS), C# (SonarQube)
  • +7 règles Architecture : Java, PHP, JavaScript, C# — couplage, classes utilitaires, champs publics
  • 698 règles au total (contre 645 auparavant)
v1.1.0 Moteur 2026 — Version actuelle

Détection & Couverture

  • 698 règles de détection dans 8 catégories
  • 8 langages : Python, JavaScript/TypeScript, HTML, Java, C#, PHP, YAML
  • changelog.v2.detection.custom--create-rule) with DSL and taint propagation
  • changelog.v2.detection.fixtures
  • changelog.v2.detection.selftest--self-test) validates all fixtures on demand

Sécurité

  • changelog.v2.security.owasp
  • changelog.v2.security.iso27001
  • changelog.v2.security.asvs
  • changelog.v2.security.cicd
  • changelog.v2.security.suppress# sca-ignore), config, or global disable

Exports & Intégration

  • Export SARIF 2.1.0 pour GitHub Code Scanning et GitLab SAST--sarif) — compatible with GitHub Code Scanning and GitLab SAST
  • Génération SBOM au format CycloneDX 1.5--sbom) — Software Bill of Materials
  • changelog.v2.exports.gitblame--git-blame) — committer per finding
  • changelog.v2.exports.hook--install-hook) — automatic audit before every commit
  • changelog.v2.exports.failon--fail-on-high) — exit code 1 on HIGH findings

Rapports & Marque blanche

  • Rapports en 4 langues : anglais, français, espagnol, allemand
  • changelog.v2.reports.charts
  • changelog.v2.reports.health
  • changelog.v2.reports.glossary
  • Marque blanche : nom d'outil, entreprise, logo et préfixe personnalisables
  • Rétention des rapports par nombre, durée ou mode combiné--retention-dry-run)
  • changelog.v2.reports.keyboard
  • changelog.v2.reports.print
v1.0.0 Initiale 2025 — Première version

Fonctionnalités principales

  • 51 règles de détection dans 7 catégories
  • 4 langages : Python, JavaScript/TypeScript, HTML
  • changelog.v1.core.reports
  • Comparaison baseline entre snapshots d'audit
  • changelog.v1.core.zero
  • changelog.v1.core.offline
  • changelog.v1.core.uuid--init)

Catégories optionnelles

  • Audit des dépendances via pip-audit et npm audit (scan CVE)
  • changelog.v1.optional.db