Beveiligingsoverwegingen voor Azure Container Instances

In dit artikel worden beveiligingsoverwegingen geïntroduceerd voor het gebruik van Azure Container Instances om containertoepassingen uit te voeren. Dit zijn een aantal van de onderwerpen:

  • Aanbevelingen voor beveiliging voor het beheren van installatiekopieën en geheimen voor Azure Container Instances
  • Overwegingen voor het containerecosysteem gedurende de levenscyclus van de container, voor elk containerplatform

Zie de Azure-beveiligingsbasislijn voor Container Instances voor uitgebreide aanbevelingen waarmee u de beveiligingsstatus van uw implementatie kunt verbeteren.

Aanbevelingen voor beveiliging voor Azure Container Instances

Een privéregister gebruiken

Containers worden gemaakt van installatiekopieën die zijn opgeslagen in een of meer opslagplaatsen. Deze opslagplaatsen kunnen deel uitmaken van een openbaar register, zoals Docker Hub of een privéregister. Een voorbeeld van een persoonlijk register is de Docker Trusted Registry, dat lokaal kan worden geïnstalleerd of in een virtuele privécloud. U kunt ook cloudgebaseerde privécontainerregisterservices gebruiken, waaronder Azure Container Registry.

Een openbaar beschikbare containerinstallatiekopieën garanderen geen beveiliging. Containerinstallatiekopieën bestaan uit meerdere softwarelagen en elke softwarelaag kan beveiligingsproblemen hebben. Om de dreiging van aanvallen te verminderen, moet u installatiekopieën opslaan en ophalen uit een privéregister, zoals Azure Container Registry of Docker Trusted Registry. Naast het bieden van een beheerd privéregister biedt Azure Container Registry ondersteuning voor verificatie op basis van een service-principal via Microsoft Entra-id voor basisverificatiestromen. Deze verificatie omvat op rollen gebaseerde toegang voor alleen-lezen (pull), schrijven (push) en andere machtigingen.

Containerinstallatiekopieën bewaken en scannen

Profiteer van oplossingen voor het scannen van containerinstallatiekopieën in een privéregister en het identificeren van potentiële beveiligingsproblemen. Het is belangrijk om inzicht te hebben in de diepte van bedreigingsdetectie die de verschillende oplossingen bieden.

Azure Container Registry kan bijvoorbeeld optioneel worden geïntegreerd met Microsoft Defender voor Cloud om automatisch alle Linux-installatiekopieën te scannen die naar een register zijn gepusht. Microsoft Defender voor Cloud geïntegreerde Qualys-scanner detecteert beveiligingsproblemen in afbeeldingen, classificeert deze en biedt herstelrichtlijnen.

Beveiligingsbewaking en oplossingen voor het scannen van afbeeldingen, zoals Twistlock en Aqua Security , zijn ook beschikbaar via Azure Marketplace.

Referenties beveiligen

Containers kunnen worden verspreid over verschillende clusters en Azure-regio's. U moet dus referenties beveiligen die vereist zijn voor aanmeldingen of API-toegang, zoals wachtwoorden of tokens. Zorg ervoor dat alleen bevoegde gebruikers toegang hebben tot deze containers in transit en at rest. Inventariseer alle referentiegeheimen en vraag ontwikkelaars vervolgens om opkomende hulpprogramma's voor geheimenbeheer te gebruiken die zijn ontworpen voor containerplatforms. Zorg ervoor dat uw oplossing versleutelde databases bevat, TLS-versleuteling voor geheimen die worden verzonden en dat op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) met minimale bevoegdheden wordt gebruikt. Azure Key Vault is een cloudservice waarmee versleutelingssleutels en geheimen (zoals certificaten, verbindingsreeks s en wachtwoorden) worden beveiligd voor toepassingen in containers. Omdat deze gegevens gevoelig en bedrijfskritiek zijn, beveiligt u de toegang tot uw sleutelkluizen zodat alleen geautoriseerde toepassingen en gebruikers er toegang toe hebben.

Overwegingen voor het containerecosysteem

De volgende beveiligingsmaatregelen, die goed en effectief worden geïmplementeerd, kunnen u helpen uw containerecosysteem te beveiligen en te beschermen. Deze metingen gelden gedurende de levenscyclus van de container, van ontwikkeling tot productie-implementatie en tot een reeks containerorchestrators, hosts en platforms.

Beveiligingsbeheer gebruiken als onderdeel van de levenscyclus van uw containerontwikkeling

Door effectief beveiligingsbeheer te gebruiken gedurende de levenscyclus van containerontwikkeling, verbetert u de kans dat u beveiligingsproblemen identificeert en oplost voordat ze een ernstiger probleem worden.

Scannen op beveiligingsproblemen

Nieuwe beveiligingsproblemen worden voortdurend gedetecteerd, dus het scannen op en identificeren van beveiligingsproblemen is een continu proces. Beveiligingsscans opnemen gedurende de levenscyclus van de container:

  • Als laatste controle in uw ontwikkelingspijplijn moet u een beveiligingsscan uitvoeren op containers voordat u de installatiekopieën naar een openbaar of persoonlijk register pusht.
  • Ga door met het scannen van containerinstallatiekopieën in het register om eventuele fouten te identificeren die zijn gemist tijdens de ontwikkeling en om eventuele nieuw gedetecteerde beveiligingsproblemen aan te pakken die mogelijk aanwezig zijn in de code die in de containerinstallatiekopieën wordt gebruikt.

Beveiligingsproblemen met installatiekopieën toewijzen aan actieve containers

U moet een middel hebben om beveiligingsproblemen toe te kennen die zijn geïdentificeerd in containerinstallatiekopieën voor het uitvoeren van containers, zodat beveiligingsproblemen kunnen worden verholpen of opgelost.

Zorg ervoor dat alleen goedgekeurde installatiekopieën in uw omgeving worden gebruikt

Er is voldoende verandering en volatiliteit in een containerecosysteem zonder ook onbekende containers toe te staan. Alleen goedgekeurde containerinstallatiekopieën toestaan. Beschikken over hulpprogramma's en processen om het gebruik van niet-goedgekeurde containerinstallatiekopieën te controleren en te voorkomen.

Een effectieve manier om het kwetsbaarheid voor aanvallen te verminderen en te voorkomen dat ontwikkelaars kritieke beveiligingsfouten maken, is door de stroom van containerinstallatiekopieën in uw ontwikkelomgeving te beheren. U kunt bijvoorbeeld één Linux-distributie goedkeuren als basisinstallatiekopie, bij voorkeur een distributie die mager is (Alpine of CoreOS in plaats van Ubuntu), om het oppervlak voor potentiële aanvallen te minimaliseren.

Afbeeldingsondertekening of vingerafdruk kan een bewakingsketen bieden waarmee u de integriteit van de containers kunt controleren. Azure Container Registry ondersteunt bijvoorbeeld het vertrouwensmodel voor inhoud van Docker, waarmee uitgevers van installatiekopieën kunnen ondertekenen die naar een register worden gepusht en gebruikers van installatiekopieën alleen ondertekende installatiekopieën kunnen ophalen.

Alleen goedgekeurde registers toestaan

Een uitbreiding om ervoor te zorgen dat uw omgeving alleen goedgekeurde installatiekopieën gebruikt, is alleen het gebruik van goedgekeurde containerregisters toestaan. Als u het gebruik van goedgekeurde containerregisters vereist, vermindert u de blootstelling aan risico's door het potentieel voor de introductie van onbekende beveiligingsproblemen of beveiligingsproblemen te beperken.

De integriteit van afbeeldingen gedurende de hele levenscyclus garanderen

Een onderdeel van het beheren van de beveiliging gedurende de levenscyclus van de container is het waarborgen van de integriteit van de containerinstallatiekopieën in het register en wanneer ze worden gewijzigd of geïmplementeerd in productie.

  • Installatiekopieën met beveiligingsproblemen, zelfs kleine, mogen niet worden uitgevoerd in een productieomgeving. In het ideale geval moeten alle installatiekopieën die in productie zijn geïmplementeerd, worden opgeslagen in een privéregister dat toegankelijk is voor een selectie. Houd het aantal productieinstallatiekopieën klein om ervoor te zorgen dat ze effectief kunnen worden beheerd.

  • Omdat het moeilijk is om de oorsprong van software te bepalen op basis van een openbaar beschikbare containerinstallatiekopieën, bouwt u installatiekopieën van de bron om kennis van de oorsprong van de laag te garanderen. Wanneer er een beveiligingsprobleem aan het licht komt in een zelf gebouwde containerinstallatiekopie, kunnen klanten sneller een oplossing vinden. Met een openbare installatiekopieën moeten klanten de hoofdmap van een openbare installatiekopieën vinden om deze te herstellen of een andere beveiligde installatiekopieën van de uitgever ophalen.

  • Een grondig gescande installatiekopie die in productie is geïmplementeerd, is niet gegarandeerd up-to-date voor de levensduur van de toepassing. Er kunnen beveiligingsproblemen worden gerapporteerd voor lagen van de installatiekopie die niet bekend waren of die na de implementatie naar productie zijn geïntroduceerd.

    Controleer regelmatig installatiekopieën die in productie zijn geïmplementeerd om installatiekopieën te identificeren die verouderd zijn of die al een tijdje niet zijn bijgewerkt. U kunt blauwgroene implementatiemethodologieën en rolling upgrademechanismen gebruiken om containerinstallatiekopieën bij te werken zonder uitvaltijd. U kunt afbeeldingen scannen met behulp van hulpprogramma's die in de vorige sectie worden beschreven.

  • Gebruik een CI-pijplijn (continuous integration) met geïntegreerde beveiligingsscans om beveiligde installatiekopieën te bouwen en naar uw persoonlijke register te pushen. De ingebouwde scanfunctie voor beveiligingsproblemen van de CI-oplossing zorgt ervoor dat installatiekopieën die voor alle tests slagen, naar het persoonlijke register worden gepusht van waaruit productieworkloads worden geïmplementeerd.

    Een CI-pijplijnfout zorgt ervoor dat kwetsbare installatiekopieën niet worden gepusht naar het privéregister dat wordt gebruikt voor implementaties van productieworkloads. Het automatiseert ook het scannen van afbeeldingenbeveiliging als er een aanzienlijk aantal afbeeldingen is. Het handmatig controleren van installatiekopieën op beveiligingsproblemen kan erg langdurig en foutgevoelig zijn.

Minimale bevoegdheden afdwingen in runtime

Het concept van minimale bevoegdheden is een eenvoudige best practice voor beveiliging die ook van toepassing is op containers. Wanneer een beveiligingsprobleem wordt misbruikt, krijgt de aanvaller doorgaans toegang en bevoegdheden die gelijk zijn aan die van de aangetaste toepassing of het gecompromitteerde proces. Als u ervoor zorgt dat containers werken met de laagste bevoegdheden en toegang die nodig zijn om de taak uit te voeren, vermindert u de blootstelling aan risico's.

Verminder de kwetsbaarheid voor containeraanvallen door overbodige bevoegdheden te verwijderen

U kunt ook het potentiële aanvalsoppervlak minimaliseren door ongebruikte of onnodige processen of bevoegdheden uit de containerruntime te verwijderen. Bevoegde containers worden uitgevoerd als root. Als een kwaadwillende gebruiker of workload uit een bevoegde container ontsnapt, wordt de container vervolgens uitgevoerd als root op dat systeem.

Vooraf goedgekeurde bestanden en uitvoerbare bestanden die de container mag openen of uitvoeren

Door het aantal variabelen of onbekenden te verminderen, kunt u een stabiele, betrouwbare omgeving onderhouden. Het beperken van containers zodat ze alleen vooraf goedgekeurde of veilige vermelde bestanden en uitvoerbare bestanden kunnen openen of uitvoeren, is een bewezen methode om blootstelling aan risico's te beperken.

Het is veel eenvoudiger om een veilige lijst te beheren wanneer deze vanaf het begin wordt geïmplementeerd. Een veilige lijst biedt een meting van controle en beheerbaarheid wanneer u leert welke bestanden en uitvoerbare bestanden vereist zijn om de toepassing correct te laten functioneren.

Een veilige lijst vermindert niet alleen de kwetsbaarheid voor aanvallen, maar kan ook een basislijn bieden voor afwijkingen en de gebruiksvoorbeelden van de scenario's voor ruis en aparte containers voorkomen.

Netwerksegmentatie afdwingen bij actieve containers

Om containers in het ene subnet te beschermen tegen beveiligingsrisico's in een ander subnet, onderhoudt u netwerksegmentatie (of nanosegmentatie) of scheiding tussen actieve containers. Het onderhouden van netwerksegmentatie kan ook nodig zijn voor het gebruik van containers in branches die vereist zijn om te voldoen aan nalevingsmandaten.

Het partnerhulpprogramma Aqua biedt bijvoorbeeld een geautomatiseerde benadering voor nanosegmentatie. Aqua bewaakt containernetwerkactiviteiten in runtime. Hiermee worden alle binnenkomende en uitgaande netwerkverbindingen met/van andere containers, services, IP-adressen en het openbare internet geïdentificeerd. Nanosegmentatie wordt automatisch gemaakt op basis van bewaakt verkeer.

Containeractiviteit en gebruikerstoegang bewaken

Net als bij elke IT-omgeving moet u activiteiten en gebruikerstoegang tot uw containerecosysteem consistent bewaken om verdachte of schadelijke activiteiten snel te identificeren. Azure biedt oplossingen voor containerbewaking, waaronder:

  • Azure Monitor voor containers bewaakt de prestaties van uw workloads die zijn geïmplementeerd in Kubernetes-omgevingen die worden gehost in Azure Kubernetes Service (AKS). Azure Monitor voor containers biedt u inzicht in prestaties door metrische geheugen- en processorgegevens te verzamelen van controllers, knooppunten en containers die beschikbaar zijn in Kubernetes via de Metrics-API.

  • Met de Azure Container Monitoring-oplossing kunt u andere Docker- en Windows-containerhosts op één locatie bekijken en beheren. Bijvoorbeeld:

    • Gedetailleerde controlegegevens weergeven met opdrachten die worden gebruikt met containers.
    • Problemen met containers oplossen door gecentraliseerde logboeken weer te geven en te doorzoeken zonder docker- of Windows-hosts op afstand te hoeven weergeven.
    • Zoek containers die luidruchtig kunnen zijn en overtollige resources op een host verbruiken.
    • Bekijk gecentraliseerde CPU-, geheugen-, opslag- en netwerkgebruiks- en prestatiegegevens voor containers.

    De oplossing ondersteunt containerorchestrators, waaronder Docker Swarm, DC/OS, niet-beheerde Kubernetes, Service Fabric en Red Hat OpenShift.

Activiteit van containerresources bewaken

Bewaak uw resourceactiviteit, zoals bestanden, het netwerk en andere resources waartoe uw containers toegang hebben. Het bewaken van resourceactiviteit en -verbruik is nuttig voor prestatiebewaking en als een beveiligingsmaatregel.

Azure Monitor maakt kernbewaking voor Azure-services mogelijk door het verzamelen van metrische gegevens, activiteitenlogboeken en diagnostische logboeken toe te staan. Het activiteitenlogboek geeft bijvoorbeeld aan wanneer nieuwe resources worden gemaakt of gewijzigd.

Er zijn metrische gegevens beschikbaar met prestatiestatistieken voor verschillende resources en zelfs het besturingssysteem binnen een virtuele machine. U kunt deze gegevens bekijken met een van de verkenners in de Azure-portal en waarschuwingen genereren op basis van deze metrische gegevens. Azure Monitor biedt de snelste pijplijn voor metrische gegevens (vijf minuten tot één minuut); gebruik het dus voor waarschuwingen en meldingen waarbij tijd van cruciaal belang is.

Alle gebruikerstoegang voor containerbeheerders vastleggen voor controle

Behoud een nauwkeurig audittrail met beheerderstoegang tot uw containerecosysteem, waaronder uw Kubernetes-cluster, containerregister en containerinstallatiekopieën. Deze logboeken zijn mogelijk nodig voor controledoeleinden en zijn nuttig als forensisch bewijs na een beveiligingsincident. Azure-oplossingen zijn onder andere:

Volgende stappen