Naar de hoofdinhoud

Anonieme aantallen

fremforge publiceert cijfers over hoe zijn beveiligingsfuncties in de praktijk werken, zoals hoeveel openstaande bevindingen in afhankelijkheden geen aanroeppad naar de kwetsbare code hebben, of hoe lang fixes duren. Organisaties kunnen ervoor kiezen anonieme aantallen aan die cijfers bij te dragen. De instelling staat uit tot een eigenaar van de organisatie haar aanzet, en geen enkele organisatie wordt ooit bij naam genoemd.

Er zijn nog geen cijfers gepubliceerd. Een gepubliceerd cijfer moet op ten minste vijf bijdragende organisaties berusten (zie Wanneer een cijfer mag worden gepubliceerd), en dat zijn er nog geen vijf. Deze pagina beschrijft de methode vooraf, zodat die kan worden gecontroleerd voordat er een cijfer verschijnt.

Aan- of uitzetten

De instelling staat onder Beveiliging › Rapporten › Herstelstatistieken (/<org>/_admin/security/reports/remediation), in de kaart Anonieme aantallen bijdragen, die laat zien of ze aanstaat, sinds wanneer en hoeveel dagen er zijn opgeslagen. Eigenaren van de organisatie kunnen haar wijzigen.

  • Aan: vanaf de volgende ochtend (UTC) wordt per dag één rij met aantallen voor de organisatie opgeslagen.
  • Uit: het verzamelen stopt, en elke dag die al voor de organisatie is opgeslagen, wordt meteen verwijderd.

Dezelfde instelling is beschikbaar via de API en in 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 geeft enabled, enabled_at, stored_days en min_orgs_to_publish terug. PUT geeft ook previous, changed en deleted_rows terug, de dagen die zijn verwijderd als de instelling wordt uitgezet. Elke wijziging staat in de auditlog als code-security.anonymous_counts.updated.

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

Als je de Terraform-resource verwijdert, blijft de instelling zoals ze is. Om te stoppen met bijdragen zet je enabled = false.

Wat er wordt gedeeld

Eén keer per dag, voor de vorige volledige UTC-dag:

AantalWat het is
Openstaande bevindingenHoeveel bevindingen openstaan, per type (afhankelijkheden, images, SAST, secrets, licenties en de rest) en per ernst, op het moment van verzamelen.
BereikbaarheidHoeveel openstaande bevindingen in afhankelijkheden op standaardbranches bereikbaar zijn, geen aanroeppad hebben of onbekend zijn, zoals op de pagina Herstelstatistieken.
Pull requests voor beveiligingsfixesHoeveel pull requests voor beveiligingsfixes die dag zijn geopend en hoeveel er zijn samengevoegd.
Tijd tot fixVoor bevindingen die die dag zijn gefixt, per ernst: hoeveel, hoe lang ze openstonden, en een histogram van die tijden in vaste klassen (minder dan 1 dag, 1–2, 2–4, 4–7, 7–14, 14–30, 30–60, 60–90, 90–180 dagen, en langer).

Nooit gedeeld: namen van repository’s, packages, images, advisories of regels, code, bestandspaden, en alles over personen. De opgeslagen rij bevat de aantallen en de interne ID van je organisatie. Die ID wordt alleen gebruikt om je dagen te verwijderen als je dit uitzet of als je organisatie wordt verwijderd, en om een dag te vervangen in plaats van er een tweede toe te voegen. Niets wat wordt gepubliceerd of gedeeld bevat die ID, en de interne tools van fremforge die de aantallen lezen, zien geen identiteit van een organisatie.

Tijd tot fix laat bevindingen buiten beschouwing die zijn gesloten door automatisch oplossen, dat een bevinding op grond van beleid sluit in plaats van haar te fixen, en bevindingen waarvan het openingstijdstip niet bekend is omdat ze zijn vastgelegd voordat de bevindingsgeschiedenis begon.

Wanneer een cijfer mag worden gepubliceerd

  • Alleen van organisaties die het hebben aangezet. fremforge meet zijn eigen functies ook over alle organisaties heen als aantallen, voor het beheer van de dienst. Die interne metingen worden nooit gepubliceerd.
  • Ten minste vijf organisaties achter elk cijfer. Elk cijfer wordt afzonderlijk gecontroleerd: een cijfer over de tijd tot fix van kritieke bevindingen heeft vijf organisaties nodig die in de periode een kritieke bevinding hebben gefixt, niet alleen vijf organisaties in totaal. Een cijfer op basis van minder wordt helemaal niet gepubliceerd, in plaats van afgerond of met een voorbehoud getoond.
  • Geen enkele organisatie wordt genoemd, en er wordt niets gepubliceerd waarmee er een kan worden uitgelicht.
  • De eigen organisaties van fremforge worden apart gehouden. Ze worden apart getoond wanneer we de cijfers controleren en maken nooit deel uit van een gepubliceerd cijfer.
  • Voorbeeldrepository’s tellen nooit mee. Bevindingen en fix-pull-requests op een voorbeeldrepository worden weggelaten, en een organisatie waarvan de enige repository een voorbeeld is, draagt helemaal geen aantallen bij en kan dus nooit een van de vijf zijn.
  • Eerst een juridische toets. Voordat er een cijfer wordt gepubliceerd, gaat de publicatie door een juridische toets. Er is nog geen cijfer gepubliceerd.

Hoe de cijfers tot stand komen

  • Momentopnamen (openstaande bevindingen, bereikbaarheid) gebruiken de laatste dag in de periode van elke bijdragende organisatie, opgeteld.
  • Stromen (pull requests, fixes) tellen elke dag in de periode op, meestal 30 of 90 dagen.
  • Tijd tot fix over organisaties heen wordt gerapporteerd als de histogramklasse waarin de algemene mediaan valt, bijvoorbeeld “7–14 dagen”. Een mediaan van de medianen per organisatie zou niet de mediaan van alle fixes zijn, dus die berekenen we niet.
  • Elk gepubliceerd cijfer vermeldt zijn periode, het aantal bijdragende organisaties en een link naar deze pagina.

Bewaartermijn

Een opgeslagen dag wordt 25 maanden bewaard en daarna verwijderd. Als je de instelling uitzet, worden de dagen van de organisatie meteen verwijderd. Ook het verwijderen van de organisatie verwijdert ze.