Come creare un semplice correttore di integrità dei file

2

Ho visto molti correttori di file PHP in rete. Fondamentalmente calcolano l'hash sha di un file richiesto. Il tuo PC interroga periodicamente lo script e ti avvisa se l'hash restituito cambia.

Il problema è: se l'autore dell'attacco ottiene l'accesso in scrittura alla mia cartella web, allora può cambiare il correttore di file per restituire sempre il vecchio hash, rendendo il correttore di file completamente inutile e fuorviante.

Quindi, come posso verificare che lo script per il controllo dei file non sia stato modificato?

    
posta Surfer on the fall 29.08.2012 - 23:13
fonte

2 risposte

3

È possibile posizionare il controllo file all'esterno della directory Web e negare le autorizzazioni di lettura / scrittura per l'account che esegue il server Web. In altre parole, non consentire all'account che esegue il server Web di modificare il correttore di file oi valori previsti per i file. Inoltre, assicurarsi che l'account che esegue il server Web non disponga delle autorizzazioni per modificare le autorizzazioni del correttore di file e dei valori previsti.

Puoi anche farlo da una macchina remota, che esegue lo script e ha i valori previsti, usando le cartelle condivise dell'amministratore di Windows (ad esempio \ PC \ D $ \ www \ file.php) o SSH su un Unix sistema basato.

Si tratta di autorizzazioni, poiché l'account che esegue il server Web ha l'autorizzazione minima necessaria per l'esecuzione e non dispone dell'autorizzazione per modificare il file di script e i valori previsti, pertanto non renderà il controllo del file inutilizzabile.

Se sei interessato a un correttore di integrità dei file pesanti, ti consiglio OSSEC .

    
risposta data 29.08.2012 - 23:44
fonte
1

if the attacker gets write access to my web folder

Quindi non archiviarlo nella cartella Web, ma cosa impedisce loro di modificare i file al di fuori di ciò che si pensa come cartella Web?

So, how can I check that the file checker script hasn't been altered?

Non puoi. Sarebbe banale implementare uno script che non è memorizzato sul sistema di destinazione e inviare lo script su una sessione ssh, ma si sta ancora facendo affidamento su molti file sul sistema di destinazione. Lo rende un po 'più difficile però.

Dovresti anche prestare altrettanto attenzione al database delle firme - l'autore dell'attacco non ha bisogno di modificare il codice se può modificare direttamente il database delle firme - questo sicuramente non dovrebbe essere tenuto sul computer remoto .

    
risposta data 30.08.2012 - 10:43
fonte

Leggi altre domande sui tag