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-21 01:11:03
Message-ID: 20080321021103.20b22a12@iridium.home
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

On Fri, 21 Mar 2008 01:15:14 +0100 Olaf Radicke wrote:

> Am Donnerstag 20 März 2008 23:34:35 schrieb Andreas 'ads' Scherbaum:
> > 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.
>
> Mein Programm benutzt eine PostgreSQL-DB ohne Umwege (über einen Webserver).
> Ich bin der Meinung eine PostgreSQL-DB ist erst mal nicht unsicherer als ein
> Apache. Bisher habe ich zwar ungläubige Blicke geerntet dafür, aber keine
> objektive überzeugende Einwende gehört. Liegt vielleicht daran, das es mehr
> Leute gibt, die mit Apache rumgefummelt haben (und ohne scheu abenteuerliche
> PHP Skripts auf den Rest der Menschheit losgelassen haben), als mit
> PostgreSQL-Server.

Deine Anwendung hat einen anderen Anwendungsfall als ein Webclient ihn
hat. Ich sehe hier immer noch keinen Punkt. Aber das ist wohl auch
nicht beabsichtigt.

> > > 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.
>
> Das ist richtig. Nur wenn du über eine sechsspurige Straße bei Rot rüber
> bretterst, ist die Wahrscheinlichkeit lebend auf der andern Seite an zu
> kommen geringer, als auf einer einspurigen Straße.

Und der Raser auf der einspurigen, geschwindigkeitsbeschränkten Straße
muss bloss mit überhöhter Geschwindigkeit geradeaus über den
Zebrasteifen fahren, um dich zu erwischen. Trotzdem bist du tot.
Komisch, das mehr Menschen beim Überqueren von Zebrastreifen
verunfallen als beim Überqueren von 6-spurigen Straßen.

> > > - 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.
>
> ...Und wird deshalb vom Hobby-Admin nicht gemacht. Oder hast du was anderes
> beobachtet?

Wenn wir hier Hobby-Admins und Sicherheit diskutieren, ist dieser
Thread für mich beendet. Dafür brauche ich keine Fragen in den Raum zu
werfen.

> > 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.
>
> Okay. Mal abgesehen von richtigen Bugs in der DB.

Nicht "mal abgesehen". Wenn ich irgendwo einbrechen will, suche ich mir
die Bugs dort, wo sie nicht erwartet werden, wo die Breitenwirkung aber
effektiver ist als bei einer simplen SQL-Injection.

> > Das gilt nur so lange, wie du innerhalb der Datenbank Software bleibst.
> > Wenn es jemand schafft, daraus auszubrechen - hat er alles.
>
> Sicher. Aber wie realistisch ist das?

Bis zum nächsten Bug. Und ja, es gibt auch Bugs, über die man direkt in
Datenbanken einbrechen kann, ohne vorher SQL nutzen zu müssen.

Es gibt auch Bugs, die Rechteeskalation ermöglichen, da war Ende
letzten oder Anfang diesen Jahres erst etwas, was wohl bis zurück zu
7.3 gepatcht wurde - das finde ich schon sehr realistisch.
Durchsuch mal die CVE Datenbank, da dürftest du fündig werden.

> > > - 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.
>
> Finde ich nicht. Die Möglichkeiten sind sehr begrenzt.
> # TYPE DATABASE USER CIDR-ADDRESS METHOD
> Fünf Parameter. Das ist nichts im vergleich zu einer Apache-Konfiguration.

Und warum gibt es dann so viele Fragen rund um diese 5 Parameter?
Warum kommen so viele User auf die Idee, da einfach mal mit "trust"
alle Probleme zu überwinden? In einer Default Apache Config ändere ich
ungefähr den Hostnamen und den Pfad für document_root, das sind zwei
Parameter, nicht fünf.

Das fällt aber alles in die Kategorie "Hobby-Admin" und gehört hier
nicht hin.

> > > - 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
>
> Auch in der aktuellen 8.1 und 8.2 ?

Aktuell ist PostgreSQL 8.3, der Rest sind nur Versionen, die noch einige
Jahre Support genießen.

Wie dir jedoch aufgefallen ist, ist SSL keine PostgreSQL
Entwicklung sondern dafür wird eine darunterliegende Bibliothek
genutzt. Die kann durchaus für 8.1, 8.2 und 8.3 die gleiche
Versionsnummer - und ggf. die gleichen Fehler - beinhalten.

Es gab auch erst Ende 2007 einen Haufen Probleme mit einer Regexp
Library, die nicht nur von PG sondern von einer Menge Applikationen
mehr genutzt wird. Und Schwups hat man ein Sicherheitsproblem in der
Hälfte der Services, ohne etwas dafür zu können.

> > und MD5 ist schon seit einiger Zeit nichts, was man
> > für Sicherheit einsetzen möchte.
>
> So? Wenn das Passwort nicht gerade aus vier zahlen besteht, wüste ich nicht,
> wie ich das so schnell ausheben soll. Wollen wir ein Test machen? Ich gebe
> dir eine Phrase und die md5. Wenn du das Passwort nach 48h geknackt hast,
> hast du gewonnen. Hier ist sie:
> Frase: rübezahl
> md5sum: 544489dee215eeb6ba1cda68de7ac8e9

Schau, ich habe keine Lust, dir deine Sicherheitsbedenken zu bestätigen
oder zu widerlegen. Das MD5 an sich mittlerweile nicht mehr als sicher
gilt, ist bekannt. Ansonsten darfst du dir das hier durchlesen:

http://eprint.iacr.org/2004/199.pdf
(speziell am Ende der ersten Seite)
http://www.mscs.dal.ca/~selinger/md5collision/

So, und jetzt lass uns das Thema beenden. Passwörter sind nur solange
sicher, wie sie niemand zu Gesicht bekommt. Bricht dir jemand in den
Unix Account ein, wird er auch Zugriff auf die md5 Passwörter erhalten.

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

Deine Provokation ist - provokant. Aber an sich ohne wirkliche Inhalte.

Ich gehe jetzt schlafen.

--
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-23 20:36:48 Re: Apache vs PostgreSQL
Previous Message Michael Renner 2008-03-21 00:44:07 Re: Apache vs PostgreSQL