Aller au contenu principal

Chiffres anonymes

fremforge publie des chiffres sur le fonctionnement réel de ses fonctionnalités de sécurité, par exemple combien de résultats de dépendances ouverts n’ont aucun chemin d’appel vers le code vulnérable, ou combien de temps prennent les correctifs. Les organisations peuvent choisir de contribuer des chiffres anonymes à ces indicateurs. Le paramètre est désactivé tant qu’un propriétaire de l’organisation ne l’active pas, et aucune organisation n’est jamais nommée.

Aucun chiffre n’est encore publié. Un chiffre publié doit reposer sur au moins cinq organisations contributrices (voir Quand un chiffre peut être publié), et elles ne sont pas encore cinq. Cette page décrit la méthode à l’avance afin qu’elle puisse être vérifiée avant qu’un chiffre n’apparaisse.

Activer ou désactiver

Le paramètre se trouve sous Sécurité › Rapports › Indicateurs de remédiation (/<org>/_admin/security/reports/remediation), dans la carte Contribuer des chiffres anonymes, qui indique s’il est activé, depuis quand et combien de jours sont stockés. Les propriétaires de l’organisation peuvent le modifier.

  • Activé : dès le lendemain matin (UTC), une ligne de chiffres est stockée par jour pour l’organisation.
  • Désactivé : la collecte s’arrête, et chaque jour déjà stocké pour l’organisation est supprimé immédiatement.

Le même paramètre est disponible dans l’API et dans Terraform :

GET /_app/api/v1/orgs/{org}/security/anonymous-counts   policy:read
PUT /_app/api/v1/orgs/{org}/security/anonymous-counts   policy:write   {"enabled": true}

GET renvoie enabled, enabled_at, stored_days et min_orgs_to_publish. PUT renvoie aussi previous, changed et deleted_rows, les jours supprimés lors de la désactivation. Chaque modification figure dans le journal d’audit sous code-security.anonymous_counts.updated.

resource "fremforge_anonymous_counts" "this" {
  org     = "acme"
  enabled = true
}

Détruire la ressource Terraform laisse le paramètre tel quel. Pour cesser de contribuer, définissez enabled = false.

Ce qui est partagé

Une fois par jour, pour la dernière journée UTC complète :

ChiffreCe que c’est
Résultats ouvertsCombien de résultats sont ouverts, par type (dépendances, images, SAST, secrets, licences et le reste) et par gravité, au moment de la collecte.
AtteignabilitéCombien de résultats de dépendances ouverts sur les branches par défaut sont atteignables, n’ont aucun chemin d’appel, ou sont inconnus, comme sur la page Indicateurs de remédiation.
Pull requests de correctifs de sécuritéCombien de pull requests de correctifs de sécurité ont été ouvertes et combien ont été fusionnées ce jour-là.
Délai de correctionPour les résultats corrigés ce jour-là, par gravité : combien, pendant combien de temps ils sont restés ouverts, et un histogramme de ces durées par tranches fixes (moins d’un jour, 1–2, 2–4, 4–7, 7–14, 14–30, 30–60, 60–90, 90–180 jours, et au-delà).

Jamais partagés : les noms de dépôts, de paquets, d’images, d’avis ou de règles, le code, les chemins de fichiers, et rien qui concerne des personnes. La ligne stockée contient les chiffres et l’identifiant interne de votre organisation. Cet identifiant sert uniquement à supprimer vos jours lorsque vous désactivez l’option ou que votre organisation est supprimée, et à remplacer un jour plutôt qu’en ajouter un second. Rien de ce qui est publié ou partagé ne le contient, et les outils du personnel de fremforge qui lisent les chiffres ne voient aucune identité d’organisation.

Le délai de correction exclut les résultats clos par la résolution automatique, qui clôt un résultat par politique plutôt qu’en le corrigeant, ainsi que les résultats dont la date d’ouverture est inconnue parce qu’ils ont été enregistrés avant le début de l’historique des résultats.

Quand un chiffre peut être publié

  • Uniquement à partir des organisations qui ont activé l’option. fremforge mesure aussi ses propres fonctionnalités sur toutes les organisations sous forme de décomptes, pour exploiter le service. Ces mesures internes ne sont jamais publiées.
  • Au moins cinq organisations derrière chaque chiffre. Chaque chiffre est vérifié séparément : un chiffre sur le délai de correction des résultats critiques exige cinq organisations ayant corrigé un résultat critique sur la période, pas seulement cinq organisations au total. Un chiffre issu de moins d’organisations n’est pas publié du tout, plutôt qu’arrondi ou assorti d’une réserve.
  • Aucune organisation n’est nommée, et rien n’est publié qui permettrait d’en isoler une.
  • Les organisations propres à fremforge sont tenues à part. Elles sont présentées séparément lorsque nous vérifions les chiffres et ne font jamais partie d’un chiffre publié.
  • Les dépôts d’exemple ne comptent jamais. Les résultats et les pull requests de correctif sur un dépôt d’exemple sont exclus, et une organisation dont le seul dépôt est un exemple ne contribue aucun chiffre, si bien qu’elle ne peut jamais faire partie des cinq.
  • Un examen juridique passe en premier. Avant la publication de tout chiffre, la publication fait l’objet d’un examen juridique. Aucun chiffre n’a été publié.

Comment les chiffres sont établis

  • Les instantanés (résultats ouverts, atteignabilité) utilisent le dernier jour de chaque organisation contributrice sur la période, additionnés.
  • Les flux (pull requests, correctifs) additionnent chaque jour de la période, généralement 30 ou 90 jours.
  • Le délai de correction entre organisations est indiqué sous la forme de la tranche d’histogramme dans laquelle tombe la médiane globale, par exemple « 7–14 jours ». Une médiane des médianes de chaque organisation ne serait pas la médiane de l’ensemble des correctifs ; nous n’en calculons donc pas.
  • Chaque chiffre publié indique sa période, le nombre d’organisations contributrices et un lien vers cette page.

Conservation

Un jour stocké est conservé 25 mois, puis supprimé. Désactiver le paramètre supprime immédiatement les jours de l’organisation. Supprimer l’organisation les supprime également.