Lessen over security-as-a-code in je IT-omgeving

Dit blog is eerder verschenen op Computable

Onder invloed van de Industry 4.0-trend willen bedrijven hun assets op afstand monitoren en/of aansturen. Waar ze eerst laagdrempelig ervaring opdeden met machines en apparatuur die niet kritisch zijn voor hun bedrijfsvoering, willen ze nu – enthousiast door de businesscase – ook assets in het hart van hun bedrijf op afstand uitlezen of zelfs bedienen. Dan moet er qua security nog wel een tandje bij.

7 oktober 2021   |   Blog   |   Door: Neal Peters

Deel

Vraag stellen

Want kritische assets toegankelijk via internet, staan ook bloot aan cyberdreigingen. In kritieke situaties is afscherming met een viercijferig netwerk uiteraard niet voldoende. De hele keten moet door een securitybril worden bekeken, van de verbindingen tot de hardware waar de applicatie op draait. Die keten zal vanaf de grond af aan opnieuw moeten worden ontworpen volgens een security-by-design-aanpak.

Je denkt niet achteraf na over de beveiliging, maar neemt dit integraal mee bij de ontwikkeling van de code: security-as-a-code

Neal Peters, Architect Conclusion Mission Critical

Security-as-code

Dit komt erop neer dat je ot door een it-bril gaat bekijken en opnieuw gaat vormgeven, gebruikmakend van werkwijzen die in de it al jaren vertrouwd zijn, zoals het werken met containers.

Laten we het voorbeeld nemen van een bestaande plc (programmable logic controller) die moet worden omgebouwd volgens de security-by-design-aanpak. Dit doe je door de plc opnieuw te ontwerpen en in een container te plaatsen. Die container is behalve van de code voor de plc ook voorzien van de juiste integraties en de juiste mate van security. Je denkt dus niet meer achteraf na over de beveiliging, maar neemt dit mee als integraal onderdeel bij de ontwikkeling van de code: security-as-a-code.

Devsecops: securityspecialisten in het devops-team

Dit betekent dat je bij het schrijven van de code voor zo’n plc al moet nadenken over mogelijke vormen van misbruik en de manieren waarop je dat kunt tegengaan. Security maakt dus integraal onderdeel uit van de applicatieontwikkeling. Niet alleen dev en ops moeten nauw samenwerken, maar ook de securityspecialisten moeten betrokken worden bij de ontwikkeling van de applicatie. We spreken daarom van devsecops.

Vier beveiligingslagen

Laten we teruggaan naar het voorbeeld van de plc die je via internet wilt bedienen. Stel dat één van de functies van de plc is om continu de druk in een vat te meten en dit vat automatisch te ontluchten als de druk te hoog wordt. Als de automatische ontluchting niet goed werkt, kan het vat exploderen. Je zult deze plc daarom moeten beschermen tegen misbruik van deze functionaliteit, bijvoorbeeld door een actiegroep of terroristische organisatie. Dat doe je door te werken met een gelaagde beveiliging. Die bestaat minimaal uit de volgende vier onderdelen:

In de eerste plaats moet je de toegangscontrole inrichten: wie mogen er toegang hebben tot deze applicatie? Welk beleid is er op die toegang van toepassing? Mag iemand de plc alleen aansturen vanaf een bepaalde locatie, bijvoorbeeld een controle-ruimte op het hoofdkantoor, of mag hij ‘m ook vanuit huis bedienen? Met welke devices mogen deze werknemers de plc op afstand bedienen en via welke netwerken mogen ze contact zoeken?

Een tweede aandachtspunt is kwetsbaarheid en compliance-scanning. Dat betekent dat je securityscanners moet inbouwen in je containers. Deze scanners houden continu de externe omgeving in de gaten en waarschuwen als er iets verdachts gebeurt wat erop zou kunnen duiden dat onbevoegden toegang proberen te zoeken tot de plc.

Daarnaast moet je de interne omgeving monitoren. Gebeurt er in de plc iets wat erop duidt dat onbevoegden zich – ondanks alle maatregelen – toegang hebben verschaft? Je zult dus continu het gedrag van de plc moeten monitoren op verdachte situaties. Een verdachte situatie is in dit geval bijvoorbeeld dat iemand de automatische ontluchting deactiveert.

Tot slot moet je in je ci-pijplijn securitytests uitvoeren. Logisch, want security maakt nu onderdeel uit van het test- en acceptatieproces. Het liefst automatiseer je de securitytests zoveel mogelijk; niet alleen om tijd te besparen, maar vooral om de kwaliteit van die tests te verhogen. Er zijn verschillende tools die je hiervoor kunt inzetten. Ook de controle op het verwerken van de bevindingen zijn (deels) te  automatiseren.

NIST-raamwerk

Je hoeft niet het wiel opnieuw uit te vinden. Het raamwerk van de National Institute of Standards and Technology (NIST) biedt goede handreikingen, beschrijvingen en uitgangspunten voor het beveiligen van de container. De NIST sluit ook goed aan bij de Nederlandse wet- en regelgeving, zoals ISO27001 en branchenormeringen zoals IEC62443, de standaard voor industriële communicatienetwerken.

Wil je jouw organisatie-assets op afstand gaan uitlezen en misschien zelfs aansturen, kijk dan door de hier beschreven bril naar de beveiliging van de omgeving en ga er niet van uit dat een viercijferig password op een iot-device voldoende is.

Meer weten?

IT voor OTOnze expertisesOver onsOnze cases