Ho tradotto un piccolo scritto “Scanning your server for 777 files and directories” che spiega brevemente e bene perchè i file e le directory impostati con i permessi a 777 sono pericolosi ed elenca una serie di comandi utili per trovarli e correggerli.
Una directory o file impostati a 777 sonop aperti al mondo (ed in alcuni casi) con i permessi di scrittura. Quindi, un eventuale buontempone che sa cosa sta facendo, può sfruttare una directory 777 per inserire del codice e anche dei file nel server e utilizzarli per compromettere altri file sul server stesso.
Una directory con i permessi a 777 deve essere usata con parsimonia e, possibilmente mai. È più spesso utilizzatA quando ci sono immagini che devono essere caricate o altri tipi di file che non possono essere eseguiti. Oppure, nei casi in cui le directory sono totalmente sicure attraverso la programmazione.
A proposito dei file php e html.
Qualsiasi script eseguibile (file php e html incluso) non dovrebbero mai, mai essere impostati su 777. Questo consente ai buontemponi di accedere a tali siti, modificare le righe di codice in casi specifici, e potenzialmente distruggere il vostro server. Quindi, qualsiasi script o codice impostato con permessi a 777 è pericoloso. E qualsiasi directory impostata a 777 che ha questi file all’interno è pericolosa.
Trovare tali file e directory facilmente.
Il comando find può essere utilizzato per la ricerca di file e directory impostati a 777. Questo può essere fatto se si ha accesso alla shell o SSH al tuo account o server.
find . -perm 777
restituirà tutte le directory che sono impostati a 777. Funziona ricorsivamente dalla directory corrente, quindi se avete un sacco di file, può richiedere tempo.
find . -perm 777 -name “*.*”
restituirà tutti i file che sono impostati a 777.
find . -perm 777 -name “*.php”
restituirà tutti i file che sono impostati a 777 e sono file php.
find . -perm 777 > temp.txt
se avete un sacco di risultati, si consiglia di inviare i risultati in un file di testo, piuttosto che vederli sullo schermo. il comando > (che è chiamato pipe [tubo] perché comporta lo smistamento dei risultati a qualcos’altro) invierà i risultati in un file, in questo caso ‘temp.txt’.
Scansionare file per trovare codice specifico.
Potrebbe anche essere necessario scansionare file per trovare codice specifico se si pensa che possano essere stati infettati, questo può essere fatto in modo ricorsivo con questo comando, che restituirà i nomi dei file che contengono la stringa di codice:
grep -r -l ‘stringa’ *
stringa: è il codice o la frase che si sta cercando
-r dice che è ricorsiva
-l indica di stampare i nomi dei file
Cambiare i permessi in modo ricorsivo.
Una volta trovato i file non validi, è possibile modificare un gruppo di permessi in modo ricorsivo, altrimenti si dovrebbe fare uno per uno. È possibile eseguire la scansione ricorsivamente e modificare tutti i file, partendo dalla directory corrente, con un unico comando:
find . -name ‘*.php’ -exec chmod 755 {} \;
cambia i permessi di tutti i file php in modo ricorsivo a 755