MySQL/bezpieczeństwo zapytania i narzędzia

0

Od jakiegoś czasu ktoś notorycznie dodaje reklamy na moich witrynach.
Zmiana haseł nie pomaga i osoba ta nadal w jakiś sposób dostaje się do bazy danych - dodam, że w grę wchodzi kilkadziesiąt baz z różnymi dostępami!
Struktura, częstotliwość oraz ilość wpisów wskazuje na działanie albo jakimś skryptem albo bezpośrednio zapytaniem.

Teraz moje pytania:
Czy mogę dodać jakiegoś triggera lub coś podobnego na wszystkie bazy danych -> sprawdzał by on zapytania wykonywane na każdej bazie i szukał w nich konkretnej frazy kluczowej?
Może ewentualnie jakikolwiek inny sposób na prześledzenie historii zapytań do wszystkich baz danych pod kątem zapytania UPDATE z dodaniem złośliwego kodu?

Już nie mam pomysłu gdzie i jak szukać przyczyny.
Czasem zdarza się, że kod dodany jest do każdego wpisu, gdzie liczba rekordów jest ok 100 i do kilku różnych tabeli w obrębie danej bazy

0

Pozmieniaj wszystkie hasła, z bazodanowym włącznie. Zaktualizuj CMS.

Ja mam na stronie procesy (cron), które sprawdzają regularnie prawie wszystkie pliki. Jeżeli jest włam, to pojawiają się nowe pliki albo modyfikowane są stare. Może są jakieś automaty do tego, ale ja pisałem ręcznie. Teraz jak mam włam, to od razu o tym wiem (powiadomienie email). Blokuję stronę przez htaccess i główkuję. Aktualizuję wszystkie aplikacje php. Wprowadzam różne inne zabezpieczenia, np. dostęp do admina CMS tylko z mojego ip.

No cóż, ja mam tylko 1 witrynę, to mi łatwiej.

0

podbijam temat!

0

Na początek mień lokalizacje gniazda MySQLa na kompletnie customowe (spoza /var):

socket                         = /jakas/custom/sciezka

Do tego wyłącz połączenia po tcp, opcja skip-networking do sekcji [mysqld]

Następnie w php-cgi/fpm czy czego tam używasz, zmień, by PHP wiedział, gdzie teraz ten socket teraz jest. Możesz też zrobić to w swoim kodzie.

W ten sposób połączenie po tcp nie będzie możliwe - odpada dostęp remote i zdalny z prymitywnych skryptów. Jeśli teraz, w takiej konfiguracji, ktoś przestanie Ci gmerać w bazie, to znaczy, że coś masz na serwerze nieautoryzowanego, albo w kodzie strony, co próbuje uderzać "standardowo" do *:3306. Jeżeli jednak mimo tego, wciąż strona żyje własnym życiem - wzrasta prawdopodobieństwo włamania do Twojego cms i wykorzystywania jakiejś luki o której nie wiesz.

Inwestygacja na poziomie systemu to już inna para kaloszy i nie wiem, czy jesteś zorientowany - w przypadku włamu na serwer wszelkie dane z logów i tak należy uznać za skompromitowane, jednak możesz spróbować po historii logowań, autoryzacji, otwartych połączeniach gdzieś (do/z bazy i/lub procesu php, etc).

1 użytkowników online, w tym zalogowanych: 0, gości: 1