CSIR Assessment Tool

De Cybersecurity Implementatierichtlijn Objecten (CSIR) toegepast op één object met industriële automatisering: een tunnel, gemaal, brug, sluis, verkeersinstallatie of vergelijkbaar areaal.

Drie stappen achter elkaar. Je classificeert het object langs zes gevolgcriteria; daaruit volgen de functiebox en het weerstandsniveau. Je bepaalt welke van de 127 controls je van toepassing verklaart en welke van de 268 maatregelen op dat niveau gelden. Je werkt ze uit tot een dossier met status, bewijs, verantwoordelijke en onderbouwde afwijkingen. De eisteksten zijn woordelijk uit de CSIR overgenomen, zodat je ze rechtstreeks in een vraagspecificatie of contract kunt gebruiken.

Het kan online in je browser of in Excel. De browserversie rekent lokaal: er is geen server, geen account en geen telemetrie, en je dossier verlaat je eigen apparaat niet.

Status: prototype. Werkt en is te gebruiken; geen belofte over onderhoud.

Voor wie

CISO's, ISO's, objectbeheerders en projectleiders bij publieke organisaties die objecten met industriële automatisering (IA/PA/OT) beheren. Ook bruikbaar als eisenbron bij een aanbesteding of een contract met een leverancier.

Snel starten

  1. Open de CSIR Assessment Tool in je browser.
  2. Classificeren. Scoor de zes gevolgcriteria van 1 tot 5 en onderbouw elke score. De functiebox (A–E) en het weerstandsniveau (1–4) rollen eruit. Bedient dit object andere objecten, dan gaat het niveau mee omhoog met het zwaarste object dat het aanstuurt.
  3. Bepalen. Loop de 127 controls langs en verklaar per control Van toepassing. Ze staan voorgevuld op "Ja"; zet ze op Nee of N.v.t. waar het risico buiten de scope van de opdracht valt en onderbouw dat. Op het maatregelenblad zie je direct wat daarmee in scope komt.
  4. Uitwerken. Houd per maatregel de status en het bewijs bij. Per paragraaf staan de handleidingen uit de kennisbank erbij: de richtlijn zegt wat er moet gelden, die zeggen hoe je het inricht.
  5. Uitdraai. Het laatste tabblad zet alles op een rij in de volgorde waarin het in het Cybersecurity Dossier hoort, met de afwijkingen apart. Sla je dossier op als bestand; het is een gewone JSON die je later weer inleest.

Liever Excel? Download het werkboek en het classificatieformulier. Beide rekenen hetzelfde. Het werkboek is een sjabloon: er staat geen object in, dus kopieer het per object.

De uitleg bij het werkboek staat op de uitlegpagina: de werkwijze stap voor stap en de verantwoording van elke kolom.

Bijdragen

Zie de CONTRIBUTING van de organisatie: daar staat per project een formulier, ook zonder Git-ervaring. Een issue of discussion is een volwaardige bijdrage.

Licentie

EUPL-1.2, zie LICENSE. Die licentie dekt wat in dit project zelf gemaakt is: de opzet van het werkboek, de formules, het dashboard, de webversie en de documentatie.

De eisteksten zelf vallen daar niet onder. De controls en maatregelen zijn woordelijk overgenomen uit de Cybersecurity Implementatierichtlijn Objecten, uitgegeven door Rijkswaterstaat en Het Waterschapshuis. Het auteursrecht daarop ligt bij hen. Gebruik dit register zoals je de CSIR zelf zou gebruiken.

Wat erin zit

Onderdeel Inhoud
Classificeren Zes gevolgcriteria (veiligheid, maatschappij, financieel, cascade, ecologie, imago), elk met vijf drempels; onderbouwing per criterium
Niveau Functiebox, keten-analyse (CSIR §0.3), berekend weerstandsniveau
Dashboard Live tellers: voortgang per onderdeel en per maatregelparagraaf, in en uit scope
VSP Proceseisen 89 proces-controls, met de BIO-bron erbij
VSE Systeemeisen 38 systeem-controls
Maatregelen Alle 268 maatregelen met de niveaus N1–N4, de scope en de handleidingen per paragraaf
Bijlagen CSR 1–24 plus A, B en C
Uitdraai Het hele dossier op een rij, met de afwijkingen apart; afdrukbaar op A4

In cijfers: 127 controls (89 + 38), 268 maatregelen en 27 bijlagen. Per weerstandsniveau gelden 193, 198, 230 en 234 maatregelen; een maatregel kan op meerdere niveaus gelden.

Hoe het rekent

De opmaak (kleuren in koppen en accenten) is vrij aan te passen aan de eigen huisstijl.

Onder de motorkap

csir.json is de bron van de webversie: alle eisteksten, maatregelen, drempels en keuzelijsten, met de sha256 van beide werkboeken erbij. Hij wordt gemaakt met register/haal_bron.py en een test blokkeert als hij van de werkboeken afdrijft. De pagina zelf is één bestand met een Content-Security-Policy die elke externe verbinding uitsluit; dat wordt in de tests nagerekend in plaats van beloofd. Zie register/LEESMIJ.md voor bouwen, rekenen en testen.

Zo gebruik je het register

Het register maakt de vervolgstappen ná de objectclassificatie concreet en toetsbaar: van "wat schrijft de CSIR voor" naar "wat gaan wij voor dít object doen, op welk niveau, en waarom".

De vijf stappen

  1. Classificeren. Het object heeft een functiebox (A–E) uit de objectclassificatie. Die bepaalt het weerstandsniveau: A=4, B=3, C=2, D=1, E=1. Vul beide in op blad Instellingen. Heb je die classificatie nog niet gedaan, begin dan bij het classificatieformulier (zie hieronder); in de webversie is dat het eerste tabblad en stroomt de uitkomst vanzelf door.
  2. Baseline vaststellen. Loop de controls op VSP en VSE langs en verklaar ze van toepassing. Uitgangspunt is dat de volledige set geldt; wijk je af, dan doe je dat risicogestuurd en leg je dat vast.
  3. Maatregelen selecteren. Op het maatregelenblad toont de kolom Geldt (dit object) wat op het gekozen niveau geldt. In scope? (auto) combineert dat met je van-toepassing-keuzes.
  4. Verantwoorden. Houd per regel de status bij en leg bewijs vast. Afwijkingen krijgen status Explain (afwijking) met een onderbouwing.
  5. Vastleggen. De complete invulling en alle afwijkingen horen in het Cybersecurity Dossier / Beveiligingsplan (bijlage B), met een jaarlijkse toetsing volgens de PDCA-cyclus.

Stap 1 tot en met 3 en stap 5 zijn constant. Alleen de vertaalslag naar contracteisen hangt ervan af of je het werk uitbesteedt.

De classificatie ervoor

De functiebox komt niet uit dit register maar uit de objectclassificatie, en die is een stap op zich. Je beoordeelt het potentiële gevolg als het object faalt, uitvalt of niet beschikbaar is, langs zes criteria: veiligheid van medewerker en publiek, maatschappelijke gevolgen, financiële en herstelschade, cascade- en dominoeffecten, ecologische schade, en imago- en politieke schade. Elk criterium scoor je van 1 (klein) tot 5 (catastrofaal), met per stap een concrete drempel: minder dan duizend of meer dan vijfhonderdduizend getroffen personen, minder dan vijf ton of meer dan vijfhonderd miljoen euro schade, interne commotie of langdurig geen college.

Het formulier neemt daarvan het afgeronde gemiddelde en vertaalt dat naar de functiebox: 1=E, 2=D, 3=C, 4=B, 5=A. Dat gemiddelde heeft een prijs die je moet kennen: een enkel zwaar gevolg middelt weg. Een 5 op cascade tussen vijf enen komt uit op box D, terwijl datzelfde cascade-effect in de praktijk de reden is dat het object ertoe doet. De webversie zet daarom de strengste lezing ernaast, de hoogste score, zodat je ziet wat het verschil is voordat je hem vaststelt. Het formulier blijft leidend; wijk je ervan af, onderbouw dat dan bij de opmerkingen.

De onderbouwing is het product, niet het cijfer. Wat je later moet kunnen uitleggen aan een bestuurder, een auditor of een leverancier is waarom een gevolg zwaar of licht is ingeschat, niet welk getal eruit rolde. Vul daarom per criterium de onderbouwing in, ook als de score vanzelfsprekend lijkt.

De ketenregel

De CSIR stelt in §0.3: "Elke keten is zo sterk als de zwakste schakel. Indien de bediening of het beheer van object A wordt gedaan vanuit een initieel lager geclassificeerd object B, wordt de classificatie van dat object B verhoogd tot het cybersecurity weerstandsniveau van object A."

Het bedienende object gaat dus omhoog. Vul op Instellingen daarom de objecten in die vánuit dit object worden bediend of beheerd; het zwaarste daarvan bepaalt de ophoging. Wordt dit object juist zelf vanuit een ander object bediend, dan moet dát andere object omhoog — niet dit object. Een centrale bediening zit dus minimaal op het niveau van het zwaarste object dat zij aanstuurt.

Selectie op het maatregelenblad

Het blad toont alle 268 maatregelen. Wat op het gekozen niveau geldt staat in Geldt (dit object) op "Ja"; de overige regels staan grijs. Zo blijft de selectie zichtbaar meebewegen met het niveau zonder dat er iets verdwijnt.

Wil je alleen de geldende set zien, filter die kolom dan op "Ja". Let op: Excel past een bestaand filter niet vanzelf opnieuw toe. Na elke niveauwijziging moet je het filter herhalen, anders blijven rijen ten onrechte verborgen.

Wat er onder de motorkap gebeurt

De CSIR in een contract

De eisen horen bindend in het contract; de gestripte CSIR-variant voor aanbestedingen gaat mee als aangeroepen bijlage; het Cybersecurity Dossier is een op te leveren product.

In de vraagspecificatie:

Als op te leveren product: het Cybersecurity Dossier / Beveiligingsplan (bijlage B), en waar van toepassing een Recovery Plan (CSR 15), een CMDB (CSR 16), back-upmanagement (CSR 18) en een continuïteitsplan energievoorziening (CSR 12).

Let op bij de gestripte variant. Daarin ontbreekt het hoofdstuk met de controls. De controlnummers (5.1.1.1, 15.1.2.6 en zo verder) zijn daar dus niet terug te vinden. De §2- en CSR-verwijzingen zijn wél rechtstreeks bruikbaar. Dat is precies waarom de controls als eisen in de vraagspecificatie moeten landen.

Onderhoud

Register-versie, opsteller en datum staan in het metadatablok op Instellingen. Voor een nieuw object kopieer je het bestand en pas je alleen dat blad aan. Verschijnt er een nieuwe CSIR-versie, controleer dan of controls, maatregelen of niveaus zijn gewijzigd.

Waar de inhoud vandaan komt

Een register dat eisen uit een norm overneemt, is alleen bruikbaar als navolgbaar is wat brontekst is en wat eigen invulling. Deze pagina legt dat per kolom vast.

Bron

De inhoud komt uit de Cybersecurity Implementatierichtlijn Objecten (CSIR), versie 3.0, uitgegeven door Rijkswaterstaat en Het Waterschapshuis. Daarnaast bestaat een gestripte variant voor aanbestedingen, waarin het hoofdstuk met de controls ontbreekt.

Die twee zijn voor het maatregelenhoofdstuk identiek: dezelfde 268 maatregelen, dezelfde teksten, dezelfde paragraafnummers en dezelfde niveaumarkeringen, plus dezelfde bijlagen CSR 1–24 en A, B en C. Alle §2- en CSR-verwijzingen in dit register gelden dus in beide varianten. Alleen de controlnummers bestaan uitsluitend in de volledige versie.

Daarnaast hoort bij dit register het objectclassificatieformulier (werkboek/objectclassificatie.xlsx), waaruit de functiebox volgt. De zes gevolgcriteria, hun uitleg, de dertig drempelteksten en de tabel ernst → functiebox → weerstandsniveau zijn daaruit woordelijk overgenomen. Het formulier komt uit de waterschapswereld; de keuzelijst met hoofdtaken is daarom in de webversie aangevuld met gemeentelijke objecttypen (tunnel, gemaal, brug, sluis, verkeersregelinstallatie, parkeergarage). Dat is de enige inhoudelijke toevoeging aan dat formulier.

Wat letterlijk is overgenomen

Onderdeel Aantal
Maatregelteksten 268
Control-eisen (kolom C op VSP en VSE) 127
Niveaumarkeringen N1–N4 268 × 4
Paragraafnummers en BIO-bronnummers alle
Groepskoppen van de fysieke-toegangsparagrafen 65
Bijlagenummering CSR 1–24 plus A, B en C 27
Functiebox-tabel en het ketenregel-citaat

Elke tekst is met twee onafhankelijke extractiemethodes tegen de bron gelegd: één op basis van tekstcoördinaten, één op basis van vaste kolomposities. De niveaumarkeringen zijn op coördinaten uitgelezen, omdat de tabellen in de bron over pagina's heen verspringen; de uitkomsten zijn steekproefsgewijs visueel geverifieerd tegen de opgemaakte pagina's.

Wat eruit is afgeleid

Wat eigen invulling is

De hele werkwijzelaag is van dit register en staat niet in de CSIR: de kolommen Van toepassing, Status, Invulling / bewijs, Verantwoordelijke en Comply-or-explain, de berekende kolommen Geldt (dit object) en In scope? (auto), het complete dashboard met alle tellers, de nummering in kolom A, en de kolom Korte omschrijving op de controlbladen. Die laatste is een navigatiehulp en draagt dat ook als kop: niet normatief. Neem hem nooit over in een contract; gebruik kolom C.

Bewuste afwijkingen van de letterlijke tekst

Wat Waarom
Tme23TMe23 Typefout in de bron, in beide varianten
Tweede MM1MP1 De bron gebruikt MM1 twee keer; de tweede staat in de groep "Procedures en Organisatie" en wordt gevolgd door MP2, MP3 en MP4
LM11 blijft LM11 Ook een bronafwijking van het patroon, maar ongemoeid gelaten omdat de code nergens botst
Eén maatregel noemt "CO3" waar CO4 logisch zou zijn Letterlijk overgenomen
Twee maatregelen hebben identieke tekst op niveau 1 en 2 Letterlijk overgenomen; ze zijn in de bron werkelijk gelijk
Eén control verwijst naar "paragraaf 2.42" Letterlijk overgenomen; de gecorrigeerde verwijzing §2.4.2 staat in de kolom Aangeroepen §2
Eén control eindigt met de ingevulde objectnaam De bron heeft daar de placeholder "Lijst Objecten: xx – cybersecurity weerstandsniveau xx"; die xx-en zijn vervangen door de ingestelde waarden

De bron is op één punt intern inconsistent: de functiebox-tabel in de inleiding laat de waarde bij E leeg, terwijl de tabel bij het maatregelenhoofdstuk E=1 geeft. Het register volgt het maatregelenhoofdstuk.

Grenzen van dit register

Het register dekt het strategische deel van een CSIR-implementatie: classificatie, weerstandsniveau, de bijbehorende maatregelenset en de verantwoording daarover. Het dekt het risicodeel niet.

Wie de CSIR op een bestaand object toepast, werkt risicogestuurd: per maatregel die niet voldoet een kans en een impact bepalen, daaruit een risicowaarde, en per risico een formele acceptatie of een mitigerende maatregel met kosten en doorlooptijd. Daar heeft dit werkboek geen kolommen voor. Het verschil zit in de meetlat: dit register meet voortgang richting volledige implementatie, terwijl een risicogestuurde aanpak meet of het restrisico aanvaardbaar is. Voor nieuwbouw en algehele renovatie is de eerste meetlat de juiste; voor bestaande objecten de tweede.

Ook niet aanwezig: een gap-analyse met de tussenwaarden "voldoet deels" en "informatie ontbreekt", ruimte voor objectspecifieke maatregelen buiten de CSIR, en velden voor prioritering, planning en herijkingsdatum.