Webserver hacken in der Theorie

PlaciD

Böhser Onkel
ID: 55555
L
11 Februar 2007
722
105
Hi,

ich habe ein Verständnisproblem. Als Programmierer weiß ich viel über das, was auf dem Webserver passiert. Was aber die Sicherheit von Webservern angeht, bin ich noch nicht so versiert.

Folgendes Szenario: Ein Webserver steht hinter einer Firewall, welche alle Zugriffe, außer auf Port 443 (SSL) blockt. Auf dem Webserver selber läuft Linux, ein Apache sowie mySQL.

Variante 1: Der Benutzer sieht nur eine statische HTML-Seite als Index-Seite. Sonst ist nichts auf dem Webserver, außer einer Datenbank mit Daten.
Ist es hier möglich, in die mySQL-Datenbank zu kommen?

Variante 2: Auf dem Server läuft eine PHP-Anwendung. Der Benutzer kann sich über diese Anwendung einloggen und Daten abrufen. Der mySQL-Benutzer, der dazu verwendet wird, hat nur Leserechte auf Teilen der Datenbank.
Ist es möglich, Daten in der mySQL-Datenbank zu verändern?

Der Grund meiner Fragen ist, dass ich letztens ein Gespräch mit einem IT-Systemadministrator hatte, der sehr hohe Sicherheitsvorkehrungen in seinem Netzwerk hat. Leider konnte er mir die o.g. Dinge nicht erklären, und so grübel ich schon die ganze Zeit darüber nach.

Es wäre nett, dass wenn die Antwort auf eine Frage "Ja" lautet, auch eine Erklärung, wie das Vorgehen in einem solchen Fall wäre, mitgeliefert werden würde.

Danke und Grüße,
Sebastian
 
Folgendes Szenario: Ein Webserver steht hinter einer Firewall, welche alle Zugriffe, außer auf Port 443 (SSL) blockt. Auf dem Webserver selber läuft Linux, ein Apache sowie mySQL.

Variante 1: Der Benutzer sieht nur eine statische HTML-Seite als Index-Seite. Sonst ist nichts auf dem Webserver, außer einer Datenbank mit Daten.
Ist es hier möglich, in die mySQL-Datenbank zu kommen?

Variante 2: Auf dem Server läuft eine PHP-Anwendung. Der Benutzer kann sich über diese Anwendung einloggen und Daten abrufen. Der mySQL-Benutzer, der dazu verwendet wird, hat nur Leserechte auf Teilen der Datenbank.
Ist es möglich, Daten in der mySQL-Datenbank zu verändern?
Variante 1: Ja. Es könnten Schwachstellen/Konfigurationsfehler im Apache/MySQLd/Der Firewall existieren, die es ermöglichen, Code auszuführen, die Rechte des Prozesses zu ändern usw usf. Gibt natürlich Möglichkeiten, mit denen man die Chance auf und Auswirkungen eines Einbruchs so gering wie möglich halten kann, aber die 100%ige Sicherheit kann niemand bieten.
Variante 2: Ja. Gründe siehe oben. Bei dynamischen Seiten fällt zusätzlich zu den bereits genannten Quellen auch noch der PHP-Parser als potentielles Sicherheitsrisiko an. Programmierfehler im PHP können Lücken öffnen für SQL Injection, XSS usw usf. Wenn der SQL-Server korrekt funktioniert (wofür keine 100%ige Garantie gegeben werden kann), dann dürfte der User nicht schreiben, aber irgendein User wird ja zwangsweise Schreibrechte haben müssen.

Prinzipiell solltest du davon ausgehen, dass überall, wo Daten übertragen oder gespeichert werden, auch Möglichkeiten zum Missbrauch existieren. Ein Rechnernetz kann immer nur relativ sicher sein und selbst wenn absolut gar keine Möglichkeit _besteht_, technische Schwachstellen auszunutzen, dann gibt es immer noch Social Engineering, Angriffe von innen usw usf.

Wenn du darüber reden darfst, wüsste ich doch gerne mal im groben, wie er denn sein Netz absichert :)