(Sebbene le risposte e i commenti in Come posso trattare con un server compromesso? sono utili, la mia domanda riguarda più la prevenzione dell'hacking quando non ho il controllo totale (o molto) sul server. Ho accesso SSH ma non privilegi di root. Non riesco a vedere o modificare nulla oltre al mio account utente.)
Mi offro come volontario per un'organizzazione senza scopo di lucro, mantenendo il loro sito web per loro. Siamo stati su una piattaforma di hosting condiviso a basso budget (Bluehost) da diversi anni. Il sito è stato costruito su Wordpress e ho fatto del mio meglio per mantenere aggiornati il core WP e tutti i plugin.
Ma siamo stati violati più volte. A volte era dannoso (deturpando la home page) mentre altre volte era invisibile (ho scoperto file nascosti che sembravano semplicemente consentire a qualcuno di entrare e curiosare).
Mi sono completamente sbarazzato di WP, ricostruendo il sito su Bootstrap. Ho rimosso tutti i file dal server, ho eseguito più scansioni antivirus sulla versione locale del nuovo sito, ho cercato qualsiasi cosa sospetta, quindi ho caricato i file sul server. Ero quasi sicuro al 100% che questa nuova base di codice fosse "pulita".
Ma nel giro di pochi giorni, ho scoperto (confrontando il server con la mia versione locale) un index.php compromesso (un po 'preg-replace 'codice è stato inserito prima della prima riga) e ha trovato un file "logo-small.png" in una sottodirectory che non era realmente un file immagine. Era un grosso pezzo di PHP offuscato che sembrava destinato a cose sgradevoli (ho de-offuscato e visualizzato il codice).
Sapevo che gli host condivisi, spesso con centinaia di siti, potevano essere vulnerabili. A questo punto, diffido totalmente del server su cui ci troviamo. Ma quando ho chiesto a Bluehost se saremmo stati più sicuri su un VPS o su un server dedicato (pensando che sarebbe stato più difficile entrare nella nostra "sandbox"), hanno detto che non avrebbe fatto davvero la differenza.
Quindi sono in imbarazzo. L'organizzazione no profit che aiuto ha un budget limitato. Ma non voglio nemmeno continuare a spendere decine o centinaia di ore per monitorare e riparare il sito. Non so se gli hacker stanno entrando tramite il file system o una porta aperta che non dovrebbe essere aperta.
Esiste una soluzione conveniente che fornisce un "indurimento" molto migliore?