Öffentlich erreichbarer Container-Port

Öffentlich erreichbarer Container-Port

Ein veröffentlichter Port kann die Datenbank im Internet erreichbar machen.

Was ist Öffentlich erreichbarer Container-Port?

Wird ein Container-Port veröffentlicht, bindet Docker ihn standardmäßig an alle Netzwerkschnittstellen des Hosts. Eine bequeme Portzuordnung für die lokale Entwicklung kann so eine Datenbank im öffentlichen Internet exponieren, während die Host-Firewall den Port weiterhin als blockiert führt. Zuerst nehmen Sie die Sicht des Angreifers ein: Sie scannen den Host, verbinden sich mit einem alten gestohlenen Passwort direkt mit der Datenbank und lesen Mieterdaten ohne Umweg über die Anwendung. Danach binden Sie die Portzuordnung an 127.0.0.1, prüfen sie von außen und ändern das offengelegte Passwort.

Was Sie lernen in Öffentlich erreichbarer Container-Port

Öffentlich erreichbarer Container-Port — Trainingsschritte

  1. Eine Datenbank im öffentlichen Internet

    Bob hat noch keinen Zugang zu Halvexis. Vor einigen Monaten kaufte er einen Datendump mit Zugangsdaten für einen lesenden Datenbankbenutzer von Halvexis. Ohne Netzwerkzugriff auf die Datenbank sind sie nutzlos. Deshalb scannt er die Datenbank-Hosts des Unternehmens und prüft, ob einer von außen antwortet.

  2. Direkt hinein, ohne Anwendung

    Es gibt weder Anmeldeseite noch API oder Rate Limit. Wer den veröffentlichten Port erreicht, kann direkt das PostgreSQL-Protokoll sprechen. Bob verbindet einen Datenbank-Client damit und meldet sich mit den bereits vorhandenen Zugangsdaten an.

  3. Die Tabelle „residents“ lesen

    Die Zugangsdaten erlauben nur Lesezugriff. Das genügt Bob: Er fragt die Produktionstabelle mit den Daten der Mieter ab. Bob besitzt genau diese Zugangsdaten seit Monaten und hat sie nie benutzt.

  4. Was sich geändert hat

  5. Das Monitoring meldet den Datenverkehr

    Halvexis überwacht seine Produktions-Hosts. Das Monitoring kennt den Zweck der Datenbank nicht; es meldet lediglich den beobachteten Datenverkehr.

  6. Den offenen Port finden

    Wenn die Firewall Port 5432 weiterhin blockiert, lässt etwas auf dem Host Datenverkehr an ihr vorbei: die Art, wie ein Container seinen Port veröffentlicht hat. Alice listet den Datenbank-Container auf und prüft in der Port-Spalte, an welche Netzwerkschnittstellen er 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 entscheidende Zeile

    Eine einzige Portzuordnung, wie sie auf einem Entwicklerrechner bequem ist, machte die Datenbank nach der Bereitstellung im Produktionssystem aus dem Internet erreichbar.

  9. An localhost binden

    Die API erreicht die Datenbank im Compose-Netzwerk über ihren Servicenamen, nicht über einen veröffentlichten Host-Port. Die Portzuordnung muss deshalb nicht öffentlich sein. Alice bindet sie an die Loopback-Schnittstelle. So kann der Host über die Zuordnung auf die Datenbank zugreifen; die API erreicht sie weiter direkt im Compose-Netzwerk.

  10. Die korrigierte Bindung lesen

    Nur ein Schnittstellenpräfix ändert sich, doch es ist entscheidend. Alice prüft die neue Portzuordnung vor der erneuten Bereitstellung: Von wo aus wird die Datenbank dann erreichbar sein?

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