Cyberbeveiligingswet: wat Goooy als leverancier doet
How Goooy supports a customer under the Dutch Cyberbeveiligingswet (NIS2): incident notification, vulnerability handling and a supply-chain statement. In Dutch, because it goes into the gemeente’s contract and incident procedure.
Wat de Cbw van een gemeente vraagt
Sinds 15 augustus 2026 is de Cyberbeveiligingswet van kracht en zijn gemeenten essentiële entiteiten. Dat betekent:
- Registratieplicht: registreren in het entiteitenregister van het NCSC.
- Zorgplicht: passende maatregelen voor de netwerk- en informatiesystemen. Voor de overheid is dat de BIO2, inclusief de beveiliging van de toeleveringsketen (zie bio.md).
- Meldplicht: een significant incident zo snel mogelijk en uiterlijk binnen 24 uur na kennisname melden bij het CSIRT (via het NCSC) en de toezichthouder. Volgens NIS2 art. 23 volgen een incidentmelding binnen 72 uur en een eindverslag uiterlijk een maand na de melding.
Een incident bij een leverancier is vaak een incident bij de gemeente. De gemeente kan haar termijnen alleen halen als de leverancier haar sneller informeert. Daarom vraagt de BIO2 (5.20.05, 5.21.04) dat leveranciers transparant zijn over incidenten en kwetsbaarheden.
Wie is hier de leverancier
| Situatie | Wie meldt incidenten aan de gemeente | Rol van Goooy |
|---|---|---|
| De gemeente host Goooy zelf | Haar eigen beheer; de infrastructuurleverancier voor zijn deel | Softwareleverancier: kwetsbaarheden en beveiligingsupdates |
| Een GR of hostingpartij host Goooy | De GR of hostingpartij | Softwareleverancier voor de GR of hostingpartij |
| Goooy levert het als dienst | Goooy | Leverancier van de dienst: alles hieronder |
Of de leverancier zelf onder de Cbw valt, hangt af van wat hij doet en hoe groot hij is: aanbieders van clouddiensten en beheerde ICT-diensten kunnen eronder vallen, een softwaremaker als zodanig niet. Laat dat per leverancier toetsen.
Incidenten
Voor de dienst die Goooy of een partner levert. Een hostingpartij neemt dit over in zijn eigen verwerkersovereenkomst.
Wat telt. Elk beveiligingsincident dat de dienst aan de gemeente raakt: onbevoegde toegang, verlies of lekken van gegevens, verstoring van de beschikbaarheid, een misbruikte kwetsbaarheid, of een incident bij een subverwerker. Of het voor de gemeente significant is, beoordeelt de gemeente; de leverancier meldt ook bij twijfel.
Termijnen, gerekend vanaf het moment dat de leverancier het incident vaststelt:
| Stap | Termijn | Waarvoor de gemeente het nodig heeft |
|---|---|---|
| Eerste melding | Zo snel mogelijk, uiterlijk 4 uur | Haar vroegtijdige waarschuwing (24 uur) |
| Bijgewerkte melding | Uiterlijk 48 uur | Haar incidentmelding (72 uur) en, bij persoonsgegevens, de melding aan de Autoriteit Persoonsgegevens (72 uur) |
| Tussentijdse updates | Bij elke belangrijke wijziging, en op verzoek | Vragen van het CSIRT of de toezichthouder |
| Eindrapport | Uiterlijk 3 weken na de eerste melding | Haar eindverslag (een maand) |
Buiten kantooruren telt de klok ook. De eerste melding gaat per telefoon en per e-mail naar het incidentcontact van de gemeente (Bijlage 1.6 van de verwerkersovereenkomst).
Inhoud van een melding
| Veld | Eerste melding | Bijgewerkt | Eindrapport |
|---|---|---|---|
| Wat is er gebeurd, sinds wanneer, hoe ontdekt | ✓ | ✓ | ✓ |
| Vermoeden van kwaadwillend handelen | ✓ | ✓ | ✓ |
| Mogelijk grensoverschrijdend effect | ✓ | ✓ | |
| Welke diensten en gegevens zijn geraakt, welke gebruikers | voor zover bekend | ✓ | ✓ |
| Persoonsgegevens betrokken (datalek) | voor zover bekend | ✓ | ✓ |
| Ernst en impact | eerste inschatting | ✓ | ✓ |
| Indicators of compromise (IP-adressen, hashes, accounts) | ✓ | ✓ | |
| Genomen en geplande maatregelen, wat de gemeente zelf moet doen | ✓ | ✓ | ✓ |
| Oorzaak | voor zover bekend | ✓ | |
| Verbeteringen om herhaling te voorkomen | ✓ |
Wat de software aanlevert voor het onderzoek
- Het beveiligingslogboek: aanmeldingen (ook mislukte, per protocol), beheer, delen, delegaties, inzage door anderen, exports, geweigerde uitgaande verbindingen, als CSV of JSON-lines en via syslog in de SIEM (audit.md).
- Metrics en alarmregels voor API, mail en achtergrondtaken (operations.md).
- Sessies, app-wachtwoorden en OAuth-tokens van een account in te trekken, MFA te resetten, apparaten op afstand te wissen.
Incidentinformatie wordt minimaal drie jaar bewaard (BIO2 5.28.01).
Kwetsbaarheden
Het beleid voor melders staat in SECURITY.md (coordinated vulnerability disclosure volgens de NCSC-leidraad, BIO2 5.24.08). Samengevat: melden bij security@goooy.nl, reactie binnen 3 werkdagen, beoordeling binnen 10 werkdagen.
Voor klanten en beheerders
| Ernst (CVSS) | Beveiligingsupdate | Advies aan klanten |
|---|---|---|
| Kritiek, hoog | Binnen 7 dagen na beoordeling (BIO2 8.08.01) | Direct bij vaststelling als er misbruik is of een tijdelijke maatregel mogelijk is; anders met de update |
| Gemiddeld | Binnen 30 dagen | Met de update |
| Laag | Binnen 90 dagen | In de releasenotes |
Een beveiligingsadvies gaat vóór publicatie naar het beveiligingscontact van elke klant en beheerder, met de getroffen versies, de update, een tijdelijke maatregel als die er is, en of er aanwijzingen van misbruik zijn. Kwetsbaarheden in afhankelijkheden (een nieuwe CVE in een bibliotheek) toetsen we tegen de SBOM; is Goooy geraakt, dan volgt hetzelfde proces.
Elke installatie publiceert zijn eigen /.well-known/security.txt met het contact
van de beheerder (SECURITY_CONTACT, SECURITY_POLICY_URL), zodat melders de juiste
partij vinden.
Verklaring toeleveringsketen
Voor de risicoanalyse van de gemeente (BIO2 5.21.02 – 5.21.05).
Wat er in Goooy zit
- Afhankelijkheden: npm-pakketten, vastgelegd in
package-lock.json. Een SBOM (CycloneDX 1.5, alleen de runtime-onderdelen) per release:npm run sbom. Nieuwe afhankelijkheden worden beoordeeld op onderhoud, licentie en omvang. - Container-images: gebouwd uit de broncode in deze repository op
node:26-alpine(API),nginx:1.30-alpine(web),debian:13-slim(Postfix 3.10), en de officiële images van Dovecot en Rspamd. Images krijgen de commit als tag. - Desktop-apps: Qt, en voor Writer, Sheets en Slides een aangepaste LibreOffice (MPL-2.0).
Controles
npm auditop de runtime-afhankelijkheden hoort bij elke release; wat er open staat en waarom, staat in security.md.- Regressietests over echte protocollen, gedraaid bij elke opgeleverde wijziging (development.md).
- Een bewaking dat de interne SMTP-poort nooit naar buiten openstaat (Helm-controle).
Diensten van derden tijdens gebruik: standaard geen. Wat de beheerder aanzet
(AI, push, foutrapportage, een externe TURN-server) staat in Beheer → Compliance →
Dataresidentie en Beheer → Privacy (AVG) → Ontvangers; met DATA_RESIDENCY=eu-strict
kan niets anders (data-sovereignty.md).
Leveranciers van Goooy zelf: de broncode staat op GitLab.com. Voor de dienst die Goooy levert: de hosting- en back-upaanbieders in Bijlage 1 van de verwerkersovereenkomst. Een wijziging daarin melden we vooraf (BIO2 5.21.04).
Bekende zwakke plekken:
- De images die Goooy zelf bouwt (waaronder Dovecot 2.4.5 en Rspamd 4.2.0) staan op een
versie én digest vast. Een deel van de images uit de Helm-chart nog niet: ClamAV
(
1.4), Postgres en Redis volgen hun major-tag, en de optionele browser- en computercomponenten gebruikenlatest(security.md). - De pipeline ondertekent de images met cosign en voegt de SBOM toe als attestatie,
maar alleen als de CI-variabelen
COSIGN_PRIVATE_KEYenCOSIGN_PASSWORDzijn gezet; zonder sleutel worden de images ongetekend gepusht. Controleer vóór het uitrollen metcosign verifyof de ondertekening er is. Er is geen SLSA-herkomst. - De GitLab-pipeline (
.gitlab-ci.yml) draait typecheck, unittests, de build, de chart,npm audit, de SBOM, de smoke-suites en Playwright. Wat niet in de pipeline zit, is een verplichte goedkeuring door een tweede persoon (zie hieronder). - Eén hoofdontwikkelaar, zonder tweede reviewer (standard-for-public-code.md). De broncode is open, dus een ander kan het werk overnemen; de gemeente hoeft niet op één persoon te vertrouwen om de software te blijven gebruiken.
- Geen onafhankelijke certificering of pentest van de dienst (zie bio.md).
Checklist voor de gemeente
- Registreer in het entiteitenregister van het NCSC.
- Neem de termijnen en de inhoud van de incidentmelding hierboven op in de verwerkersovereenkomst of de SLA met wie Goooy voor u host.
- Zet het incidentcontact en het beveiligingscontact in Bijlage 1.6 van de verwerkersovereenkomst; houd ze actueel.
- Stuur het beveiligingslogboek naar uw SIEM (
AUDIT_SYSLOG_URL) en leg daar de detectieregels vast (5.17.01: ongebruikelijke plekken, pieken in mislukte aanmeldingen). - Neem de SBOM en deze verklaring mee in de jaarlijkse leveranciersbeoordeling (BIO2 5.22.01).
- Verwijs in uw eigen incidentprocedure naar deze pagina (BIO2 5.24.07).