Re: Apache vs PostgreSQL

From: Andreas 'ads' Scherbaum <adsmail(at)wars-nicht(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Apache vs PostgreSQL
Date: 2008-03-20 22:34:35
Message-ID: 20080320233435.166cac67@iridium.home
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

On Thu, 20 Mar 2008 20:53:37 +0100 Olaf Radicke wrote:

> Hier mal eine Hypothese als Diskussionsgrundlage:

mir stellt sich die Frage, was genau du mit deiner Diskussion erreichen
möchtest.

> Ich behaupte mal das ein richtig konfigurierte PostgreSQL-Datenbank direkt im
> Internet verbunden nicht unsicherer ist als ein Apache Webserver.

Sicherheit bezieht sich nicht auf die Menge aller Schnittstellen nach
aussen. Ein Fehler in der einen Schnittstelle reicht aus, um die gesamte
proklamierte Sicherheit über den Haufen zu werfen.

> - Eine Apache-Konfiguration ist wesentlich komplexer als eine
> PostgreSQL-Konfiguration, wenn man alle gängigen Module einschließt
> (PHP,CGI,WebDAV,Python...)

Es gibt unzählige Module in contrib und noch mehr, die man extra dazu
laden kann. Ich sehe den Punkt nicht.

> - Es gibt keine strikten Trennungen der Domains in Apache. Hast du eine
> gehackt - hast du alle gehackt.

Konzepte wie suexec, getrennte Zugriffsrechte oder jails existieren und
können auch für Apache angewandt werden. Natürlich ist das etwas
Aufwand ...

> - Es gibt gibt keine Rollen, Gruppen, oder User in Apache. Alles wird vom
> selben Daemon ausgeführt. Rechtebeschränkung von Skripten ist deshalb sehr
> schwierig.

Schwierig ist nicht gleich unmöglich.
Schwierig ist gleich Aufwand.

Wenn du Sicherheit haben möchtest, musst du etwas dafür tun. Wenn du
nach einem ersten Fehler (sprich: Einbruch) den Rest der Installation
schützen möchtest, sollten tunlichst nicht alle Domains unter den
gleichen Rechten laufen.

Wenn dir jemand über PostgreSQL direkt in den dahinterstehenden Unix
User einbricht, hat der auch Kontrolle über die gesamten Daten. Dann
sind all die ACLs, Nutzer, Gruppen und Zugriffsbeschränkungen aus
pg_hba.conf nur Makulatur.

> - Die Datenbanken innerhalb des Cluster sind sauber getrennt. Wenn eine
> gehackt wurde, kommt man nicht so ohne weiteres in de nächste.

Das gilt nur so lange, wie du innerhalb der Datenbank Software bleibst.
Wenn es jemand schafft, daraus auszubrechen - hat er alles.

> - Die Konfiguration der Zugangsberechtigungen ist klar und zentral in
> pg_hba.conf geregelt. pg_hba.conf ist das Nadelöhr an dem niemand vorbei
> kann.

Und wird gern umgangen, indem ganze IP-Bereiche auf "trust" geschaltet
werden. Sicherheit ist etwas anderes und pg_hba.conf ist kompliziert
und umständlich. BTST.

> - Man kann erzwingen, das der Client sich nur mit ssl und md5 anmeldet und
> jeder weitere Kommunikation abgeschirmt ist.

Es gab in der Vergangenheit Schwachstellen in diversen SSL
Implementierungen und MD5 ist schon seit einiger Zeit nichts, was man
für Sicherheit einsetzen möchte.

> - Wenn man tigger und prozedurale Sprachen verbietet, ist es für den User sehr
> schwer das System aus zu tricksen.

Was haben Trigger damit zu tun? Und wie verbietest du Trigger?

> Zum Schluss noch eine provokante Polemik:
>
> Oft hört man, das nur der Apache direkt Datenbank Zugriffe dürfe, um ihn vor
> dem Böse Internet zu schützen. Ich behaupte mal, ein Apache von dem die
> Datenbank ausgeht, das von ihr keine Angriffe kommen, ist gefährlicher, als
> das Internet selber.

Also, deine Mail ist schön geschrieben, aber gängige
Sicherheitskonzepte - so sie angewandt werden - sehen anders aus.

Bis dann

--
Andreas 'ads' Scherbaum
German PostgreSQL User Group
European PostgreSQL User Group - Board of Directors

In response to

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Olaf Radicke 2008-03-21 00:15:14 Re: Apache vs PostgreSQL
Previous Message Olaf Radicke 2008-03-20 19:53:37 Apache vs PostgreSQL