Skip to main content

Risiken

Vermeidung von Risiken mit HELM

HELM ist ein leistungsstarkes Tool für die Verwaltung von Kubernetes-Anwendungen, das eine schnelle Installation und Deinstallation von Anwendungen innerhalb des Clusters ermöglicht. Es birgt jedoch auch potenzielle Risiken, die durch entsprechende Berechtigungen und Benutzerbeschränkungen gemildert werden müssen.

Potenzielle Risiken mit HELM

Unkontrollierte Löschung von Anwendungen:

Der Befehl helm delete $(helm list | head -n 2 | tail -n 1 | awk '{print $1}') löscht die erste in helm list aufgeführte Anwendung. Eine einfache Schleife kann dazu verwendet werden, alle Anwendungen zu löschen, was zu Störungen und zum Verlust des Dienstes führen kann.

 

Sensible Operationen:

HELM kann ganze Anwendungen bereitstellen, so dass es wichtig ist, zu kontrollieren, welche Images und Konfigurationen verwendet werden, um unbefugte oder unsichere Bereitstellungen zu verhindern.

Abhilfemaßnahmen

Um die Nutzung von HELM zu sichern und böswillige oder versehentliche Löschungen oder Änderungen zu verhindern, sollten Sie die folgenden Maßnahmen ergreifen:

HELM-Befehle einschränken:

Schränken Sie die Verwendung von HELM-Befehlen auf diejenigen Benutzer ein, die sie unbedingt benötigen. Stellen Sie sicher, dass nur Administratoren mit sudo-Rechten HELM-Befehle ausführen können.

Zugriff auf helm list beschränken:

Schränken Sie den Zugriff auf den Befehl helm list ein, um zu verhindern, dass nicht autorisierte Benutzer die Liste der installierten Anwendungen anzeigen oder manipulieren. Dies kann mithilfe von RBAC-Richtlinien erfolgen.

apiVersion: rbac.authorization.k8s.io/v1

kind: Role

metadata:

  namespace: default

  name: helm-reader

rules:

- apiGroups: ["helm.sh"]

  resources: ["releases"]

  verbs: ["get", "list"]
apiVersion: rbac.authorization.k8s.io/v1

kind: RoleBinding

metadata:

  name: read-helm-releases

  namespace: default

subjects:

- kind: User

  name: jane

  apiGroup: rbac.authorization.k8s.io

roleRef:

  kind: Role

  name: helm-reader

  apiGroup: rbac.authorization.k8s.io

Image-Quellen kontrollieren:

Stellen Sie sicher, dass nur Images aus vertrauenswürdigen lokalen Registern bereitgestellt werden. Implementieren Sie Maßnahmen wie M009 zur Durchsetzung von Image-Richtlinien und M005 zur Verhinderung unerwünschter Kommunikation.

Prüfung und Überwachung der HELM-Nutzung:

Überwachen und prüfen Sie die Verwendung von HELM-Befehlen. Führen Sie Protokolle darüber, wer welche Befehle wann ausgeführt hat, und alarmieren Sie die Administratoren bei verdächtigen Aktivitäten.

Erwägen Sie Alternativen für die Produktion:

In Produktionsumgebungen ist zu prüfen, ob HELM notwendig ist oder ob Alternativen zur Risikominderung eingesetzt werden können. Wenn HELM verwendet werden muss, stellen Sie sicher, dass es ordnungsgemäß gesichert und eingeschränkt ist.


Implementieren Sie eine rollenbasierte Zugriffskontrolle (RBAC):

Verwenden Sie RBAC, um eindeutige Berechtigungen für die Nutzung von HELM zu definieren und sicherzustellen, dass nur autorisiertes Personal Anwendungen bereitstellen, ändern oder löschen kann.

Multi-Faktor-Authentifizierung (MFA):

Verlangen Sie MFA für den Zugriff auf Systeme, auf denen HELM-Befehle ausgeführt werden können. Dadurch wird eine zusätzliche Sicherheitsebene geschaffen, um eine unbefugte Nutzung zu verhindern.


Beispiel für die Einschränkung der HELM-Nutzung mit sudo

Um sicherzustellen, dass HELM nur mit sudo ausgeführt werden kann, können Sie die Datei sudoers ändern:

  • sudo visudo

Fügen Sie die folgenden Zeilen hinzu, um die Verwendung von HELM einzuschränken:

  • Cmnd_Alias HELM_CMDS = /usr/local/bin/helm
  • %admin ALL=(ALL) NOPASSWD: HELM_CMDS

Diese Konfiguration erlaubt es nur Benutzern der Gruppe admin, HELM-Befehle mit sudo auszuführen, was eine bessere Kontrolle über die Verwendung des Programms gewährleistet.


Orientieren Sie sich an folgenden Maßnahmen: