DevSecOps, ook wel Secure DevOps genoemd, bouwt voort op de praktijk van DevOps door beveiliging in verschillende fasen van een traditionele DevOps-levenscyclus op te nemen. Enkele voordelen van het bouwen van beveiliging in DevOps-procedures zijn:
- Uw toepassingen en systemen veiliger maken door inzicht te bieden in beveiligingsrisico's en te voorkomen dat beveiligingsproblemen geïmplementeerde omgevingen bereiken
- Beveiligingsbewustzijn vergroten met uw ontwikkel- en operationele teams
- Geautomatiseerde beveiligingsprocessen opnemen in de levenscyclus van uw softwareontwikkeling
- Kosten verlagen om te herstellen door beveiligingsproblemen vroeg in ontwikkelings- en ontwerpfasen te vinden
Wanneer DevSecOps wordt toegepast op Azure Kubernetes Service (AKS), kunnen verschillende organisatierollen verschillende overwegingen hebben voor het implementeren van beveiliging. Voorbeelden van deze verschillende organisatierollen zijn:
- Ontwikkelaars die beveiligde toepassingen bouwen die worden uitgevoerd op AKS
- Cloudtechnici bouwen beveiligde AKS-infrastructuur
- Verschillende Operations-teams die clusters kunnen beheren of beveiligingsproblemen kunnen bewaken
Dit artikel is onderverdeeld in verschillende devOps-levenscyclusfasen met overwegingen en aanbevelingen voor het insluiten van beveiligingscontroles en aanbevolen procedures voor beveiliging. Deze handleiding bevat algemene processen en hulpprogramma's die moeten worden opgenomen in CI/CD-pijplijnen (continue integratie en continue levering), waarbij u kunt kiezen voor gebruiksvriendelijke ingebouwde hulpprogramma's, indien beschikbaar.
Als vereiste voor dit artikel raden we u aan om apps op AKS te bouwen en te implementeren met behulp van DevOps en GitOps.
Processtroom
Een Visio-bestand van deze architectuur downloaden.
Notitie
Hoewel dit artikel verwijst naar AKS en GitHub, zijn deze aanbevelingen van toepassing op elke containerindeling of CI/CD-platform. Hoewel de implementatiedetails kunnen variëren, zijn de meeste concepten en procedures die in elke fase worden genoemd, nog steeds relevant en van toepassing.
- Microsoft Entra-id is geconfigureerd als id-provider voor GitHub. Configureer meervoudige verificatie (MFA) om extra verificatiebeveiliging te bieden.
- Ontwikkelaars gebruiken Visual Studio Code of Visual Studio met beveiligingsextensies die zijn ingeschakeld om hun code proactief te analyseren op beveiligingsproblemen.
- Ontwikkelaars voeren toepassingscode door naar een gitHub Enterprise-opslagplaats in bedrijfseigendom en beheerd.
- GitHub Enterprise integreert automatisch scannen op beveiliging en afhankelijkheid via GitHub Advanced Security.
- Pull-aanvragen activeren continue integratie (CI) builds en geautomatiseerde tests via GitHub Actions.
- De CI-buildwerkstroom via GitHub Actions genereert een Docker-containerinstallatiekopieën die zijn opgeslagen in Azure Container Registry.
- U kunt handmatige goedkeuringen voor implementaties introduceren in specifieke omgevingen, zoals productie, als onderdeel van de werkstroom voor continue levering (CD) in GitHub Actions.
- GitHub Actions schakelen cd naar AKS in. Gebruik GitHub Advanced Security om geheimen, referenties en andere gevoelige informatie in uw toepassingsbron- en configuratiebestanden te detecteren.
- Microsoft Defender wordt gebruikt om Azure Container Registry, AKS-cluster en Azure Key Vault te scannen op beveiligingsproblemen.
- Microsoft Defender for Containers scant de containerinstallatiekopieën op bekende beveiligingsproblemen bij het uploaden ervan naar Container Registry.
- U kunt Defender for Containers ook gebruiken voor het uitvoeren van scans van uw AKS-omgeving en biedt runtime-bedreigingsbeveiliging voor uw AKS-clusters.
- Microsoft Defender voor Key Vault detecteert schadelijke en ongebruikelijke, verdachte pogingen om toegang te krijgen tot key vault-accounts.
- Azure Policy kan worden toegepast op Container Registry en Azure Kubernetes Service (AKS) voor naleving en afdwinging van beleid. Algemene beveiligingsbeleidsregels voor Container Registry en AKS zijn ingebouwd voor snelle activering.
- Azure Key Vault wordt gebruikt om geheimen en referenties tijdens runtime veilig in een toepassing te injecteren, waardoor gevoelige informatie van ontwikkelaars wordt gescheiden.
- De AKS-netwerkbeleidsengine is geconfigureerd om verkeer tussen toepassingspods te beveiligen met behulp van Kubernetes-netwerkbeleid.
- Continue bewaking van het AKS-cluster kan worden ingesteld met behulp van Azure Monitor en Container Insights voor het opnemen van metrische prestatiegegevens en het analyseren van toepassings- en beveiligingslogboeken.
- Container Insights haalt metrische prestatiegegevens en toepassings- en clusterlogboeken op.
- Diagnostische logboeken en toepassingslogboeken worden opgehaald in een Azure Log Analytics-werkruimte om logboekquery's uit te voeren.
- Microsoft Sentinel, een SIEM-oplossing (Security Information and Event Management), kan worden gebruikt om de AKS-clusterlogboeken op te nemen en verder te analyseren op beveiligingsrisico's op basis van gedefinieerde patronen en regels.
- OpenSource-hulpprogramma's zoals ZAP (Zed Attack Proxy) kunnen worden gebruikt om penetratietests uit te voeren voor webtoepassingen en -services.
- Defender for DevOps, een service die beschikbaar is in Defender voor Cloud, biedt beveiligingsteams de mogelijkheid om DevOps-beveiliging te beheren in omgevingen met meerdere pijplijnen, waaronder GitHub en Azure DevOps.
Overzicht en verantwoordelijkheden van teamleden
Overweeg om de complexiteit van DevSecOps op kubernetes-oplossingsimplementaties te beheren als scheiding van problemen. Welk team in een bedrijfsomgeving moet zich bezighouden met elk aspect van de implementatie? Welke hulpprogramma's en processen moet een team gebruiken om hun doelstellingen het beste te bereiken? In deze sectie behandelen we de algemene rollen van ontwikkelaars, toepassingsoperators (sitebetrouwbaarheidstechnici), clusteroperators en beveiligingsteams.
Ontwikkelaars
Ontwikkelaars zijn verantwoordelijk voor het schrijven van de toepassingscode. Ze zijn ook verantwoordelijk voor het doorvoeren van hun code naar de aangewezen opslagplaats. Een van de belangrijke verantwoordelijkheden van ontwikkelaars omvat ook het ontwerpen en uitvoeren van scripts voor geautomatiseerde tests om ervoor te zorgen dat hun code werkt zoals bedoeld en naadloos kan worden geïntegreerd met de rest van de toepassing. Ze definiëren en scripten ook het bouwen van containerinstallatiekopieën als onderdeel van de automatiseringspijplijn.
Toepassingsoperators (sitebetrouwbaarheidstechnici)
Het bouwen van toepassingen in de cloud met behulp van containers en Kubernetes kan de ontwikkeling, implementatie en schaalbaarheid van toepassingen vereenvoudigen. Maar deze ontwikkelingsmethoden creëren ook steeds meer gedistribueerde omgevingen die het beheer bemoeilijken. Sitebetrouwbaarheidstechnici bouwen oplossingen om het toezicht op grote softwaresystemen te automatiseren. Ze fungeren als een brug tussen teams voor ontwikkelings- en clusteroperators en helpen bij het vaststellen en bewaken van serviceniveaudoelstellingen en foutbudgetten. Op deze manier helpen ze bij het beheren van toepassingsimplementaties en schrijven ze vaak YAML-bestanden (Kubernetes Manifest).
Clusteroperators
Clusteroperators zijn verantwoordelijk voor het configureren en beheren van de clusterinfrastructuur. Ze gebruiken vaak best practices en frameworks voor infrastructuur als code (IaC) zoals GitOps om hun clusters in te richten en te onderhouden. Ze gebruiken verschillende bewakingshulpprogramma's zoals Azure Monitor Container Insights en Prometheus/Grafana om de algehele clusterstatus te bewaken. Ze zijn verantwoordelijk voor patching, clusterupgrades, machtigingen en op rollen gebaseerd toegangsbeheer op het cluster. In DevSecOps-teams zorgen ze ervoor dat de clusters voldoen aan de beveiligingsvereisten van het team en ze werken samen met het beveiligingsteam om deze standaarden te maken.
Beveiligingsteam
Het beveiligingsteam is verantwoordelijk voor het ontwikkelen van beveiligingsstandaarden en het afdwingen ervan. Sommige teams zijn mogelijk verantwoordelijk voor het maken en selecteren van Azure Policy die wordt afgedwongen in de abonnementen en resourcegroepen die de clusters bevatten. Ze controleren beveiligingsproblemen en zorgen er samen met de andere teams voor dat de beveiliging voorkomt in elke stap van het DevSecOps-proces.
DevSecOps-levenscyclusfasen
Beveiligingscontroles worden geïmplementeerd in elke fase van de levenscyclus van softwareontwikkeling (SDLC). Deze implementatie is een belangrijk onderdeel van een DevSecOps-strategie en van de shift-left benadering.
Een Visio-bestand van deze architectuur downloaden.
Planfase
De planfase heeft meestal de minste mate van automatisering, maar het heeft belangrijke beveiligingsimplicaties die van invloed zijn op latere fasen van de DevOps-levenscyclus. Deze fase omvat samenwerking tussen beveiligings-, ontwikkelings- en operationele teams. Het opnemen van beveiligingsbelangen in deze fase van het ontwerpen en plannen zorgt ervoor dat beveiligingsvereisten en beveiligingsproblemen op de juiste wijze worden verantwoordelijk voor of beperkt.
Best Practice: een veiliger toepassingsplatform ontwerpen
Het bouwen van een veiliger AKS-gehost platform is een belangrijke stap om ervoor te zorgen dat beveiliging in elk laag is ingebouwd in het systeem, te beginnen met het platform zelf. Het platform kan onderdelen bevatten die zowel intern zijn voor het cluster (zoals runtimebeveiligings- en beleidsagents) als onderdelen die extern zijn voor AKS (zoals netwerkfirewalls en containerregisters). Zie AKS Landing Zone Accelerator voor meer informatie, waaronder kritieke ontwerpgebieden, zoals beveiliging, identiteit en netwerktopologie.
Best Practice: threat modeling in uw proces bouwen
- Threat modeling is meestal een handmatige activiteit waarbij beveiligings- en ontwikkelteams betrokken zijn. Het wordt gebruikt om bedreigingen in een systeem te modelleren en te vinden, zodat beveiligingsproblemen kunnen worden aangepakt voordat code wordt ontwikkeld of wijzigingen in een systeem. Bedreigingsmodellering kan zich op verschillende momenten voordoen, geactiveerd door gebeurtenissen zoals een belangrijke softwarewijziging, architectuurwijziging van oplossingen of beveiligingsincidenten.
- U wordt aangeraden het STRIDE-bedreigingsmodel te gebruiken. Deze methodologie begint met een gegevensstroomdiagram en maakt gebruik van de bedreigingscategorieën STRIDE mnemonic (Spoofing, Manipulatie, Openbaarmaking van informatie, Repudiation, Denial of Service en Elevation of Privilege) om teams in staat te stellen risico's te identificeren, te beperken en te valideren. Het bevat ook een modelleringsprogramma voor het noteren en visualiseren van systeemonderdelen, gegevensstromen en beveiligingsgrenzen. Het bouwen van bedreigingsmodellering in uw SDLC-processen introduceert nieuwe processen en meer werk om bijgewerkte bedreigingsmodellen te onderhouden. Maar het helpt ervoor te zorgen dat de beveiliging vroeg wordt geïmplementeerd, waardoor de mogelijke kosten voor het omgaan met beveiligingsproblemen in latere SDLC-fasen worden verminderd.
Best Practice: Azure Well Architect Framework (WAF) toepassen
- Pas best practices voor WAF-beveiligingspijlers toe die richtlijnen bieden voor zaken als identiteitsbeheer, toepassingsbeveiliging, infrastructuurbeveiliging, datumbeveiliging en DevOps, zoals deze van toepassing is op cloudeigen omgevingen.
- Pas operationele best practices voor WAF toe zoals deze van toepassing is op DevSecOps en bewaking van uw productieomgevingen.
Ontwikkelingsfase
'Naar links verschuiven' is een belangrijke tenant van de DevSecOps-mindset. Dit proces begint voordat code zelfs wordt doorgevoerd in een opslagplaats en wordt geïmplementeerd via een pijplijn. Het aannemen van aanbevolen procedures voor veilig coderen en het gebruik van IDE-hulpprogramma's en invoegtoepassingen voor codeanalyse tijdens de ontwikkelingsfase kan helpen bij het oplossen van beveiligingsproblemen eerder in de ontwikkelingslevenscyclus wanneer ze gemakkelijker kunnen worden opgelost.
Best Practice: veilige coderingsstandaarden afdwingen
- Door gebruik te maken van vastgelegde aanbevolen procedures en controlelijsten voor veilige codering, kunt u uw code beschermen tegen veelvoorkomende beveiligingsproblemen, zoals injectie en onveilig ontwerp. De OWASP-stichting publiceert aanbevelingen voor veilige codering volgens de industriestandaard die u moet gebruiken bij het schrijven van code. Deze richtlijnen zijn vooral belangrijk bij het ontwikkelen van openbare webtoepassingen of -services.
- Naast algemene aanbevolen beveiligingsprocedures moet u ook kijken naar beveiligingscoderingsprocedures voor uw specifieke programmeertaalruntimes, zoals Java en .NET.
- U kunt logboekregistratiestandaarden afdwingen om gevoelige informatie te beschermen tegen lekken in toepassingslogboeken. De populairste frameworks voor logboekregistratie, zoals log4j en log4net, bieden filters en invoegtoepassingen voor het maskeren van gevoelige informatie, zoals accountnummers of persoonlijke gegevens.
Best practice: IDE-hulpprogramma's en invoegtoepassingen gebruiken om beveiligingscontroles te automatiseren
De populairste IDE's, zoals Visual Studio, Visual Studio Code, IntelliJ IDEA en Eclipse, ondersteunen extensies die u kunt gebruiken om onmiddellijke feedback en aanbevelingen te krijgen voor mogelijke beveiligingsproblemen die u mogelijk hebt geïntroduceerd tijdens het schrijven van toepassingscode.
- SonarLint is een IDE-invoegtoepassing die beschikbaar is voor de populairste talen en ontwikkelomgevingen. SonarLint biedt waardevolle feedback en scant uw code automatisch op veelvoorkomende programmeerfouten en mogelijke beveiligingsproblemen.
- Andere gratis en commerciële invoegtoepassingen zijn gericht op beveiligingsspecifieke items, zoals de OWASP top 10 veelvoorkomende beveiligingsproblemen. De Synk-invoegtoepassing scant bijvoorbeeld ook uw toepassingsbron en afhankelijkheden van derden en waarschuwt u als er beveiligingsproblemen zijn gevonden.
- Met de SARIF-invoegtoepassing (Static Analysis Results Interchange Format) voor Visual Studio en Visual Studio Code kunt u eenvoudig beveiligingsproblemen van populaire SAST-hulpprogramma's (Static Application Security Testing) weergeven op een intuïtieve en gemakkelijk te lezen manier versus het interpreteren van resultaten van onbewerkte JSON-uitvoerbestanden.
Best practice: besturingselementen voor uw broncodeopslagplaatsen instellen
- Stel een vertakkingsmethodologie vast, zodat er consistent gebruik wordtgemaakt van vertakkingen in de hele onderneming. Methodologieën zoals releasestroom en GitHub-stroom hebben gestructureerde richtlijnen voor de wijze waarop vertakkingen moeten worden gebruikt ter ondersteuning van team- en parallelle ontwikkeling. Deze methodologieën kunnen teams helpen bij het vaststellen van standaarden en besturingselementen voor codedoorvoeringen en samenvoegingen in uw CI/CD-werkstroom.
- Bepaalde vertakkingen, zoals de belangrijkste, zijn langdurige vertakkingen die de integriteit van de broncode van uw toepassing behouden. Deze vertakkingen moeten samenvoegbeleid hebben ingesteld voordat wijzigingen kunnen worden samengevoegd of doorgevoerd. Enkele aanbevolen procedures zijn:
- Voorkom dat andere ontwikkelaars code rechtstreeks doorvoeren in uw hoofdbranch.
- Stel een peer reviewproces in en vereist een minimum aantal goedkeuringen voordat wijzigingen kunnen worden samengevoegd met een hoofdbranch. U kunt deze besturingselementen eenvoudig configureren en afdwingen met GitHub. Met GitHub kunt u ook groepen geautoriseerde goedkeurders aanwijzen, indien nodig voor gated environments.
- Gebruik vooraf doorvoerhaakjes om te controleren op gevoelige informatie in de broncode van uw toepassing en te voorkomen dat er een doorvoering plaatsvindt als er een beveiligingsprobleem wordt gevonden.
- Gebruik de ingebouwde vooraf doorvoerhaakjes van GitHub die eenvoudig kunnen worden geconfigureerd voor een specifiek project. Er zijn bijvoorbeeld vooraf gebouwde haken om te scannen op geheimen, persoonlijke sleutels en referenties, en om een doorvoering te voorkomen als een van deze problemen wordt gevonden.
- Op rollen gebaseerd toegangsbeheer instellen binnen uw versiebeheersysteem.
- Maak goed gedefinieerde rollen met behulp van het principe van minimale bevoegdheden. Een CI/CD-pijplijn is uw toeleveringsketen voor productie-implementaties.
- Pas gevestigde gebruikers- of groepsrollen binnen uw organisatie toe. Rollen zoals Beheer, Ontwikkelaar, Beveiligingsbeheerder en Operator moeten worden gemaakt om personen te groeperen op basis van hun specifieke rol en functie met betrekking tot uw CI/CD-werkstromen.
- Schakel controle van uw werkstromen in, zodat er transparantie en traceerbaarheid is voor configuratie en andere wijzigingen met betrekking tot uw CI/CD-pijplijnen.
Best practice: uw containerinstallatiekopieën beveiligen
- Gebruik lichtgewicht installatiekopieën met een minimale footprint van het besturingssysteem om het totale oppervlakaanvalgebied te verminderen. Overweeg minimale installatiekopieën zoals Alpine of zelfs distributieloze installatiekopieën die alleen uw toepassing en de bijbehorende runtime bevatten. Mariner, de OpenSource Linux-distributie van Microsoft, is een lichtgewicht, beperkte distributie die is ontworpen voor AKS voor het hosten van workloads in containers.
- Gebruik alleen vertrouwde basisinstallatiekopieën bij het bouwen van uw containers. Deze basisinstallatiekopieën moeten worden opgehaald uit een privéregister dat regelmatig wordt gescand op beveiligingsproblemen.
- Gebruik ontwikkelhulpprogramma's om beveiligingsproblemen met installatiekopieën lokaal te evalueren.
- Trivy is een voorbeeld van een opensource-hulpprogramma dat u kunt gebruiken om beveiligingsproblemen in uw containerinstallatiekopieën te analyseren.
- Toegang/context van hoofdgebruiker voor een afbeelding voorkomen. Containers worden standaard uitgevoerd als hoofdmap.
- Voor containers die een verbeterde beveiliging nodig hebben, kunt u overwegen een AppArmor-profiel in uw Kubernetes-cluster te gebruiken om de beveiliging voor uw actieve containers verder af te dwingen.
Buildfase
Tijdens de buildfase werken ontwikkelaars samen met de sitebetrouwbaarheidstechnici en beveiligingsteams om geautomatiseerde scans van hun toepassingsbron in hun CI-buildpijplijnen te integreren. De pijplijnen zijn geconfigureerd om beveiligingsprocedures zoals SAST, SCA en geheimenscans mogelijk te maken met behulp van de beveiligingshulpprogramma's en extensies van het CI/CD-platform.
Best practice: Statische codeanalyse (SAST) uitvoeren om potentiële beveiligingsproblemen in uw toepassingsbroncode te vinden
- Gebruik gitHub Advanced Security-scanmogelijkheden voor codescans en CodeQL.
- Codescans is een functie die u gebruikt om de code in een GitHub-opslagplaats te analyseren om beveiligingsproblemen en coderingsfouten te vinden. Eventuele problemen die door de analyse worden geïdentificeerd, worden weergegeven in GitHub Enterprise Cloud.
- Als codescans een mogelijk beveiligingsprobleem of mogelijke fout in uw code vinden, wordt in GitHub een waarschuwing weergegeven in de opslagplaats.
- U kunt ook vertakkingsregels configureren voor vereiste statuscontroles, bijvoorbeeld om af te dwingen dat een functievertakking up-to-date is met de basisvertakking voordat u nieuwe code samenvoegt. Deze procedure zorgt ervoor dat uw vertakking altijd is getest met de nieuwste code.
- Gebruik hulpprogramma's zoals kube-score om uw Kubernetes-implementatieobjecten te analyseren.
- kube-score is een hulpprogramma dat statische codeanalyse uitvoert van uw Kubernetes-objectdefinities.
- De uitvoer is een lijst met aanbevelingen die u kunt verbeteren om uw toepassing veiliger en toleranter te maken.
Best practice: geheimscans uitvoeren om frauduleus gebruik van geheimen te voorkomen die per ongeluk zijn doorgevoerd in een opslagplaats
- Wanneer geheim scannen is ingeschakeld voor een opslagplaats, scant GitHub de code op patronen die overeenkomen met geheimen die door veel serviceproviders worden gebruikt.
- GitHub voert ook periodiek een volledige Git-geschiedenisscan uit van bestaande inhoud in opslagplaatsen en verzendt waarschuwingsmeldingen.
- Voor Azure DevOps gebruikt Defender voor Cloud geheimscans om referenties, geheimen, certificaten en andere gevoelige inhoud in uw broncode en uw build-uitvoer te detecteren.
- Geheim scannen kan worden uitgevoerd als onderdeel van de Extensie Microsoft Security DevOps voor Azure DevOps.
Best practice: SCA-hulpprogramma's (Software Composition Analysis) gebruiken om opensource-onderdelen in de codebase bij te houden en beveiligingsproblemen in afhankelijkheden te detecteren
- Met afhankelijkheidsbeoordeling kunt u onveilige afhankelijkheden onderscheppen voordat u deze in uw omgeving introduceert en informatie biedt over licenties, afhankelijkheden en leeftijd van afhankelijkheden. Het biedt een eenvoudig begrijpelijke visualisatie van afhankelijkheidswijzigingen met een uitgebreide diff op het tabblad Bestanden gewijzigd van een pull-aanvraag.
- Dependabot voert een scan uit om onveilige afhankelijkheden te detecteren en verzendt Dependabot-waarschuwingen wanneer er een nieuw advies wordt toegevoegd aan de GitHub Advisory Database of wanneer afhankelijkheidsgrafiek voor een opslagplaats wordt gewijzigd.
Best practice: beveiligingsscans van IaC-sjablonen (Infrastructure as Code) inschakelen om onjuiste cloudconfiguraties die productieomgevingen bereiken, te minimaliseren
- Bewaak cloudresourceconfiguraties proactief gedurende de ontwikkelingslevenscyclus.
- Microsoft Defender voor DevOps ondersteunt zowel GitHub- als Azure DevOps-opslagplaatsen.
Best practice: scan uw workloadinstallatiekopieën in containerregisters om bekende beveiligingsproblemen te identificeren
- Defender for Containers scant de containers in Container Registry en Amazon AWS Elastic Container Registry (ECR) om u op de hoogte te stellen als er bekende beveiligingsproblemen in uw installatiekopieën zijn.
- Azure Policy kan worden ingeschakeld om een evaluatie van beveiligingsproblemen uit te voeren op alle installatiekopieën die zijn opgeslagen in Container Registry en gedetailleerde informatie te geven over elke bevindingen.
Best practice: automatisch nieuwe installatiekopieën maken op basisinstallatiekopieën bijwerken
- Azure Container Registry Tasks detecteert dynamisch basisinstallatiekopieën bij het bouwen van een containerinstallatiekopieën. Hierdoor kan worden gedetecteerd wanneer de basisinstallatiekopieën van een toepassingsinstallatiekopieën worden bijgewerkt. Met één vooraf geconfigureerde buildtaak kunnen Container Registry-taken automatisch elke toepassingsinstallatiekopieën herbouwen die verwijst naar de basisinstallatiekopieën.
Best practice: Container Registry, Azure Key Vault en notatie gebruiken om uw containerinstallatiekopieën digitaal te ondertekenen en AKS-cluster zo te configureren dat alleen gevalideerde installatiekopieën zijn toegestaan
- Azure Key Vault slaat een ondertekeningssleutel op die kan worden gebruikt door notatie met de Key Vault-invoegtoepassing voor notatie (azure-kv) om containerinstallatiekopieën en andere artefacten te ondertekenen en te verifiëren. Met Container Registry kunt u deze handtekeningen bijvoegen met behulp van de Azure CLI-opdrachten.
- Met de ondertekende containers kunnen gebruikers ervoor zorgen dat implementaties zijn gebouwd op basis van een vertrouwde entiteit en controleren of er niet met een artefact is geknoeid sinds het maken ervan. Het ondertekende artefact zorgt voor integriteit en authenticiteit voordat de gebruiker een artefact in een omgeving ophaalt, waardoor aanvallen worden vermeden.
- Met Ratificeren kunnen Kubernetes-clusters de metagegevens van de beveiliging van artefacten verifiëren voordat ze worden geïmplementeerd en worden alleen toegegeven voor implementaties die voldoen aan een toegangsbeleid dat u maakt.
Implementatiefase
Tijdens de implementatiefase werken ontwikkelaars, toepassingsoperators en clusteroperatorteams samen aan het opzetten van de juiste beveiligingscontroles voor de pijplijnen voor continue implementatie (CD) om code op een veiligere en geautomatiseerde manier in een productieomgeving te implementeren.
Best practice: de toegang en werkstroom van de implementatiepijplijn beheren
- U kunt belangrijke vertakkingen beveiligen door vertakkingsbeveiligingsregels in te stellen. Deze regels bepalen of samenwerkers pushen naar de vertakking kunnen verwijderen of forceren. Ze stellen ook vereisten in voor pushes naar de vertakking, zoals het doorgeven van statuscontroles of een lineaire doorvoergeschiedenis.
- Met behulp van omgevingen voor implementatie kunt u omgevingen configureren met beveiligingsregels en geheimen.
- U kunt profiteren van de functie Goedkeuringen en Gates om de werkstroom van de implementatiepijplijn te beheren. U kunt bijvoorbeeld handmatige goedkeuringen van een beveiligings- of operations-team vereisen voordat een implementatie in een productieomgeving wordt uitgevoerd.
Best practice: referenties voor beveiligde implementatie
- Met OpenID Verbinding maken (OIDC) hebben uw GitHub Action-werkstromen toegang tot resources in Azure zonder dat u de Azure-referenties hoeft op te slaan als GitHub-geheimen met een lange levensduur.
- Met behulp van omgevingen voor implementatie kunt u omgevingen configureren met beveiligingsregels en geheimen.
- Met een pull-benadering voor CI/CD met GitOps kunt u beveiligingsreferenties naar uw Kubernetes-cluster verplaatsen, waardoor de beveiliging en het risicooppervlak worden verminderd door referenties te verwijderen uit uw externe CI-hulpprogramma's. U kunt ook toegestane binnenkomende verbindingen verminderen en de toegang op beheerdersniveau tot uw Kubernetes-clusters beperken.
Best practice: dynamische toepassingsbeveiligingstests (DAST) uitvoeren om beveiligingsproblemen in uw actieve toepassing te vinden
- Gebruik GitHub Actions in implementatiewerkstromen om DAST-tests (Dynamic Application Security Testing) uit te voeren.
- Opensource-hulpprogramma's zoals ZAP gebruiken om penetratietests uit te voeren op veelvoorkomende beveiligingsproblemen in webtoepassingen.
Best practice: containerinstallatiekopieën alleen implementeren vanuit vertrouwde registers
- Gebruik Defender for Containers om de Azure Policy-invoegtoepassing in te schakelen voor Kubernetes.
- Schakel Azure Policy in, zodat containerinstallatiekopieën alleen kunnen worden geïmplementeerd vanuit vertrouwde registers.
Werkingsfase
Tijdens deze fase worden operationele bewakings- en beveiligingsbewakingstaken uitgevoerd om proactief mogelijke beveiligingsincidenten te bewaken, analyseren en waarschuwen. Hulpprogramma's voor waarneembaarheid van productie, zoals Azure Monitor en Microsoft Sentinel, worden gebruikt voor het bewaken en garanderen van naleving van bedrijfsbeveiligingsstandaarden.
Best practice: Microsoft Defender voor de cloud gebruiken om geautomatiseerd scannen en bewaken van uw productieconfiguraties mogelijk te maken
- Voer continu scannen uit om afwijkingen in de beveiligingsstatus van uw toepassing te detecteren en een proces te implementeren om de kwetsbare installatiekopieën te patchen en te vervangen.
- Implementeer geautomatiseerde configuratiebewaking voor besturingssystemen.
- Gebruik Microsoft Defender voor Cloud containeraankopen (onder de sectie Compute en apps) om basislijnscans voor uw AKS-clusters uit te voeren. Ontvang een melding in het Microsoft Defender voor Cloud-dashboard wanneer er configuratieproblemen of beveiligingsproblemen worden gevonden.
- Gebruik Microsoft Defender voor Cloud en volg de aanbevelingen voor netwerkbeveiliging om de netwerkbronnen te beveiligen die worden gebruikt door uw AKS-clusters.
- Voer een evaluatie van beveiligingsproblemen uit voor installatiekopieën die zijn opgeslagen in Container Registry.
- Implementeer doorlopende scans voor het uitvoeren van installatiekopieën in Container Registry door Defender for Containers in te schakelen.
Best practice: uw Kubernetes-clusters bijgewerkt houden
- Kubernetes-releases worden regelmatig geïmplementeerd. Het is belangrijk dat u een strategie voor levenscyclusbeheer hebt om ervoor te zorgen dat u niet achter en buiten de ondersteuning valt. AKS is een beheerd aanbod dat u hulpprogramma's en flexibiliteit biedt om dit upgradeproces te beheren. U kunt de geplande onderhoudsfuncties van het AKS-platform gebruiken om meer controle te hebben over onderhoudsvensters en upgrades.
- AKS-werkknooppunten moeten vaker worden bijgewerkt . We bieden wekelijkse besturingssysteem- en runtime-updates, die automatisch kunnen worden toegepast via de modus zonder toezicht of via de Azure CLI voor meer controle en uitgebreide updates.
Best practice: Azure Policy gebruiken om uw AKS-clusters te beveiligen en te beheren
- Nadat u de Azure Policy-invoegtoepassing voor AKS hebt geïnstalleerd, kunt u afzonderlijke beleidsdefinities of groepen beleidsdefinities met de naam initiatieven (ook wel beleidssets genoemd) toepassen op uw cluster.
- Gebruik ingebouwd Azure-beleid voor veelvoorkomende scenario's, zoals voorkomen dat bevoegde containers worden uitgevoerd of alleen toegestane externe IP-adressen goedkeuren. U kunt ook aangepast beleid maken voor specifieke use cases.
- Pas beleidsdefinities toe op uw cluster en controleer of deze toewijzingen worden afgedwongen.
- Gebruik Gatekeeper om een toegangscontroller te configureren die implementaties toestaat of weigert op basis van de opgegeven regels. Azure Policy breidt Gatekeeper uit.
- Beveilig verkeer tussen workloadpods met behulp van netwerkbeleid in AKS.
Best practice: Azure Monitor gebruiken voor continue bewaking en waarschuwingen
- Gebruik Azure Monitor om logboeken en metrische gegevens van AKS te verzamelen. U krijgt inzicht in de beschikbaarheid en prestaties van uw toepassing en infrastructuur. Het geeft u ook toegang tot signalen om de status van uw oplossing te bewaken en abnormale activiteit vroeg te herkennen.
- Continue bewaking met Azure Monitor is een uitbreiding voor releasepijplijnen voor gate- of rollback-releases op basis van bewakingsgegevens. Azure Monitor neemt ook beveiligingslogboeken op en kan waarschuwen voor verdachte activiteiten.
- Onboarding van uw AKS-exemplaren naar Azure Monitor en configureer diagnostische instellingen voor uw cluster.
Best practice: Microsoft Defender voor Cloud gebruiken voor actieve bedreigingsbewaking
- Microsoft Defender voor Cloud biedt actieve bedreigingsbewaking op AKS op knooppuntniveau (VM-bedreigingen) en voor interne apparaten.
- Defender voor DevOps moet worden gebruikt voor uitgebreide zichtbaarheid en biedt beveiligings- en operatorteams een gecentraliseerd dashboard voor al uw CI/CD-pijplijnen. Deze functionaliteit is vooral handig als u platformen met meerdere pijplijnen gebruikt, zoals Azure DevOps en GitHub, of pijplijnen uitvoert in openbare clouds.
- Defender voor Key Vault kan worden gebruikt voor het detecteren van ongebruikelijke, verdachte pogingen om toegang te krijgen tot key vault-accounts en kan beheerders waarschuwen op basis van configuratie.
- Defender for Containers kan een waarschuwing geven over beveiligingsproblemen die zijn gevonden in uw containerinstallatiekopieën die zijn opgeslagen in Container Registry.
Best Practice: gecentraliseerde logboekbewaking inschakelen en SIEM-producten gebruiken om realtime beveiligingsrisico's te bewaken
- Verbinding maken diagnostische AKS-logboeken naar Microsoft Sentinel voor gecentraliseerde beveiligingsbewaking op basis van patronen en regels. Sentinel maakt deze toegang naadloos mogelijk via gegevensconnectors.
Best Practice: auditlogboekregistratie inschakelen om activiteiten op uw productieclusters te bewaken
- Gebruik activiteitenlogboeken om acties op AKS-resources te controleren om alle activiteiten en hun status weer te geven. Bepaal welke bewerkingen zijn uitgevoerd op de resources en door wie.
- Schakel logboekregistratie van DNS-query's in door gedocumenteerde configuratie toe te passen in uw aangepaste CoreDNS-configuratiemap.
- Controleer pogingen om toegang te krijgen tot gedeactiveerde referenties.
- Gebruikersverificatie voor AKS integreren met Microsoft Entra ID. Maak diagnostische Instellingen voor Microsoft Entra-id, waarbij de audit- en aanmeldingslogboeken worden verzonden naar een Azure Log Analytics-werkruimte. Configureer de gewenste waarschuwingen (bijvoorbeeld wanneer een gedeactiveerd account zich probeert aan te melden) in een Azure Log Analytics-werkruimte.
Best Practice: diagnostische gegevens inschakelen voor uw Azure-resources
- Door Diagnostische gegevens van Azure in te schakelen voor alle resources van uw workload, hebt u toegang tot platformlogboeken die gedetailleerde diagnostische en controlegegevens voor uw Azure-resources bieden. Deze logboeken kunnen worden opgenomen in Log Analytics of een SIEM-oplossing zoals Microsoft Sentinel voor beveiligingsbewaking en waarschuwingen.
Medewerkers
Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.
Hoofdauteur:
- Adnan Khan | Sr. Cloud Solution Architect
Andere Inzenders:
- Ayobami Ayodeji | Program Manager 2
- Ahmed Bham | Sr. Cloud Solution Architect
- Chad Kittel | Principal Software Engineer
- John Poole | Sr. Cloud Solution Architect
- Bahram Rushenas | Sr. Solution Architect
- Abed Sau | Sr. Cloud Solution Architect
Volgende stappen
- Microsoft Defender voor Cloud
- DevOps beveiligen
- Beveiliging in DevOps (DevSecOps)
- Geavanceerde beveiliging van GitHub
- GitOps