Wie erkennen ob Fehler oder "Hacker"?

CoverUnder

Mitglied
Hallo,


ich habe leider in letzter Zeit ein paar Probleme, bei denen ich einfach ratlos bin und hoffe nun, hier vielleicht Rat zu bekommen. Ich hoffe das ist die richtige Area dazu, mir schien es hier am passendsten.


Also es geht um folgendes:
Ich hab eine Seite (eine Homepage, die mit einem Forum direkt zusammenhängt - selbst geschrieben und demnach alles andere (!) als perfekt). Diese Seite funktionierte bisher tadellos (mal garantiert seit 2007), aber in den letzten Tagen gehen seltsame Dinge vor.
Am Samstag waren auf einmal alle Beiträge im Forum weg. Das betraf exakt eine Tabelle in der Datenbank, deren Inhalt einfach komplett gelöscht war von einer Sekunde auf die andere. Alles andere blieb unangetastet. Hab dann das BackUp vom Vortag rauf und alles war wieder gut.
Und heute: Plötzlich waren vier Benutzer gelöscht (betrifft eben nur vier Datensätze einer Datenbanktabelle). Nur diese vier Datensätze, der Rest scheint unangetastet zu sein. Die Auswahl kommt mir sehr willkürlich vor, alles unterschiedliche IDs und so weiter.


Was würdet ihr in einem solchen Fall tun? Wie erkennt man, woran das liegt? Ob sich da ein Fehler die ganze Zeit durchgezogen hat, der schließelich eine Art Knock-Out verursacht hat, oder ob es sich hierbei um einen "Außenstehenden" (entschuldigt das "Hacker" im Titel - finde den Begriff irgendwie falsch in diesem Zusammenhang?!) handelt, der sich einen Spaß daraus macht? Oder was könnte das noch sein? Wie würdet ihr damit umgehen?


Ich wäre über Tipps wirklich dankbar, da ich echt nicht weiß, wie und wo ich am besten anfange. Das Script sicherer machen - klar... aber sonst? Hm :/

Grüße

edit: Die Seite wurde mit PHP/MySQL aufgebaut
 
Zuletzt bearbeitet:

sheel

I love Asm
Hi

3 Möglichkeiten:
a) Hacker (oder wie auch immer). Ist leider das Wahrscheinlichste.
b) Hardware des Servers kaputt (Festplatte, RAM...)
c) Ein generelles Schadprogramm am Server. Aber unwahrscheinlich, dass dein Forum so gezielt angegriffen wird.

Deine PHP-Skripts sind 99.9999% nicht schuld. Ausschließen kann man es nicht 100%, aber...
nach mehreren Jahren...und außerdem sind das nicht gerade typische Fehler.
Ein Truncate-Table entsteht nicht einfach so aus dem Nichts.
Und solange du keine Möglichkeit schon reinprogrammiert hast,
alle Beiträge zu löschen, kann man das auch nicht versehentlich starten.

Erstmaßnahmen:
-Viel Backups machen. Täglich oder mehr.
-Alle Passwörter und evenutell Benutzernamen ändern.
DB, FTP, Forenaccount (da nur PW, nicht Name)
-Von den Problemzeiten die Logs genau anschauen, wenn du Zugriff hast (Apache, MySQL)
Wer da in Frage kommen würde. Wenn kein Zugriff, beim Hoster anfragen.

Dann, falls du es nicht/nur unvollständig hast, die PHP-Dateien vollständig gegen SQL-Injections absichern. real_escape_string.

Gibt es irgendeine Gemeinsamkeit bei den gelöschten Usern?
Teile des Namens gleich, Teile der ID gleich, oder so was in der Art?
Nacheinander (ohne Andere dazwischen) registriert?
Oder als Letze angemeldet gewesen?
Irgendwas auffälliges?
 

CoverUnder

Mitglied
Hallo,

vielen lieben Dank für deine ausführliche Antwort - sehr hilfreich! Und es tut mir Leid, dass ich mich erst jetzt hier wieder zu Wort melde.

Es werden täglich 1 bis 2 Backups gemacht und seither ist jetzt auch nichts mehr passiert. Bei den betroffnenen Datensätzen konnte ich leider absolut keine Ähnlichkeit feststellen - sieht für mich sehr wahllos aus. Wobei... alle User waren in etwa zur selben Zeit online, aber sie waren nicht die einzigen - es waren auch noch andere zu diesem Zeitpunkt online, denen nichts passiert ist.

Mittlerweile ist allerdings auch nichts mehr passiert. Dann lasse ich die Sache wohl erst einmal ruhen und schaue, ob ob da noch etwas kommt. Ich hoffe mal nicht.

Grüße
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Hi,

mein Vorschlag wäre ein Logbuch, indem festgehalten folgendes festgehalten wird:

- Wann?
- Wer? (IP & Benutzername)
- Welche SQL-Anfrage?
- Evtl noch das Ergebnis der Anfrage (mysql_affected_rows(), mysql_errno() usw.)

Somit kannst du dann an Hand der SQL-Anfrage erkennen ob diese mutwillig verändert wurde und falls ja, den Benutzer ausfindig machen. Evtl findest du dann auch an Hand der Abfrage die Stelle, an der diese generiert wurde und die Lücke dicht machen.

Gruß,
BK