Bedreigingsfactoren voor beheerde Kubernetes
In een beheerde Kubernetes-omgeving omvat het aanpakken van beveiliging inzicht in en het beperken van bedreigingen voor verschillende exemplaren. Hier volgt een uitsplitsing van bedreigingsfactoren in specifieke exemplaren:
Gecompromitteerd account
- Bedreigingsfactor: een aanvaller krijgt toegang tot een Kubernetes-cluster via gestolen referenties, API-tokens of sleutels. Dit kan leiden tot onbevoegde toegang, gegevensdiefstal en schadelijke implementaties.
- Risicobeperking: Implementeer sterke verificatiemechanismen, meervoudige verificatie (MFA), regelmatige rotatie van referenties en beginselen voor minimale bevoegdheden.
Kwetsbare of onjuist geconfigureerde installatiekopieën
- Bedreigingsfactor: containerinstallatiekopieën met beveiligingsproblemen of onjuiste configuraties kunnen worden misbruikt door aanvallers zodra ze zijn geïmplementeerd. Deze beveiligingsproblemen kunnen verouderde software, onveilige standaardinstellingen of ingesloten geheimen omvatten.
- Risicobeperking: gebruik hulpprogramma's voor het scannen van installatiekopieën om beveiligingsproblemen te detecteren vóór de implementatie, het beleid voor herkomst van installatiekopieën af te dwingen en een proces voor het ondertekenen van containerinstallatiekopieën te gebruiken.
Onjuiste configuratie van omgeving
- Bedreigingsfactor: onjuiste configuraties in Kubernetes-instellingen of implementatiedescriptors kunnen clusters blootstellen aan aanvallen. Veelvoorkomende problemen zijn onder andere blootgestelde dashboardinterfaces, overmissieve RBAC-instellingen en onbeveiligde eindpunten.
- Risicobeperking: volg de aanbevolen procedures voor beveiligde configuratie, controleer regelmatig configuraties met geautomatiseerde hulpprogramma's en gebruik toegangscontrollers om naleving van beleid af te dwingen.
Aanvalsniveau van toepassing
- Bedreigingsfactor: toepassingen die in containers worden uitgevoerd, zijn mogelijk kwetsbaar voor traditionele webaanvalsvectoren, zoals SQL-injectie of CROSS-site scripting (XSS), waardoor de container kan worden aangetast of tot verdere clusteruitbuiting kan leiden.
- Risicobeperking: Best practices voor toepassingsbeveiliging gebruiken, zoals invoervalidatie en uitvoercodering, en Web Application Firewalls (WAF's) gebruiken. Implementeer beveiliging in de pijplijn continue integratie (CI)/Continue levering en of implementatie (CD), inclusief statische en dynamische analysehulpprogramma's.
Aanval op knooppuntniveau
- Bedreigingsfactor: als een aanvaller toegang krijgt tot een Kubernetes-knooppunt, kunnen ze mogelijk bevoegdheden escaleren om het hele cluster te beheren. Beveiligingsproblemen kunnen ontstaan door verouderde besturingssystemen of Kubernetes-onderdelen.
- Risicobeperking: Houd knooppunten bijgewerkt met de nieuwste beveiligingspatches, beperk de toegang tot knooppunten met behulp van netwerkbeleid en firewalls en gebruik op hosts gebaseerde inbraakdetectiesystemen (HIDS).
Niet-geautoriseerd verkeer
- Bedreigingsfactor: onbevoegde toegang tot of van het cluster kan optreden als netwerkbeleid niet correct is geconfigureerd, zodat aanvallers gegevens kunnen exfiltreren, malware kunnen leveren of blootgestelde services kunnen misbruiken.
- Risicobeperking: implementeer strikt netwerkbeleid om inkomend en uitgaand verkeer te beheren, gevoelige workloads te scheiden met behulp van naamruimten en verkeer te controleren op afwijkende patronen.
Voor het aanpakken van deze bedreigingen in een beheerde Kubernetes-omgeving is een gelaagde beveiligingsbenadering vereist die zowel kubernetes-specifieke procedures als traditionele beveiligingsmaatregelen omvat. Continue bewaking, regelmatige controles en naleving van het principe van minimale bevoegdheden voor alle aspecten van het cluster zijn essentiële onderdelen van een robuuste Kubernetes-beveiligingsstrategie.
Veelvoorkomende aanvalstechnieken
- Misbruik maken van kwetsbare installatiekopieën: een openbare kwetsbare toepassing in een cluster waarmee initiële toegang tot het cluster mogelijk is. Infamous cases: SolarWinds, Log4j
- Toegang tot blootgestelde toepassingen: een gevoelige interface die aan internet wordt blootgesteld, vormt een beveiligingsrisico. Sommige populaire frameworks waren niet bedoeld om beschikbaar te worden gemaakt voor internet en vereisen daarom niet standaard verificatie. Als u ze dus beschikbaar maakt op internet, is niet-geverifieerde toegang tot een gevoelige interface mogelijk, waardoor code kan worden uitgevoerd of containers in het cluster kunnen worden geïmplementeerd door een kwaadwillende actor. Voorbeelden van dergelijke interfaces die zijn misbruikt, zijn Apache NiFi, Kubeflow, Argo-werkstromen, Weave Scope en het Kubernetes-dashboard.
- Backdoorcontainers implementeren: aanvallers voeren hun schadelijke code uit in een container in het cluster. Door gebruik te maken van de Kubernetes-controllers, zoals DaemonSets of Deployments, hebben aanvallers ervoor gezorgd dat een constant aantal containers wordt uitgevoerd in één of alle knooppunten in het cluster.
- Misbruik van permissieve rollen SA : serviceaccount (SA) vertegenwoordigt een toepassingsidentiteit in Kubernetes. Standaard wordt een SA gekoppeld aan elke gemaakte pod in het cluster. Met behulp van de SA kunnen containers in de pod aanvragen verzenden naar de Kubernetes-API-server. Aanvallers die toegang krijgen tot een pod, hebben toegang tot het SA-token en voeren acties uit in het cluster, volgens de SA-machtigingen. Als RBAC niet is ingeschakeld, heeft de SA onbeperkte machtigingen in het cluster. Als RBAC is ingeschakeld, worden de bijbehorende machtigingen bepaald door de RoleBindings en ClusterRoleBindings die eraan zijn gekoppeld.
- Escape naar de host- hostPath-volume koppelt een map of een bestand van de host aan de container. Aanvallers die gemachtigd zijn om een nieuwe container in het cluster te maken, kunnen er een maken met een beschrijfbaar hostPath-volume en persistentie krijgen op de onderliggende host. De laatste kan bijvoorbeeld worden bereikt door een cron-taak op de host te maken.