Die digitalen Unternehmen von heute nutzen für ihr Geschäft kommerzielle, intern entwickelte sowie Open-Source-Anwendungen und setzen zunehmend automatisierte IT-Infrastrukturen und DevOps-Methoden ein, um Entwicklung und Innovation zu beschleunigen. Obwohl sich die Anwendungs- und IT-Umgebungen der Unternehmen erheblich unterscheiden, haben sie alle eine Gemeinsamkeit: Jede Anwendung, jedes Skript, jedes Automatisierungstool und jede andere nicht menschliche Identität ist auf irgendeine Form von privilegierten Anmeldedaten angewiesen, um auf andere Tools, Anwendungen und Daten zugreifen zu können.
Was ist ein Secret?
Diese nicht menschlichen privilegierten Anmeldedaten werden oft als „Secrets“ bezeichnet und sind im Wesentlichen eine private Information, die als Schlüssel zum Freischalten geschützter Ressourcen oder sensibler Daten in Tools, Anwendungen, Containern sowie DevOps- und Cloud-nativen Umgebungen dient.
Zu den häufigsten Arten von Secrets zählen:
- Anmeldedaten privilegierter Accounts
- Passwörter
- Zertifikate
- SSH-Schlüssel
- API-Schlüssel
- Encryption-Schlüssel
Die größten Herausforderungen beim Secret-Management
Ein nicht menschlicher Benutzer mit Zugriff auf ein Secret erhält automatisch und in Echtzeit Zugang und Berechtigungen für alle Ressourcen des Secret-Inhabers. Cyber-Angreifer haben das durchschaut und nehmen daher auch Secrets ins Visier, um sich für ihre Missionen unbefugten Zugriff auf weitere Secrets und Hosts zu verschaffen. Ein Cyber-Angriff, der auf Secrets abzielt, kann oft weit über den Umfang des ursprünglichen Datenschutzvorfalls hinausgehen.
Secrets kommen überall vor.
Sie umfassen eingebettete, fest programmierte Anmeldedaten in containerisierten Anwendungen (z. B. Red Hat OpenShift, Kubernetes oder Pivotal), Automatisierungsprozesse (z. B. Ansible Playbooks, Puppet oder Chef), geschäftskritische Anwendungen, einschließlich intern entwickelter und kommerzieller Standardlösungen (COTS), Sicherheitssoftware wie Vulnerability-Scanner, Anwendungsserver und IT-Management-Software, Plattformen für die robotergesteuerte Prozessautomatisierung (RPA) sowie Continuous Integration (CI)/Continuous Deployment (CD) Tools.
Automatisierte Prozesse sind enorm leistungsstark.
Sie können auf geschützte Daten zugreifen, beispiellos schnell skalieren, Cloud-Ressourcen nutzen und Geschäftsprozesse in Echtzeit ausführen. Doch wie bekannte Sicherheitsverletzungen zeigen, sind automatisierte Prozesse anfällig für komplexe Cyber-Angriffe, die plötzlich auftreten und sich schnell ausbreiten können. Unternehmen müssen Secrets von nicht menschlichen Identitäten schützen, um entsprechende Angriffe abwehren und Risiken mindern zu können.
Was ist Secrets-Management?
Secrets-Management gilt als Best Practice in der Cyber-Sicherheitsbranche und ermöglicht Unternehmen die konsequente Durchsetzung von Sicherheitsrichtlinien für nicht menschliche Identitäten. Secrets Management bietet die Gewissheit, dass Ressourcen über sämtliche Tool-Stacks, Plattformen und Cloud-Umgebungen hinweg nur authentifizierten und autorisierten Benutzern zugänglich sind.
Die folgenden Schritte sind in der Regel Teil des Secrets-Managements. Viele dieser Ansätze und Techniken werden auch verwendet, um den privilegierten Zugriff durch menschliche Benutzer zu schützen.
- Authentifizierung aller Zugriffsanfragen, bei denen nicht menschliche Anmeldedaten zum Einsatz kommen.
- Durchsetzung des Least-Privilege-Prinzips.
- Durchsetzung der rollenbasierten Zugriffskontrolle (RBAC) und regelmäßige Rotation von Secrets und Anmeldedaten.
- Automatisierung des Secrets-Managements und Anwendung konsistenter Zugriffsrichtlinien.
- Verfolgung sämtlicher Zugriffe und Anlegen eines umfassenden Audit-Trails.
- Entfernung von Secrets aus Code, Konfigurationsdateien und anderen ungeschützten Bereichen.
In welchen Fällen kommt Secrets-Management primär zum Einsatz?
Secrets-Management zur Sicherung von CI/CD-Pipelines.
Gängige CI/CD-Pipeline-Tools wie Jenkins, Ansible, Puppet und Chef sind auf Effizienz und Geschwindigkeit ausgelegt, können aber neue Sicherheitsprobleme mit sich bringen. Diese automatisierten Konfigurationsmanagement-Tools brauchen Secrets, um auf geschützte Ressourcen wie Datenbanken, SSH-Server und HTTPS-Dienste zugreifen zu können. Diese Secrets sind oft fest programmiert oder in Konfigurationsdateien oder Code für diese Tools (zum Beispiel in JenkinsFiles, Playbooks, Skripten oder Quellcode) gespeichert. Ein effektives Secrets-Management ermöglicht es Unternehmen, diese fest programmierten Secrets aus den DevOps-Tools innerhalb der CI/CD-Pipeline zu entfernen und gleichzeitig vollständige Audit-Trails, richtlinienbasierte RBAC und eine Rotation der Secrets zu gewährleisten.
Secrets-Management zur Sicherung von Containern.
DevOps- und Entwicklerteams setzen zunehmend auf Container, um die Entwicklung zu beschleunigen und die Portabilität und Produktivität zu verbessern. Container brauchen Secrets, um auf kritische und sensible Daten zugreifen zu können. Da Container aber kurzlebig sind, lassen sie sich oft nicht gut verfolgen und der Zugriff auf bestimmte Ressourcen kann schwer zu verwalten und zu sichern sein. Mit Sicherheitsmaßnahmen wie Secrets-Management können Container-Anfragen nach Secrets mit nativen Container-Plattform-Attributen authentifiziert und Secrets mit RBAC-Richtlinien für eine granulare Kontrolle verwaltet werden.
Secrets-Management zur Verwaltung von dynamischen und Auto-Scaling-Umgebungen.
Cloud-Anbieter verfügen oft über Auto-Scaling-Funktionen, um die Dynamik (Kurzlebigkeit) und den „Pay-as-you-grow“-Gedanken der Umgebungen zu unterstützen. Dies verbessert zwar die Effizienz, schafft aber auch neue Herausforderungen für das Sicherheitsmanagement, insbesondere im Hinblick auf die Skalierbarkeit. Durch die Implementierung von Best Practices für das Secrets-Management müssen menschliche Benutzer nicht mehr manuell Richtlinien auf jeden neuen Host anwenden. Stattdessen wird dem Host in Echtzeit eine Identität zugewiesen und die aufrufende Anwendung basierend auf der definierten Sicherheitsstrategie sicher authentifiziert.
Secrets-Management zur Sicherung intern entwickelter Anwendungen und COTS-Anwendungen.
Intern entwickelte Anwendungen und Skripte, aber auch Tools und Lösungen von Drittanbietern wie Sicherheitstools, RPA-Tools, Automatisierungstools und IT-Management-Tools erfordern oft umfassenden privilegierten Zugriff auf die gesamte Infrastruktur des Unternehmens, um ihre Funktionen erfüllen zu können. Für ein wirksames Secrets-Management müssen fest programmierte Anmeldedaten von intern entwickelten Anwendungen und Skripten entfernt und alle Secrets zentral gespeichert, verwaltet und rotiert werden, um das Risiko zu minimieren.