Nu bedrijven overstappen op cloudinfrastructuur, is het algehele implementatieproces drastisch veranderd. Dit heeft geleid tot een toename in het gebruik van containers en Kubernetes. Containers fungeren als bouwstenen voor microservice-architectuurtoepassingen, waarbij bedrijven meerdere services voor verschillende use cases hebben draaien in plaats van één monolithische applicatie. Hoewel deze verschuiving veel voordelen biedt voor de ontwikkelingsteams, brengt het ook verschillende beveiligingsuitdagingen met zich mee. Dit is waar containersecurityscanning om de hoek komt kijken.
In deze blogpost bespreken we wat containerscanners zijn, welke veelvoorkomende kwetsbaarheden er in containers zitten en hoe je deze kunt vermijden. We bespreken ook de belangrijkste doelstellingen en voordelen van het gebruik van scantools voor containerveiligheid.
Wat is containerbeveiligingsscanning?
Containerbeveiligingsscanning is een proces waarbij verschillende scantools worden gebruikt om containerimages te onderzoeken op beveiligingskwetsbaarheden. Deze containers kunnen zich in de statische fase of in de uitvoeringsfase bevinden. Het einddoel van containerbeveiligingsscanning is het opsporen van kwetsbaarheden, verkeerde configuraties in de cloudinfrastructuur en inbreuken op de complexiteit.
Het beveiligen van containers die door bedrijven in productie worden gebruikt, is van cruciaal belang, omdat ze als toegangspunt voor bedreigingen kunnen dienen. Tools voor het scannen van containerveiligheid zijn een belangrijk hulpmiddel voor ondernemingen om de algehele supply chain-omgeving te beveiligen.
Soorten scans voor containerveiligheid
Zoals besproken in het vorige gedeelte, kunnen tools voor het scannen van containerveiligheid containers scannen in runtime- of statische modus. Dit staat bekend als respectievelijk dynamische en statische analyse. Laten we hier meer over te weten komen.
- Statische analyse: Dit betekent dat er effectief kwetsbaarheidstests worden uitgevoerd op afbeeldingen op de containerniveau om te zoeken naar kwetsbaarheden in de basisafbeelding, de code en de afhankelijkheden van de applicatie. Statische analyse wordt meestal uitgevoerd tijdens de bouwfase van de software en is effectief om problemen in een vroeg stadium op te sporen.
- Dynamische analyse: Dynamische analyse is een ander aspect dat naast de componenten van de container ook het gedrag en de interacties van de container tijdens de uitvoeringsfase ontrafelt. Het maakt realtime monitoring van actieve containers mogelijk op bedreigingen en afwijkende activiteiten.
Belangrijkste doelstellingen van containersecurityscans
Bij het gebruik van gecontaineriseerde applicaties is het belangrijk om regelmatig containersecurityscans uit te voeren. Dit proces helpt bij het bereiken van meerdere doelstellingen om de algehele beveiligingsstatus te verbeteren. In dit gedeelte gaan we dieper in op deze doelstellingen.
1. Identificeren van kwetsbaarheden in containerafbeeldingen
Een van de belangrijkste doelstellingen van containersecurityscans is het identificeren van beveiligingskwetsbaarheden in de containers. Deze kwetsbaarheden kunnen zich zowel in de basisafbeelding van de container bevinden als in de pakketten van derden die erop zijn geïnstalleerd. Bedrijven gebruiken deze gegevens vaak om ontwikkelaars te helpen de container te beveiligen en misbruik door aanvallers te voorkomen. Als het aantal kwetsbaarheden voor containers te hoog is of de risicobereidheid van het bedrijf overschrijdt, kunnen ze ook implementaties blokkeren.
2. Detecteren van verkeerde configuraties en beveiligingsrisico's
Containersecurityscans helpen niet alleen bij het identificeren van kwetsbaarheden, maar kunnen ook helpen bij het opsporen van verkeerde configuraties met betrekking tot containers. Veelvoorkomende voorbeelden zijn verkeerde machtigingen, het gebruik van root-toegang of blootgestelde informatie. Organisaties moeten ervoor zorgen dat containers veilig zijn geconfigureerd om ongeoorloofde toegang te voorkomen of te voorkomen dat de container een toegangspunt voor aanvallers wordt.
3. Zorgen voor naleving van beveiligingsnormen
Naleving verwijst naar het volgen van bepaalde richtlijnen of specifieke voorwaarden. Bedrijven moeten om verschillende redenen aan compliance voldoen, zoals klantvertrouwen, beveiliging, enz. Compliance is afhankelijk van de branche waarin het bedrijf actief is, zoals de HIPAA die door bedrijven in de gezondheidszorg wordt gebruikt. Compliance-normen, zoals SOC II, HIPAA, enz., hebben strikte richtlijnen om de beveiliging van containers te waarborgen. Bedrijven moeten hoge boetes betalen aan regelgevende instanties als ze dergelijke voorschriften overtreden. Containerveiligheidsscanners zorgen ervoor dat de containers veilig zijn en voldoen aan de compliance-eisen.
4. Het voorkomen van de implementatie van onveilige containers
Zoals eerder besproken, kunnen bedrijven de implementatie van onveilige containers voorkomen als onderdeel van CI/CD-controles. Het blokkeren is meestal bedoeld om te voorkomen dat kwetsbare containers live gaan (in productie) komen, waar iedereen die de applicatie gebruikt, kan proberen ze te hacken met behulp van bekende kwetsbaarheden. Het doel is om te voorkomen dat aanvallers het systeem compromitteren en gevoelige informatie lekken.
Belangrijkste componenten van containersecurityscanning
Containerveiligheidsscanning is een langdurig proces met meerdere componenten die verschillende taken uitvoeren. Laten we deze belangrijke componenten eens bekijken.
Beeldscanning
Containers en beelden zijn verwante termen, maar worden door ontwikkelaars door elkaar gebruikt. Zie een afbeelding als een compleet pakket dat alles bevat wat nodig is voor de applicatie. Dit omvat de code van de applicatie, de runtime-omgeving, enz. Containers zijn daarentegen actieve instanties van dezelfde afbeelding. De containers zijn geïsoleerde omgevingen, maar kunnen met elkaar communiceren.
Afbeeldingsscannen is een proces waarbij hetzelfde pakket wordt gescand waar we het over hadden. Als onderdeel van het proces proberen oplossingen voor het scannen van containerveiligheid kwetsbaarheden te vinden in de basisimage, de applicatiecode en de afhankelijkheden die door de applicatie worden gebruikt.
Configuratiebeoordeling
Configuratievalidatie of -beoordeling wordt gebruikt om te controleren of er geen onveilige configuraties (ook wel verkeerde configuraties genoemd) in de container en de omgeving ervan aanwezig zijn. Enkele veelvoorkomende verkeerde configuraties zijn het gebruik van standaardwachtwoorden, onveilige wachtwoorden en hardgecodeerde API-sleutels of tokens.
Kwetsbaarheidsdetectie
Kwetsbaarheidsdetectie is een ander onderdeel van oplossingen voor het scannen van containerveiligheid. Dit onderdeel wordt gebruikt om kwetsbaarheden in de softwarecomponent van de container op te sporen. Kwetsbaarheidsdatabases zoals OSV, Github Advisory en NIST Vulnerability Database worden gebruikt om de lijst met bekende kwetsbaarheden in de software op te halen.
Compliancecontrole
De component voor compliancecontrole wordt gebruikt om te valideren of de gebruikte container de richtlijnen volgt door deze regelmatig te scannen. Bij het scannen op naleving wordt onder meer gecontroleerd of de containers voldoen aan de CIS-benchmarks en andere richtlijnen, zoals NIST.
Runtime-monitoring
Het doel van runtime-monitoring is om bedreigingen in realtime te identificeren wanneer de container actief is. Dit omvat ook het controleren op abnormaal gedrag van de container, zoals het versturen van grote hoeveelheden uitgaande oproepen naar een kwaadaardig domein.
Runtime-beveiliging is erg handig bij het identificeren van dagelijkse beveiligingsproblemen en fungeert als een beschermingslaag.
Hoe werkt een containerscanner?
De meeste oplossingen voor containersecurityscans werken door de informatie in de container zelf te controleren en met een meerstappenbenadering te controleren op kwetsbaarheden in de runtime. Dit proces combineert de beste elementen van statische analyse, dynamische analyse en runtime-monitoring om ervoor te zorgen dat u op elk moment een volledig beeld hebt van de beveiliging van de container.
Dit scanproces begint meestal met een statische analyse van de container. De containerscanner bekijkt de lagen van de image, waaronder het basisbesturingssysteem, geïnstalleerde pakketten en applicatiecode. Vervolgens vergelijkt hij de componenten met bekende kwetsbaarheidsdatabases en beveiligingsadviezen om eventuele risico's vast te stellen.
Dynamische analyse en runtime-monitoring worden alleen uitgevoerd wanneer de container actief is. Dynamische analyse kan worden uitgevoerd door ongebruikelijk gedrag of communicatie met onbetrouwbare of kwaadaardige domeinen, netwerken enz. te detecteren, die een beveiligingsalarm kunnen activeren. Het abonneert zich op heartbeat- en perf-events-datastromen die door de container-runtime worden geleverd en monitort continu het gedrag van een bepaalde container in termen van zijn activiteiten (aangemaakt/gestart/gestopt/verwijderd/enz.), netwerkverbindingen en patronen in het gebruik van bronnen.
CNAPP Marktgids
Krijg belangrijke inzichten in de staat van de CNAPP-markt in deze Gartner Market Guide for Cloud-Native Application Protection Platforms.
LeesgidsVerschillende kwetsbaarheden en risico's in containers
Als het gaat om beveiligingskwetsbaarheden in containers, verschillen deze niet van web- en API's. Containers hebben ook verschillende soorten beveiligingskwetsbaarheden, die elk een ander risico met zich meebrengen. Laten we enkele van deze kwetsbaarheden bespreken.
1. Kwetsbaarheden in het besturingssysteem
Containers zijn geïsoleerde omgevingen, maar ze delen de kernel van het host-besturingssysteem, wat betekent dat ze kwetsbaar zijn voor aanvallen op kernelniveau. Deze kwetsbaarheden kunnen eenvoudig worden geïdentificeerd door de image grondig te scannen. Een groot risico van de gecontaineriseerde omgeving is dat het host-OS waarop de containers zijn gebouwd, is blootgesteld aan het internet (afhankelijk van de configuratie) en daardoor vatbaar is voor voortdurende aanvallen.
Door het host-OS echter regelmatig te patchen en bij te werken, is het mogelijk om dit risico te verminderen en het totale aanvalsoppervlak te verkleinen.
2. Afhankelijkheden van applicaties en bibliotheekproblemen
Applicaties kunnen een groot aantal andere subapplicatiebibliotheken bevatten, evenals afhankelijkheden die bekende kwetsbaarheden kunnen hebben. Door containers te scannen, kunnen dergelijke onderdelen worden herkend en bijgewerkt. In sommige gevallen kunnen afhankelijkheden steeds weer kwetsbaarheden krijgen van onderzoekers (zoals Tensorflow) die ongeoorloofde toegang tot een applicatie mogelijk maken en daarom frequente updates en scans vereisen.
3. Verkeerde configuraties en onveilige standaardinstellingen
Veel kwetsbaarheden in containers ontstaan wanneer ontwikkelaars standaard- of tijdelijke geheimen of instellingen niet vervangen door veilige. Een veelvoorkomend voorbeeld is wanneer een applicatie het standaardwachtwoord blijft gebruiken voor een bekend CMS zoals WordPress dat hard gecodeerd was in de basisimage. De kwetsbaarheid van standaardinloggegevens is een van de favorieten van aanvallers, omdat ze geen tijd hoeven te besteden aan het begrijpen en kraken van de applicatielogica.
4. Risico's in de toeleveringsketen en gecompromitteerde basisimages
Aanvallen op de toeleveringsketen zijn de laatste tijd sterk toegenomen (zoals de recente XZ-aanval). De meeste bedrijven die gebruikmaken van containers, gebruiken afbeeldingen rechtstreeks uit het openbare register. Als de basisafbeelding uit het register wordt verwijderd en vervangen door een kwaadaardige afbeelding, kunnen systemen gemakkelijk worden gecompromitteerd. Een andere manier is wanneer ontwikkelaars spelfouten maken bij het importeren van afbeeldingen, zoals het gebruik van Python in plaats van Python. Aanvallers plaatsen meestal afbeeldingen met spelfouten in openbare registers en wachten tot ontwikkelaars fouten maken.
Wat is het proces van containersecurityscanning?
Het proces van containersecurityscanning omvat verschillende belangrijke stappen die uiteindelijk helpen bij het handhaven van de veiligheid van gecontaineriseerde applicaties.
Laten we dit proces van containersecurityscanning eens nader bekijken:
1. Statische analysetechnieken
Het eerste type scant containerimages in de offline modus om te controleren op kwetsbaarheden in de basisimage, de applicatiecode en de afhankelijkheden. Dit gebeurt vaak met behulp van kwetsbaarheidsdatabases en beveiligingsadviezen. Statische codeanalyse helpt bij het vroegtijdig identificeren van problemen en zorgt ervoor dat de containerimage die wordt geïmplementeerd geen bekende beveiligingskwetsbaarheden bevat.
2. Dynamische analysemethoden
Het andere type analyse is dynamische analyse, waarbij de automatiseringstool of beveiligingsingenieur actieve containers analyseert om bedreigingen in de actieve container te identificeren. Dit helpt ervoor te zorgen dat beveiligingsincidenten worden gedetecteerd en afgehandeld zodra ze zich voordoen. TL;DR is dynamische analyse, die fungeert als de tweede verdedigingslinie door het gedrag en de interacties van de container tijdens de uitvoering te monitoren.
3. Scannen integreren in CI/CD-pijplijnen
De implementatie, die plaatsvindt via de CI/CD-pijplijnen, omvat beveiligingsscans om containers grondig te scannen op kwetsbaarheden of verkeerde configuraties. Door oplossingen voor het scannen van containerveiligheid te integreren in de CI/CD-pijplijn, kunnen organisaties beschikken over een veilige, ontwikkelde en geïmplementeerde omgeving.
4. Scanresultaten interpreteren en herstellen
Zodra het scannen van de containerveiligheid is voltooid, is de volgende stap het interpreteren van de resultaten en het nemen van maatregelen om de kwetsbaarheden en risico's aan te pakken. Laten we eens kijken naar de factoren die kunnen helpen bij het analyseren van de scanresultaten.
5. Containerbeveiligingsscanrapporten begrijpen
Containerbeveiligingsscanrapporten bieden gedetailleerde informatie over de ontdekte zwakke punten, verkeerde configuraties en nalevingsproblemen. Deze rapporten zijn belangrijk voor het verhelpen van problemen en daarom is het belangrijk dat men ze begrijpt. Dit betekent dat organisaties na het doornemen van de scanrapporten weten welke gebieden aandacht behoeven en daar aan kunnen werken.
6. Prioriteiten stellen voor kwetsbaarheden
Niet alle kwetsbaarheden zijn even ernstig en moeten niet op dezelfde manier worden behandeld. Wanneer er meerdere kwetsbaarheden worden gevonden, moet rekening worden gehouden met risicofactoren, waarbij de nadruk ligt op die kwetsbaarheden die de meeste schade aan de onderneming kunnen toebrengen. Door eerst de kritieke kwetsbaarheden aan te pakken, kunnen organisaties de gevaarlijkste risico's elimineren en zo hun gecontaineriseerde applicaties beschermen.
7. Kwetsbare componenten patchen en updaten
Het beheer van kwetsbaarheden vereist het patchen en updaten van alle gecompromitteerde componenten waar de kwetsbaarheden zijn geïdentificeerd. Dit omvat het updaten van de basisimage, de applicatiebibliotheken en de afhankelijkheden. Het regelmatig patchen en updaten van de componenten draagt bij aan het creëren van een veilige infrastructuur.
8. Containerconfiguraties versterken
Het proces van containerhardening wordt gebruikt om verkeerde configuraties in de containers te corrigeren. Het wordt ook gebruikt om ervoor te zorgen dat de juiste beveiligingsnormen worden toegepast. Enkele beveiligingsnormen zijn het gebruik van veilige wachtwoorden, het vermijden van onnodige toegang en het beveiligen van gevoelige informatie. Het versterken van containers is ook belangrijk voor bedrijven in termen van compliance.
Voordelen van containersecurityscans
Containersecurityscans bieden verschillende voordelen voor bedrijven die hun beveiliging willen verbeteren. Laten we enkele van de belangrijkste voordelen bespreken:
- Verbeterde beveiliging: Containerveiligheidsscans helpen bij het identificeren en aanpakken van kwetsbaarheden en verkeerde configuraties om de beveiliging van gecontaineriseerde applicaties te verbeteren. Dit betekent dat organisaties proactief in plaats van reactief omgaan met beveiligingsproblemen, waardoor de kans op een inbreuk afneemt.
- Naleving: Nalevingscontroles die worden aangeboden door oplossingen voor containerscanning helpen om op de hoogte te blijven van de vastgestelde industrienorm en ervoor te zorgen dat de naleving van regelgevende instanties wordt gehandhaafd.
- Inbreuken voorkomen: Het scanproces helpt datalekken te voorkomen, aangezien ontwikkelaars geen onveilige containers kunnen implementeren als bedrijven beschikken over een goede containerscanner.
- Continue monitoring: Door continu actieve containers te volgen, is het gemakkelijker om bedreigingen aan te pakken die worden uitgevoerd of bezig zijn. De runtime-monitoring biedt een extra beschermingslaag, omdat deze de container en zijn activiteiten continu evalueert.
- Verbeterde toewijzing van middelen: Containerveiligheidsscans helpen bedrijven de algehele toewijzing van middelen te verbeteren en de kosten voor beveiligingsbeheer te verlagen.
Best practices voor containersecurityscans
Om ervoor te zorgen dat de containers veilig kunnen worden gebruikt, moeten ontwikkelaars een reeks best practices volgen. Hier volgen enkele belangrijke best practices voor effectieve containersecurityscans:
#1. Securityscans opschalen in grote implementaties
Aangezien grote bedrijven containers gebruiken voor implementaties, is het belangrijk om het containersecurityscanproces te automatiseren met behulp van verschillende oplossingen. Voor grootschalige toepassingen kunnen bedrijven niet vertrouwen op ontwikkelaars om problemen in de containers op te sporen, nieuwe CVE's in de gaten te houden en te blijven zoeken naar gevoelige informatie die via containers wordt onthuld of gelekt. Bedrijven moeten automatiseringspijplijnen bouwen om de volledige levenscyclus van containers te beveiligen, van het opnemen ervan in het register tot het op het internet zetten ervan (verzending naar productie).
#2. Evenwicht tussen beveiliging en ontwikkelingssnelheid
Met agile methodologieën willen bedrijven tegenwoordig snel leveren, maar het is belangrijk om ervoor te zorgen dat er goede beveiligingsmaatregelen zijn getroffen als het gaat om het implementeren van applicaties. Wanneer ontwikkelaars applicaties snel willen leveren, maken ze vaak fouten, zoals het hardcoderen van API-sleutels, het uitschakelen van de debugmodus, het toevoegen van beveiligingsmaatregelen, enz. Bedrijven kunnen ervoor zorgen dat hun containers veilig zijn door gebruik te maken van containerbeveiligingsscanningoplossingen in de CI/CD-pijplijnen en door de ontwikkelings- en DevOps-teams te trainen in beveiligingsmaatregelen.
#3. Continue monitoring en geautomatiseerde herstelmaatregelen
Continue scanning en daaropvolgende controles helpen bij het opsporen van nieuwe bedreigingen zodra deze zich voordoen (in realtime), waarbij het proces om ze te elimineren automatisch verloopt. Dit omvat zowel het aanpakken van het probleem van runtime-monitoring als het bedenken van een geautomatiseerd patch- en updateproces. Op deze manier kunnen organisaties constante monitoring en geautomatiseerde herstelmaatregelen voor beveiligingsincidenten afdwingen en een veilige toestand handhaven, terwijl ze snel kunnen reageren op beveiligingsincidenten.
#4. Implementatie van een veilig containerregister
Voor bedrijven die sterk afhankelijk zijn van containers, is het essentieel om te investeren in een veilig containerregister of een bevredigende oplossing die helpt bij het verminderen van het gebruik van gevaarlijke en niet-goedgekeurde containerimages. Dit kan worden bereikt door images te ondertekenen, maatregelen voor toegangscontrole te gebruiken en het register periodiek te scannen op bekende kwetsbaarheden. Het gebruik van een containerartefact zorgt er ook voor dat ontwikkelaars geen kwaadaardige images gebruiken of het slachtoffer worden van typosquatting-aanvallen.
Conclusie
Het scannen van containers op beveiliging is een cruciale activiteit als het gaat om het scannen van gecontaineriseerde applicaties en het verbeteren van hun risicopositie. Door risico's, verkeerde configuraties en nalevingsproblemen aan te wijzen, kan beveiligingsscanning helpen de beveiliging van containers te versterken en de kans op een aanval te minimaliseren.
Voor een betere dekking en beveiliging is het belangrijk om ervoor te zorgen dat oplossingen voor het scannen van containerveiligheid worden geïntegreerd in de CI/CD-pijplijn om te voorkomen dat onveilige containers live gaan en zo een doelwit vormen voor het bedrijf.
FAQs
Containerbeveiligingsscans zijn het proces waarbij containerimages en actieve containers worden gescand om kwetsbaarheden, configuratieproblemen en nalevingsschendingen op te sporen. Het doel van containerbeveiligingsscans is ervoor te zorgen dat de containers beveiligd zijn tegen kwetsbaarheden, zodat ernstige schade aan het bedrijf in termen van geld en reputatie wordt voorkomen.
Containerscanning kan kwetsbaarheden in de basisimage en afhankelijkheden die door de applicatie worden gebruikt, verkeerde configuraties en nalevingsschendingen identificeren. Het kan ook helpen bij het identificeren van beveiligingsrisico's en het bepalen van de beveiligingsstatus van containers voordat ze worden verzonden (of geïmplementeerd).
Containerscanning in DevSecOps kan worden gedefinieerd als het opnemen van het scannen van containers in de applicatieontwikkelingspijplijn, met als doel het vroegtijdig identificeren van beveiligingsproblemen voordat de containers in productie worden genomen.
Het scannen van kwetsbaarheden in containers kan worden gedefinieerd als een systematisch en meerstapsproces voor het identificeren van kwetsbaarheden in de containers om aanvallen door kwaadwillenden en ongeoorloofde toegang tot gevoelige informatie (PII) te voorkomen.
De tools die kunnen worden gebruikt voor containerveiligheid zijn Docker Security Scanning en Clair. Deze tools kunnen de containerveiligheid grondig controleren door risico's op te sporen, verkeerde configuraties te identificeren en nalevingsproblemen met gecontaineriseerde applicaties aan te pakken.