Mailinglisten-Archive |
Hi Liste, hallo Christian/Burkhard ,
Christian Peer* schrieb:
> Ein Kunde möchte im Zuge eines Webauftrittes eine Datenbank
> aufbauen. Nun möchte er, daß diese sicher ist, da es teilweise
> sensible Daten sind.
>
> Was spricht gegen mySQL auf dem Webserver?
> Ist es notwendig eine Datenbank im LAN des Kunden aufzubauen
> (Firewallgeschützt), auf welche dann zugegriffen wird?
Sowas habe ich dazu draussen gesehen/genutzt :
a) Der MySQL ist nur von innen, nicht von
aussen ansprechbar - dh. er steht nur über
Unix-Socket, nicht auf Port 3306 zur Verfügung.
Auf diese Weise kann er nur über die PHP-Scripte
auf dem Server angesprochen werden.
( Siehe auch "Server bietet zuviele Dienste an" bei
http://www.koehntopp.de/kris/artikel/websec/ )
b) Die PHP-Scripte misstrauen allem, was von draussen
kommt - dh. überprüfung aller GET/POST/Cookie-Parameter,
auch die, die eigentlich von einem selbst kommen
(sollten) . Hilfe kann man z.B. von den
OOHForms und ShellEscape/addslashes bei system/SQL-
Anfragen . Besonders berücksichtigen sollte man wohl,
dass PHP alles moegliche Extern includen kann -
also z.B. auch include-Files, und damit zusaetzliche
Möglichkeiten bietet.
c) Es liegt nur eine Kopie der relevanten Daten auf dem
Webserver.
Wenn firmeninterne Tabellen benutzt werden sollen,
benutzt man auf dem Webserver nur regelmaessig
aktualisierte Kopien - und arbeitet nicht auf den
Originaldatenbanken. Für die Datenaktualisierung
öffnet man ein Zeit/IP-Fenster von innen zum
externen Server.
Der Webserver sollte nicht in der demilitarisierten
Zone im firmeninternen Netz stehen, sondern ausserhalb -
aber natuerlich kann man ihn trotzdem durch einen
Firewall/Packetfilter schützen .
Ein Server im LAN würde einem erfolgreichen Hacker
gleich Zugriff auf das gesamte Firmennetz geben.
d) ein IDS (Intrusion Detection System) installieren.
Ich installiere z.B. auf den Servern eine aktuell
gehaltene Version von Snort, auf die Weise behält man
das aktuelle "Klima" ganz gut im Auge.
e) vertrauliche Daten nur ueber SSL . Damit
gewährleistet man nicht nur die eigene Sicherheit,
sondern auf die des Klienten :-) .
Ich vermute mal, dass es noch eine Reihe Dinge mehr gibt,
aber dazu koennen sich ja auch andere äussern :-) .
Faustregeln sind vielleicht noch :
Nur 22-ssh 80-http und 443-https als offene Ports,
BugTraq lesen . Und vielleicht die Nmap-Ergebnisse
des Defacement-Mirrors auf http://alldas.de .
Viele Grüße, johann
PS: Mit welchem Recht resettest Du eigentlich immer meine
IRC-Connection ? Hmmm ?
php::bar PHP Wiki - Listenarchive