Datensicherheit / 2. Server und "Bemerkung eines Eindringlings"
cr
- php
Hallo zusammen,
mir stellen sich grad folgende Fragen, bei denen ich auf eure kompetente Hilfe zurückgreifen möchte:
Wie bemerke ich, dass jemand fremdes Zugriff auf meinen Server hatte und Daten ausgelesen hat? (Scripte "geklaut", txt-Dateien geklaut,...)
Thema Datensicherheit. Momentan habe ich einige Daten in einfachen .txt Dateien gespeichert. Nun habe ich mir folgendes überlegt:
Der User loggt sich (SSL verschlüsselt) mit Benutzername und Passwort auf Server 1 (html-login-Seite) ein, die Daten werden von Server 1 (PHP) abgeändert und verschlüsselt, mit einem Timestamp verstehen an Server 2 gesandt. Server 2 prüft nun als erstes die Daten und gibt als echo die benutzerspezifischen Inhalte der .txt zurück. (nicht gesamten Inhalt)
Server 1 speichert diese Daten nun temporär in einer neuen .txt, welche nach einer Zeit X automatisch gelöscht wird.
Meine Gedanken:
Sollte nun jemand auf Server eins Zugriff erlangen, kann er keine wichtigen Daten klauen, da keine auf diesem Server liegen. Er kann maximal die .php Dateien klauen. Aber auch mit diesen hat er keinen Zugriff auf Server 2, da die Zugangsdaten der jeweilige Nutzer hat. (Benutzername und Passwort wied an Server 2 vom User gesandt)
Er kann maximal erkennen, dass es 2 Server gibt und auf dem 2. Server die Daten liegen.
Was haltet Ihr davon?
Vielen Dank für konstruktive Kritik,
cr
echo $begrüßung;
- Wie bemerke ich, dass jemand fremdes Zugriff auf meinen Server hatte und Daten ausgelesen hat? (Scripte "geklaut", txt-Dateien geklaut,...)
Die Antwort liegt zwischen "gar nicht" und "es ist offensichtlich was anders als sonst". Es kommt ja ganz drauf an, wie "Zugriff haben" genau aussieht, welchen Weg der Jemand genommen hat und was er angestellt hat.
Sollte nun jemand auf Server eins Zugriff erlangen, kann er keine wichtigen Daten klauen, da keine auf diesem Server liegen. Er kann maximal die .php Dateien klauen. Aber auch mit diesen hat er keinen Zugriff auf Server 2, da die Zugangsdaten der jeweilige Nutzer hat. (Benutzername und Passwort wied an Server 2 vom User gesandt)
Warum soll man die PHP-Dateien klauen wollen? Es reicht doch schon, dass man ein Nach-Hause-Telefonieren einbaut und wartet, dass der Benutzer vorbei kommt.
echo "$verabschiedung $name";
echo $begrüßung;
hallo!
- Wie bemerke ich, dass jemand fremdes Zugriff auf meinen Server hatte und Daten ausgelesen hat? (Scripte "geklaut", txt-Dateien geklaut,...)
Die Antwort liegt zwischen "gar nicht" und "es ist offensichtlich was anders als sonst". Es kommt ja ganz drauf an, wie "Zugriff haben" genau aussieht, welchen Weg der Jemand genommen hat und was er angestellt hat.
ok, wie bemerken es dann die großen social netzwerke? denn da gabs ja schonmal die meldung, dass jemand eingedrungen ist und daten geklaut hat.
kann man da etwas tun, um es zu bemerken oder um es auffälliger zu machen?
Sollte nun jemand auf Server eins Zugriff erlangen, kann er keine wichtigen Daten klauen, da keine auf diesem Server liegen. Er kann maximal die .php Dateien klauen. Aber auch mit diesen hat er keinen Zugriff auf Server 2, da die Zugangsdaten der jeweilige Nutzer hat. (Benutzername und Passwort wied an Server 2 vom User gesandt)
Warum soll man die PHP-Dateien klauen wollen? Es reicht doch schon, dass man ein Nach-Hause-Telefonieren einbaut und wartet, dass der Benutzer vorbei kommt.
son sch...daran hab ich garnicht gedacht...ok das konzept hat lücken ;-)
wie kann man die nachhause-flaterate stoppen oder unterbinden? eine idee?
grüße cr
Hallo zusammen,
ich bitte explizit darum, meine Testseite zu hacken. (PHP Script)
Folgendes sind die Spielregeln:
Ich danke allen, die an diesem Versuch teilnehmen!
Grüße cr
und hier die adresse:
http://crtest.cr.funpic.de/
http://crtest.cr.funpic.de/
eine registrierungsroutine und ein reguläres login wären hilfreich - die meisten sicherheitslücken [1] bestehen darin, dass man mit einem normalen login adminrechte durch manipulieren der session bekommen kann oder vergleichbares
[1] pauschalaussage ohne hintergrund ;)
sag mir konkret was du brauchst...einen benutzernamen?
Moin!
sag mir konkret was du brauchst...einen benutzernamen?
Live-Hacks bringen nichts.
Zum einen: Sie können fehlschlagen. Was wäre dann bewiesen? Die Sicherheit hängt von diversen Aspekten ab.
Zum anderen: Sie können erfolgreich sein. Das behebt dann eine Lücke, nämlich die gefundene, sagt aber nichts aus über weitere existierende Lücken.
Stefan Esser hat unlängst in seinem Blog die Folien eines Vortrags veröffentlicht.
Wenn man sich das PDF mal durchliest, und ein wenig Wissen und Phantasie investiert, kann man sich problemlos ausmalen, wo das Fehlerpotential in vielen Applikationen (in diesem Fall von PHP) liegt.
Um mal nur ein paar Highlights zu extrahieren: Die Behandlung von Sessions in PHP bietet viele eher unbekannte Möglichkeiten, sich Sicherheitsprobleme einzuhandeln. Darunter als Krönung die Möglichkeit, dass sich Lücken erst dadurch ergeben, dass zwei unterschiedliche Applikationen auf dem Server liegen und ungünstig zusammenarbeiten, weil bei der Programmierung vergessen wurde, auf genau diesen Aspekt zu achten. Dabei spielen außerdem auch Fragen der Konfiguration von PHP eine Rolle, nicht nur die pure Programmierung.
Solche Aspekte sind nur schwierig aufzudecken, wenn man eine Applikation nur für sich selbst betrachtet.
Das Spannendste in den Folien war die Behauptung Essers, dass man in phpBB2 das mangelhafte Seeding des Zufallszahlengenerators sowie das Abfragen dessen Resultate nutzen kann, um bei einem parallel installierten Wordpress die Passworte vorherzusagen, die das "Passwort vergessen"-Feature vermeintlich zufällig generiert.
Mit anderen Worten: Selbst wenn du selbst (wie empfohlen) den Zufallszahlengenerator nicht seedest, bist du dennoch davon abhängig, dass alle anderen auf dem Server (nicht nur dem einzelnen VHost) installierten PHP-Skripte ebenfalls vernünftig seeden (also besser NICHT seeden, weil alle PHP-Skripte nur auf einen gemeinsamen Zufallszahlengenerator zugreifen), und auch keine Zufallszahl an den Angreifer bekanntgeben.
- Sven Rautenberg
Moin!
- Wie bemerke ich, dass jemand fremdes Zugriff auf meinen Server hatte und Daten ausgelesen hat? (Scripte "geklaut", txt-Dateien geklaut,...)
Wenn derjenige gut war, bemerkst du es nicht.
Wenn er Durchschnitt war, bemerkst du es hinterher durch irgendwelche Spuren, z.B. in Logfiles.
Wenn er blöd war, merkst du, dass mißlungene Versuche stattgefunden haben.
Meine Gedanken:
Sollte nun jemand auf Server eins Zugriff erlangen, kann er keine wichtigen Daten klauen, da keine auf diesem Server liegen. Er kann maximal die .php Dateien klauen. Aber auch mit diesen hat er keinen Zugriff auf Server 2, da die Zugangsdaten der jeweilige Nutzer hat. (Benutzername und Passwort wied an Server 2 vom User gesandt)
Er kann maximal erkennen, dass es 2 Server gibt und auf dem 2. Server die Daten liegen.Was haltet Ihr davon?
Du versuchst, einen einfachen Sachverhalt, nämlich die vernünftige Absicherung eines einzelnen Servers, zu ersetzen durch einen sehr komplexen Sachverhalt, nämlich die permanente Interaktion zweier Server, die sich gegenseitig Zugriff gewähren sollen.
Glaubst du wirklich, dass es einfacher wird, ein System abzusichern, je komplexer das System selbst wird?
Irgendwo las ich unlängst sinngemäß diesen Spruch in einer Signatur:
"Das Debugging des Codes ist doppelt so schwer, wie das Schreiben des Codes. Daraus folgt: Wenn du sehr trickreichen Code schreibst, der deine geistigen Kräfte voll ausschöpft, kannst du ihn nicht mehr debuggen!"
- Sven Rautenberg
Moin!
Moin!
Du versuchst, einen einfachen Sachverhalt, nämlich die vernünftige Absicherung eines einzelnen Servers, zu ersetzen durch einen sehr komplexen Sachverhalt, nämlich die permanente Interaktion zweier Server, die sich gegenseitig Zugriff gewähren sollen.
Glaubst du wirklich, dass es einfacher wird, ein System abzusichern, je komplexer das System selbst wird?
Irgendwo las ich unlängst sinngemäß diesen Spruch in einer Signatur:
"Das Debugging des Codes ist doppelt so schwer, wie das Schreiben des Codes. Daraus folgt: Wenn du sehr trickreichen Code schreibst, der deine geistigen Kräfte voll ausschöpft, kannst du ihn nicht mehr debuggen!"
d.h. du meinst, ich sollte versuchen Server 1 so sicher wie möglich zu gestalten? wenn ich den Server anschaue, kann ich da nicht viel tun, da mein Hoster dies (hoffentlich gut) für mich macht.
Zur Absicherung auf Server eins fällt mir nur ein, dass ich evtl. die txt in einen Berreich legen könnte, der aus dem Web per Aufruf nicht erreichbar ist. Sonstiges, was man tun/beachten kann/sollte?
grüße
Hello,
d.h. du meinst, ich sollte versuchen Server 1 so sicher wie möglich zu gestalten? wenn ich den Server anschaue, kann ich da nicht viel tun, da mein Hoster dies (hoffentlich gut) für mich macht.
Auf Server beim Hoster, an die man nicht herankommt, gehören keine kritischen Daten.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg

Moin!
d.h. du meinst, ich sollte versuchen Server 1 so sicher wie möglich zu gestalten? wenn ich den Server anschaue, kann ich da nicht viel tun, da mein Hoster dies (hoffentlich gut) für mich macht.
Auf Server beim Hoster, an die man nicht herankommt, gehören keine kritischen Daten.
Stimmt vollkommen.
Denn an die Daten kommt ja mindestens der Hoster immer ran, weil der den Admin-Account auf der Maschine innehat und alle Macht besitzt.
- Sven Rautenberg
Hello,
Wenn er Durchschnitt war, bemerkst du es hinterher durch irgendwelche Spuren, z.B. in Logfiles.
Kann man das so einfach sagen?
Gibt es für "normale" Serverzugriffe überhaupt Logfiles bei Linux-Servern?
Wenn ich so ein System planen müsste, dann würde ich die zweite Maschine die Diesnte der ersten kritischen überwachen lassen, z.B. mit iptraf. Das kann dann jegleiche Zugriffe und Antworten loggen. Die müssen dann mit einem hochintelligenten Programm ausgewertet werden.
Leider ist auch eine 100GByte-Platte recht schnell voll, wenn man alles aufhebt. Man müsste also die Logfiles so geschickt aussieben, dass man den ganzen Allgemeinmüll erkennt und schon nach kurzer Zeit rauslöschen kann.
Sicherlich gibt es da auch Systeme im professionellen Bereich. Davon kann ich mir aber noch nicht einmal die Kurzdoku leisten.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg

Guten Tag,
Gibt es für "normale" Serverzugriffe überhaupt Logfiles bei Linux-Servern?
Ich definiere "normale Serverzugriffe" mal als Login(versuch) als ein bestimmter Benutzer: Ja, das kann man loggen. Je nach Distribution werden auch ein dedizierter Logfile geschrieben, oft /var/log/auth oder /var/log/auth.log.
Veränderungen an lokalen Dateien kann man mit Tripwire oder AIDE überwachen.
Wenn ich so ein System planen müsste, dann würde ich die zweite Maschine die Diesnte der ersten kritischen überwachen lassen, z.B. mit iptraf. Das kann dann jegleiche Zugriffe und Antworten loggen. Die müssen dann mit einem hochintelligenten Programm ausgewertet werden.
Nennt sich IDS, Intrusion Detection System.
Leider ist auch eine 100GByte-Platte recht schnell voll, wenn man alles aufhebt. Man müsste also die Logfiles so geschickt aussieben, dass man den ganzen Allgemeinmüll erkennt und schon nach kurzer Zeit rauslöschen kann.
Das machen IDS.
Sicherlich gibt es da auch Systeme im professionellen Bereich. Davon kann ich mir aber noch nicht einmal die Kurzdoku leisten.
Snort oder Samhain sind nicht nur OSS, sondern sogar kostenlos.
Gruß
Christoph Jeschke