💼 Management Samenvatting
Pipeline Security omvat de beveiliging van CI/CD-pipelines zelf, waarbij wordt gewaarborgd dat alleen geautoriseerde gebruikers pipelines kunnen configureren, wijzigen of uitvoeren, dat pipeline permissions worden beheerd volgens least privilege principes, en dat alle pipeline activiteiten worden gelogd voor audit-doeleinden. Zonder adequate pipeline security kunnen ongeautoriseerde gebruikers pipelines misbruiken om ongeautoriseerde code te deployen, toegang te krijgen tot gevoelige systemen, of beveiligingscontroles te omzeilen.
✓ GitHub Actions
✓ Azure Pipelines
✓ CI/CD Pipelines
CI/CD-pipelines vormen een kritiek beveiligingspunt in moderne development omgevingen, omdat zij toegang hebben tot productie systemen, gevoelige credentials, en de mogelijkheid om code te deployen zonder handmatige tussenkomst. Zonder adequate pipeline security kunnen aanvallers pipelines misbruiken om ongeautoriseerde toegang te krijgen tot systemen, kwaadaardige code te deployen, of gevoelige informatie te stelen. Dit risico is bijzonder hoog wanneer pipelines overprivileged zijn, wanneer toegangscontroles ontbreken, of wanneer pipeline activiteiten niet worden gelogd. Voor Nederlandse overheidsorganisaties die moeten voldoen aan strikte compliance-vereisten zoals de BIO-normen, ISO 27001, of de NIS2-richtlijn, is het essentieel dat pipeline security wordt geïmplementeerd om te voorkomen dat pipelines worden misbruikt voor ongeautoriseerde acties. Het ontbreken van pipeline security kan leiden tot kritieke beveiligingsincidenten, niet-naleving van compliance-vereisten, en verlies van vertrouwen bij burgers en stakeholders.
Connection:
Connect-AzAccount, az devops loginRequired Modules: Az.Accounts, Az.DevOps
Implementatie
Pipeline Security omvat het implementeren van een gelaagde beveiligingsaanpak voor CI/CD-pipelines, waarbij verschillende beveiligingscontroles worden geïmplementeerd om te voorkomen dat pipelines worden misbruikt. Dit begint met het configureren van pipeline permissions volgens least privilege principes, waarbij alleen geautoriseerde gebruikers en service accounts toegang krijgen tot pipelines, en waarbij rechten worden beperkt tot alleen wat nodig is voor specifieke pipelines. Branch protection policies worden geconfigureerd die vereisen dat code changes worden gereviewed voordat zij worden gemerged, waarbij minimaal twee approvers worden vereist voor security-sensitive changes. Pipeline service accounts worden geconfigureerd met minimale rechten, waarbij alleen de benodigde rechten worden toegekend voor specifieke pipelines en omgevingen. Pipeline logs worden bewaard voor audit-doeleinden, waarbij alle pipeline activiteiten worden gelogd inclusief wie pipelines heeft geconfigureerd, gewijzigd of uitgevoerd, welke code is gedeployed, en welke fouten zijn opgetreden. Waarschuwingen worden geconfigureerd voor verdachte pipeline activiteiten zoals onverwachte deployments, wijzigingen aan pipeline configuraties, of pipeline failures die kunnen wijzen op beveiligingsproblemen. Pipeline artifacts worden beveiligd door access controls te configureren, door artifacts te versleutelen, en door retention policies te implementeren. Service connections worden beveiligd door access controls te configureren, door service principals te gebruiken in plaats van persoonlijke credentials, en door regelmatig credentials te roteren. YAML pipelines worden beveiligd door branch protection policies te configureren, door pipeline templates te gebruiken voor consistentie, en door code scanning tools te gebruiken om te detecteren wanneer pipelines onveilige configuraties bevatten.
Vereisten
Voordat Pipeline Security 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 pipeline security beleid dat expliciet definieert welke beveiligingscontroles moeten worden geïmplementeerd voor pipelines, wie toegang heeft tot pipelines, welke permissions worden gebruikt, en hoe pipeline activiteiten worden gemonitord en geaudit. 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 access controls verplicht zijn voor alle pipelines, welke branch protection policies worden gebruikt, hoe pipeline permissions worden beheerd, en wie verantwoordelijk is voor het beheren van pipeline security. Zonder een gedocumenteerd beleid bestaat het risico dat pipeline security inconsistently wordt toegepast, wat kan leiden tot beveiligingslekken of conflicten tussen development en security teams.
Een volledige inventarisatie van alle pipelines, service connections, en pipeline permissions is essentieel voordat het nieuwe security model wordt geïmplementeerd. Deze inventarisatie moet alle actieve pipelines documenteren, welke service accounts worden gebruikt, welke permissions zijn toegekend, en welke beveiligingsrisico's hieraan zijn verbonden. Voor pipelines moet worden vastgelegd wie pipelines kan configureren, wijzigen of uitvoeren, welke service connections worden gebruikt, en welke omgevingen toegankelijk zijn. Voor service connections moet worden gedocumenteerd welke credentials worden gebruikt, welke permissions zijn toegekend, en wanneer credentials voor het laatst zijn geroteerd. Deze inventarisatie vormt de basis voor het bepalen welke permissions moeten worden aangepast, welke access controls moeten worden geïmplementeerd, en hoe pipeline security moet worden gemonitord.
Azure DevOps organisatie-level permissions moeten worden geconfigureerd om te voorkomen dat gebruikers ongeautoriseerde pipelines kunnen configureren of wijzigen. De Security Administrator rol moet worden toegekend aan security officers die verantwoordelijk zijn voor het beheren van pipeline security, terwijl de Project Administrator rol moet worden beperkt tot alleen project managers en leads die toegang nodig hebben tot pipeline configuratie. De Build Administrator rol moet worden gebruikt voor DevOps engineers die pipelines moeten kunnen configureren, maar niet alle organisatie-level permissions nodig hebben. Pipeline permissions moeten worden beheerd via Azure DevOps security policies, waarbij least privilege access wordt geïmplementeerd en waarbij regelmatig wordt gecontroleerd of permissions correct zijn geconfigureerd.
Branch protection policies moeten worden geconfigureerd voor alle repositories die pipelines bevatten, waarbij wordt vereist dat code changes worden gereviewed voordat zij worden gemerged. Policies moeten worden geconfigureerd die minimaal twee approvers vereisen voor security-sensitive changes, die vereisen dat pipelines moeten slagen voordat code wordt gemerged, en die voorkomen dat force pushes worden uitgevoerd. Branch protection policies zijn essentieel voor het voorkomen dat ongeautoriseerde code changes worden gemerged die pipelines kunnen wijzigen of beveiligingscontroles kunnen omzeilen. Zonder branch protection policies kunnen aanvallers pipelines wijzigen door code changes te mergen zonder review, wat kan leiden tot ongeautoriseerde deployments of beveiligingslekken.
Service connections moeten worden beveiligd door access controls te configureren, door service principals te gebruiken in plaats van persoonlijke credentials, en door regelmatig credentials te roteren. Service connections moeten worden geconfigureerd met minimale permissions, waarbij alleen de benodigde rechten worden toegekend voor specifieke pipelines en omgevingen. Service connections moeten worden beveiligd door access controls te configureren die bepalen welke pipelines toegang hebben tot welke service connections, en door waarschuwingen te configureren wanneer service connections worden gebruikt of gewijzigd. Credentials moeten worden opgeslagen in secure vaults zoals Azure Key Vault, en moeten regelmatig worden geroteerd volgens een vastgesteld schema. Zonder adequate service connection security kunnen aanvallers service connections misbruiken om toegang te krijgen tot gevoelige systemen of om ongeautoriseerde deployments uit te voeren.
Implementatie
Gebruik PowerShell-script pipeline-security.ps1 (functie Invoke-Remediation) – Configureert Pipeline Security in Azure DevOps volgens best practices.
De implementatie van Pipeline Security begint met het configureren van pipeline permissions volgens least privilege principes. Voor elke pipeline moet worden bepaald wie toegang heeft tot de pipeline, welke rechten nodig zijn, en welke beperkingen moeten worden opgelegd. Pipeline permissions moeten worden geconfigureerd via Azure DevOps security policies, waarbij wordt gecontroleerd wie pipelines kan configureren, wijzigen of uitvoeren. Voor pipelines die toegang hebben tot productie omgevingen moeten strengere permissions worden vereist, waarbij alleen geautoriseerde gebruikers en service accounts toegang krijgen. Pipeline service accounts moeten worden geconfigureerd met minimale rechten, waarbij alleen de benodigde rechten worden toegekend voor specifieke pipelines en omgevingen. Regelmatig moeten pipeline permissions worden gereviewed om te verifiëren dat permissions correct zijn geconfigureerd en dat er geen overprivileged accounts zijn.
Branch protection policies moeten worden geconfigureerd voor alle repositories die pipelines bevatten, waarbij wordt vereist dat code changes worden gereviewed voordat zij worden gemerged. Policies moeten worden geconfigureerd die minimaal twee approvers vereisen voor security-sensitive changes zoals wijzigingen aan pipeline YAML bestanden, die vereisen dat pipelines moeten slagen voordat code wordt gemerged, en die voorkomen dat force pushes worden uitgevoerd. Policies moeten worden geconfigureerd die vereisen dat code changes worden gereviewed door security teams wanneer pipeline configuraties worden gewijzigd, en die waarschuwingen genereren wanneer pipeline configuraties worden gewijzigd. Branch protection policies zijn essentieel voor het voorkomen dat ongeautoriseerde code changes worden gemerged die pipelines kunnen wijzigen of beveiligingscontroles kunnen omzeilen.
Pipeline logs moeten worden bewaard voor audit-doeleinden, waarbij alle pipeline activiteiten worden gelogd inclusief wie pipelines heeft geconfigureerd, gewijzigd of uitgevoerd, welke code is gedeployed, en welke fouten zijn opgetreden. Azure DevOps biedt standaard logging voor alle pipeline activiteiten, maar deze logs moeten worden geconfigureerd om te worden geëxporteerd naar centrale logging systemen zoals Azure Log Analytics voor langere bewaartermijnen. Logs moeten worden geconfigureerd om informatie te bevatten over pipeline triggers, deployment targets, service connections die zijn gebruikt, en alle wijzigingen aan pipeline configuraties. Logs moeten worden bewaard voor minimaal 90 dagen, maar voor compliance-doeleinden kunnen langere bewaartermijnen nodig zijn. Regelmatig moeten pipeline logs worden gereviewed om te identificeren verdachte activiteiten zoals onverwachte deployments of wijzigingen aan pipeline configuraties.
Waarschuwingen moeten worden geconfigureerd voor verdachte pipeline activiteiten zoals onverwachte deployments, wijzigingen aan pipeline configuraties, of pipeline failures die kunnen wijzen op beveiligingsproblemen. Azure DevOps biedt standaard waarschuwingsfunctionaliteit, maar waarschuwingen moeten worden geconfigureerd om te worden geïntegreerd met security monitoring systemen zoals Azure Sentinel of SIEM oplossingen. Waarschuwingen moeten worden geconfigureerd voor activiteiten zoals pipeline configuratie wijzigingen, service connection gebruik, failed pipeline runs die kunnen wijzen op beveiligingsproblemen, en onverwachte deployments naar productie omgevingen. Waarschuwingen moeten worden geconfigureerd om security teams onmiddellijk te informeren wanneer verdachte activiteiten worden gedetecteerd, zodat proactieve maatregelen kunnen worden genomen om beveiligingsincidenten te voorkomen.
Service connections moeten worden beveiligd door access controls te configureren, door service principals te gebruiken in plaats van persoonlijke credentials, en door regelmatig credentials te roteren. Service connections moeten worden geconfigureerd met minimale permissions, waarbij alleen de benodigde rechten worden toegekend voor specifieke pipelines en omgevingen. Service connections moeten worden beveiligd door access controls te configureren die bepalen welke pipelines toegang hebben tot welke service connections, en door waarschuwingen te configureren wanneer service connections worden gebruikt of gewijzigd. Credentials moeten worden opgeslagen in secure vaults zoals Azure Key Vault, en moeten regelmatig worden geroteerd volgens een vastgesteld schema. Service connection usage moet worden gemonitord om te identificeren wanneer service connections worden misbruikt of wanneer onverwachte activiteiten plaatsvinden.
Pipeline artifacts moeten worden beveiligd door access controls te configureren, door artifacts te versleutelen, en door retention policies te implementeren. Artifacts moeten alleen toegankelijk zijn voor geautoriseerde gebruikers en pipelines, en moeten worden beveiligd door access controls te configureren die bepalen wie artifacts kan downloaden of gebruiken. Artifacts moeten worden versleuteld tijdens transport en opslag, en moeten worden bewaard volgens retention policies die bepalen hoe lang artifacts worden bewaard en wanneer zij worden verwijderd. Artifact access moet worden gelogd voor audit-doeleinden, waarbij wordt vastgelegd wie artifacts heeft gedownload of gebruikt. Regelmatig moeten artifact permissions worden gereviewed om te verifiëren dat alleen geautoriseerde gebruikers toegang hebben tot artifacts.
Compliance en Auditing
Pipeline Security 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 toegangscontroles worden geïmplementeerd voor alle systemen en processen. Pipeline Security implementeert deze vereisten door access controls te configureren voor pipelines, door pipeline permissions te beheren volgens least privilege principes, en door pipeline activiteiten te loggen voor audit-doeleinden. Voor overheidsorganisaties die moeten voldoen aan BIO-normen is documentatie van pipeline security configuraties, pipeline permissions, en audit logs een essentieel onderdeel van audit-evidentie.
ISO 27001:2022 bevat in controle A.9.2.1 specifieke vereisten voor user access management, waarbij organisaties moeten zorgen dat toegangscontroles worden geïmplementeerd voor alle systemen en processen. Controle A.9.4.2 vereist dat organisaties access controls implementeren voor toegang tot systemen en applicaties. Pipeline Security implementeert beide controles door access controls te configureren voor pipelines, door pipeline permissions te beheren volgens least privilege principes, en door pipeline activiteiten te loggen voor audit-doeleinden. De auditlogs die worden gegenereerd door Azure DevOps en pipeline logging kunnen worden gebruikt als audit-evidentie om aan te tonen dat organisaties proactief toegangscontroles implementeren voor CI/CD-pipelines.
De NIS2-richtlijn vereist in Artikel 21 dat organisaties passende maatregelen treffen voor beveiliging van systemen en diensten, waarbij access management een essentieel onderdeel vormt. De richtlijn benadrukt het belang van least privilege access, waarbij gebruikers en systemen alleen toegang krijgen tot wat zij nodig hebben voor hun specifieke taken. Pipeline Security implementeert dit principe door pipeline permissions te beheren volgens least privilege principes, door access controls te configureren voor pipelines, en door pipeline activiteiten te loggen voor audit-doeleinden. Voor organisaties die onder NIS2 vallen is het daarom niet alleen aanbevolen maar verplicht om pipeline security te implementeren voor alle kritieke CI/CD-processen.
De Algemene Verordening Gegevensbescherming (AVG) vereist in Artikel 32 dat organisaties passende technische en organisatorische maatregelen implementeren om persoonsgegevens te beschermen, waarbij access management een essentieel onderdeel vormt. Wanneer pipelines worden gebruikt om applicaties te deployen die persoonsgegevens verwerken, is het essentieel dat pipeline security wordt geïmplementeerd om te voorkomen dat ongeautoriseerde gebruikers toegang krijgen tot pipelines die toegang hebben tot gevoelige gegevens. Pipeline Security zorgt ervoor dat alleen geautoriseerde gebruikers pipelines kunnen configureren, wijzigen of uitvoeren, dat pipeline activiteiten worden gelogd voor audit-doeleinden, en dat beveiligingsincidenten snel worden gedetecteerd en opgelost.
Monitoring
Gebruik PowerShell-script pipeline-security.ps1 (functie Invoke-Monitoring) – Controleert de implementatie en effectiviteit van Pipeline Security.
Effectieve monitoring van Pipeline Security is essentieel om te waarborgen dat beveiliging correct wordt geïmplementeerd en dat organisaties altijd beschikken over actuele informatie over pipeline security status. Monitoring omvat het continu volgen van pipeline permissions, het verifiëren dat access controls correct zijn geconfigureerd, het controleren van pipeline logs voor verdachte activiteiten, en het waarborgen dat alle beveiligingsvereisten worden nageleefd.
Pipeline permissions vormen het centrale punt voor monitoring van toegangscontroles. Regelmatig moeten pipeline permissions worden gereviewed om te verifiëren dat permissions correct zijn geconfigureerd, dat er geen overprivileged accounts zijn, en dat alleen geautoriseerde gebruikers toegang hebben tot pipelines. Configureer dashboards die een overzicht bieden van pipeline permissions across alle pipelines en projecten, waarbij trends worden geïdentificeerd en problemen worden geprioriteerd. Stel waarschuwingen in voor wijzigingen aan pipeline permissions, zodat security teams onmiddellijk kunnen worden geïnformeerd wanneer permissions worden gewijzigd. Genereer wekelijkse of maandelijkse rapporten die een overzicht bieden van pipeline permissions status, trends, en verbeterpunten. Monitor ook of pipeline permissions worden gebruikt volgens least privilege principes, waarbij waarschuwingen worden gegenereerd wanneer overprivileged accounts worden gedetecteerd.
Monitor regelmatig pipeline logs om verdachte activiteiten te identificeren zoals onverwachte deployments, wijzigingen aan pipeline configuraties, of pipeline failures die kunnen wijzen op beveiligingsproblemen. Azure DevOps biedt standaard logging voor alle pipeline activiteiten, maar deze logs moeten worden geïntegreerd met security monitoring systemen zoals Azure Sentinel of SIEM oplossingen voor geavanceerde analyses. Review regelmatig pipeline logs om te identificeren welke pipelines worden gebruikt, wie pipelines heeft geconfigureerd of gewijzigd, en welke fouten zijn opgetreden. Configureer waarschuwingen die worden gegenereerd wanneer verdachte activiteiten worden gedetecteerd, zoals onverwachte deployments naar productie omgevingen of wijzigingen aan pipeline configuraties buiten normale werktijden.
Voer regelmatig security reviews uit om te verifiëren dat pipeline security correct is geconfigureerd en dat alle beveiligingsvereisten worden nageleefd. Tijdens reviews moeten alle pipelines worden gecontroleerd, inclusief of access controls correct zijn geconfigureerd, of pipeline permissions worden gebruikt volgens least privilege principes, en of branch protection policies correct zijn geconfigureerd. Review ook of service connections correct zijn beveiligd, inclusief of credentials regelmatig worden geroteerd en of access controls correct zijn geconfigureerd. Tijdens reviews moeten trends worden geïdentificeerd, zoals welke pipelines het meest worden gebruikt, welke beveiligingsproblemen het meest voorkomen, en welke verbeteringen nodig zijn in security processes.
Genereer maandelijks compliance-rapporten die een overzicht bieden van de security status van pipelines. Deze rapporten moeten informatie bevatten over het aantal pipelines met correct geconfigureerde access controls, het aantal overprivileged accounts, het aantal verdachte activiteiten die zijn gedetecteerd, 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 pipeline-security.ps1 (functie Invoke-Remediation) – Herstelt Pipeline Security configuraties naar de gewenste staat.
Wanneer tijdens monitoring wordt vastgesteld dat Pipeline Security niet correct is geïmplementeerd of dat beveiligingsproblemen worden gedetecteerd, moet direct actie worden ondernomen om de beveiliging te herstellen. Het remediatieproces begint met het identificeren van de specifieke problemen, zoals overprivileged accounts, ontbrekende access controls, of verdachte pipeline activiteiten. Prioriteer problemen op basis van risico en bedrijfskritiek, waarbij hoog-risico problemen zoals overprivileged accounts die toegang hebben tot productie omgevingen onmiddellijk moeten worden aangepakt.
Voor overprivileged accounts moeten pipeline permissions worden aangepast om te verifiëren dat alleen de benodigde rechten worden toegekend. Dit omvat het reviewen van alle pipeline permissions, het identificeren van accounts met excessieve rechten, en het aanpassen van permissions zodat alleen de benodigde rechten worden toegekend voor specifieke pipelines en omgevingen. Wanneer permissions worden aangepast, moet worden gecommuniceerd met development teams om uit te leggen wat de wijzigingen zijn en waarom zij nodig zijn. Verifieer dat aangepaste permissions correct werken door test pipelines uit te voeren en door te controleren of pipelines nog steeds correct functioneren.
Voor ontbrekende access controls moeten access controls worden geconfigureerd voor alle pipelines, waarbij wordt gecontroleerd wie pipelines kan configureren, wijzigen of uitvoeren. Access controls moeten worden geconfigureerd volgens least privilege principes, waarbij alleen geautoriseerde gebruikers en service accounts toegang krijgen tot pipelines. Voor pipelines die toegang hebben tot productie omgevingen moeten strengere access controls worden vereist, waarbij alleen geautoriseerde gebruikers toegang krijgen. Wanneer access controls worden geconfigureerd, moet worden gecommuniceerd met development teams om uit te leggen wat de nieuwe vereisten zijn en hoe zij hieraan kunnen voldoen.
Voor verdachte pipeline activiteiten moeten onmiddellijk maatregelen worden genomen om de beveiliging te herstellen. Dit omvat het blokkeren van verdachte pipelines, het reviewen van pipeline logs om te identificeren wat er is gebeurd, en het nemen van maatregelen om te voorkomen dat het probleem opnieuw optreedt. Wanneer verdachte activiteiten worden gedetecteerd, moeten security teams onmiddellijk worden geïnformeerd zodat proactieve maatregelen kunnen worden genomen. Pipeline logs moeten worden bewaard voor forensisch onderzoek, en alle bevindingen moeten worden gedocumenteerd voor audit-doeleinden.
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
- BIO: 12.01.01, 12.04 - Toegangscontroles en logging voor CI/CD-pipelines
- ISO 27001:2022: A.9.2.1, A.9.4.2, A.12.4.1 - User access management, access controls en logging voor pipelines
- NIS2: Artikel - Beveiliging van systemen en diensten door pipeline security en access management
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).
Risico zonder implementatie
Management Samenvatting
Pipeline Security beveiligt CI/CD-pipelines door access controls te configureren volgens least privilege principes, branch protection policies te implementeren, pipeline activiteiten te loggen voor audit-doeleinden, en waarschuwingen te configureren voor verdachte activiteiten. Configureer pipeline permissions, implementeer branch protection policies, bewaar pipeline logs, configureer waarschuwingen, en beveilig service connections. Implementatie: 60 uur. Essentieel voor compliance met BIO, ISO 27001 en NIS2.
- Implementatietijd: 60 uur
- FTE required: 0.5 FTE