Suid root: l'importanza di essere sicuri
Vi sarà forse capitato di ascoltare l'oscura dizione di ``bit suid
root'' riferita ad un determinato programma. L'argomento riguarda
i permessi associati ad un file (si veda il paragrafo 2.1);
a questi permessi si aggiungono altre informazioni definibili globalmente
come modalità dei permessi, nelle quali rientra la modalità detta
``suid''.
La modalità suid attribuisce al file in esecuzione i privilegi dell'utente
cui appartiene; se però l'utente cui appartiene è l'amministratore
di sistema, ecco che la modalità suid attribuisce al file
in esecuzione i privilegi di root. Ciò sarà più chiaro con un semplice
esempio.
Facciamo per prima cosa una copia dell'eseguibile cp nella nostra
cartella personale:
-
- $ cd ~
$ cp /bin/cp .
e non dimenticate il punto finale, mi raccomando! Assumiamo
i privilegi di root:
-
- $ su
Password: ****
e cambiamo l'utente proprietario del file cp:
-
- # chown root.root cp
attribuendo al file la modalità suid:
-
- # chmod u+s cp
Infatti se ora facciamo elencare il file:
-
- # ls -l cp
-rwsr-xr-x root root 51212 2004-08-24 17:48 cp
osserviamo che al posto della normale ``x'' compare una ``s'', che
sta ad indicare la modalità suid root.
Torniamo dunque allo stato precedente lasciando i privilegi di root:
-
- # exit
e creiamo il solito file vuoto ``prova'':
-
- $ touch prova
e copiamolo adesso col nostro cp modificato (non quello
di sistema) nel file ``prova2'':
-
- $ ./cp prova prova2
Infine facciamoci fare un elenco per vedere il risultato ottenuto;
vedremmo qualcosa del tipo:
-
- $ ls -l prova prova2
-rw-r-r- 1 morena morena 0 Aug 23 12:56 prova
-rw-r-r- 1 root morena 0 Aug 23 12:57 prova2
Sorpresa! Il file copiato prova2 appartiene a root pur
essendo stato creato da un utente normale. Le implicazioni sulla
sicurezza del sistema derivanti dall'uso di file eseguibili di proprietà
di root in modalità suid sono enormi e pericolose, perchè la funzionalità
suid non consente un uso selettivo sulla base dell'utente che esegue
il comando stesso: in altre parole, chiunque può usare il comando
con i privilegi di root. Infatti uno dei grandi problemi di Linux
è che l'utente root non ha restrizioni, rendendo in pratica Linux
un sistema a ''single point of failure''.
La sicurezza del sistema dovrebbe essere tenuta presente sin dalla
fase del partizionamento dei dischi53 durante l'installazione. Data la vastità e importanza dell'argomento,
si consiglia caldamente di leggere il Securing Debian Manual,
disponibile con:
-
- # aptitude install harden-doc
Intanto assicuratevi che nel vostro /etc/apt/sources.list sia presente
la seguente riga:
- deb http://security.debian.org/debian-security stable/updates main
contrib non-free
Potrete così almeno accedere agli aggiornamenti fatti alla distribuzione
per migliorarne la sicurezza, digitando saltuariamente:
-
- # aptitude update
# aptitude upgrade
Questi comandi aggiorneranno solo i pacchetti che effettivamente risultano
installati sul vostro computer. La distribuzione Debian è caratterizzata
da una cura particolare verso tutti gli aspetti concernenti la sicurezza
e si aspetta che l'amministratore di sistema faccia altrettanto.
Mauro Darida
2006-07-25