Avanti Indietro Indice

12. Problematiche di sicurezza

PATH può provocare dei rilevanti problemi di sicurezza. Un modo molto comune per utenti non autorizzati di accedere ad un sistema è quello di sfruttare degli errori nell'impostazione di PATH. È facile perpetrare attacchi di tipo trojan horse se un cracker riesce a fare in modo che root o un altro utente esegua una sua versione dei comandi.

Uno sbaglio comune nel passato (?) era quello di tenere '.' nel PATH di root. Un cracker potrebbe creare un programma "ls" nella sua home directory. Se root esegue:

# cd ~cracker
# ls

esegue il comando ls del cracker.

Indirettamente ciò si applica a tutti i programmi che vengono eseguiti come root. Se un altro utente può scrivere su un file, quel file non dovrebbe essere mai eseguito da nessun processo demone importante. In alcuni sistemi /usr/local/bin contiene programmi a cui vengono applicati controlli di sicurezza meno severi, viene semplicemente rimosso dal PATH dell'utente root. Tuttavia è risaputo che alcuni demoni eseguono "foo" usando il PATH "/usr/local/bin/:..."; è possibile "imbrogliare" il demone facendogli eseguire "/usr/local/bin/foo" al posto di "/bin/foo". È probabile che chiunque possa scrivere su "/usr/local/bin" possa anche entrare senza autorizzazione nel sistema.

È molto importante considerare in quale ordine le directory sono elencate in PATH. Se /usr/local/bin viene prima di /bin ci troviamo di fronte ad un rischio per la sicurezza del sistema, se viene dopo non è più possibile sostituire il comando /bin/foo con qualche versione localizzata in /usr/local/bin/foo.

Bisogna ricordare che in Linux la valutazione del PATH è eseguita al livello delle chiamate di sistema. Dovunque ci sia un file eseguibile viene fornito un PATH in cui viene ricercato un nome (se esso non contiene il percorso completo) almeno nelle directory /bin e /usr/bin e probabilmente anche in molte altre cartelle.


Avanti Indietro Indice