Skip to content

Uitzonderingen op de beveiligingsscan gelden nu breder dan bedoeld #124

Closed
0 of 1 issue completed

Description

@ericwout-overheid

Aanleiding

Als een gevonden kwetsbaarheid niet op te lossen is, noteren we die als uitzondering zodat de scan niet blijft blokkeren. Zo'n uitzondering geldt op dit moment voor het hele project en voor alle plekken waar diezelfde kwetsbaarheid voorkomt — ook plekken waar hij wél op te lossen is.

Effect

Een uitzondering die is opgeschreven voor een meegeleverde component van een ontwikkeltool, verbergt dezelfde kwetsbaarheid in een systeempakket dat we met een gewone update wél zouden verhelpen. De scan blijft groen terwijl er iets te repareren valt.

Daarnaast verloopt een uitzondering nooit vanzelf: er is geen moment waarop iemand er automatisch weer naar kijkt. De lijst kan dus stilletjes verouderen.

Wenselijk gedrag

  • Een uitzondering geldt alleen voor de plek waarvoor hij is opgeschreven.
  • Een uitzondering heeft een houdbaarheidsdatum en komt daarna vanzelf terug als aandachtspunt.
  • De bestaande uitzonderingen behouden hun onderbouwing.

Acceptatiecriteria

  • Elke bestaande uitzondering is beperkt tot de plek waar hij voor bedoeld is.
  • Elke uitzondering heeft een einddatum.
  • Alle plekken waar gescand wordt, gebruiken dezelfde lijst en gedragen zich gelijk.
  • De reden bij elke uitzondering blijft leesbaar behouden.

Technische details

.trivyignore werkt per CVE-ID en kent geen paths of expired_at. Trivy ondersteunt dat wel in het .trivyignore.yaml-formaat.

Te raken plekken:

  • .trivyignore → omzetten naar .trivyignore.yaml, met per entry id, paths, expired_at en de bestaande onderbouwing als statement
  • .github/workflows/trivy.yml
  • .github/workflows/build-image.yml (image-scan op PR)
  • .github/workflows/check-upstream.yml (job apt-security-refresh, geeft het bestand expliciet mee via trivyignores)

Aandachtspunt: de vier npm-bundel-suppressies horen aan usr/local/lib/node_modules/npm/** gebonden te worden; de misconfig-IDs (DS-0002, DS-0026) gelden op de Dockerfile zelf.

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