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