Containerbeveiliging in AKS ingeschakeld door Azure Arc
Van toepassing op: AKS op Azure Stack HCI 22H2, AKS op Windows Server
In dit artikel worden verschillende methoden beschreven voor het beveiligen van de containers die worden gebruikt voor het verpakken en implementeren van toepassingen en het voorkomen van beveiligingsproblemen in AKS die zijn ingeschakeld door Azure Arc.
Containers bieden operationele en beveiligingsvoordelen omdat toepassingen en services worden gescheiden binnen een omgeving. Containers helpen ook om de gevolgen van systeembrede fouten te verminderen vanwege hun abstractie, waardoor uptime wordt gegarandeerd en aanvallen worden voorkomen die toepassingen of services in gevaar kunnen brengen. Containers worden doorgaans uitgevoerd op een abstracte laag boven op het hostbesturingssysteem en de abstractie biedt een zekere scheidingsbarrière en de mogelijkheid om een gelaagd verdedigingsmodel toe te passen.
U kunt ook continue containerbeveiliging instellen door de containerpijplijn, de toepassing en de containerimplementatieomgeving te beveiligen. In de volgende secties worden enkele aanbevolen procedures beschreven voor het implementeren van containerbeveiliging.
Beveiligde installatiekopieën
Als u onbevoegde toegang wilt voorkomen, host u de installatiekopieën in een beveiligd en vertrouwd register. De installatiekopieën moeten een TLS-certificaat hebben met een vertrouwde basis-CA en het register moet gebruikmaken van op rollen gebaseerd toegangsbeheer (RBAC) met sterke verificatie. U moet een oplossing voor het scannen van afbeeldingen opnemen bij het ontwerpen van CI/CD voor de containerbuild en -levering. De oplossing voor het scannen van afbeeldingen helpt bij het identificeren van veelvoorkomende beveiligingsproblemen en blootstellingen (CVE's) en zorgt ervoor dat exploiteerbare installatiekopieën niet worden geïmplementeerd zonder herstel.
Hostomgeving beveiligen
Een belangrijk aspect van containerbeveiliging is de noodzaak om de beveiliging van de systemen waarop uw containers worden uitgevoerd, te beveiligen en de manier waarop ze optreden tijdens runtime. Containerbeveiliging moet zich richten op de hele stack, inclusief uw host en de daemons. Verwijder services van de host die niet-kritiek zijn en u moet niet-compatibele containers in de omgeving implementeren. Als u dit doet, kan de toegang tot de host alleen plaatsvinden via de containers en wordt het beheer gecentraliseerd naar de container-daemon, waardoor de host wordt verwijderd uit het kwetsbaarheid voor aanvallen. Deze stappen zijn vooral handig wanneer u proxyservers gebruikt om toegang te krijgen tot uw containers, waardoor u per ongeluk uw beveiligingscontroles voor containers kunt omzeilen.
Containerbronnen beperken
Wanneer een container wordt aangetast, kunnen aanvallers proberen de onderliggende hostbronnen te gebruiken om schadelijke activiteiten uit te voeren. Het is een goede gewoonte om limieten voor geheugen- en CPU-gebruik in te stellen om de impact van schendingen te minimaliseren.
Goed beveiligde geheimen
Een geheim is een object met gevoelige informatie die mogelijk moet worden doorgegeven tussen de host en de container, bijvoorbeeld wachtwoorden, SSL/TLS-certificaten, persoonlijke SSH-sleutels, tokens, verbindingsreeks s en andere gegevens die niet mogen worden verzonden in tekst zonder opmaak of die niet-versleuteld moeten worden opgeslagen. U moet alle geheimen uit de installatiekopieën bewaren en deze koppelen via de containerindelingsengine of een externe geheimenbeheerder.
Isolatie oefenen
Gebruik isolatie en gebruik geen bevoegde gebruiker of hoofdgebruiker om de toepassing in een container uit te voeren. Vermijd het uitvoeren van containers in de modus Met bevoegdheden, omdat een aanvaller hierdoor eenvoudig bevoegdheden kan escaleren als de container is aangetast. Als u de UID (Unique Identification Code) en GID (Groepsidentificatiecode) van de hoofdgebruiker in een container kent, kan een aanvaller toegang krijgen tot en wijzigen van de bestanden die zijn geschreven door de hoofdmap op de hostcomputer. Het is ook nodig om het principe van minimale bevoegdheden te gebruiken waarbij een toepassing alleen toegang heeft tot de geheimen die nodig zijn. U kunt een toepassingsgebruiker maken om het toepassingsproces uit te voeren.
Runtimebeveiligingsbewaking implementeren
Omdat er nog steeds de kans is dat er inbreuk wordt gepleegd, zelfs nadat u voorzorgsmaatregelen hebt genomen tegen aanvallen op uw infrastructuur, is het belangrijk dat u het gedrag van de toepassing continu bewaakt en registreert om schadelijke activiteiten te voorkomen en te detecteren. Hulpprogramma's zoals Prometheus bieden een effectieve manier om uw infrastructuur te bewaken.