Un sito conquistato di solito non viene deturpato. Il deturpamento è raro perché mette fine all'accesso; ciò che è comune sono pagine di spam, reindirizzamenti che scattano solo per chi arriva da un motore di ricerca, e posta spedita dal tuo server. A te, con la sessione aperta e l'indirizzo digitato di persona, sembra tutto a posto.
I segnali
- Risultati di ricerca sul tuo dominio che non hai scritto tu.
- Posta partita dal tuo server che rimbalza in quantità che non sai spiegare.
- Un balzo del processore o del traffico in uscita senza un balzo dei visitatori.
- Un visitatore che segnala un reindirizzamento che tu non riesci a riprodurre.
- Il tuo fornitore o un browser che mette in guardia sul sito.
Quattro comandi
# 1. files changed in the last week, ignoring the ones that should change
find /var/www/site -type f -mtime -7 -not -path '*/storage/*' -not -path '*/cache/*' | head -50
# 2. PHP where PHP has no business being
find /var/www/site/uploads /var/www/site/public/img -name '*.php*' 2>/dev/null
# 3. the shapes an injected shell takes
grep -rEl 'eval\(|base64_decode\(|gzinflate\(|assert\(\$' /var/www/site --include='*.php' | head
# 4. logins that succeeded
sudo grep "Accepted" /var/log/auth.log | tail -20
Confronta con qualcosa di affidabile
Se il codice sta in git, la risposta più rapida del mondo è git status sul server: tutto ciò che risulta modificato o non tracciato e che non hai messo tu è la tua risposta in una riga. Per un CMS, riscarica la stessa versione e confrontaci i file del nucleo.
Conta anche il database
Il contenuto iniettato abita spesso nel database anziché nei file, ed è per questo che una scansione pulita dei file dimostra meno di quanto si creda — vedi Malware nel database, non nei file.
