Microsoft Defender For Containers: Uitgebreide Beveiliging Voor Kubernetes En Container Workloads

💼 Management Samenvatting

Microsoft Defender voor Containers vormt een geïntegreerde beveiligingsoplossing die specifiek is ontworpen voor de unieke uitdagingen van containeromgevingen en Kubernetes-clusters. De oplossing combineert kwetsbaarheidsscanning, runtime-bedreigingsdetectie, Kubernetes-beleidsaudits en geavanceerde security analytics in één platform om organisaties te beschermen tegen moderne containerbeveiligingsbedreigingen.

Aanbeveling
IMPLEMENTEER VOOR ALLE KUBERNETES EN CONTAINER WORKLOADS
Risico zonder
High
Risk Score
9/10
Implementatie
12u (tech: 8u)
Van toepassing op:
Azure Kubernetes Service
AKS
Azure Container Registry
Arc-ingeschakeld Kubernetes
Container Workloads

Containeromgevingen en Kubernetes-clusters introduceren fundamenteel verschillende beveiligingsuitdagingen vergeleken met traditionele virtuele machines en on-premises infrastructuur. Containers delen een gemeenschappelijke kernel, wat betekent dat een compromittering van één container potentiële toegang kan bieden tot andere containers op dezelfde host. De dynamische en kortstondige aard van containers maakt het moeilijk voor traditionele beveiligingstools om bedreigingen te detecteren en te reageren, omdat containers binnen seconden of minuten kunnen worden gestart en gestopt. Containerimages kunnen kwetsbaarheden bevatten die tijdens de ontwikkelingsfase zijn geïntroduceerd, en zonder adequate scanning worden deze kwetsbaarheden direct in productieomgevingen geïmplementeerd. Kubernetes-clusters zijn complex geconfigureerd en vaak verkeerd ingesteld, wat leidt tot beveiligingslekken zoals overmatige RBAC-machtigingen, blootgestelde dashboards zonder authenticatie, of pods die met verhoogde privileges draaien. Privilege escalation-aanvallen via verkeerd geconfigureerde containers stellen aanvallers in staat om uitgebreide machtigingen te verkrijgen binnen clusters. Cryptomining-aanvallen verbruiken clusterresources en veroorzaken aanzienlijke kosten zonder dat organisaties zich hiervan bewust zijn. Container escapes stellen aanvallers in staat om de onderliggende hostsystemen te compromitteren en laterale beweging uit te voeren. Compromitteerde serviceaccounts kunnen worden misbruikt voor ongeautoriseerde toegang tot gevoelige data en services. Traditionele antivirusoplossingen en netwerkbeveiliging zijn niet effectief voor gecontaineriseerde workloads omdat ze niet zijn ontworpen voor de dynamische, kortstondige en schaalbare aard van containers. Zonder gespecialiseerde containerbeveiliging blijven kwetsbaarheden in images, runtime-aanvallen, misconfiguraties en bedreigingen onopgemerkt, wat leidt tot beveiligingsincidenten, datalekken en niet-naleving van compliance-vereisten.

PowerShell Modules Vereist
Primary API: Azure API
Connection: Connect-AzAccount
Required Modules: Az.Accounts, Az.Security, Az.ContainerRegistry

Implementatie

Microsoft Defender voor Containers biedt een uitgebreide beveiligingsoplossing die specifiek is ontworpen voor containeromgevingen en Kubernetes-clusters in Azure. De oplossing bestaat uit meerdere geïntegreerde componenten die samenwerken om end-to-end beveiliging te bieden van de ontwikkelingsfase tot de productieruntime. Kwetsbaarheidsscanning analyseert containerimages in Azure Container Registry voordat deze worden geïmplementeerd, waarbij bekende kwetsbaarheden worden geïdentificeerd en geprioriteerd op basis van hun CVSS-score en impact. De scanning omvat zowel base images als applicatie-afhankelijkheden, waardoor organisaties een volledig beeld krijgen van de beveiligingsposture van hun containerimages. Runtime-bedreigingsdetectie monitort daadwerkelijk draaiende containers op verdacht gedrag, waaronder pogingen tot privilege escalation, container escapes, cryptomining-activiteiten, ongeautoriseerde netwerkverbindingen en afwijkend proces- of bestandsgedrag. De detectie-engine gebruikt machine learning en gedragsanalyse om bedreigingen te identificeren die traditionele signature-based detectie zou missen. Kubernetes-beveiligingsbeleid wordt gecontroleerd op naleving van best practices, waarbij misconfiguraties worden geïdentificeerd die kunnen leiden tot beveiligingsproblemen, zoals overmatige RBAC-machtigingen, blootgestelde services, of pods die met verhoogde privileges draaien. Admission control-aanbevelingen helpen bij het implementeren van beleid dat ongewenste configuraties voorkomt voordat workloads worden geïmplementeerd. De oplossing integreert met Kubernetes audit logs voor volledige traceerbaarheid van beveiligingsgebeurtenissen binnen het cluster. Defender voor Containers biedt ook geavanceerde security analytics en correlatie van gebeurtenissen over meerdere clusters en namespaces, waardoor security teams een holistisch beeld krijgen van de beveiligingsposture van hun containeromgeving. De oplossing integreert naadloos met Microsoft Defender voor Cloud voor geïntegreerd beveiligingsbeheer en compliance-rapportage, en kan worden geïntegreerd met Azure Sentinel voor geavanceerde Security Information and Event Management (SIEM) functionaliteit.

Architectuur en Componenten

De architectuur van Microsoft Defender voor Containers is ontworpen om naadloos te integreren met Azure Kubernetes Service (AKS), Azure Container Registry (ACR) en Arc-ingeschakelde Kubernetes-clusters zonder dat organisaties significante wijzigingen hoeven aan te brengen in hun bestaande containerinfrastructuur. De oplossing bestaat uit meerdere componenten die samenwerken om uitgebreide beveiliging te bieden op verschillende lagen van de containerstack. De Defender-agent voor Kubernetes wordt automatisch geïnstalleerd op AKS-clusters wanneer Defender voor Containers wordt geactiveerd. Deze agent draait als een DaemonSet in het cluster, wat betekent dat er één agent-pod draait op elke node in het cluster. De agent verzamelt runtime-gebeurtenissen van containers, pods en nodes, inclusief procesactiviteiten, netwerkverbindingen, bestandstoegang en systeemaanroepen. Deze gebeurtenissen worden lokaal geanalyseerd op verdacht gedrag voordat ze worden verzonden naar de Defender voor Cloud backend voor verdere analyse en correlatie. De agent is ontworpen om minimale impact te hebben op clusterprestaties en resourceverbruik, met typische overhead van minder dan 5% CPU en geheugen per node. Voor Azure Container Registry integreert Defender voor Containers met de ACR-scanning service om automatisch containerimages te scannen wanneer ze naar de registry worden gepusht. De scanning wordt uitgevoerd op basis van een uitgebreide database van bekende kwetsbaarheden, inclusief Common Vulnerabilities and Exposures (CVE) uit verschillende bronnen zoals NIST National Vulnerability Database, Red Hat Security Advisories, en Debian Security Advisories. De scanning analyseert zowel de base image als alle applicatie-afhankelijkheden die in de image zijn opgenomen, waardoor organisaties een volledig beeld krijgen van alle kwetsbaarheden die aanwezig zijn in hun containerimages. Scanresultaten worden opgeslagen in de ACR en zijn direct beschikbaar via de Azure Portal, Azure CLI en REST API's. De Defender voor Cloud backend-infrastructuur verwerkt alle gebeurtenissen en scanresultaten die worden verzameld door de agents en scanning services. Deze backend gebruikt geavanceerde machine learning-modellen en gedragsanalyse om bedreigingen te detecteren die traditionele signature-based detectie zou missen. De backend correleert gebeurtenissen over meerdere clusters, namespaces en tijd om geavanceerde bedreigingspatronen te identificeren, zoals laterale beweging binnen een cluster of gecoördineerde aanvallen op meerdere containers. Security alerts worden gegenereerd wanneer verdachte activiteiten worden gedetecteerd, en deze alerts worden geprioriteerd op basis van de ernst en impact van de bedreiging. De integratie met Azure Policy voor Kubernetes maakt het mogelijk om beveiligingsbeleid te handhaven op cluster- en namespace-niveau. Deze policy's kunnen worden gebruikt om te voorkomen dat workloads worden geïmplementeerd met onveilige configuraties, zoals containers die met root-privileges draaien, of services die worden blootgesteld zonder authenticatie. De policy's worden geëvalueerd tijdens de admission control-fase, wat betekent dat onveilige workloads worden geblokkeerd voordat ze daadwerkelijk worden geïmplementeerd in het cluster. Dit voorkomt dat beveiligingsproblemen in productieomgevingen terechtkomen en vermindert de noodzaak voor reactieve beveiligingsmaatregelen. Voor Arc-ingeschakelde Kubernetes-clusters biedt Defender voor Containers dezelfde beveiligingsmogelijkheden als voor AKS-clusters, maar met de flexibiliteit om on-premises of multicloud Kubernetes-omgevingen te beveiligen. De Defender-agent wordt geïnstalleerd op Arc-ingeschakelde clusters via de Arc-connectiviteit, en alle beveiligingsgebeurtenissen worden verzonden naar dezelfde Defender voor Cloud backend voor geïntegreerde monitoring en beheer. Dit maakt het mogelijk voor organisaties om een consistente beveiligingsposture te handhaven over alle Kubernetes-omgevingen, ongeacht waar ze worden gehost.

De dataflow binnen Defender voor Containers is ontworpen om real-time detectie en respons mogelijk te maken terwijl de privacy en beveiliging van organisatiegegevens worden gewaarborgd. Runtime-gebeurtenissen worden verzameld door de Defender-agent op elke node en lokaal geanalyseerd op verdacht gedrag. Alleen relevante gebeurtenissen en metadata worden verzonden naar de Defender voor Cloud backend, waarbij gevoelige data zoals containerinhoud of applicatielogs worden uitgesloten tenzij expliciet geconfigureerd. Deze aanpak minimaliseert de hoeveelheid data die over het netwerk wordt verzonden en beschermt de privacy van organisatiegegevens. De Defender voor Cloud backend gebruikt deze gebeurtenissen om geavanceerde bedreigingsdetectie uit te voeren, waarbij machine learning-modellen worden gebruikt om patronen te identificeren die wijzen op kwaadaardige activiteiten. Deze modellen zijn getraind op miljoenen containerworkloads en zijn continu bijgewerkt met nieuwe bedreigingsinformatie, waardoor ze effectief zijn tegen zowel bekende als onbekende bedreigingen. Wanneer een bedreiging wordt gedetecteerd, wordt een security alert gegenereerd en beschikbaar gesteld via de Azure Portal, e-mailnotificaties, en integraties met SIEM-systemen zoals Azure Sentinel. De architectuur ondersteunt ook geavanceerde integraties met andere Azure-services en externe systemen. Defender voor Containers kan worden geïntegreerd met Azure Sentinel voor geavanceerde Security Information and Event Management (SIEM) functionaliteit, waardoor security teams alle beveiligingsgebeurtenissen kunnen analyseren in de context van andere security data. Integraties met Azure Automation en Logic Apps maken het mogelijk om geautomatiseerde responsacties uit te voeren wanneer bedreigingen worden gedetecteerd, zoals het automatisch isoleren van gecompromitteerde containers of het blokkeren van verdachte netwerkverbindingen.

Functionaliteiten en Beveiligingsmogelijkheden

Microsoft Defender voor Containers biedt een uitgebreide set beveiligingsfunctionaliteiten die specifiek zijn ontworpen voor de unieke uitdagingen van containeromgevingen en Kubernetes-clusters. Deze functionaliteiten werken samen om end-to-end beveiliging te bieden van de ontwikkelingsfase tot de productieruntime, waarbij organisaties worden beschermd tegen een breed scala aan bedreigingen en kwetsbaarheden. Kwetsbaarheidsscanning vormt een fundamenteel onderdeel van de beveiligingsoplossing en biedt automatische scanning van containerimages in Azure Container Registry. De scanning wordt automatisch uitgevoerd wanneer nieuwe images naar de registry worden gepusht, en bestaande images kunnen handmatig worden gescand of op basis van een geplande scan. De scanning analyseert zowel de base image als alle applicatie-afhankelijkheden die in de image zijn opgenomen, inclusief packages, libraries en binaries. De scanner gebruikt een uitgebreide database van bekende kwetsbaarheden die continu wordt bijgewerkt met nieuwe CVE's en security advisories van verschillende bronnen. Scanresultaten worden geprioriteerd op basis van de CVSS-score van de kwetsbaarheid, waarbij kritieke en hoge kwetsbaarheden worden gemarkeerd voor onmiddellijke aandacht. De resultaten bevatten gedetailleerde informatie over elke kwetsbaarheid, inclusief beschrijving, impact, beschikbare patches en aanbevelingen voor remediatie. Organisaties kunnen scanresultaten exporteren voor verdere analyse en rapportage, en kunnen automatische waarschuwingen configureren voor kritieke kwetsbaarheden. Runtime-bedreigingsdetectie monitort daadwerkelijk draaiende containers op verdacht gedrag en kwaadaardige activiteiten. De detectie-engine gebruikt geavanceerde machine learning-modellen en gedragsanalyse om bedreigingen te identificeren die traditionele signature-based detectie zou missen. De engine analyseert verschillende aspecten van containeractiviteiten, inclusief procesuitvoering, netwerkverbindingen, bestandstoegang, systeemaanroepen en resourceverbruik. Wanneer verdacht gedrag wordt gedetecteerd, zoals pogingen tot privilege escalation, container escapes, cryptomining-activiteiten, of ongeautoriseerde netwerkverbindingen, wordt een security alert gegenereerd met gedetailleerde informatie over de bedreiging en aanbevelingen voor respons. De detectie is ontworpen om minimale false positives te genereren door gebruik te maken van contextuele analyse en correlatie van gebeurtenissen over tijd en verschillende containers. Kubernetes-beveiligingsbeleid wordt gecontroleerd op naleving van best practices en beveiligingsstandaarden. Defender voor Containers analyseert Kubernetes-configuraties, inclusief deployments, services, roles, role bindings, en pod security policies, om misconfiguraties te identificeren die kunnen leiden tot beveiligingsproblemen. Veelvoorkomende misconfiguraties die worden gedetecteerd, omvatten containers die met root-privileges draaien, blootgestelde services zonder authenticatie, overmatige RBAC-machtigingen, of pods die toegang hebben tot host-netwerk of host-processes. Voor elke gedetecteerde misconfiguratie worden aanbevelingen gegenereerd voor het verbeteren van de beveiligingsconfiguratie, inclusief specifieke stappen voor remediatie. Deze aanbevelingen kunnen worden geïmplementeerd via Azure Policy voor Kubernetes, waardoor organisaties automatisch kunnen handhaven dat workloads worden geïmplementeerd met veilige configuraties.

Admission control-aanbevelingen helpen bij het voorkomen van onveilige workloads voordat ze worden geïmplementeerd in het cluster. Deze aanbevelingen zijn gebaseerd op best practices en beveiligingsstandaarden zoals de CIS Kubernetes Benchmark en de NSA Kubernetes Hardening Guide. Wanneer een workload wordt geïmplementeerd die niet voldoet aan deze standaarden, wordt een waarschuwing gegenereerd met specifieke aanbevelingen voor het verbeteren van de configuratie. Deze aanbevelingen kunnen worden geïmplementeerd via Azure Policy voor Kubernetes, waardoor organisaties automatisch kunnen handhaven dat workloads worden geïmplementeerd met veilige configuraties. Admission control voorkomt dat beveiligingsproblemen in productieomgevingen terechtkomen en vermindert de noodzaak voor reactieve beveiligingsmaatregelen. Detectie van privilege escalation-pogingen identificeert wanneer containers of pods proberen meer machtigingen te verkrijgen dan oorspronkelijk bedoeld. Dit omvat pogingen om root-privileges te verkrijgen, toegang te krijgen tot host-resources, of uit te voeren met verhoogde capabilities. De detectie analyseert zowel de containerconfiguratie als runtime-activiteiten om privilege escalation-pogingen te identificeren, en genereert alerts wanneer verdachte activiteiten worden gedetecteerd. Deze detectie is essentieel voor het voorkomen van container breakouts en het beperken van de impact van gecompromitteerde containers. Monitoring van container escapes detecteert pogingen om de container-isolatie te omzeilen en toegang te krijgen tot de onderliggende host. Container escapes zijn bijzonder gevaarlijk omdat ze aanvallers in staat stellen om toegang te krijgen tot de host en mogelijk andere containers op dezelfde host te compromitteren. Defender voor Containers monitort verschillende indicatoren van container escape-pogingen, inclusief toegang tot host-bestandssystemen, host-netwerkinterfaces, of host-processen. Wanneer een container escape-poging wordt gedetecteerd, wordt onmiddellijk een kritieke alert gegenereerd met aanbevelingen voor respons, zoals het isoleren van de gecompromitteerde container of het herstarten van de host. Analyse van ongebruikelijk netwerkverkeer identificeert communicatiepatronen die kunnen wijzen op compromittering of datalekken. De analyse monitort zowel inkomend als uitgaand netwerkverkeer van containers, en identificeert afwijkingen van normale communicatiepatronen. Dit omvat verbindingen naar verdachte IP-adressen, ongebruikelijke poorten, of grote hoeveelheden data die worden overgedragen. Wanneer verdacht netwerkverkeer wordt gedetecteerd, wordt een alert gegenereerd met informatie over de verdachte verbinding en aanbevelingen voor verdere onderzoek.

Integratie met Kubernetes audit logs zorgt voor volledige traceerbaarheid van beveiligingsgebeurtenissen binnen het cluster. Defender voor Containers verzamelt en analyseert Kubernetes audit logs om beveiligingsgebeurtenissen te identificeren, zoals ongeautoriseerde toegangspogingen, configuratiewijzigingen, of verdachte API-aanroepen. Deze logs worden gecorreleerd met runtime-gebeurtenissen om een compleet beeld te krijgen van beveiligingsactiviteiten binnen het cluster. De integratie maakt het mogelijk voor security teams om volledige audittrails te bouwen voor compliance-doeleinden en forensisch onderzoek. Geavanceerde security analytics en correlatie van gebeurtenissen over meerdere clusters en namespaces bieden security teams een holistisch beeld van de beveiligingsposture van hun containeromgeving. Defender voor Containers correleert gebeurtenissen over tijd en verschillende containers om geavanceerde bedreigingspatronen te identificeren, zoals laterale beweging binnen een cluster, gecoördineerde aanvallen op meerdere containers, of persistentie-mechanismen die worden gebruikt door aanvallers. Deze correlatie maakt het mogelijk om bedreigingen te detecteren die individueel onschuldig lijken, maar samen wijzen op een geavanceerde aanval. Security dashboards en rapporten bieden visuele weergaven van de beveiligingsposture, inclusief trends in kwetsbaarheden, bedreigingsdetecties, en compliance-status over tijd.

Implementatie en Best Practices

De implementatie van Microsoft Defender voor Containers vereist een gestructureerde aanpak die rekening houdt met de specifieke behoeften en omgeving van de organisatie. Een succesvolle implementatie begint met een grondige planning en voorbereiding, gevolgd door een gefaseerde rollout en continue monitoring en optimalisatie. De eerste stap in het implementatieproces is het activeren van Defender voor Containers op alle relevante Azure-abonnementen. Dit kan worden gedaan via de Azure Portal door te navigeren naar Defender voor Cloud en de Containers-plan te activeren, of via Azure PowerShell met behulp van de Set-AzSecurityPricing-cmdlet. Het is belangrijk om Defender voor Containers te activeren op alle abonnementen die Kubernetes-clusters bevatten, inclusief development, test en productie-omgevingen. Hoewel de kosten kunnen variëren tussen omgevingen, is het essentieel om volledige beveiligingsdekking te hebben over alle omgevingen om te voorkomen dat bedreigingen onopgemerkt blijven in niet-productieomgevingen die later kunnen worden gepromoveerd naar productie. Na activering wordt de Defender-agent automatisch geïnstalleerd op alle AKS-clusters binnen het abonnement. Voor Arc-ingeschakelde clusters moet de agent handmatig worden geïnstalleerd via de Arc-connectiviteit. Het is belangrijk om te verifiëren dat de agent succesvol is geïnstalleerd op alle clusters door de agent-status te controleren in de Azure Portal of via Azure CLI. De agent moet actief zijn op alle nodes in het cluster om volledige beveiligingsdekking te garanderen. Als de agent niet actief is op bepaalde nodes, kunnen containers op die nodes niet worden gemonitord, wat beveiligingslekken kan creëren. Voor Azure Container Registry moet image scanning worden geconfigureerd om automatisch te scannen wanneer nieuwe images worden gepusht. Dit kan worden gedaan via de Azure Portal door naar de Container Registry te navigeren en de Security-scanning functionaliteit te activeren, of via Azure CLI met behulp van de az acr task create command. Het is aanbevolen om scanning te configureren voor alle registries die worden gebruikt voor productie-images, en om automatische waarschuwingen in te stellen voor kritieke kwetsbaarheden. Organisaties moeten ook overwegen om scanning te integreren in hun CI/CD-pipelines om te voorkomen dat kwetsbare images worden gepusht naar de registry.

Best practices voor de configuratie van Defender voor Containers omvatten het instellen van aangepaste waarschuwingsregels die zijn afgestemd op de specifieke behoeften en risicoprofiel van de organisatie. Standaardwaarschuwingen zijn ontworpen om een breed scala aan bedreigingen te detecteren, maar organisaties kunnen deze aanpassen om false positives te verminderen of om extra detectie toe te voegen voor specifieke bedreigingen die relevant zijn voor hun omgeving. Waarschuwingsregels kunnen worden geconfigureerd via de Azure Portal of via Azure Policy, en kunnen worden geïntegreerd met Azure Automation of Logic Apps voor geautomatiseerde responsacties. Het is essentieel om regelmatig de beveiligingswaarschuwingen en aanbevelingen te reviewen en te acteren. Defender voor Containers genereert verschillende typen waarschuwingen, inclusief runtime-bedreigingsdetecties, kwetsbaarheidsscanresultaten, en Kubernetes-configuratieaanbevelingen. Security teams moeten processen implementeren voor het regelmatig reviewen van deze waarschuwingen, het prioriteren van acties op basis van de ernst en impact, en het documenteren van remediatie-acties. Het is aanbevolen om waarschuwingen dagelijks te reviewen voor productieomgevingen, en wekelijks voor development en test-omgevingen. Kubernetes-beveiligingsbeleid moet worden geïmplementeerd om te handhaven dat workloads worden geïmplementeerd met veilige configuraties. Azure Policy voor Kubernetes biedt een uitgebreide set ingebouwde policy's die zijn gebaseerd op best practices en beveiligingsstandaarden. Organisaties moeten deze policy's implementeren op cluster- en namespace-niveau om te voorkomen dat onveilige workloads worden geïmplementeerd. Policy's kunnen worden geconfigureerd om waarschuwingen te genereren of om workloads te blokkeren die niet voldoen aan de beveiligingsvereisten. Het is aanbevolen om te beginnen met waarschuwingen en geleidelijk over te gaan naar enforcement naarmate teams vertrouwd raken met de policy's en hun workflows aanpassen.

Integratie met andere beveiligingstools en -processen is essentieel voor een effectieve beveiligingsstrategie. Defender voor Containers kan worden geïntegreerd met Azure Sentinel voor geavanceerde SIEM-functionaliteit, waardoor security teams alle beveiligingsgebeurtenissen kunnen analyseren in de context van andere security data. Integraties met Azure Automation en Logic Apps maken het mogelijk om geautomatiseerde responsacties uit te voeren wanneer bedreigingen worden gedetecteerd, zoals het automatisch isoleren van gecompromitteerde containers of het blokkeren van verdachte netwerkverbindingen. Organisaties moeten ook overwegen om Defender voor Containers te integreren met hun bestaande incident response-processen en -tools om een naadloze workflow te creëren van detectie tot remediatie. Continue monitoring en optimalisatie zijn cruciaal voor het handhaven van een effectieve beveiligingsposture. Organisaties moeten regelmatig de beveiligingswaarschuwingen en aanbevelingen reviewen, trends analyseren in kwetsbaarheden en bedreigingsdetecties, en hun configuratie aanpassen op basis van lessons learned. Het is aanbevolen om maandelijks een beveiligingsreview uit te voeren om te identificeren welke waarschuwingen het meest voorkomen, welke kwetsbaarheden het grootste risico vormen, en welke configuratiewijzigingen kunnen worden doorgevoerd om de beveiligingsposture te verbeteren. Deze reviews moeten worden gedocumenteerd en gedeeld met relevante stakeholders, inclusief security teams, development teams, en management.

Monitoring en Verificatie

Gebruik PowerShell-script defender-for-containers.ps1 (functie Invoke-Monitoring) – PowerShell script voor uitgebreide monitoring van Defender voor Containers status, agent-configuratie, en beveiligingswaarschuwingen.

Effectieve monitoring van Microsoft Defender voor Containers is essentieel om te waarborgen dat de beveiligingsoplossing continu actief blijft en optimaal functioneert. Monitoring omvat het controleren van de activeringsstatus, agent-configuratie, beveiligingswaarschuwingen, kwetsbaarheidsscanresultaten, en compliance-status. Zonder uitgebreide monitoring kunnen organisaties niet garanderen dat hun containeromgevingen adequaat worden beschermd, wat kan leiden tot beveiligingsincidenten en niet-naleving van compliance-vereisten. De basis van monitoring wordt gevormd door regelmatige verificatie van de activeringsstatus van Defender voor Containers op alle relevante Azure-abonnementen. Dit kan worden gedaan via de Azure Portal door te navigeren naar Defender voor Cloud en de status van de Containers-plan te controleren, of via Azure PowerShell met behulp van de Get-AzSecurityPricing-cmdlet. De pricing tier moet ingesteld zijn op 'Standard' om volledige beveiligingsbescherming te krijgen, inclusief runtime-detectie, kwetsbaarheidsscanning en configuratiebeoordeling. Het is aanbevolen om deze verificatie wekelijks uit te voeren voor productieomgevingen, en maandelijks voor development en test-omgevingen. Geautomatiseerde monitoring via Azure Automation of Logic Apps kan de belasting op beheerders verminderen terwijl continue controle wordt gegarandeerd.

Naast het controleren van de activeringsstatus is het belangrijk om te verifiëren dat de Defender-agent daadwerkelijk actief is op alle Kubernetes-clusters en nodes. De agent-status kan worden gecontroleerd via de Azure Portal door te navigeren naar een specifiek cluster en de agent-status te bekijken, of via kubectl door de DaemonSet-status te controleren. De agent moet actief zijn op alle nodes in het cluster om volledige beveiligingsdekking te garanderen. Als de agent niet actief is op bepaalde nodes, kunnen containers op die nodes niet worden gemonitord, wat beveiligingslekken kan creëren. Het is aanbevolen om dagelijks de agent-status te controleren voor productieomgevingen, en wekelijks voor development en test-omgevingen. Beveiligingswaarschuwingen vormen een kritiek onderdeel van de monitoring en moeten regelmatig worden gereviewd en geacteerd. Defender voor Containers genereert verschillende typen waarschuwingen, inclusief runtime-bedreigingsdetecties, kwetsbaarheidsscanresultaten, en Kubernetes-configuratieaanbevelingen. Security teams moeten processen implementeren voor het regelmatig reviewen van deze waarschuwingen, het prioriteren van acties op basis van de ernst en impact, en het documenteren van remediatie-acties. Het is aanbevolen om waarschuwingen dagelijks te reviewen voor productieomgevingen, en wekelijks voor development en test-omgevingen. Geautomatiseerde waarschuwingen via e-mail, SMS of integratie met incidentbeheersystemen kunnen security teams helpen om snel te reageren op kritieke bedreigingen.

Kwetsbaarheidsscanresultaten moeten regelmatig worden gemonitord om ervoor te zorgen dat kwetsbare images niet worden gebruikt in productieomgevingen. Scanresultaten kunnen worden bekeken via de Azure Portal door te navigeren naar een specifieke Container Registry en de Security-scanresultaten te bekijken, of via Azure CLI met behulp van de az acr task list-runs command. Organisaties moeten automatische waarschuwingen configureren voor kritieke kwetsbaarheden met een hoge CVSS-score, en moeten processen implementeren voor het remediëren van kwetsbaarheden voordat images worden gebruikt in productie. Het is aanbevolen om wekelijks de scanresultaten te reviewen en maandelijks een trendanalyse uit te voeren om te identificeren welke kwetsbaarheden het meest voorkomen en welke images het grootste risico vormen. Compliance monitoring is eveneens cruciaal voor het waarborgen dat organisaties voldoen aan vereisten zoals CIS Azure Foundations Benchmark control 2.1.5, BIO-thema's 12.06 en 14.02, en NIS2 Artikel 21. Compliance-status kan worden gecontroleerd via de Azure Portal door te navigeren naar Defender voor Cloud en de Compliance-dashboard te bekijken, of via Azure PowerShell met behulp van de Get-AzSecurityAssessment-cmdlet. Organisaties moeten regelmatig compliance-rapporten genereren en deze bewaren voor audit-doeleinden. Het is aanbevolen om maandelijks een compliance-review uit te voeren en kwartaalijks een uitgebreide compliance-audit uit te voeren om te identificeren welke gebieden verbetering behoeven.

Remediatie en Incident Response

Gebruik PowerShell-script defender-for-containers.ps1 (functie Invoke-Remediation) – PowerShell script voor automatische remediatie van Defender voor Containers configuratieproblemen en beveiligingswaarschuwingen.

Remediatie van beveiligingsproblemen die worden gedetecteerd door Microsoft Defender voor Containers vereist een gestructureerde aanpak die rekening houdt met de ernst en impact van de bedreiging, de beschikbaarheid van de dienstverlening, en de compliance-vereisten van de organisatie. Effectieve remediatie begint met een snelle beoordeling van de bedreiging, gevolgd door gecontroleerde responsacties en post-incident analyse om toekomstige incidenten te voorkomen. Wanneer een beveiligingswaarschuwing wordt gegenereerd, moet het security team eerst de ernst en impact van de bedreiging beoordelen om te bepalen welke remediatie-acties moeten worden ondernomen. Kritieke waarschuwingen, zoals container escapes of privilege escalation-aanvallen, vereisen onmiddellijke responsacties, zoals het isoleren van de gecompromitteerde container of het herstarten van de host. Minder kritieke waarschuwingen, zoals kwetsbaarheden in containerimages die nog niet in productie zijn gebruikt, kunnen worden gepland voor remediatie tijdens reguliere onderhoudsvensters. Het is belangrijk om een duidelijk proces te hebben voor het prioriteren en escaleren van waarschuwingen, inclusief definities van wat constitutes een kritieke, hoge, gemiddelde of lage bedreiging, en wie verantwoordelijk is voor het nemen van beslissingen over remediatie-acties.

Voor runtime-bedreigingsdetecties moeten security teams snel kunnen reageren om de impact van de bedreiging te beperken. Dit kan worden gedaan via de Azure Portal door te navigeren naar de specifieke waarschuwing en de aanbevolen remediatie-acties te volgen, of via kubectl door handmatig containers te isoleren of te verwijderen. Geautomatiseerde responsacties kunnen worden geïmplementeerd via Azure Automation of Logic Apps, waardoor security teams snel kunnen reageren op bedreigingen zonder handmatige interventie. Voorbeelden van geautomatiseerde responsacties omvatten het automatisch isoleren van gecompromitteerde containers, het blokkeren van verdachte netwerkverbindingen, of het genereren van incident tickets in incidentbeheersystemen. Het is belangrijk om geautomatiseerde responsacties te testen in een gecontroleerde omgeving voordat ze worden geïmplementeerd in productie, om te voorkomen dat legitieme activiteiten worden geblokkeerd. Voor kwetsbaarheden in containerimages moet een gestructureerd proces worden gevolgd voor het remediëren van de kwetsbaarheden voordat images worden gebruikt in productie. Dit proces begint met het identificeren van welke images kwetsbaarheden bevatten en welke kwetsbaarheden het grootste risico vormen. Vervolgens moeten development teams worden geïnformeerd over de kwetsbaarheden en moeten zij patches of updates toepassen om de kwetsbaarheden te verhelpen. Na het toepassen van patches moeten images opnieuw worden gescand om te verifiëren dat de kwetsbaarheden zijn verholpen. Het is belangrijk om een duidelijk proces te hebben voor het prioriteren van kwetsbaarheidsremediatie, waarbij kritieke kwetsbaarheden worden aangepakt voordat minder kritieke kwetsbaarheden, en waarbij images die worden gebruikt in productie prioriteit krijgen boven images die alleen worden gebruikt in development of test-omgevingen.

Kubernetes-configuratieproblemen moeten worden gerepareerd door de configuratie aan te passen om te voldoen aan beveiligingsbest practices. Defender voor Containers genereert specifieke aanbevelingen voor het verbeteren van de configuratie, inclusief stappen voor remediatie. Deze aanbevelingen kunnen worden geïmplementeerd via kubectl door de configuratie handmatig aan te passen, of via Azure Policy voor Kubernetes door policy's te implementeren die automatisch handhaven dat workloads worden geïmplementeerd met veilige configuraties. Het is aanbevolen om te beginnen met het implementeren van policy's die waarschuwingen genereren, en geleidelijk over te gaan naar enforcement naarmate teams vertrouwd raken met de policy's en hun workflows aanpassen. Voor bestaande workloads die niet voldoen aan de beveiligingsvereisten, moeten teams tijd krijgen om hun configuraties aan te passen voordat enforcement wordt geactiveerd. Post-incident analyse is essentieel voor het leren van beveiligingsincidenten en het verbeteren van de beveiligingsposture. Na elk beveiligingsincident moet een after-action review worden uitgevoerd om te analyseren wat er is gebeurd, hoe het incident is gedetecteerd en gereageerd, welke remediatie-acties zijn ondernomen, en wat kan worden verbeterd om toekomstige incidenten te voorkomen. Deze reviews moeten worden gedocumenteerd en gedeeld met relevante stakeholders, inclusief security teams, development teams, en management. Lessons learned moeten worden geïntegreerd in best practices en processen, en moeten worden gebruikt om de beveiligingsconfiguratie en -monitoring te verbeteren.

Compliance en Auditing

Microsoft Defender voor Containers speelt een cruciale rol bij het voldoen aan verschillende compliance- en beveiligingsstandaarden die relevant zijn voor Nederlandse overheidsorganisaties en andere organisaties in de publieke sector. De implementatie van deze beveiligingsoplossing helpt bij het aantonen van naleving van zowel internationale als nationale normen, en biedt de auditbewijzen die nodig zijn voor compliance-controles. De CIS Azure Foundations Benchmark versie 3.0.0 bevat specifieke vereisten voor containerbeveiliging. Control 2.1.5 vereist expliciet dat Microsoft Defender voor Containers is ingesteld op 'On' voor alle Azure-abonnementen die Kubernetes-clusters bevatten. Deze control is geclassificeerd als Level 2, wat betekent dat deze wordt aanbevolen voor omgevingen met verhoogde beveiligingsvereisten. Nederlandse overheidsorganisaties die de CIS-benchmark volgen, moeten deze control implementeren om te voldoen aan de beveiligingsstandaarden. Auditors die CIS-benchmark assessments uitvoeren, zullen expliciet controleren of Defender voor Containers actief is, en het niet voldoen aan deze vereiste zal resulteren in een bevinding die moet worden gerepareerd voordat de audit kan worden afgerond. Het is belangrijk om regelmatig compliance-rapporten te genereren die aantonen dat Defender voor Containers actief is op alle relevante abonnementen, en deze rapporten te bewaren voor audit-doeleinden.

Naast de CIS Azure Foundations Benchmark is Defender voor Containers ook uitgelijnd met de CIS Kubernetes Benchmark, die specifieke beveiligingsaanbevelingen bevat voor Kubernetes-clusters. Deze benchmark bevat meerdere controles die betrekking hebben op containerbeveiliging, kwetsbaarheidsscanning en runtime-detectie, allemaal functionaliteiten die Defender voor Containers biedt. Door Defender voor Containers te implementeren, helpen organisaties automatisch te voldoen aan een groot aantal CIS Kubernetes Benchmark-controles, wat de audit-efficiëntie verhoogt en de beveiligingsposture verbetert. De automatische scanning en detectie verminderen de noodzaak voor handmatige controle en configuratie, wat kostenefficiënt is en menselijke fouten voorkomt. Organisaties moeten regelmatig de CIS Kubernetes Benchmark-controles reviewen en verifiëren dat hun configuratie voldoet aan alle relevante controles, en moeten documentatie bijhouden die aantoont hoe Defender voor Containers bijdraagt aan het voldoen aan deze controles.

De BIO (Baseline Informatiebeveiliging Overheid) bevat thema's die direct verband houden met containerbeveiliging. Thema 12.06 richt zich op kwetsbaarheidsbeheer en vereist dat organisaties systematisch kwetsbaarheden identificeren, beoordelen en verhelpen. Defender voor Containers ondersteunt dit thema door automatische scanning van containerimages op bekende kwetsbaarheden en het genereren van rapporten die kunnen worden gebruikt voor kwetsbaarheidsbeheerprocessen. Organisaties moeten kunnen aantonen dat zij een gestructureerd proces hebben voor het identificeren en verhelpen van kwetsbaarheden in containerimages, en dat zij regelmatig scanresultaten reviewen en acteren. Thema 14.02 betreft veilige ontwikkeling en vereist dat organisaties beveiligingsmaatregelen implementeren tijdens de ontwikkelings- en implementatiefase. De runtime-detectie en policy enforcement functionaliteiten van Defender voor Containers helpen bij het waarborgen van veilige containerimplementaties. Organisaties moeten kunnen aantonen dat zij beveiligingsmaatregelen hebben geïmplementeerd tijdens de ontwikkelings- en implementatiefase, en dat deze maatregelen effectief zijn in het voorkomen van beveiligingsproblemen.

ISO 27001, de internationale standaard voor informatiebeveiligingsmanagement, bevat controles die relevant zijn voor containerbeveiliging. Control A.12.6.1 betreft het beheer van technische kwetsbaarheden en vereist dat organisaties tijdig informatie over technische kwetsbaarheden ontvangen, deze beoordelen en passende maatregelen nemen. Defender voor Containers voorziet in deze behoefte door continue scanning en rapportage van kwetsbaarheden in containerimages. Organisaties moeten kunnen aantonen dat zij een proces hebben voor het beheren van technische kwetsbaarheden, inclusief het identificeren, beoordelen en verhelpen van kwetsbaarheden, en dat zij regelmatig dit proces uitvoeren en documenteren. Control A.14.2.1 betreft veilige systeemengineering en vereist dat beveiligingsmaatregelen worden geïmplementeerd tijdens de ontwikkeling en implementatie van systemen. De Kubernetes policy enforcement en runtime-detectie functionaliteiten ondersteunen deze control. Organisaties moeten kunnen aantonen dat zij beveiligingsmaatregelen hebben geïmplementeerd tijdens de ontwikkeling en implementatie van containerworkloads, en dat deze maatregelen effectief zijn in het voorkomen van beveiligingsproblemen.

De NIS2-richtlijn (Network and Information Systems Directive 2) is van toepassing op essentiële en belangrijke entiteiten in de Europese Unie, waaronder Nederlandse overheidsorganisaties. Artikel 21 van NIS2 vereist dat organisaties passende technische en organisatorische maatregelen nemen om cybersecurity-risico's te beheren. Containerbeveiliging vormt een belangrijk onderdeel van deze risicobeheeractiviteiten, vooral voor organisaties die containertechnologie gebruiken voor kritieke systemen. Defender voor Containers helpt bij het voldoen aan deze vereisten door uitgebreide beveiligingsmonitoring en detectie van bedreigingen in containeromgevingen. Organisaties moeten kunnen aantonen dat zij passende technische en organisatorische maatregelen hebben genomen om cybersecurity-risico's te beheren, inclusief het implementeren van beveiligingsmonitoring en -detectie voor containeromgevingen, en dat zij regelmatig deze maatregelen reviewen en verbeteren. Het is belangrijk om documentatie bij te houden die aantoont hoe Defender voor Containers bijdraagt aan het voldoen aan NIS2-vereisten, en om regelmatig compliance-rapporten te genereren die deze naleving aantonen.

Voor auditing en compliance-doeleinden is het belangrijk om regelmatig bewijs te verzamelen dat aantoont dat Defender voor Containers actief is en correct functioneert. Dit bewijs kan worden verkregen via de Azure Portal, Azure PowerShell-cmdlets, of de Azure Resource Manager API. Auditlogboeken moeten worden bewaard voor de vereiste retentietijd, typisch zeven jaar voor Nederlandse overheidsorganisaties, en moeten regelmatig worden beoordeeld om te verzekeren dat de service actief blijft en dat alle beveiligingsgebeurtenissen correct worden gelogd. Documentatie van de activeringsstatus, kwetsbaarheidsscanresultaten, runtime-threat alerts en Kubernetes policy compliance moeten worden onderhouden voor audit-doeleinden en kunnen worden gebruikt om te demonstreren dat de organisatie voldoet aan de vereiste beveiligingsstandaarden. Organisaties moeten regelmatig compliance-rapporten genereren die deze informatie bevatten, en deze rapporten moeten worden gedeeld met relevante stakeholders, inclusief security teams, compliance officers, en management.

Compliance & Frameworks

Automation

Gebruik het onderstaande PowerShell script om deze security control te monitoren en te implementeren. Het script bevat functies voor zowel monitoring (-Monitoring) als remediation (-Remediation).

PowerShell
<# ================================================================================ AZURE POWERSHELL SCRIPT - Nederlandse Baseline voor Veilige Cloud ================================================================================ .SYNOPSIS Microsoft Defender for Cloud: Defender for Containers - Status en Monitoring .DESCRIPTION CIS Azure Foundations Benchmark - Control 2.1.5 BIO Baseline - Thema 12.06.01, 14.02.01 NIS2 Richtlijn - Artikel 21 Controleert de status en configuratie van Microsoft Defender for Containers. Rapporteert over activatie, clusters, en beveiligingsgebeurtenissen. .NOTES Filename: defender-for-containers.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 Related JSON: content/azure/defender-cloud/defender-for-containers.json CIS Control: 2.1.5 BIO Controls: 12.06.01, 14.02.01 NIS2 Article: 21 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Security, Az.ContainerService [CmdletBinding()] param( [Parameter()][switch]$WhatIf, [Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [Parameter()][switch]$Revert ) $ErrorActionPreference = 'Stop' $VerbosePreference = 'Continue' $PolicyName = "Microsoft Defender for Containers" function Connect-RequiredServices { try { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } catch { throw "Failed to connect to Azure: $_" } } function Get-ContainerClusters { param( [string]$SubscriptionId ) try { Set-AzContext -SubscriptionId $SubscriptionId | Out-Null $clusters = @() # Get AKS clusters $aksClusters = Get-AzAksCluster -ErrorAction SilentlyContinue foreach ($cluster in $aksClusters) { $clusters += [PSCustomObject]@{ Name = $cluster.Name ResourceGroupName = $cluster.ResourceGroupName Type = "AKS" Location = $cluster.Location KubernetesVersion = $cluster.KubernetesVersion NodeCount = ($cluster.AgentPoolProfiles | Measure-Object Count -Sum).Sum } } return $clusters } catch { Write-Verbose "Error getting clusters for subscription $SubscriptionId : $_" return @() } } function Test-Compliance { Write-Verbose "Testing compliance for: $PolicyName..." $result = [PSCustomObject]@{ ScriptName = "defender-for-containers" PolicyName = $PolicyName IsCompliant = $false TotalSubscriptions = 0 CompliantSubscriptions = 0 NonCompliantSubscriptions = 0 TotalClusters = 0 ProtectedClusters = 0 UnprotectedClusters = 0 Details = @() Recommendations = @() } try { $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } $result.TotalSubscriptions = $subscriptions.Count foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null try { $pricing = Get-AzSecurityPricing -Name "Containers" -ErrorAction Stop if ($pricing.PricingTier -eq 'Standard') { $result.CompliantSubscriptions++ $result.Details += "✓ Subscription '$($sub.Name)': Defender for Containers enabled (Standard tier)" # Get clusters in this subscription $clusters = Get-ContainerClusters -SubscriptionId $sub.Id $result.TotalClusters += $clusters.Count if ($clusters.Count -gt 0) { foreach ($cluster in $clusters) { $result.ProtectedClusters++ $result.Details += " → Cluster '$($cluster.Name)' ($($cluster.Type)): Protected" } } } else { $result.NonCompliantSubscriptions++ $result.Details += "✗ Subscription '$($sub.Name)': Defender for Containers DISABLED (Current tier: $($pricing.PricingTier))" $result.Recommendations += "Enable Defender for Containers op '$($sub.Name)' met Set-AzSecurityPricing -Name 'Containers' -PricingTier 'Standard'" # Get clusters that are unprotected $clusters = Get-ContainerClusters -SubscriptionId $sub.Id if ($clusters.Count -gt 0) { foreach ($cluster in $clusters) { $result.UnprotectedClusters++ $result.Details += " → Cluster '$($cluster.Name)' ($($cluster.Type)): UNPROTECTED" } } } } catch { if ($_.Exception.Message -like "*not found*" -or $_.Exception.Message -like "*does not exist*") { $result.NonCompliantSubscriptions++ $result.Details += "✗ Subscription '$($sub.Name)': Defender for Containers NOT CONFIGURED" $result.Recommendations += "Enable Defender for Containers op '$($sub.Name)'" # Get clusters that are unprotected $clusters = Get-ContainerClusters -SubscriptionId $sub.Id if ($clusters.Count -gt 0) { foreach ($cluster in $clusters) { $result.UnprotectedClusters++ $result.Details += " → Cluster '$($cluster.Name)' ($($cluster.Type)): UNPROTECTED" } } } else { $result.NonCompliantSubscriptions++ $result.Details += "✗ Subscription '$($sub.Name)': Fout bij controleren - $($_.Exception.Message)" } } } $result.IsCompliant = ($result.NonCompliantSubscriptions -eq 0 -and $result.UnprotectedClusters -eq 0) } catch { $result.Details += "ERROR: $($_.Exception.Message)" } return $result } function Invoke-Remediation { Write-Host "`nStarting remediation for: $PolicyName..." -ForegroundColor Cyan try { $fixed = 0 $failed = 0 $subscriptions = Get-AzSubscription | Where-Object { $_.State -eq 'Enabled' } foreach ($sub in $subscriptions) { Set-AzContext -SubscriptionId $sub.Id | Out-Null try { # Check current status $pricing = Get-AzSecurityPricing -Name "Containers" -ErrorAction SilentlyContinue if ($pricing -and $pricing.PricingTier -eq 'Standard') { Write-Host " [OK] Already enabled for: $($sub.Name)" -ForegroundColor Green $fixed++ } else { # Enable Defender for Containers Set-AzSecurityPricing -Name "Containers" -PricingTier "Standard" -ErrorAction Stop | Out-Null Write-Host " [OK] Enabled for: $($sub.Name)" -ForegroundColor Green $fixed++ Write-Host " Note: Het kan enkele minuten duren voordat de service volledig actief is" -ForegroundColor Gray Write-Host " Kosten: €5 per vCore per maand voor compute-bescherming" -ForegroundColor Gray # Check for clusters in this subscription $clusters = Get-ContainerClusters -SubscriptionId $sub.Id if ($clusters.Count -gt 0) { Write-Host " Clusters gevonden: $($clusters.Count)" -ForegroundColor Gray foreach ($cluster in $clusters) { Write-Host " → $($cluster.Name) ($($cluster.Type))" -ForegroundColor Gray } } } } catch { Write-Host " ✗ Failed for $($sub.Name): $($_.Exception.Message)" -ForegroundColor Red $failed++ } } Write-Host "`n[OK] Configured: $fixed subscription(s)" -ForegroundColor Green if ($failed -gt 0) { Write-Host "⚠️ Failed: $failed subscription(s)" -ForegroundColor Yellow } Write-Host "`nImportant notes:" -ForegroundColor Cyan Write-Host " • Defender voor Containers is nu actief op alle abonnementen" -ForegroundColor Gray Write-Host " • De service wordt automatisch geïmplementeerd op alle AKS-clusters" -ForegroundColor Gray Write-Host " • Controleer de status via: Azure Portal → Defender voor Cloud → Containers" -ForegroundColor Gray Write-Host " • Monitor kosten via: Azure Portal → Cost Management + Billing" -ForegroundColor Gray } catch { Write-Error "Remediation failed: $_" } } function Invoke-Monitoring { $result = Test-Compliance Write-Host "`n========================================" -ForegroundColor Cyan Write-Host "$PolicyName - Monitoring Rapport" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan Write-Host "Abonnementen:" -ForegroundColor White Write-Host " Totaal: $($result.TotalSubscriptions)" -ForegroundColor Gray Write-Host " Geactiveerd: $($result.CompliantSubscriptions)" -ForegroundColor Green Write-Host " Uitgeschakeld/Niet geconfigureerd: $($result.NonCompliantSubscriptions)" -ForegroundColor $(if ($result.NonCompliantSubscriptions -gt 0) { 'Red' } else { 'Green' }) Write-Host "`nKubernetes Clusters:" -ForegroundColor White Write-Host " Totaal: $($result.TotalClusters)" -ForegroundColor Gray Write-Host " Beschermd: $($result.ProtectedClusters)" -ForegroundColor Green Write-Host " Onbeschermd: $($result.UnprotectedClusters)" -ForegroundColor $(if ($result.UnprotectedClusters -gt 0) { 'Red' } else { 'Green' }) if ($result.Details) { Write-Host "`nDetails:" -ForegroundColor Yellow $result.Details | ForEach-Object { Write-Host " $_" -ForegroundColor Gray } } if ($result.Recommendations) { Write-Host "`nAanbevelingen:" -ForegroundColor Yellow $result.Recommendations | ForEach-Object { Write-Host " • $_" -ForegroundColor Gray } } Write-Host "`nCompliance Status: " -NoNewline -ForegroundColor White if ($result.IsCompliant) { Write-Host "[OK] COMPLIANT" -ForegroundColor Green Write-Host "`nAlle abonnementen en clusters hebben Defender voor Containers ingeschakeld." -ForegroundColor Green } else { Write-Host "[FAIL] NON-COMPLIANT" -ForegroundColor Red if ($result.NonCompliantSubscriptions -gt 0) { Write-Host "`n$($result.NonCompliantSubscriptions) abonnement(en) hebben Defender voor Containers niet ingeschakeld." -ForegroundColor Red } if ($result.UnprotectedClusters -gt 0) { Write-Host "$($result.UnprotectedClusters) cluster(s) zijn onbeschermd." -ForegroundColor Red } Write-Host "`nVoer het script uit met -Remediation om dit op te lossen." -ForegroundColor Yellow } return $result } function Invoke-Revert { Write-Host "`n⚠️ WARNING: Defender voor Containers uitschakelen wordt NIET aanbevolen" -ForegroundColor Yellow Write-Host "Dit verhoogt het risico op ongedetecteerde containerbedreigingen en kwetsbaarheden." -ForegroundColor Yellow Write-Host "`nAls u toch wilt uitschakelen, gebruik dan:" -ForegroundColor Gray Write-Host " Set-AzSecurityPricing -Name 'Containers' -PricingTier 'Free'" -ForegroundColor Gray Write-Host "`nLET OP: Dit schakelt alle beveiligingsbescherming uit voor containers!" -ForegroundColor Red } try { Connect-RequiredServices if ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { if ($WhatIf) { Write-Host "`n=== WHATIF MODE ===" -ForegroundColor Yellow $result = Test-Compliance Write-Host "Zou Defender voor Containers inschakelen voor $($result.NonCompliantSubscriptions) abonnement(en)" -ForegroundColor Yellow if ($result.NonCompliantSubscriptions -gt 0) { Write-Host "`nAbonnementen die zouden worden geactiveerd:" -ForegroundColor Yellow $result.Details | Where-Object { $_ -like "✗*" } | ForEach-Object { Write-Host " $_" -ForegroundColor Gray } } } else { Invoke-Remediation } } elseif ($Revert) { Invoke-Revert } else { $result = Test-Compliance Write-Host "`nCompliance Check: $PolicyName" -ForegroundColor Cyan Write-Host "Nederlandse Baseline voor Veilige Cloud" -ForegroundColor Cyan Write-Host "========================================" -ForegroundColor Cyan if ($result.IsCompliant) { Write-Host "Status: [OK] COMPLIANT" -ForegroundColor Green Write-Host "`nAlle $($result.TotalSubscriptions) abonnement(en) en $($result.TotalClusters) cluster(s) hebben Defender voor Containers ingeschakeld." -ForegroundColor Green } else { Write-Host "Status: [FAIL] NON-COMPLIANT" -ForegroundColor Red if ($result.NonCompliantSubscriptions -gt 0) { Write-Host "`n$($result.NonCompliantSubscriptions) van $($result.TotalSubscriptions) abonnement(en) hebben Defender voor Containers niet ingeschakeld." -ForegroundColor Red } if ($result.UnprotectedClusters -gt 0) { Write-Host "$($result.UnprotectedClusters) van $($result.TotalClusters) cluster(s) zijn onbeschermd." -ForegroundColor Red } } if ($result.Details) { Write-Host "`nDetails:" -ForegroundColor Yellow $result.Details | ForEach-Object { Write-Host " $_" -ForegroundColor Gray } } Write-Host "`nGebruik -Monitoring voor uitgebreide rapportage" -ForegroundColor Gray Write-Host "Gebruik -Remediation om Defender voor Containers in te schakelen" -ForegroundColor Gray } } catch { Write-Error $_ exit 1 } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
High: Zonder Microsoft Defender voor Containers blijven organisaties kwetsbaar voor een breed scala aan container-specifieke bedreigingen en Kubernetes-misconfiguraties. Kwetsbare containerimages met bekende CVEs worden geïmplementeerd naar productie zonder adequate scanning, waardoor organisaties blootgesteld worden aan bekende kwetsbaarheden die kunnen worden misbruikt door aanvallers. Privilege escalation-aanvallen via container breakout blijven onopgemerkt, waardoor aanvallers uitgebreide machtigingen kunnen verkrijgen binnen clusters. Cryptomining-malware op clusterresources blijft ongedetecteerd, wat aanzienlijke rekenkosten veroorzaakt zonder dat organisaties zich hiervan bewust zijn. Kubernetes RBAC-misconfiguraties die te permissieve clustertoegang geven worden niet gemarkeerd, waardoor ongeautoriseerde toegang mogelijk blijft. Container registry vergiftiging waarbij kwaadaardige images worden geïnjecteerd blijft ongedetecteerd, wat kan leiden tot supply chain-aanvallen. Het risico is hoog voor AKS-productieclusters en kritiek voor multi-tenant Kubernetes-omgevingen waar containerisolatie cruciaal is. Compliance: CIS 2.1.5, BIO 12.06/14.02, ISO 27001 A.12.6.1/A.14.2.1 en NIS2 Artikel 21 vereisen allemaal containerbeveiliging. Het niet implementeren van Defender voor Containers kan leiden tot beveiligingsincidenten, datalekken, niet-naleving van compliance-vereisten, en aanzienlijke financiële en reputatieschade.

Management Samenvatting

Microsoft Defender voor Containers biedt uitgebreide Kubernetes- en containerbeveiliging via: automatische kwetsbaarheidsscanning van containerimages in ACR (CVE-detectie), runtime-bedreigingsdetectie (container breakout, privilege escalation, cryptomining, verdachte procesuitvoering), Kubernetes-beleidsaudits en policy enforcement (RBAC-audits, pod security policies), geavanceerde security analytics en correlatie van gebeurtenissen. Activatie: Azure Portal → Defender voor Cloud → Containers → AAN, of via PowerShell met Set-AzSecurityPricing. Kosten: €5 per vCore per maand voor AKS-compute-bescherming plus €0,20 per imagescan in ACR. Verplicht voor alle AKS-productieclusters en Arc-ingeschakelde Kubernetes-omgevingen. Implementatie: 8-12 uur inclusief configuratie en testing. Vereist voor CIS 2.1.5 L2, BIO 12.06/14.02, ISO 27001 A.12.6.1/A.14.2.1 en NIS2 Artikel 21.