Sicherheit & Datenschutz

Angreifbarkeit voraussetzen: Überwachung des Verhaltens von Microservices für mehr Sicherheit

Ein Beitrag im Kubernetes Blog aus dem Jahr 2023 argumentiert, dass alle Microservices verwundbar sind. Er schlägt Sicherheits-Verhaltensanalysen vor, um Exploits durch die Überwachung von Client- und Service-Mustern zu erkennen und zu blockieren.

A magnifying glass inspecting a glass cube with circuit lines, revealing hidden red warnings.
Bild: Kubernetes Blog, lizenziert unter CC BY 4.0

Automatisch aus dem englischen Original übersetzt.

In einem Beitrag im Kubernetes Blog im Januar 2023 argumentierte David Hadas von IBM Research Labs, dass Entwickler akzeptieren müssen, dass ihre Microservices inhärent verwundbar sind. Er schlug vor, den Fokus von der Erstellung undurchdringlicher Systeme auf die Überwachung verhaltensbezogener Anomalien zu verlagern, die auf Ausnutzungsversuche hindeuten.

Was passiert ist

Die Investitionen in Cybersicherheit sind jährlich gestiegen, doch die Zahl erfolgreicher Cyber-Vorfälle nimmt weiterhin zu. Hadas stellte fest, dass dieser Trend darauf hindeutet, dass traditionelle Strategien, die darauf abzielen, jede Schwachstelle zu beseitigen, versagen. Offensive Tools werden immer ausgefeilter, und finanzielle Anreize für Angreifer stellen sicher, dass sie stets einen Einstiegspunkt finden, sofern einer existiert. Folglich ist das Verlassen auf die Erstellung eines vollständig nicht verwundbaren Dienstes keine tragfähige Strategie mehr.

Der Artikel geht davon aus, dass Organisationen bewusst zugeben sollten, dass ihre Dienste unbekannte Schwächen enthalten. Anstatt zu versuchen, alle Schwachstellen zu entfernen, was in der Praxis oft unmöglich ist, sollten sich Teams darauf konzentrieren, zu verhindern, dass diese Schwachstellen ausgenutzt werden. Wenn ein Angreifer eine Schwäche nicht erfolgreich nutzen kann, bleibt das Risiko theoretisch statt realisiert. Dieser Wandel der Denkweise verlagert die Verteidigungsgrenze von der Code-Integrität zum Laufzeitverhalten.

Hadas führte das Konzept der „Security-Behavior Analytics“ als primären Mechanismus für diesen neuen Ansatz ein. Durch die Analyse, wie Clients mit Diensten interagieren und wie Dienste antworten, können Teams Unregelmäßigkeiten erkennen, die auf einen laufenden Angriff hinweisen. Diese Methode erfordert keine vorherige Kenntnis der spezifischen Schwachstelle; es reicht aus, zu erkennen, dass die aktuelle Interaktion von den erwarteten Normen abweicht.

Wie es funktioniert

Die Überwachung des Sicherheitsverhaltens basiert auf der Vorhersehbarkeit von Microservice-Interaktionen. In einem gut gestalteten System senden Clients regelmäßige, strukturierte Anfragen, und Dienste antworten auf konsistente Weise. Ein Exploit, wie etwa eine SQL-Injection, zwingt das System zu irregulärem Verhalten. Beispielsweise könnte ein bösartiger Client einen Benutzernamen mit Sonderzeichen wie Leerzeichen oder Gleichheitszeichen senden, was harmlose Benutzer niemals tun. Ebenso könnte der Dienst länger brauchen, um zu antworten, oder ungewöhnlich große Datensätze zurückgeben, wenn er eine solche Anfrage verarbeitet.

Figure from the original article: Angreifbarkeit voraussetzen: Überwachung des Verhaltens von Microservices für mehr Sicherheit
Abbildung aus dem Originalartikel · Kubernetes Blog · CC BY 4.0

Durch die Überwachung dieser Abweichungen können Sicherheitstools Angriffe auf mehreren Ebenen blockieren. Die clientseitige Überwachung erkennt irreguläre Anfrage-Muster, bevor sie die Anwendungslogik erreichen. Die dienstseitige Überwachung identifiziert abnormal interne Aufrufe, Antwortzeiten oder Datenausgaben. Die Kombination beider Schichten schafft eine robuste Verteidigung, die viele Schwachstellen unausnutzbar macht, selbst wenn der zugrunde liegende Code fehlerhaft bleibt. Der Angreifer muss einen Exploit erstellen, der normales Verhalten perfekt nachahmt, was deutlich schwieriger ist als das Finden eines Code-Fehlers.

Dieser Ansatz ist besonders effektiv in Microservice-Architekturen im Vergleich zu Monolithen. Monolithische Anwendungen verflechten verschiedene Funktionen, was es schwierig macht, zwischen verschiedenen Arten von Anfragen und internem Verhalten zu unterscheiden. Microservices haben per Design abgegrenzte Kontexte und klare Schnittstellen. Diese Modularität legt den internen Datenverkehr offen und definiert strenge Erwartungen für jede Komponente, sodass Beobachter leichter Anomalien in bestimmten Diensten ohne Rauschen von unrelated Prozessen erkennen können.

Wichtige Details

  • Der Artikel identifiziert vier Phasen des Lebenszyklus eines Dienstes, die unterschiedliche Überwachungsstrategien erfordern: Normalbetrieb, bekannte CVE-Schwachstelle, Verfügbarkeit aktiver Exploits und Missbrauch eines Pods.
  • Während der Phase „Vulnerable“, wenn eine CVE veröffentlicht wurde, aber das Patching Wochen dauert, kann die Überwachung Anfragen blockieren, die dem spezifischen Muster der Schwachstelle entsprechen.
  • In der Phase „Exploitable“ können Tools eingehenden Traffic basierend auf bekannten Exploit-Signaturen filtern, um die Ausführung zu verhindern.
  • Wenn ein Angreifer einen Pod missbraucht, kann das System die kompromittierte Instanz identifizieren und neu starten, während gesunde Pods weiterlaufen.
  • Guard, ein Open-Source-Projekt unter dem CNCF Knative-Projekt, wird als Tool angeführt, das diese eigenständige Sicherheits-Verhaltensüberwachung für Kubernetes HTTP-Workloads bietet.
  • Die Microservice-Architektur ist für diese Überwachung grundsätzlich besser geeignet, da ihr modularer Aufbau klare Grenzen und vorhersehbare Interaktionsmuster offenlegt.

Warum es wichtig ist

Für Software-Ingenieure und technische Leiter reduziert diese Perspektive den Druck, perfekte Codesicherheit zu erreichen, was oft ein unrealistisches Ziel ist. Stattdessen betont sie operative Resilienz. Indem Teams akzeptieren, dass Schwachstellen existieren werden, können sie Prioritäten setzen, um Erkennungs- und Reaktionsmechanismen in ihre Infrastruktur zu integrieren. Dies steht im Einklang mit Zero-Trust-Prinzipien, bei denen Vertrauen nie vorausgesetzt wird und die Überprüfung kontinuierlich erfolgt.

Figure from the original article: Angreifbarkeit voraussetzen: Überwachung des Verhaltens von Microservices für mehr Sicherheit
Abbildung aus dem Originalartikel · Kubernetes Blog · CC BY 4.0

Die Implementierung verhaltensbasierter Sicherheit verändert auch die Sichtweise auf Incident Response. Anstatt auf einen Patch zur Behebung einer bekannten CVE zu warten, können Teams Verhaltensregeln bereitstellen, um die Bedrohung sofort zu mildern. Dies ermöglicht es Diensten, online und funktionsfähig zu bleiben, während Sicherheitsteams die Ursache beheben. Es wandelt Sicherheit von einer Gatekeeping-Funktion in einen kontinuierlichen operativen Schutzwall um.

Darüber hinaus nutzt dieser Ansatz die bestehenden Vorteile von Microservices. Teams investieren bereits aus Leistungsgründen in Observability und Monitoring. Die Erweiterung dieser Tools um Sicherheits-Verhaltensanalysen fügt eine Schutzschicht hinzu, ohne dass ein kompletter architektonischer Umbau erforderlich ist. Es verwandelt Standard-Telemetrie-Daten in ein Sicherheitsasset und lässt die Investition in Observability doppelte Dividenden bringen.

Was Sie tun können

  • Prüfen Sie Ihr aktuelles Monitoring-Setup, ob es detaillierte Metadaten zu Anfragen und Antworten erfasst, die für die Verhaltensanalyse benötigt werden.
  • Definieren Sie Baseline-Verhalten für Ihre kritischen Microservices, einschließlich typischer Anfragestrukturen, Antwortzeiten und Datenvolumina.
  • Implementieren Sie Warnungen für Abweichungen von diesen Baselines, wie etwa ungewöhnliche Zeichensätze in Eingabefeldern oder Spitzen bei der Größe der Antwort-Payloads.
  • Erkunden Sie Tools wie Guard aus dem Knative-Projekt, um dedizierte Sicherheits-Verhaltensüberwachung zu Ihren Kubernetes-Clustern hinzuzufügen.
  • Entwickeln Sie Playbooks für den automatischen Neustart kompromittierter Pods bei erkanntem Missbrauch, um die Kontinuität des Dienstes sicherzustellen.

Tools aus dem Bytechap-Shop

Weiterlesen

Alle Artikel