tło
Kontraktowano mnie, aby pomóc firmie w utrzymaniu serwera. Pracuję nad niektórymi mniejszymi projektami PHP, ale również sprawdzam problemy z wydajnością, a ostatnio skanuję dzienniki w poszukiwaniu hakerów.
Ci faceci już od jakiegoś czasu pracują nad swoim serwerem i mają to, co nazwałbym starszą aplikacją. Wykorzystuje magiczne cytaty, zmienne globalne (które pozwalają $id
na zastąpienie $_GET['id']
), używaj .htaccess jako ich jedynego zabezpieczenia w niektórych przypadkach, jak go nazywasz. Koszmar bezpieczeństwa i programowania.
Zostaliśmy zhakowani w przeszłości, głównie za pomocą zastrzyków SQL, które uruchamiałyby SLEEP(99999999)
polecenia i działały jak atak DOS. Na szczęście nie prowadzili „małych stołów bobby”,
XKCD: http://xkcd.com/327/
Ponownie napisałem ich wrażliwe instrukcje SQL z mysql_query()
(nie mysqli) do transakcji PDO. Analizuję również zapytania dotyczące SLEEP
i UNION
, których nie używamy, ale zastrzyki mają. Jak na razie dobrze.
Ostatni numer
Ostatnio powiedziano nam, że rekordy w DB zmieniają się dla użytkowników, takie jak ich adresy e-mail na te przypuszczalnie utworzone przez spamerów.
Zauważyłem, że ich kolumny nie mają last_modified
kolumny, więc nie byliśmy nawet w stanie wiedzieć, kiedy zostały zmienione, nie mówiąc już o kim. Dodałem tę kolumnę, ale to zaledwie pierwszy krok.
Kiedy zaglądałem do tego stołu, zauważyłem, że hasła nie były solone ani nawet mieszane, tylko zapisane jako zwykły tekst.
Komunikacja z klientem
Jak mogę podejść do nich na temat całej sytuacji, jako kontrahenta, bez wymachiwania rękami jak szaleniec? Jakakolwiek rada? Myślałem o spokojnym podejściu,
PROBLEM 1 Streszczenie Dlaczego to jest problem? Co może się stać, jeśli nie zostanie to naprawione Sugerowana poprawka WYDANIE # 2 Streszczenie Dlaczego to jest problem? Co może się stać, jeśli nie zostanie to naprawione Sugerowana poprawka