Beveiligingsbeheer v3: DevOps-beveiliging

DevOps Security omvat de controles met betrekking tot de beveiligingsengineering en -bewerkingen in de DevOps-processen, met inbegrip van de implementatie van kritieke beveiligingscontroles (zoals statische toepassingsbeveiligingstests, beheer van beveiligingsproblemen) voorafgaand aan de implementatiefase om de beveiliging tijdens het DevOps-proces te garanderen; Het bevat ook algemene onderwerpen, zoals bedreigingsmodellering en beveiliging van softwarelevering.

DS-1: Bedreigingsmodellering uitvoeren

CIS-besturingselementen v8-id('s) NIST SP 800-53 r4 ID('s) PCI-DSS-id('s) v3.2.1
16.10, 16.14 SA-15 6.5, 12.2

Beveiligingsprincipe: Voer threat modeling uit om de mogelijke bedreigingen te identificeren en de beperkingsmaatregelen op te sommen. Zorg ervoor dat uw threat modeling de volgende doelen heeft:

  • Beveilig uw toepassingen en services in de runtimefase van de productie.
  • Beveilig de artefacten, de onderliggende CI/CD-pijplijn en andere hulpprogrammaomgevingen die worden gebruikt voor het bouwen, testen en implementeren.

De threat modeling moet ten minste de volgende aspecten omvatten:

  • Definieer de beveiligingsvereisten van de toepassing. Zorg ervoor dat aan deze vereisten voldoende aandacht wordt besteed in de threat modeling.
  • Toepassingsonderdelen, gegevensverbindingen en hun relatie analyseren. Zorg ervoor dat deze analyse ook de upstream- en downstreamverbindingen buiten het toepassingsbereik omvat.
  • Vermeld de mogelijke bedreigingen en aanvalsvectoren waaraan uw toepassingsonderdelen, gegevensverbindingen en upstream- en downstreamservices mogelijk worden blootgesteld.
  • Identificeer de toepasselijke beveiligingscontroles die kunnen worden gebruikt om de opgesomde bedreigingen te beperken en identificeer eventuele hiaten in de controles (bijvoorbeeld beveiligingsproblemen) waarvoor mogelijk aanvullende behandelplannen nodig zijn.
  • Inventariseer en ontwerp de besturingselementen die de geïdentificeerde beveiligingsproblemen kunnen verhelpen.

Azure-richtlijnen: gebruik hulpprogramma's voor bedreigingsmodellering, zoals het Hulpprogramma voor bedreigingsmodel van Microsoft, met ingesloten Azure-bedreigingsmodelsjabloon om uw threat modeling-proces te stimuleren. Gebruik het STRIDE-model om de bedreigingen van zowel interne als externe op te sommen en de toepasselijke besturingselementen te identificeren. Zorg ervoor dat het threat modeling-proces de bedreigingsscenario's in het DevOps-proces omvat, zoals het injecteren van schadelijke code via een opslagplaats voor onveilige artefacten met onjuist geconfigureerd toegangsbeheerbeleid.

Als het gebruik van een hulpprogramma voor bedreigingsmodellering niet van toepassing is, moet u ten minste een bedreigingsmodel op basis van een vragenlijst gebruiken om de bedreigingen te identificeren.

Zorg ervoor dat de resultaten van bedreigingsmodellering of -analyse worden vastgelegd en bijgewerkt wanneer er een grote wijziging is die invloed heeft op de beveiliging in uw toepassing of in het bedreigingslandschap.

Implementatie en aanvullende context:

Belanghebbenden bij de beveiliging van klanten (meer informatie):

DS-2: Beveiliging van softwareleveringsketen garanderen

CIS-besturingselementen v8-id('s) NIST SP 800-53 r4 ID('s) PCI-DSS-id('s) v3.2.1
16.4, 16.6, 16.11 SA-12, SA-15 6.3, 6.5

Beveiligingsprincipe: Zorg ervoor dat de SDLC (Software Development Lifecycle) of het proces van uw bedrijf een set beveiligingscontroles bevat om de interne en externe softwareonderdelen (inclusief zowel bedrijfseigen als opensource-software) te beheren waar uw toepassingen afhankelijkheden hebben. Definieer beperkingscriteria om te voorkomen dat kwetsbare of schadelijke onderdelen worden geïntegreerd en geïmplementeerd in de omgeving.

De beveiligingsmaatregelen voor de toeleveringsketen van software moeten ten minste de volgende aspecten omvatten:

  • Identificeer de upstream-afhankelijkheden die vereist zijn tijdens de ontwikkeling-, build-, integratie- en implementatiefase.
  • Inventariseer en volg de interne en externe softwareonderdelen op bekende beveiligingsproblemen wanneer er een oplossing beschikbaar is in de upstream.
  • Beoordeel de beveiligingsproblemen en malware in de softwareonderdelen met behulp van statische en dynamische toepassingstests op onbekende beveiligingsproblemen.
  • Zorg ervoor dat de beveiligingsproblemen en malware worden verzacht met behulp van de juiste aanpak. Dit kan lokale of upstream-oplossing voor broncode zijn, uitsluiting van functies en/of het toepassen van compenserende besturingselementen als de directe beperking niet beschikbaar is.

Als onderdelen van derden worden gebruikt in uw productieomgeving, hebt u mogelijk beperkte zichtbaarheid van de beveiligingspostuur. Overweeg aanvullende besturingselementen, zoals toegangsbeheer, netwerkisolatie en eindpuntbeveiliging, om de impact te minimaliseren als er een schadelijke activiteit of beveiligingsprobleem is gekoppeld aan het onderdeel.

Azure-richtlijnen: voor het GitHub-platform zorgt u voor de beveiliging van de softwareleveringsketen met behulp van de volgende mogelijkheid of hulpprogramma's van GitHub Advanced Security of de systeemeigen functie van GitHub:

  • Gebruik Dependency Graph om alle afhankelijkheden en gerelateerde beveiligingsproblemen van uw project te scannen, inventariseren en identificeren via de adviesdatabase.
  • Gebruik Dependabot om ervoor te zorgen dat de kwetsbare afhankelijkheid wordt bijgehouden en hersteld, en zorg ervoor dat uw opslagplaats automatisch op de hoogte blijft van de nieuwste versies van de pakketten en toepassingen waarvan deze afhankelijk is.
  • Gebruik de systeemeigen codescanfunctie van GitHub om de broncode te scannen bij het ophalen van de code van extern.
  • Gebruik Azure Defender voor Cloud om evaluatie van beveiligingsproblemen voor uw containerinstallatiekopie te integreren in de CI/CD-werkstroom.

Voor Azure DevOps kunt u extensies van derden gebruiken om vergelijkbare besturingselementen te implementeren voor het inventariseren, analyseren en herstellen van de softwareonderdelen van derden en hun beveiligingsproblemen.

Implementatie en aanvullende context:

Belanghebbenden bij de beveiliging van klanten (meer informatie):

DS-3: Beveiligde DevOps-infrastructuur

CIS-besturingselementen v8-id('s) NIST SP 800-53 r4 ID('s) PCI-DSS-id('s) v3.2.1
16.7 CM-2, CM-6, AC-2, AC-3, AC-6 2.2, 6.3, 7.1

Beveiligingsprincipe: Zorg ervoor dat de DevOps-infrastructuur en -pijplijn de best practices voor beveiliging volgen in omgevingen, inclusief uw build-, test- en productiefasen. Dit omvat doorgaans de beveiligingscontroles voor het volgende bereik:

  • Artefactopslagplaatsen die broncode, ingebouwde pakketten en installatiekopieën, projectartefacten en zakelijke gegevens opslaan.
  • Servers, services en hulpprogramma's die CI/CD-pijplijnen hosten.
  • Configuratie van CI/CD-pijplijn.

Azure-richtlijnen: als onderdeel van het toepassen van de Azure Security Benchmark op de beveiligingsbesturingselementen van uw DevOps-infrastructuur, geeft u prioriteit aan de volgende besturingselementen:

  • Beveilig artefacten en onderliggende omgeving om ervoor te zorgen dat de CI/CD-pijplijnen geen manieren worden om schadelijke code in te voegen. Controleer bijvoorbeeld uw CI/CD-pijplijn om eventuele onjuiste configuraties te identificeren in kerngebieden van Azure DevOps, zoals organisatie, projecten, gebruikers, pijplijnen (build & release), verbindingen en buildagent om onjuiste configuraties te identificeren, zoals open toegang, zwakke verificatie, onveilige verbindingsinstellingen, enzovoort. Gebruik voor GitHub de vergelijkbare besturingselementen om de machtigingsniveaus van de organisatie te beveiligen
  • Configureer identiteits-/rolmachtigingen en rechtenbeleid in Azure AD, systeemeigen services en CI/CD-hulpprogramma's in uw pijplijn om ervoor te zorgen dat wijzigingen in de pijplijnen worden geautoriseerd.
  • Vermijd permanente 'staande' bevoegde toegang tot de menselijke accounts, zoals ontwikkelaars of testers, met behulp van functies zoals door Azure beheerde identificaties, Just-In-Time-toegang.
  • Verwijder sleutels, referenties en geheimen uit code en scripts die worden gebruikt in CI/CD-werkstroomtaken en bewaar deze in het sleutelarchief of in Azure Key Vault.
  • Als u zelf-hostende build-/implementatieagents uitvoert, volgt u Azure Security Benchmark-besturingselementen, waaronder netwerkbeveiliging, postuur- en beveiligingsproblemen en eindpuntbeveiliging om uw omgeving te beveiligen.

Implementatie en aanvullende context:

Belanghebbenden bij de beveiliging van klanten (meer informatie):

DS-4: Statische toepassingsbeveiligingstests integreren in DevOps-pijplijn

CIS-besturingselementen v8-id('s) NIST SP 800-53 r4 ID('s) PCI-DSS-id('s) v3.2.1
16.12 SA-11 6.3, 6.5

Beveiligingsprincipe: Zorg ervoor dat SAST (Static Application Security Testing) deel uitmaakt van de besturingselementen voor gating in de CI/CD-werkstroom. De gating kan worden ingesteld op basis van de testresultaten om te voorkomen dat kwetsbare pakketten worden doorgevoerd in de opslagplaats, inbouwen in de pakketten of implementeren in de productie.

Azure-richtlijnen: integreer SAST in uw pijplijn, zodat de broncode automatisch kan worden gescand in uw CI/CD-werkstroom. Azure DevOps Pipeline of GitHub kan onderstaande hulpprogramma's en SAST-hulpprogramma's van derden integreren in de werkstroom.

  • GitHub CodeQL voor broncodeanalyse.
  • Binaire analyse van Microsoft BinSkim voor Windows en *nix binaire analyse.
  • Azure DevOps Credential Scanner en systeemeigen GitHub-geheimen scannen voor referentiescan in de broncode.

Implementatie en aanvullende context:

Belanghebbenden voor klantbeveiliging (meer informatie):

DS-5: Dynamische toepassingsbeveiligingstests integreren in DevOps-pijplijn

CIS Controls v8 ID('s) NIST SP 800-53 r4 ID('s) PCI-DSS-id('s) v3.2.1
16.12 SA-11 6.3, 6.5

Beveiligingsprincipe: Zorg ervoor dat dast (Dynamic Application Security Testing) deel uitmaakt van de besturingselementen voor gating in de CI/CD-werkstroom. De beperking kan worden ingesteld op basis van de testresultaten om te voorkomen dat beveiligingsproblemen in de pakketten worden ingebouwd of in de productie worden geïmplementeerd.

Azure-richtlijnen: integreer DAST in uw pijplijn, zodat de runtimetoepassing automatisch kan worden getest in uw CI/CD-werkstroomset in Azure DevOps of GitHub. De geautomatiseerde penetratietests (met handmatige ondersteunde validatie) moeten ook deel uitmaken van de DAST.

Azure DevOps Pipeline of GitHub ondersteunt de integratie van DAST-hulpprogramma's van derden in de CI/CD-werkstroom.

Implementatie en aanvullende context:

Belanghebbenden voor klantbeveiliging (meer informatie):

DS-6: Beveiliging van workload afdwingen tijdens de levenscyclus van DevOps

CIS Controls v8 ID('s) NIST SP 800-53 r4 ID('s) PCI-DSS-id('s) v3.2.1
7.5, 7.6, 7.7, 16.1, 16.7 CM-2, CM-6, AC-2, AC-3, AC-6 6.1, 6.2, 6.3

Beveiligingsprincipe: zorg ervoor dat de workload gedurende de hele levenscyclus wordt beveiligd in de ontwikkeling,test- en implementatiefase. Gebruik Azure Security Benchmark om de besturingselementen (zoals netwerkbeveiliging, identiteitsbeheer, bevoegde toegang, enzovoort) te evalueren die standaard als kaders kunnen worden ingesteld of naar links kunnen worden verplaatst vóór de implementatiefase. Zorg er met name voor dat de volgende besturingselementen aanwezig zijn in uw DevOps-proces:

  • Automatiseer de implementatie met behulp van Azure of hulpprogramma's van derden in de CI/CD-werkstroom, infrastructuurbeheer (infrastructuur als code) en testen om menselijke fouten en kwetsbaarheid voor aanvallen te verminderen.
  • Zorg ervoor dat VM's, containerinstallatiekopieën en andere artefacten beveiligd zijn tegen schadelijke manipulatie.
  • Scan de workloadartefacten (met andere woorden containerinstallatiekopieën, afhankelijkheden, SAST- en DAST-scans) voorafgaand aan de implementatie in de CI/CD-werkstroom
  • Implementeer de mogelijkheid voor evaluatie van beveiligingsproblemen en detectie van bedreigingen in de productieomgeving en gebruik deze mogelijkheden continu in de runtime.

Azure-richtlijnen: richtlijnen voor Azure-VM's:

  • Gebruik Azure Shared Image Gallery om de toegang tot uw installatiekopieën te delen en te beheren door verschillende gebruikers, service-principals of AD-groepen binnen uw organisatie. Gebruik op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) om ervoor te zorgen dat alleen geautoriseerde gebruikers toegang hebben tot uw aangepaste installatiekopieën.
  • Definieer de beveiligde configuratiebasislijnen voor de VM's om onnodige referenties, machtigingen en pakketten te elimineren. Via aangepaste installatiekopieën, Azure Resource Manager-sjabloon en/of Azure Policy gastconfiguratie om deze de configuratiebasislijn te implementeren en af te dwingen.

Richtlijnen voor Azure-containerservices:

  • Gebruik Azure Container Registry (ACR) om uw privécontainerregister te maken waarbij een gedetailleerde toegang kan worden beperkt via Azure RBAC, zodat alleen geautoriseerde services en accounts toegang hebben tot de containers in het privéregister.
  • Gebruik Defender voor Azure Container Registry voor de evaluatie van beveiligingsproblemen van de installatiekopieën in uw privé-Azure Container Registry. Daarnaast kunt u Azure Defender for Cloud gebruiken om containerinstallatiekopieën te scannen als onderdeel van uw CI/CD-werkstromen.

Voor serverloze Azure-services neemt u de vergelijkbare besturingselementen over om ervoor te zorgen dat de besturingselementen voor beveiliging worden verplaatst naar de fase vóór de implementatie.

Implementatie en aanvullende context:

Belanghebbenden voor klantbeveiliging (meer informatie):

DS-7: logboekregistratie en bewaking inSchakelen in DevOps

CIS Controls v8 ID('s) NIST SP 800-53 r4 ID('s) PCI-DSS-id('s) v3.2.1
8.2, 8.5, 8.9, 8.11 AU-3, AU-6, AU-12, SI-4 10.1, 10.2, 10.3, 10.6

Beveiligingsprincipe: zorg ervoor dat uw bereik voor logboekregistratie en bewaking niet-productieomgevingen en CI/CD-werkstroomelementen bevat die worden gebruikt in DevOps (en eventuele andere ontwikkelingsprocessen). De beveiligingsproblemen en bedreigingen die op deze omgevingen zijn gericht, kunnen aanzienlijke risico's met zich meebrengen voor uw productieomgeving als ze niet goed worden bewaakt. De gebeurtenissen van de CI/CD-build-, test- en implementatiewerkstroom moeten ook worden bewaakt om eventuele afwijkingen in de CI/CD-werkstroomtaken te identificeren.

Azure-richtlijnen: de mogelijkheden voor auditlogboekregistratie inschakelen en configureren in omgevingen met niet-productie- en CI/CD-hulpprogramma's (zoals Azure DevOps en GitHub) die tijdens het DevOps-proces worden gebruikt.

De gebeurtenissen van azure DevOps en GitHub CI/CD-werk voor de build-, test- en implementatietaken moeten ook worden bewaakt om eventuele uitzonderingsresultaten in de CI/CD-taken te identificeren.

Neem de bovenstaande logboeken en gebeurtenissen op in Azure Sentinel of andere SIEM-hulpprogramma's via de logboekregistratiestroom of API om ervoor te zorgen dat de beveiligingsincidenten correct worden bewaakt en gerangschikt voor verwerking.

Volg Azure Security Benchmark – Logging and Threat Detection als richtlijn voor het implementeren van de besturingselementen voor logboekregistratie en bewaking van workloads.

Implementatie en aanvullende context:

Belanghebbenden voor klantbeveiliging (meer informatie):