Microsoft Defender For DevOps Implementatie En Configuratie

💼 Management Samenvatting

Microsoft Defender for DevOps biedt een geïntegreerde beveiligingsoplossing die unified security management en threat protection biedt voor DevOps-omgevingen, waarbij code repositories, CI/CD-pipelines, en development workflows worden beveiligd tegen moderne cyberdreigingen. De oplossing integreert beveiligingsinzichten van verschillende DevOps-platforms zoals Azure DevOps, GitHub, en GitLab in één centraal dashboard, waardoor security teams een holistisch overzicht krijgen van beveiligingsrisico's across de gehele development lifecycle. Voor Nederlandse overheidsorganisaties die moeten voldoen aan strikte compliance-vereisten zoals de BIO-normen, ISO 27001, of de NIS2-richtlijn, is het essentieel dat DevOps-omgevingen worden beveiligd met geavanceerde threat detection en automated security scanning die kwetsbaarheden vroeg detecteert en automatisch remedieert.

Aanbeveling
IMPLEMENT
Risico zonder
High
Risk Score
9/10
Implementatie
60u (tech: 40u)
Van toepassing op:
Azure DevOps
GitHub
GitLab
DevOps Platforms

Moderne DevOps-omgevingen vormen een aantrekkelijk doelwit voor cyberaanvallers omdat zij toegang bieden tot source code, CI/CD-pipelines, en deployment infrastructure. Zonder adequate beveiliging kunnen aanvallers misbruik maken van kwetsbaarheden in code repositories om toegang te krijgen tot gevoelige broncode, credentials te stelen uit CI/CD-configuraties, of kwaadaardige code te injecteren in deployment pipelines. Traditionele security tools focussen vaak op individuele aspecten van DevOps-beveiliging, zoals code scanning of pipeline security, maar bieden geen unified view van beveiligingsrisico's across verschillende platforms en repositories. Dit leidt tot security blind spots waarbij beveiligingsproblemen worden gemist of pas laat worden gedetecteerd. Voor Nederlandse overheidsorganisaties die moeten voldoen aan strikte compliance-vereisten zoals de BIO-normen, ISO 27001, of de NIS2-richtlijn, is het essentieel dat DevOps-omgevingen worden beveiligd met geavanceerde threat detection en automated security scanning. Het ontbreken van unified security management voor DevOps kan leiden tot niet-naleving van deze vereisten, wat kan resulteren in boetes, reputatieschade, of het verlies van vertrouwen bij burgers en stakeholders.

PowerShell Modules Vereist
Primary API: Microsoft Defender for Cloud REST API
Connection: Connect-AzAccount
Required Modules: Az.Accounts, Az.Security

Implementatie

Microsoft Defender for DevOps omvat het implementeren van een unified security management platform dat beveiligingsinzichten integreert van verschillende DevOps-platforms zoals Azure DevOps, GitHub, en GitLab in één centraal dashboard. Dit begint met het verbinden van DevOps-organisaties aan Microsoft Defender for Cloud, waarbij connectors worden geconfigureerd voor Azure DevOps-organisaties, GitHub-organisaties, of GitLab-instances. Eenmaal verbonden worden repositories automatisch gedetecteerd en gescand op beveiligingsproblemen, waarbij code wordt geanalyseerd op kwetsbaarheden, secrets worden gedetecteerd die mogelijk zijn gehardcodeerd in code, en misconfiguraties worden geïdentificeerd in CI/CD-pipelines. De oplossing biedt geavanceerde threat detection die verdachte activiteiten detecteert in repositories, zoals ongeautoriseerde code changes, suspicious commit patterns, of attempts om credentials te stelen. Security recommendations worden gegenereerd op basis van best practices en compliance-vereisten, waarbij prioritering wordt geboden op basis van risico en bedrijfskritiek. Automated remediation wordt geboden voor bepaalde beveiligingsproblemen, waarbij security issues automatisch worden opgelost zonder handmatige interventie. Security dashboards bieden real-time inzicht in beveiligingsstatus van alle repositories en pipelines, waarbij trends worden geïdentificeerd en problemen worden geprioriteerd. Integratie met Microsoft Sentinel biedt advanced threat hunting en security orchestration, waarbij security incidents automatisch worden gegenereerd wanneer kritieke beveiligingsproblemen worden gedetecteerd.

Vereisten

Voordat Microsoft Defender for DevOps kan worden geïmplementeerd, moeten organisaties verschillende essentiële vereisten vervullen om een succesvolle implementatie te garanderen. De eerste en meest kritieke vereiste is het ontwikkelen van een Defender for DevOps implementatiebeleid dat expliciet definieert welke DevOps-platforms moeten worden beveiligd, welke security scanning tools moeten worden gebruikt, en hoe security findings moeten worden opgevolgd en geremedieerd. Dit beleid moet worden ontwikkeld in samenwerking met verschillende stakeholders, waaronder security officers, development leads, DevOps engineers en platform beheerders. Het beleid moet duidelijk maken welke repositories moeten worden gescand, welke security requirements moeten worden geïmplementeerd, hoe security findings worden geprioriteerd en opgevolgd, en wie verantwoordelijk is voor het oplossen van beveiligingsproblemen. Zonder een gedocumenteerd beleid bestaat het risico dat beveiliging inconsistently wordt toegepast across verschillende DevOps-platforms, wat kan leiden tot gemiste beveiligingsvereisten of conflicten tussen development en security teams.

Een volledige inventarisatie van alle DevOps-platforms, repositories en CI/CD-pipelines is essentieel voordat Defender for DevOps wordt geïmplementeerd. Deze inventarisatie moet alle actieve DevOps-organisaties documenteren, welke repositories worden beheerd, welke CI/CD-pipelines worden gebruikt, en welke beveiligingsrisico's hieraan zijn verbonden. Voor Azure DevOps moeten alle organisaties en projects worden geïnventariseerd, inclusief welke repositories worden gebruikt, welke pipelines zijn geconfigureerd, en welke service connections zijn ingesteld. Voor GitHub moeten alle organisaties en repositories worden geïnventariseerd, inclusief welke workflows zijn geconfigureerd, welke secrets worden gebruikt, en welke access controls zijn ingesteld. Voor GitLab moeten alle instances en projects worden geïnventariseerd, inclusief welke CI/CD-configuraties zijn gebruikt en welke security settings zijn geconfigureerd. Deze inventarisatie vormt de basis voor het bepalen welke connectors moeten worden geconfigureerd, welke repositories moeten worden gescand, en hoe security findings moeten worden geïntegreerd in development workflows.

Microsoft Defender for Cloud moet worden geconfigureerd en geactiveerd voordat Defender for DevOps kan worden geïmplementeerd. Defender for Cloud biedt de centrale platform voor security management, waarbij Defender for DevOps wordt geactiveerd als een add-on plan. De Defender for Cloud subscription moet worden geconfigureerd met passende access controls, waarbij security teams toegang krijgen tot security dashboards en recommendations, en development teams toegang krijgen tot security findings voor hun specifieke repositories. Log Analytics workspace moet worden geconfigureerd voor het opslaan van security logs en findings, waarbij retention policies worden ingesteld volgens compliance-vereisten. Azure Monitor moet worden geconfigureerd voor alerting, waarbij waarschuwingen worden gegenereerd wanneer kritieke beveiligingsproblemen worden gedetecteerd. Zonder een correct geconfigureerde Defender for Cloud subscription kan Defender for DevOps niet worden geactiveerd of gebruikt.

Connectors moeten worden geconfigureerd voor alle DevOps-platforms die moeten worden beveiligd. Voor Azure DevOps moeten connectors worden geconfigureerd die verbinding maken met Azure DevOps-organisaties, waarbij service principals of managed identities worden gebruikt voor authenticatie. Voor GitHub moeten connectors worden geconfigureerd die verbinding maken met GitHub-organisaties, waarbij GitHub Apps of personal access tokens worden gebruikt voor authenticatie. Voor GitLab moeten connectors worden geconfigureerd die verbinding maken met GitLab-instances, waarbij access tokens worden gebruikt voor authenticatie. Connectors moeten worden geconfigureerd met passende permissions, waarbij connectors alleen toegang krijgen tot de repositories en resources die zij nodig hebben voor security scanning. Zonder correct geconfigureerde connectors kan Defender for DevOps geen toegang krijgen tot repositories en kan security scanning niet worden uitgevoerd.

Access controls moeten worden geconfigureerd om te waarborgen dat alleen geautoriseerde gebruikers toegang krijgen tot Defender for DevOps features en security findings. Azure Role-Based Access Control (RBAC) moet worden geconfigureerd voor Defender for Cloud, waarbij security teams de rol Security Reader of Security Admin krijgen toegewezen voor het bekijken en beheren van security findings. Development teams moeten de rol Reader krijgen toegewezen voor het bekijken van security findings voor hun specifieke repositories, maar mogen geen toegang krijgen tot globale security settings of andere repositories. Service principals of managed identities moeten worden geconfigureerd voor connectors, waarbij least privilege access wordt geïmplementeerd zodat connectors alleen toegang krijgen tot de resources die zij nodig hebben. Zonder adequate access controls bestaat het risico dat onbevoegde gebruikers toegang krijgen tot gevoelige security information of dat connectors worden misbruikt voor ongeautoriseerde acties.

Implementatie

Gebruik PowerShell-script defender-for-devops.ps1 (functie Invoke-Remediation) – Configureert Microsoft Defender for DevOps volgens best practices.

De implementatie van Microsoft Defender for DevOps begint met het activeren van de Defender for DevOps plan in Microsoft Defender for Cloud. Navigeer naar Microsoft Defender for Cloud in de Azure Portal, selecteer Environment settings, en activeer de Defender for DevOps plan voor de gewenste subscriptions. De plan moet worden geactiveerd voor alle subscriptions die DevOps-resources bevatten, waarbij kosten worden overwogen omdat Defender for DevOps wordt gefactureerd per repository. Eenmaal geactiveerd wordt Defender for DevOps beschikbaar in de Defender for Cloud portal, waarbij security dashboards en recommendations worden weergegeven voor alle verbonden DevOps-platforms.

Connectors moeten worden geconfigureerd voor alle DevOps-platforms die moeten worden beveiligd. Voor Azure DevOps moeten connectors worden geconfigureerd door te navigeren naar Defender for Cloud, te selecteren DevOps security, en te kiezen voor Add connector. Selecteer Azure DevOps als platform type, voer de Azure DevOps organisatie URL in, en configureer authenticatie via service principal of managed identity. De service principal of managed identity moet worden geconfigureerd met passende permissions in Azure DevOps, waarbij de identity de rol Project Administrator krijgt toegewezen voor de gewenste projects. Eenmaal geconfigureerd worden repositories automatisch gedetecteerd en gescand op beveiligingsproblemen. Voor GitHub moeten connectors worden geconfigureerd door te selecteren GitHub als platform type, de GitHub organisatie naam in te voeren, en authenticatie te configureren via GitHub App of personal access token. De GitHub App of token moet worden geconfigureerd met passende permissions, waarbij read access wordt verleend voor repositories en workflows. Voor GitLab moeten connectors worden geconfigureerd door te selecteren GitLab als platform type, de GitLab instance URL in te voeren, en authenticatie te configureren via access token.

Security scanning moet worden geconfigureerd voor alle repositories die moeten worden beveiligd. Eenmaal connectors zijn geconfigureerd worden repositories automatisch gedetecteerd en gescand op beveiligingsproblemen, waarbij code wordt geanalyseerd op kwetsbaarheden, secrets worden gedetecteerd, en misconfiguraties worden geïdentificeerd. Security scanning wordt uitgevoerd met behulp van geavanceerde tools zoals GitHub Advanced Security, Azure DevOps Security Scanning, of GitLab Security Scanning, waarbij findings worden geïntegreerd in het Defender for Cloud dashboard. Configureer security policies die bepalen welke security scans moeten worden uitgevoerd, welke severity levels moeten worden gerapporteerd, en wanneer security findings moeten worden gegenereerd. Voor repositories met gevoelige code of kritieke applicaties moeten uitgebreide security scans worden geconfigureerd, waarbij alle beschikbare scanning tools worden gebruikt. Voor repositories met minder kritieke code kunnen basis security scans worden geconfigureerd, waarbij alleen essentiële scanning tools worden gebruikt.

Threat detection moet worden geconfigureerd om verdachte activiteiten te detecteren in repositories en CI/CD-pipelines. Defender for DevOps biedt geavanceerde threat detection die verdachte activiteiten detecteert zoals ongeautoriseerde code changes, suspicious commit patterns, attempts om credentials te stelen, of kwaadaardige code injectie in pipelines. Threat detection wordt geconfigureerd via security policies, waarbij detection rules worden ingesteld die bepalen welke activiteiten als verdacht worden beschouwd. Configureer waarschuwingen die worden gegenereerd wanneer threat detection events worden gedetecteerd, waarbij security teams onmiddellijk worden geïnformeerd wanneer kritieke dreigingen worden geïdentificeerd. Integreer threat detection met Microsoft Sentinel voor advanced threat hunting en security orchestration, waarbij security incidents automatisch worden gegenereerd wanneer kritieke dreigingen worden gedetecteerd.

Security recommendations moeten worden geconfigureerd om beveiligingsverbeteringen te prioriteren op basis van risico en bedrijfskritiek. Defender for DevOps genereert security recommendations op basis van best practices en compliance-vereisten, waarbij recommendations worden geprioriteerd op basis van severity, exploitability, en business impact. Configureer recommendation policies die bepalen welke recommendations moeten worden weergegeven, welke severity levels moeten worden gerapporteerd, en hoe recommendations moeten worden opgevolgd. Voor kritieke recommendations moeten automatische remediatie worden geconfigureerd waar mogelijk, waarbij security issues automatisch worden opgelost zonder handmatige interventie. Voor recommendations die handmatige actie vereisen moeten workflows worden geconfigureerd die bepalen wie verantwoordelijk is voor het oplossen van beveiligingsproblemen en hoe progress wordt getracked. Integreer recommendations met development tools zoals Azure DevOps of GitHub, waarbij security findings worden weergegeven in pull requests en code reviews zodat ontwikkelaars direct feedback krijgen over beveiligingsproblemen.

Automated remediation moet worden geconfigureerd voor beveiligingsproblemen die automatisch kunnen worden opgelost zonder handmatige interventie. Defender for DevOps biedt automated remediation voor bepaalde beveiligingsproblemen, zoals het verwijderen van gehardcodeerde secrets uit code, het updaten van dependencies met bekende kwetsbaarheden, of het corrigeren van misconfiguraties in CI/CD-pipelines. Configureer remediation policies die bepalen welke beveiligingsproblemen automatisch moeten worden opgelost, welke approval workflows moeten worden gevolgd, en hoe remediatie-acties moeten worden gedocumenteerd. Voor kritieke beveiligingsproblemen moeten automatische remediatie worden geconfigureerd zonder approval, waarbij security issues onmiddellijk worden opgelost. Voor minder kritieke beveiligingsproblemen kunnen approval workflows worden geconfigureerd, waarbij security teams kunnen reviewen voordat remediatie-acties worden uitgevoerd. Verifieer dat automated remediation correct werkt door test remediatie-acties uit te voeren en door te controleren of security issues daadwerkelijk worden opgelost.

Security dashboards moeten worden geconfigureerd om real-time inzicht te bieden in beveiligingsstatus van alle repositories en pipelines. Defender for Cloud biedt ingebouwde security dashboards die een overzicht bieden van security findings, threat detection events, en compliance status. Configureer custom dashboards die zijn afgestemd op de specifieke behoeften van de organisatie, waarbij metrics worden weergegeven zoals het aantal security findings per repository, het aantal kritieke kwetsbaarheden, of de compliance score. Integreer dashboards met development tools zodat ontwikkelaars real-time inzicht krijgen in beveiligingsstatus van hun repositories. Configureer waarschuwingen die worden gegenereerd wanneer belangrijke beveiligingsproblemen worden gedetecteerd, waarbij security teams onmiddellijk worden geïnformeerd wanneer actie vereist is.

Compliance en Auditing

Microsoft Defender for DevOps is essentieel voor naleving van verschillende compliance-vereisten die van toepassing zijn op Nederlandse organisaties, met name in de publieke sector. De Baseline Informatiebeveiliging Overheid (BIO) bevat in Thema 12.01 specifieke vereisten voor secure development en secure coding practices, waarbij organisaties moeten zorgen dat beveiliging wordt geïntegreerd in development processen en dat code wordt gereviewed op beveiligingsaspecten voordat applicaties in productie worden gebracht. Defender for DevOps implementeert deze vereisten door unified security management te bieden voor DevOps-omgevingen, door geavanceerde threat detection te implementeren, en door automated security scanning te bieden voor alle repositories. Voor overheidsorganisaties die moeten voldoen aan BIO-normen is documentatie van Defender for DevOps configuratie, security scanning results, en threat detection events een essentieel onderdeel van audit-evidentie.

ISO 27001:2022 bevat in controle A.14.2.1 specifieke vereisten voor secure development policies, waarbij organisaties moeten zorgen dat beveiliging wordt geïntegreerd in development processen. Controle A.14.2.5 vereist dat organisaties security testing uitvoeren tijdens development en voordat applicaties in productie worden gebracht. Defender for DevOps implementeert beide controles door unified security management te bieden voor DevOps-omgevingen, door geavanceerde threat detection te implementeren, en door automated security scanning te bieden voor alle repositories. De auditlogs die worden gegenereerd door Defender for DevOps kunnen worden gebruikt als audit-evidentie om aan te tonen dat organisaties proactief beveiliging integreren in development processen en dat security testing wordt uitgevoerd voor alle code changes.

De NIS2-richtlijn vereist in Artikel 21 dat organisaties passende maatregelen treffen voor beveiliging van systemen en diensten, waarbij secure development een essentieel onderdeel vormt. De richtlijn benadrukt het belang van security-by-design, waarbij beveiliging vanaf het begin wordt meegenomen in development processen. Defender for DevOps implementeert dit principe door unified security management te bieden voor DevOps-omgevingen, door geavanceerde threat detection te implementeren, en door automated security scanning te bieden voor alle repositories. Voor organisaties die onder NIS2 vallen is het daarom niet alleen aanbevolen maar verplicht om unified security management te implementeren voor alle kritieke DevOps-omgevingen en repositories.

De Algemene Verordening Gegevensbescherming (AVG) vereist in Artikel 32 dat organisaties passende technische en organisatorische maatregelen implementeren om persoonsgegevens te beschermen, waarbij secure development een essentieel onderdeel vormt. Wanneer applicaties worden ontwikkeld die persoonsgegevens verwerken, is het essentieel dat DevOps-omgevingen worden beveiligd met geavanceerde threat detection en automated security scanning om te voorkomen dat kwetsbaarheden worden geïntroduceerd die kunnen leiden tot datalekken. Defender for DevOps zorgt ervoor dat beveiliging wordt meegenomen in elke code commit, dat security testing wordt uitgevoerd voordat code in productie wordt gebracht, en dat beveiligingsproblemen vroeg worden gedetecteerd en opgelost.

Monitoring

Gebruik PowerShell-script defender-for-devops.ps1 (functie Invoke-Monitoring) – Controleert de implementatie en effectiviteit van Microsoft Defender for DevOps.

Effectieve monitoring van Microsoft Defender for DevOps is essentieel om te waarborgen dat beveiliging correct wordt geïmplementeerd voor alle DevOps-platforms en dat organisaties altijd beschikken over actuele informatie over beveiligingsstatus van repositories en pipelines. Monitoring omvat het continu volgen van security findings, het verifiëren dat security scanning wordt uitgevoerd voor alle repositories, het controleren van de effectiviteit van threat detection, en het waarborgen dat alle beveiligingsvereisten worden nageleefd.

Security dashboards vormen het centrale punt voor monitoring van DevOps-beveiliging. Defender for Cloud biedt ingebouwde security dashboards die een overzicht bieden van security findings, threat detection events, en compliance status voor alle verbonden DevOps-platforms. Configureer custom dashboards die zijn afgestemd op de specifieke behoeften van de organisatie, waarbij metrics worden weergegeven zoals het aantal security findings per repository, het aantal kritieke kwetsbaarheden, of de compliance score. Stel waarschuwingen in voor kritieke of hoge severity security findings die worden gedetecteerd, zodat security teams onmiddellijk kunnen worden geïnformeerd wanneer belangrijke beveiligingsproblemen worden gevonden. Genereer wekelijkse of maandelijkse rapporten die een overzicht bieden van security status, trends, en verbeterpunten. Monitor ook of security scanning daadwerkelijk wordt uitgevoerd voor alle repositories, waarbij waarschuwingen worden gegenereerd wanneer scans niet worden uitgevoerd of wanneer scans falen.

Monitor regelmatig of threat detection correct functioneert en of verdachte activiteiten worden gedetecteerd. Verifieer dat threat detection rules correct zijn geconfigureerd voor alle repositories en pipelines, en dat detection events correct worden gegenereerd wanneer verdachte activiteiten worden gedetecteerd. Review regelmatig threat detection logs om te identificeren welke activiteiten als verdacht worden beschouwd, en evalueer of detection rules effectief zijn in het detecteren van echte dreigingen. Configureer waarschuwingen die worden gegenereerd wanneer threat detection events worden gedetecteerd, zodat security teams onmiddellijk kunnen worden geïnformeerd wanneer kritieke dreigingen worden geïdentificeerd. Integreer threat detection met Microsoft Sentinel voor advanced threat hunting, waarbij security analysts kunnen onderzoeken en reageren op dreigingen.

Voer regelmatig security reviews uit om te verifiëren dat Defender for DevOps correct is geconfigureerd voor alle DevOps-platforms en dat security findings worden opgevolgd. Tijdens reviews moeten alle connectors worden gecontroleerd, inclusief of connectors correct zijn geconfigureerd, of repositories worden gedetecteerd en gescand, en of security findings worden gegenereerd. Review ook of security policies correct zijn geconfigureerd, inclusief of security scanning wordt uitgevoerd voor alle repositories, of threat detection correct functioneert, en of automated remediation correct werkt. Tijdens reviews moeten trends worden geïdentificeerd, zoals welke beveiligingsproblemen het meest voorkomen, welke repositories de meeste security findings hebben, en welke verbeteringen nodig zijn in security processes.

Genereer maandelijks compliance-rapporten die een overzicht bieden van de security status van DevOps-omgevingen. Deze rapporten moeten informatie bevatten over het aantal security findings per repository, het aantal threat detection events, het aantal geautomatiseerde remediatie-acties, en eventuele afwijkingen of problemen die zijn geïdentificeerd. Deze rapporten kunnen worden gebruikt voor management reporting, audit-doeleinden, en voor het identificeren van trends of verbeterpunten. Rapporten moeten worden gedistribueerd naar relevante stakeholders, zoals security officers, development leads, en DevOps engineers.

Remediatie

Gebruik PowerShell-script defender-for-devops.ps1 (functie Invoke-Remediation) – Herstelt Microsoft Defender for DevOps configuraties naar de gewenste staat.

Wanneer tijdens monitoring wordt vastgesteld dat Microsoft Defender for DevOps niet correct is geïmplementeerd of dat beveiligingsproblemen niet worden gedetecteerd, moet direct actie worden ondernomen om de beveiliging te herstellen. Het remediatieproces begint met het identificeren van de specifieke problemen, zoals connectors die niet correct zijn geconfigureerd, repositories die niet worden gescand, of threat detection die niet functioneert. Prioriteer problemen op basis van risico en bedrijfskritiek, waarbij hoog-risico problemen zoals repositories zonder security scanning of kritieke dreigingen die niet worden gedetecteerd onmiddellijk moeten worden aangepakt.

Voor connectors die niet correct zijn geconfigureerd moeten connectors worden herconfigureerd of opnieuw worden geconfigureerd. Verifieer dat connectors correct zijn geconfigureerd met passende authenticatie, dat connectors toegang hebben tot de gewenste repositories, en dat connectors correct zijn verbonden met Defender for Cloud. Voor Azure DevOps connectors moet worden gecontroleerd of service principals of managed identities correct zijn geconfigureerd met passende permissions in Azure DevOps. Voor GitHub connectors moet worden gecontroleerd of GitHub Apps of personal access tokens correct zijn geconfigureerd met passende permissions. Voor GitLab connectors moet worden gecontroleerd of access tokens correct zijn geconfigureerd. Wanneer connectors worden herconfigureerd, moet worden gecommuniceerd met development teams om uit te leggen wat de nieuwe vereisten zijn en hoe zij hieraan kunnen voldoen. Verifieer dat connectors correct werken door te controleren of repositories worden gedetecteerd en gescand.

Voor repositories die niet worden gescand moeten security scanning worden geconfigureerd. Verifieer dat repositories correct zijn gedetecteerd door connectors, en dat security scanning is geconfigureerd voor alle repositories. Configureer security policies die bepalen welke security scans moeten worden uitgevoerd, welke severity levels moeten worden gerapporteerd, en wanneer security findings moeten worden gegenereerd. Wanneer security scanning wordt geconfigureerd voor bestaande repositories, moet worden gecommuniceerd met development teams om uit te leggen wat de nieuwe vereisten zijn en hoe zij hieraan kunnen voldoen. Verifieer dat security scanning correct werkt door test scans uit te voeren en door te controleren of findings correct worden gegenereerd.

Voor threat detection die niet functioneert moeten threat detection rules worden geconfigureerd of herconfigureerd. Verifieer dat threat detection correct is geconfigureerd voor alle repositories en pipelines, en dat detection rules correct zijn ingesteld. Configureer waarschuwingen die worden gegenereerd wanneer threat detection events worden gedetecteerd, zodat security teams onmiddellijk kunnen worden geïnformeerd wanneer kritieke dreigingen worden geïdentificeerd. Wanneer threat detection wordt geconfigureerd, moet worden gecommuniceerd met security teams om uit te leggen wat de nieuwe vereisten zijn en hoe zij hieraan kunnen voldoen. Verifieer dat threat detection correct werkt door test events uit te voeren en door te controleren of detection events correct worden gegenereerd.

Voor security findings die niet worden opgevolgd moeten workflows worden geconfigureerd die bepalen wie verantwoordelijk is voor het oplossen van beveiligingsproblemen en hoe progress wordt getracked. Configureer recommendation policies die bepalen welke recommendations moeten worden weergegeven, welke severity levels moeten worden gerapporteerd, en hoe recommendations moeten worden opgevolgd. Integreer recommendations met development tools zoals Azure DevOps of GitHub, waarbij security findings worden weergegeven in pull requests en code reviews zodat ontwikkelaars direct feedback krijgen over beveiligingsproblemen. Wanneer workflows worden geconfigureerd, moet worden gecommuniceerd met development teams om uit te leggen wat de nieuwe vereisten zijn en hoe zij hieraan kunnen voldoen.

Documenteer alle remediatie-activiteiten, inclusief welke problemen zijn geïdentificeerd, welke acties zijn ondernomen, wie verantwoordelijk was voor de remediatie, en wanneer de remediatie is voltooid. Deze documentatie is essentieel voor audit-doeleinden en voor het aantonen dat organisaties proactief omgaan met beveiligingsproblemen. Verifieer na remediatie dat de problemen daadwerkelijk zijn opgelost door de configuratie opnieuw te controleren en door te monitoren of er geen nieuwe problemen ontstaan.

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 DevOps Monitoring en Remediatie .DESCRIPTION Monitort en beheert de implementatie van Microsoft Defender for DevOps, inclusief connectors voor Azure DevOps, GitHub en GitLab, security scanning, threat detection, en automated remediation. .NOTES Filename: defender-for-devops.ps1 Author: Nederlandse Baseline voor Veilige Cloud Version: 1.0 #> #Requires -Version 5.1 #Requires -Modules Az.Accounts, Az.Security [CmdletBinding()] param( [Parameter()][switch]$Monitoring, [Parameter()][switch]$Remediation, [Parameter()][switch]$Revert, [switch]$WhatIf ) $ErrorActionPreference = 'Stop' Write-Host "`n========================================`nMicrosoft Defender for DevOps`n========================================`n" -ForegroundColor Cyan function Connect-RequiredServices { if (-not (Get-AzContext)) { Connect-AzAccount | Out-Null } } function Test-DefenderForDevOps { param( [string]$SubscriptionId ) $result = @{ isCompliant = $false issues = @() defenderPlanEnabled = $false connectorsConfigured = 0 repositoriesScanned = 0 securityFindings = 0 threatDetectionEvents = 0 totalRepositories = 0 } try { if ($SubscriptionId) { Set-AzContext -SubscriptionId $SubscriptionId | Out-Null } # Check if Defender for DevOps plan is enabled $defenderPlans = Get-AzSecurityPricing -Name "DefenderForDevOps" -ErrorAction SilentlyContinue if ($null -eq $defenderPlans) { $result.issues += "Defender for DevOps plan is niet geactiveerd" } else { $result.defenderPlanEnabled = $true } # Check for connectors # Note: Actual connector detection would require using Defender for Cloud REST API # This is a simplified check - in production, you would use the Defender for Cloud API $result.connectorsConfigured = 0 $result.issues += "Connector status kan niet worden gecontroleerd via PowerShell - gebruik Azure Portal of REST API" # Check security findings # Note: Actual security findings detection would require using Defender for Cloud REST API # This is a simplified check $result.securityFindings = 0 $result.issues += "Security findings kunnen niet worden gecontroleerd via PowerShell - gebruik Azure Portal of REST API" # Determine compliance if ($result.defenderPlanEnabled -and $result.issues.Count -eq 0) { $result.isCompliant = $true } return $result } catch { Write-Host "Fout bij het controleren van Defender for DevOps: $_" -ForegroundColor Red throw } } function Invoke-Monitoring { try { Write-Host "Monitoring:" -ForegroundColor Yellow Connect-RequiredServices $subscriptionId = Read-Host "Voer Subscription ID in (optioneel, druk Enter om huidige subscription te gebruiken)" if ([string]::IsNullOrWhiteSpace($subscriptionId)) { $subscriptionId = $null } $result = Test-DefenderForDevOps -SubscriptionId $subscriptionId Write-Host "`nDefender for DevOps Status:" -ForegroundColor Cyan Write-Host " Defender plan geactiveerd: $($result.defenderPlanEnabled)" -ForegroundColor $(if ($result.defenderPlanEnabled) { "Green" } else { "Red" }) Write-Host " Connectors geconfigureerd: $($result.connectorsConfigured)" -ForegroundColor $(if ($result.connectorsConfigured -gt 0) { "Green" } else { "Yellow" }) Write-Host " Repositories gescand: $($result.repositoriesScanned)" -ForegroundColor White Write-Host " Security findings: $($result.securityFindings)" -ForegroundColor $(if ($result.securityFindings -eq 0) { "Green" } else { "Yellow" }) Write-Host " Threat detection events: $($result.threatDetectionEvents)" -ForegroundColor $(if ($result.threatDetectionEvents -eq 0) { "Green" } else { "Yellow" }) if ($result.issues.Count -gt 0) { Write-Host "`nGeïdentificeerde problemen:" -ForegroundColor Yellow foreach ($issue in $result.issues) { Write-Host " - $issue" -ForegroundColor Yellow } } Write-Host "`nAanbevelingen:" -ForegroundColor Cyan Write-Host " • Activeer Defender for DevOps plan in Microsoft Defender for Cloud" -ForegroundColor White Write-Host " • Configureer connectors voor Azure DevOps, GitHub en GitLab" -ForegroundColor White Write-Host " • Verifieer dat repositories worden gedetecteerd en gescand" -ForegroundColor White Write-Host " • Configureer security policies voor alle repositories" -ForegroundColor White Write-Host " • Configureer threat detection rules voor verdachte activiteiten" -ForegroundColor White Write-Host " • Integreer met Microsoft Sentinel voor advanced threat hunting" -ForegroundColor White Write-Host " • Configureer automated remediation waar mogelijk" -ForegroundColor White Write-Host " • Review regelmatig security findings en threat detection events" -ForegroundColor White Write-Host "`n" -ForegroundColor Cyan if ($result.isCompliant) { Write-Host "COMPLIANT" -ForegroundColor Green exit 0 } else { Write-Host "NON-COMPLIANT" -ForegroundColor Red exit 1 } } catch { Write-Host "ERROR: $_" -ForegroundColor Red exit 2 } } function Invoke-Remediation { try { Write-Host "Remediatie:" -ForegroundColor Yellow Connect-RequiredServices $subscriptionId = Read-Host "Voer Subscription ID in" Set-AzContext -SubscriptionId $subscriptionId | Out-Null $result = Test-DefenderForDevOps -SubscriptionId $subscriptionId if ($result.isCompliant) { Write-Host "Geen remediatie nodig - configuratie is compliant" -ForegroundColor Green exit 0 } Write-Host "`nRemediatie-acties:" -ForegroundColor Cyan # Remediate Defender for DevOps plan if (-not $result.defenderPlanEnabled) { Write-Host " Activeren van Defender for DevOps plan..." -ForegroundColor Yellow try { Set-AzSecurityPricing -Name "DefenderForDevOps" -PricingTier "Standard" -ErrorAction Stop Write-Host " Defender for DevOps plan is geactiveerd" -ForegroundColor Green } catch { Write-Host " [INFO] Defender for DevOps plan moet worden geactiveerd via Azure Portal:" -ForegroundColor Yellow Write-Host " 1. Navigeer naar Microsoft Defender for Cloud" -ForegroundColor White Write-Host " 2. Selecteer Environment settings" -ForegroundColor White Write-Host " 3. Selecteer de gewenste subscription" -ForegroundColor White Write-Host " 4. Activeer de Defender for DevOps plan" -ForegroundColor White } } # Remediate connectors if ($result.connectorsConfigured -eq 0) { Write-Host " Configureren van connectors..." -ForegroundColor Yellow Write-Host " [INFO] Connectors moeten worden geconfigureerd via Azure Portal:" -ForegroundColor Yellow Write-Host " 1. Navigeer naar Microsoft Defender for Cloud" -ForegroundColor White Write-Host " 2. Selecteer DevOps security" -ForegroundColor White Write-Host " 3. Selecteer Add connector" -ForegroundColor White Write-Host " 4. Selecteer platform type (Azure DevOps, GitHub, of GitLab)" -ForegroundColor White Write-Host " 5. Configureer authenticatie via service principal, managed identity, of access token" -ForegroundColor White Write-Host " 6. Verifieer dat connectors toegang hebben tot repositories" -ForegroundColor White } # Remediate security scanning Write-Host " Configureren van security scanning..." -ForegroundColor Yellow Write-Host " [INFO] Security scanning wordt automatisch geconfigureerd wanneer connectors zijn verbonden" -ForegroundColor Yellow Write-Host " [INFO] Verifieer dat repositories worden gedetecteerd en gescand" -ForegroundColor Yellow Write-Host " [INFO] Configureer security policies die bepalen welke scans moeten worden uitgevoerd" -ForegroundColor Yellow Write-Host " [INFO] Review security findings regelmatig en prioriteer op basis van risico" -ForegroundColor Yellow # Remediate threat detection Write-Host " Configureren van threat detection..." -ForegroundColor Yellow Write-Host " [INFO] Threat detection wordt automatisch geconfigureerd wanneer connectors zijn verbonden" -ForegroundColor Yellow Write-Host " [INFO] Configureer threat detection rules die bepalen welke activiteiten als verdacht worden beschouwd" -ForegroundColor Yellow Write-Host " [INFO] Configureer waarschuwingen die worden gegenereerd wanneer threat detection events worden gedetecteerd" -ForegroundColor Yellow Write-Host " [INFO] Integreer threat detection met Microsoft Sentinel voor advanced threat hunting" -ForegroundColor Yellow # Remediate automated remediation Write-Host " Configureren van automated remediation..." -ForegroundColor Yellow Write-Host " [INFO] Configureer remediation policies die bepalen welke beveiligingsproblemen automatisch moeten worden opgelost" -ForegroundColor Yellow Write-Host " [INFO] Configureer approval workflows voor kritieke beveiligingsproblemen" -ForegroundColor Yellow Write-Host " [INFO] Verifieer dat automated remediation correct werkt door test remediatie-acties uit te voeren" -ForegroundColor Yellow Write-Host "`nAanbevolen volgende stappen:" -ForegroundColor Cyan Write-Host " 1. Documenteer Defender for DevOps implementatiebeleid" -ForegroundColor White Write-Host " 2. Activeer Defender for DevOps plan in Microsoft Defender for Cloud" -ForegroundColor White Write-Host " 3. Configureer connectors voor Azure DevOps, GitHub en GitLab" -ForegroundColor White Write-Host " 4. Verifieer dat repositories worden gedetecteerd en gescand" -ForegroundColor White Write-Host " 5. Configureer security policies voor alle repositories" -ForegroundColor White Write-Host " 6. Configureer threat detection rules voor verdachte activiteiten" -ForegroundColor White Write-Host " 7. Integreer met Microsoft Sentinel voor advanced threat hunting" -ForegroundColor White Write-Host " 8. Configureer automated remediation waar mogelijk" -ForegroundColor White Write-Host " 9. Review regelmatig security findings en threat detection events" -ForegroundColor White Write-Host " 10. Genereer maandelijks compliance-rapporten" -ForegroundColor White Write-Host "`nRemediatie voltooid. Voer monitoring opnieuw uit om te verifiëren." -ForegroundColor Green exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red exit 2 } } function Invoke-Revert { try { Write-Host "Revert:" -ForegroundColor Yellow Write-Host " [INFO] Revert functionaliteit is niet beschikbaar voor deze control" -ForegroundColor Yellow Write-Host " [INFO] Wijzigingen moeten handmatig worden teruggedraaid via Azure Portal" -ForegroundColor Yellow Write-Host " [INFO] Om Defender for DevOps plan te deactiveren:" -ForegroundColor Yellow Write-Host " 1. Navigeer naar Microsoft Defender for Cloud" -ForegroundColor White Write-Host " 2. Selecteer Environment settings" -ForegroundColor White Write-Host " 3. Selecteer de gewenste subscription" -ForegroundColor White Write-Host " 4. Deactiveer de Defender for DevOps plan" -ForegroundColor White Write-Host " [INFO] Om connectors te verwijderen:" -ForegroundColor Yellow Write-Host " 1. Navigeer naar Microsoft Defender for Cloud" -ForegroundColor White Write-Host " 2. Selecteer DevOps security" -ForegroundColor White Write-Host " 3. Selecteer de connector die moet worden verwijderd" -ForegroundColor White Write-Host " 4. Selecteer Delete" -ForegroundColor White exit 0 } catch { Write-Host "ERROR: $_" -ForegroundColor Red exit 2 } } # ================================================================================ # Standaard Invoke-* Functions (Auto-generated) # ================================================================================ function Invoke-Implementation { <# .SYNOPSIS Implementeert de configuratie #> [CmdletBinding()] param() Invoke-Remediation } try { if ($Revert) { Invoke-Revert } elseif ($Monitoring) { Invoke-Monitoring } elseif ($Remediation) { Invoke-Remediation } else { Write-Host "Use: -Monitoring | -Remediation | -Revert" -ForegroundColor Yellow } } catch { throw } finally { Write-Host "`n========================================`n" -ForegroundColor Cyan }

Risico zonder implementatie

Risico zonder implementatie
High: Zonder unified security management voor DevOps-omgevingen kunnen beveiligingsproblemen worden gemist of pas laat worden gedetecteerd, wat kan leiden tot kritieke beveiligingslekken die kunnen worden misbruikt door aanvallers om toegang te krijgen tot source code, credentials te stelen, of kwaadaardige code te injecteren in deployment pipelines. Het ontbreken van Defender for DevOps kan leiden tot niet-naleving van compliance-vereisten zoals de BIO-normen, ISO 27001, of de NIS2-richtlijn, wat kan resulteren in boetes, reputatieschade, of het verlies van vertrouwen bij burgers en stakeholders.

Management Samenvatting

Microsoft Defender for DevOps biedt unified security management en threat protection voor DevOps-omgevingen door beveiligingsinzichten te integreren van verschillende DevOps-platforms in één centraal dashboard. Activeer de Defender for DevOps plan in Defender for Cloud, configureer connectors voor Azure DevOps, GitHub en GitLab, implementeer security scanning voor alle repositories, configureer threat detection voor verdachte activiteiten, en integreer met Microsoft Sentinel voor advanced threat hunting. Implementatie: 60 uur. Essentieel voor compliance met BIO, ISO 27001 en NIS2.