Herstelstatistieken
Herstelstatistieken laten zien of de functies voor triage en fixes hun werk doen voor je organisatie. De pagina meet de succescriteria van bereikbaarheid en Beveiligingsfixes op je eigen bevindingen, over de afgelopen 30 of 90 dagen, en vergelijkt elke periode met hetzelfde aantal dagen direct daarvoor.
Je vindt ze onder Beveiliging › Rapporten › Herstelstatistieken
(/<org>/_admin/security/reports/remediation). Eigenaren van de organisatie en
leden van het team Auditors van de organisatie kunnen de pagina openen. Kies
bovenaan de pagina Afgelopen 30 dagen of Afgelopen 90 dagen.
Elk getal gaat alleen over je eigen organisatie. Niets wordt vergeleken met of berekend uit andere organisaties.
Op dezelfde pagina staat de kaart Anonieme aantallen bijdragen: een opt-in, standaard uit, die de aantallen van je organisatie anoniem toevoegt aan de cijfers die fremforge publiceert. Zie Anonieme aantallen.
Wat de pagina toont
| Sectie | Wat ze toont |
|---|---|
| Bereikbaarheid | Openstaande afhankelijkheidsbevindingen per ecosysteem, verdeeld naar oordeel: bereikbaar, niet bereikbaar (unreachable) en onbekend. Dekking is het aandeel met een ander oordeel dan onbekend. Aandeel niet bereikbaar is het aandeel waarvoor de engine geen pad vond van je code naar de kwetsbare functie. De doelen zijn 60 % dekking voor Go en 30 % voor npm, en 30 % niet bereikbaar voor Go. Ecosystemen zonder engine worden gemarkeerd. |
| Trend van de dekking | Dekking en aandeel niet bereikbaar per dag, uit een dagelijkse momentopname van de eigen bevindingen van je organisatie. De momentopname is op 2026-10-14 begonnen, dus de grafiek vult zich vanaf dat moment; zolang er nog geen twee dagen zijn opgeslagen, meldt het paneel dat het gegevens verzamelt. |
| Pull requests met beveiligingsfixes | Per engine, deterministisch (verhogingen van afhankelijkheden) en met AI-ondersteuning (SAST, met je eigen modelsleutel): verzoeken in de periode, geopende, samengevoegde, gesloten en nog op review wachtende pull requests, en het mergepercentage (samengevoegd gedeeld door geopend). De doelen zijn 70 % voor deterministische en 40 % voor pull requests met AI-ondersteuning. |
| Bevindingen opgelost door een beveiligingsfix | Bevindingen die een scan niet meer meldde nadat hun pull request met een beveiligingsfix was samengevoegd, per type en per dag. De API geeft ook findings_fixed_by_renovate terug: bevindingen waarvan het pakket werd verhoogd door een van de eigen beveiligings-pull-requests van gehoste Renovate terwijl ze openstonden (geteld vanaf 2026-10-14). |
| Hersteltijd | Het mediane aantal dagen tussen het moment dat een hoge of kritieke afhankelijkheidsbevinding voor het eerst werd gezien en het moment dat een scan haar niet meer meldde. Deze periode tegenover de vorige, en binnen deze periode opgelost door AutoFix tegenover op een andere manier opgelost. |
| Hersteltijd per type bevinding | Voor afhankelijkheden, containerimages, IaC, secrets en SAST, elke ernst: de mediane hersteltijd in dagen van de bevindingen die in deze en in de vorige periode zijn opgelost, de medianen per ernst, en de bevindingen die in deze periode zijn genegeerd met hun eigen mediaan. Zie de definities hieronder. |
| Tijd tot samenvoegen van beveiligingsfixes | Het mediane aantal uren tussen openen en samenvoegen van de pull requests met beveiligingsfixes die in deze en in de vorige periode zijn samengevoegd: deterministisch, met AI-ondersteuning, en de eigen beveiligings-pull-requests van gehoste Renovate. Pull requests van Renovate worden geteld vanaf 24 oktober 2026, toen hun openingstijd werd vastgelegd; de pagina vermeldt de datum. |
| Bekend misbruikt | Openstaande bevindingen in afhankelijkheden en containerimages waarvan de kwetsbaarheid als misbruikt staat vermeld in de EU Vulnerability Database van ENISA of de Known Exploited Vulnerabilities-catalogus van CISA, met links naar de gefilterde lijsten met bevindingen. |
| SLA-overschrijdingen | Per dag de bevindingen van elke scanner die langer openstaan dan hun SLA, alle ernstniveaus en hoog en kritiek, en de nieuwe overschrijdingen per dag. Totalen voor deze en de vorige periode. |
Hoe de getallen tot stand komen
- Unieke bevindingen. Een afhankelijkheidsbevinding telt één keer per repository, pakket en advisory, ongeacht hoeveel branches of pull requests haar melden. De openstaande afhankelijkheidsbevindingen worden op elke dag van de trend op dezelfde manier geteld.
- De dagelijkse momentopname wordt één keer per dag alleen voor je organisatie gemaakt, uit dezelfde telling als de dekkingscijfers hierboven, en wordt nooit gecombineerd met gegevens van andere organisaties. Ze wordt bewaard zo lang als je instelling voor de geschiedenis van bevindingen als je die hebt ingesteld, anders 18 maanden, en wordt verwijderd als je organisatie wordt verwijderd. Een juridische bewaarplicht houdt haar vast.
- Oordelen zijn geen negeringen. Een bevinding die niet bereikbaar is, blijft openstaan en telt overal als openstaand. Zie bereikbaarheid.
- Pull requests met beveiligingsfixes worden geteld op de datum waarop de fix werd aangevraagd. Een pull request die nog op review wacht, verlaagt het mergepercentage tot hij is samengevoegd of gesloten.
- Hersteltijd en SLA-overschrijdingen komen uit de geschiedenis van bevindingen, die begint op het moment dat het bijhouden van de geschiedenis voor je organisatie begon (de pagina vermeldt de datum). Een bevinding die op die datum al openstond, telt vanaf het moment dat ze voor het eerst werd opgeslagen.
- Wat telt als geopend en opgelost (hersteltijd per type):
- Geopend is het moment dat de bevinding voor het eerst op de standaardbranch werd gezien. Een bevinding die alleen een pull request meldt, telt niet mee.
- Opgelost is de eerste scan die haar niet meer meldt. Voor een bevinding die haar scanner als opgelost markeert, is dat exact; anders is het de dagelijkse bijwerking van de geschiedenis die haar voor het eerst miste, dus hooguit een dag te laat.
- Negeren is geen oplossen. Genegeerde bevindingen worden apart geteld, met het mediane aantal dagen tussen geopend en genegeerd.
- Een bevinding die terugkomt, begint opnieuw. Ze telt vanaf het moment dat ze opnieuw verscheen, niet vanaf haar eerste verschijning.
- IaC-bevindingen hebben sinds 24 oktober 2026 hun eigen type; daarvoor werden ze bij containerimages geteld. Geschiedenis van vóór die datum is naar IaC verplaatst waar het eigen record van de scanner voor de bevinding nog bestaat.
- Tijd tot samenvoegen loopt van het moment dat de pull request werd geopend tot het moment dat hij werd samengevoegd, voor pull requests die in de periode zijn samengevoegd. Pull requests die nog openstaan of zonder samenvoegen zijn gesloten, tellen niet mee.
- SLA-deadlines zijn dezelfde effectieve deadlines als die van de SLA-labels en het compliancerapport, inclusief een langere SLA voor bevindingen die niet bereikbaar zijn als je SLA-beleid een vermenigvuldigingsfactor instelt. Een bevinding overschrijdt haar SLA als de deadline verstrijkt terwijl ze niet is opgelost en niet is genegeerd.
API
Dezelfde getallen zijn beschikbaar via de API, met een token dat de scope
findings:read heeft:
curl -H "Authorization: Bearer $FREMFORGE_TOKEN" \
"https://frem.sh/_app/api/v1/orgs/<org>/code-security/remediation-metrics?days=30"days is 30 (de standaard) of 90. Het antwoord bevat de secties hierboven
als reachability, autofix, time_to_fix, time_to_fix_by_type,
time_to_merge, known_exploited en sla, plus het window en de
targets. Percentages zijn getallen van 0 tot 100 met één decimaal, of
null als er niets is om door te delen. Zie de
OpenAPI-specificatie voor het schema.