Offenlegung des Container-Netzwerks

Offenlegung des Container-Netzwerks

Ein veröffentlichter Port und die Datenbank befindet sich im Internet.

Was ist Offenlegung des Container-Netzwerks?

Durch die Veröffentlichung eines Container-Ports wird dieser standardmäßig an jede Schnittstelle auf dem Host gebunden, sodass eine zur lokalen Vereinfachung hinzugefügte Zuordnung eine Datenbank in das öffentliche Internet stellen kann, ohne dass Änderungen an der Cloud-Firewall erforderlich sind. Sie schlagen sich zunächst auf die Seite des Angreifers: Scannen Sie den Host, stellen Sie mit einem alten gestohlenen Passwort eine direkte Verbindung zur Datenbank her und lesen Sie Kundendatensätze, ohne dass sich eine Anwendung im Pfad befindet. Anschließend binden Sie die Zuordnung an 127.0.0.1, überprüfen sie von außen und rotieren die offengelegten Anmeldeinformationen.

Was Sie lernen in Offenlegung des Container-Netzwerks

Offenlegung des Container-Netzwerks — Trainingsschritte

  1. Eine Datenbank im offenen Internet

    Bob befindet sich in nichts. Vor Wochen hat er einen Dump gekauft, der ein Read-only-Datenbank-Credential für Halvexis enthielt, aber ein Credential ist nutzlos, wenn man die Datenbank nicht erreichen kann. Also scannt er die Data-Store-Hosts des Unternehmens, um zu sehen, ob einer von ihnen von außen antwortet.

  2. Direkt hinein, ohne Anwendung

    Es gibt keine Login-Seite, keine API, kein Rate Limit. Ein veröffentlichter Datenbank-Port spricht das rohe Postgres-Protokoll mit jedem, der ihn erreichen kann. Bob richtet einen Datenbank-Client direkt darauf und authentifiziert sich mit dem Credential, das er bereits hatte.

  3. Die Tabelle „residents“ lesen

    Das Credential ist read-only, mehr braucht Bob nicht. Er fragt die Tabelle ab, die die Mieter der Plattform und ihre Daten enthält, direkt aus der Produktion.

  4. Was sich geändert hat

    Bob hat genau dieses Credential seit Monaten und hat es nie benutzt.

  5. Monitoring markiert den Traffic

    Halvexis betreibt Cloud-Monitoring auf seinen Produktions-Hosts. Es weiß nicht, wofür die Datenbank da ist; es meldet, was es gesehen hat.

  6. Den offenen Port finden

    Wenn sich die Security-Groups nicht geändert haben, wurde die Offenlegung auf dem Host selbst erzeugt, dadurch, wie ein Container seinen Port veröffentlicht hat. Alice listet den Datenbank-Container auf und liest die eine Spalte, die angibt, an welche Schnittstellen der Port gebunden ist.

  7. Wo der Port veröffentlicht wird

    Das Port-Mapping stammt aus der Compose-Datei, die den Stack definiert. Alice öffnet sie, um die Zeile zu sehen, die 5432 veröffentlicht hat.

  8. Die Zeile, die es verursacht hat

    Ein einziges Mapping, so geschrieben, wie ein Entwickler es auf seinem Laptop schreibt, hat die Datenbank ins Internet gestellt, als dieser Stack in die Produktion ausgeliefert wurde.

  9. An localhost binden

    Die API erreicht die Datenbank über das Compose-Netzwerk anhand ihres Servicenamens, nicht über einen veröffentlichten Host-Port. Das Host-Mapping muss also überhaupt nicht öffentlich sein. Alice bindet es an die Loopback-Schnittstelle, sodass nur der Host selbst und die Container in seinem Netzwerk darauf zugreifen können.

  10. Die korrigierte Bindung lesen

    Die Änderung ist ein einziges Schnittstellen-Präfix, aber sie ist die gesamte Korrektur. Alice geht das gebundene Mapping vor dem erneuten Deployment Schritt für Schritt durch, um genau zu sehen, was jetzt von wo aus erreichbar ist.

Abdeckung der Sicherheits-Frameworks

CWE

  • CWE-668 Exposure of Resource to Wrong Sphere
  • CWE-306 Missing Authentication for Critical Function

MITRE ATT&CK

  • T1046 Network Service Discovery
  • T1210 Exploitation of Remote Services

CIS Controls

  • CIS 12 Network Infrastructure Management

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.IR Technology Infrastructure Resilience