Hintergrund
Ich wurde beauftragt, einem Unternehmen bei der Wartung seines Servers zu helfen. Ich arbeite an einigen kleineren PHP-Projekten, beschäftige mich aber auch mit Leistungsproblemen und scanne kürzlich die Protokolle nach Hackern.
Diese Jungs betreiben ihren Server seit einiger Zeit und haben eine Legacy-Anwendung, wie ich sie nennen würde, in den letzten Zügen. Es werden magische Anführungszeichen verwendet, globale Variablen (die $id
überschrieben werden können $_GET['id']
), .htaccess als einzige Sicherheit in einigen Fällen, wie Sie es nennen. Ein Albtraum für Sicherheit und Programmierung.
Wir wurden in der Vergangenheit hauptsächlich mit SQL-Injections gehackt, die SLEEP(99999999)
Befehle ausführen und als DOS-Angriff fungieren. Zum Glück haben sie keine "kleinen Bobbytische" betrieben,
XKCD: http://xkcd.com/327/
Also habe ich ihre anfälligen SQL-Anweisungen von mysql_query()
(nicht von mysqli) auf PDO-Transaktionen umgeschrieben. Ich analysiere auch die Abfragen für SLEEP
und UNION
, die wir nicht verwenden, aber die Injektionen haben. So weit, ist es gut.
Neueste Ausgabe
Kürzlich wurde uns mitgeteilt, dass sich Datensätze in der Datenbank für Benutzer ändern, z. B. deren E-Mail-Adressen zu denen, die vermutlich von Spammern erstellt wurden.
Mir ist aufgefallen, dass ihre Kolumnen keine hatten last_modified
Kolumne hatten, so dass wir nicht einmal wissen konnten, wann sie gewechselt wurden, geschweige denn von wem. Ich habe diese Spalte hinzugefügt, aber das ist kaum ein erster Schritt.
Als ich in diese Tabelle hineinguckte, bemerkte ich, dass die Passwörter weder gesalzen noch gehasht wurden, sondern nur als Klartext gespeichert wurden.
Client-Kommunikation
Wie kann ich als Bauunternehmer mit ihnen über die gesamte Situation sprechen, ohne meine Arme wie ein Verrückter zu bewegen? Irgendein Rat? Ich dachte eine ruhige Annäherung an,
FEHLER 1 Zusammenfassung Warum ist dies ein Problem Was kann passieren, wenn dies nicht behoben ist? Vorgeschlagene Lösung AUSGABE 2 Zusammenfassung Warum ist dies ein Problem Was kann passieren, wenn dies nicht behoben ist? Vorgeschlagene Lösung