Warum werden in pg_hba.conf manchmal zufällige Regeln hinzugefügt? (postgresql)

7

Ich habe Postgres 10.4 auf einem Linux-Computer eingerichtet, und manchmal gibt es oben in pg_hba.conf zufällig Regeln, die nur eine MD5-Verbindung durch einen Benutzer "pgdbadm" zulassen. Ich bin nicht sicher, ob die Datenbank gehackt wurde, aber nachdem ich das Passwort geändert und überprüft habe, dass kein pgdbadm existiert, sehe ich von Zeit zu Zeit immer noch die neuen Regeln. Ist es möglich, dass die Datenbank kompromittiert ist?

Die drei Regeln lauten, wenn ich mich richtig erinnere, wie folgt:

local all all 0.0.0.0/0 reject
host all postgres 0.0.0.0/0 reject
host all pgdbadm 0.0.0.0/0 md5

Jede Erklärung, was los ist, sowie mögliche Lösungen wären willkommen.

BEARBEITEN : Ich habe festgestellt, dass ich beim Einrichten von pg_hba.conf eine Regel verwendet habe, bei der für alle Verbindungen kein Kennwort erforderlich war. Dies erlaubte wahrscheinlich einem Bot, sich anzumelden und unerwünschte Datenbanken / andere Dinge zu erstellen, also werde ich eine Neuinstallation von Ubuntu durchführen und die Datenbanken sichern.

ethanc
quelle
2
Ich würde die Datenbank sichern und das Betriebssystem von Grund auf neu installieren. Wenn die Maschine kompromittiert wurde, könnte es ein Root-Kit (oder ähnliches) geben
Philᵀᴹ
Ich habe beschrieben, wie ich den Hack ohne Shell-Zugriff repliziert habe - remote über pgAdmin 4 hier: stackoverflow.com/questions/52197486/…
Boyan Penev

Antworten:

6

Wie Sie vermutet haben, ist "pgdbadm" ein von Hackern erstelltes Konto. Es ist das bekannte Konto, das kürzlich von einem Crypto-Mining-Angreifer erstellt wurde, der ungesicherte Postgresql-Superuser-Konten ausnutzt. Das Ändern der pg_hba.conf ist ebenfalls Teil seines MO.

jjanes
quelle
Ich bin gerade auf dieses Problem gestoßen. Ich glaube, es kann nur passieren, wenn der Hacker Zugriff auf meinen EC2-Host hat, was bedeutet, dass mein SSH-Schlüssel kompromittiert ist.
c 2.
1
@ c2 Wenn sie Zugriff auf ein PostgreSQL-Superuser-Konto haben, können sie damit auf die Dateien des EC2-Host-Kontos zugreifen, auf dem der PostgreSQL-Server ausgeführt wird. Sie müssen Ihren SSH-Schlüssel nicht kompromittiert haben, um dies zu tun. Wenn Sie Ihren privaten Schlüssel herumliegen ließen, hätten sie ihn natürlich schnappen können. Normalerweise verfügt ein EC2-Host jedoch nur über den öffentlichen Schlüssel, nicht über den privaten.
Jjanes
2

In einer Standardinstallation von Postgres werden von keinem Programm Regeln zu pg_hba.conf hinzugefügt. Die gesamte Bearbeitung dieser Datei erfolgt manuell.

Sie haben entweder eine Person, die dies tut, oder jemand hat ein Programm hinzugefügt - entweder mit wohlwollender oder böswilliger Absicht -, um dies für sie zu tun.

Sie sollten dies lösen

  1. in Ihrer Organisation, indem Sie bestimmen, wer dies tut; und
  2. durch Ändern von Passwörtern und Entfernen / Widerrufen von SSH-Schlüsseln
Colin 't Hart
quelle
Ich wollte vor allem fragen, was der pgdbadm-Benutzer ist ... es gibt nichts auf Google darüber
ethanc
@ethanc: pgdbadm ist kein "Standard" -Postgres-Benutzer (oder Linux, wenn ich mich nicht irre). Jemand in Ihrer Organisation muss diesen Benutzer hinzugefügt haben
a_horse_with_no_name
@a_horse_with_no_name Während ich dies schreibe, sichere ich meine Datenbanken, aber ja, ich bin der einzige, der den Server verwendet, also muss es ein Bot gewesen sein.
Ethanc
Ich bin gerade auf die gleichen Symptome gestoßen, mit dem gleichen pgdbadm-Benutzer usw. Ich bin mir nicht sicher, ob es sich nur um Bots handelt
A-Entwickler-hat-keinen-Namen
Hat einer von Ihnen irgendwelche Postgres-Admin-Tools installiert?
Colin 't Hart