Skip to content

Uitzonderingen op de beveiligingsscan blijven staan nadat ze overbodig zijn #140

Open

Description

@ericwout-overheid

Aanleiding

Kwetsbaarheden waarvoor op dat moment geen oplossing bestaat, worden als uitzondering vastgelegd zodat de controle niet blijft blokkeren. Zo'n uitzondering krijgt een houdbaarheidsdatum van enkele maanden. Komt er eerder een oplossing beschikbaar, dan merkt niemand dat: de uitzondering blijft gewoon staan tot de datum verstrijkt.

Het enige wat er nu gebeurt, is een zin in het voorstel bij een nieuwe uitgave van het onderliggende pakket, met het verzoek aan de beoordelaar om de lijst na te lopen.

Effect

Een uitzondering die niets meer onderdrukt, verbergt wél. De regel geldt namelijk nog steeds: duikt dezelfde kwetsbaarheid op een andere plek op waar hij wél op te lossen is, dan wordt die stilgehouden zolang de regel binnen zijn houdbaarheidsdatum valt en op datzelfde pad slaat.

Daarnaast geeft de lijst een verkeerd beeld van hoeveel er werkelijk openstaat: wie hem leest, ziet uitzonderingen die er allang niet meer hoefden te zijn.

Wenselijk gedrag

Zodra een uitzondering niets meer onderdrukt, is dat zichtbaar en verdwijnt de regel — zonder te wachten tot de houdbaarheidsdatum verstrijkt.

Acceptatiecriteria

  • Bij elke periodieke controle is vast te stellen welke uitzonderingen daadwerkelijk zijn toegepast en welke niet
  • Een uitzondering die niets meer onderdrukt levert een zichtbaar signaal op
  • Het opruimen ervan gebeurt zonder dat iemand de lijst handmatig hoeft te vergelijken
  • De controle werkt voor beide gepubliceerde processorvarianten
  • Een uitzondering die nog wél nodig is, blijft ongemoeid

Technische details

Vandaag bestaat er alleen een tijdslot: expired_at in .trivyignore.yaml (nu 2026-11-26 voor de vier npm-bundelregels). Verloopt die datum, dan rapporteert Trivy de bevinding weer en worden de gates in trivy.yml en build-image.yml rood; apt-security-refresh waarschuwt. .github/scripts/valideer-trivyignore.sh bewaakt uitsluitend de vorm. De enige inhoudelijke trigger is de tekst in de PR-body van de job npm-version.

Richting: apt-security-refresh in check-upstream.yml scant wekelijks al beide architecturen. Voeg daar --show-suppressed aan toe — Trivy rapporteert dan per scan welke suppressies zijn toegepast. Een id uit .trivyignore.yaml dat in geen van beide scans voorkomt, onderdrukt niets meer.

Alternatief zonder die vlag: één scan zonder ignorefile draaien en gesuppresste ID's − gevonden ID's nemen. Dat kost een extra scan en is daarmee duurder; de vlag verdient de voorkeur.

Let bij het verwerken op twee dingen:

  • Een regel kan ook niet aanslaan omdat het pad niet meer klopt (bijvoorbeeld na een verplaatsing van usr/local/lib/node_modules/npm/**). Dat is geen reden om hem weg te halen maar om hem te corrigeren; onderscheid die twee gevallen in het signaal.
  • De misconfig-regels (DS-0002, DS-0026) leggen een architectuurkeuze vast en horen niet mee te doen in deze opruiming.

Bouwt voort op #124, dat de uitzonderingen hun pad en houdbaarheidsdatum gaf; dit is de andere helft: een aanleiding om eerder te verdwijnen dan die datum.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions