Gairigo hat geschrieben:Absolut korrekt, Allerdings erklärt Deine Aussage nicht, woher der "angebliche Täter" überhaupt wußte, dass ihr ein eigenes Modul entwickelt habt und wo auch immer dieses auf dem phpbb.de Server liegt und das es in dem, Eurem eigenen Modul einen Programmierfehler gab!
Diese Kenntnis ist nicht nötig. Ich könnte Dir in ca. 30 Minuten ein Script schreiben das folgendes macht:
1. alle Urls eines Projektes einliest (Crawler)
2. jede Url erneut aufruft, wobei aber jede einzelner Parameter modifziert wird
3. die Ergebnisseite auswertet
Ein Beispiel:
Die Url zu diesem Topic lautet:
http://www.phpbb.de/viewtopic.php?t=164 ... highlight=
Nun nehme ich die URL auseinander und zerlege die Parameter:
t=164185
start=0
postdays=0
postorder=asc
highlight=
Und jetzt rufe ich die URL erneut auf, aber setze bei jedem Parameter einen zusätzlichen Parameter an:
t=164185+union+select
start=0+union+select
postdays=0+union+select
postorder=asc+union+select
highlight=+union+select
und baue die URL wieder zusammen:
http://www.phpbb.de/viewtopic.php?t=164 ... ion+select
Die Ergebnisseite analysiere ich nun händisch oder automatisch auf die Ausgabe einer MySQL-Fehlermeldung. Sollte eine kommen, so kann ich den entsprechenden Parameter ausbauen. Ich erkläre jetzt nicht weiter, welche Techniken noch möglich wären, aber es gibt noch weitere Ausbaustufen weitere Lücken zu analysieren.
Das ist übrigens auch ein Grund, weshalb man die Ausgabe von Fehlermeldungen unterdrücken sollte. Daher sollte man die DB-Klasse so ändern, dass sie im Fehlerfall lieber in eine Logdatei schreibt oder eine Email versendet (an den Webmaster). Gerade Emails sind ganz gut, um Hackerversuche zu erkennen und das evtl. Loch zu stopfen.
Diese Technik hat aber auch Nachteile, man muss einen Crawler laufen lassen, der evtl. zurückverfolgbar ist und man fällt auf Grund der massenhaft falschen Anfragen auf.
Ich will Dir nur klar machen, dass keine Suche nach Modulen oder sonstigem nötig ist, um dann erst nach einer evtl. Lücke zu suchen. Vielleicht war es auch nur ein Zufall und ein bekannter Link hatte eine Fehlermeldung ausgegeben, die vorher nicht aufgefallen war.
Wo ich Dir aber recht gebe ist die zielgerichtete Attacke gegen mehrere Ziele und diese auch mit Erfolg. Wobei ich nicht ausschließen will, dass diese Attacke über mehrere Monate ging. Denn nichts ist besser, als die Kontrolle über etwas zu erlangen und lange unerkannt zu bleiben. Man darf nämlich nicht vergessen, dass der Hacker nur aufgefallen ist, weil er sich selbst verraten hat.
Das ist auch ein Grund warum Ebay mehr als 2 Jahre lang offen war. Die Hacker haben die Lücken nicht angesprochen, sondern nur die Lücke dazu genutzt Daten zu verkaufen oder andere Mitglieder zu falschen Überweisungen / Käufe zu bringen. Bei Ebay konnten die Hacker übrigens in der Zeit auf alle Mitgliedsdaten zugreifen und damit auch auf Bankdaten. In der Presse war vor kurzem noch ein anderer Bericht von einem Onlineshop von dem alle Kreditkarten-Daten geklaut wurden. Dort war man tatsächlich fahrlässig. Man speicherte die CVV/CVC-Nummer, die ja bekanntlich zur Verfikation einer Kreditkarte dient und gar nicht gespeichert werden darf.
Ich denke es sollten alle aus dem Vorfall lernen, denn wie die Hacker ja bestätigten, war der Übeltäter keine sonderliche Leuchte im Business.
Also:
- nutzt keine Passwörter doppelt
- Passwörter sollten immer lang sein und aus Kleinbuchstaben, Großbuchstaben, Zahlen UND Sonderzeichen bestehen
- ein Passwort darf niemals in irgendeinem Wörterbuch zu finden sein (egal welcher Sprache)
- verschlüsselt wenn möglich die Emailadressen in Eurer Datenbank (ich arbeite derzeit an einem AES-Verfahren)
- nutzt ein Verschlüsselungsverfahren für Passworter das dem von phpBB3 ähnelt oder entwickelt ein eigenes (Random Salt, langwierige Berechnung)
- keine genauen Fehlermeldungen ausgeben
- stellt online keine Backup-Tools zur Verfügung (mysqldumper, foreninterne systeme, etc.)
- stellt euch vor, ihr wärt ein Hacker und gerade mit dem Adminlogin online
Gerne fasse ich auch noch mal getrennt ein paar Sicherheitsinformationen zur Verfügung.
Ach ja: Ich teste eure Seite nicht (ich hab so eine Anfrage mal bekommen), in dem ich sie für euch versuche zu hacken. Ich habe bei meinem eigenen Projekt schon genug um die Ohren und hacken ist nicht gerade ein Geschäft was ich als lukrativ bezeichnen würde. Den Stundenaufwand könnte auch keiner denke ich bezahlen.