Gentoo Logo

[ << ] [ < ] [ Home ] [ > ] [ >> ]


6. Permessi per i file

Indice:

6.a. File leggibili da tutti

Gli utenti normali non dovrebbero avere accesso ai file di configurazione e alle password. Un aggressore può rubare le password da un database o da un sito web, utilizzandole poi per danneggiare, o ancora peggio per distruggere, dei dati. Ecco perché è importante che i permessi sui file siano impostati correttamente. Se si è sicuri che un file è utilizzato solo da root, assegnargli i permessi 0600 e assegnare il file al giusto utente con chown.

6.b. File scrivibili da tutti o da un gruppo

Codice 2.1: Trovare file e directory scrivibili da tutti

# find / -type f \( -perm -2 -o -perm -20 \) \ -exec ls -lg {} \; 2>/dev/null
>writable.txt
# find / -type d \( -perm -2 -o -perm -20 \) \ -exec ls -ldg {} \;2>/dev/null
>>writable.txt

Questi comandi creeranno un lungo file con i permessi di tutti i file aventi il permesso di scrittura impostato per un gruppo o per tutti. Controllare i permessi ed eliminare i file scrivibili da tutti, eseguendo il comando /bin/chmod o-w sui file in questione.

6.c. Files SUID/SGID

I file con il bit SUID o SGID impostato vengono eseguiti con i privilegi dell'utente proprietario o del suo gruppo, e non con quelli dell'utente che esegue il file. Normalmente questi bit vengono usati sui file che devono essere eseguiti come root per poter fare ciò per cui vengono eseguiti. Questi file possono compromettere la radice locale (se contengono buchi nella sicurezza). Ciò è pericoloso, e per questo i file con bit SUID o SGID impostati dovrebbero essere evitati ad ogni costo. Se non si usano questi file, usare chmod 0 su di essi o eseguire l'unmerge del pacchetto da cui essi provengono (controllare a quale pacchetto appartengono usando equery; se non lo si ha già installato digitare emerge gentoolkit). Altrimenti disattivare semplicemente il bit SUID con chmod -s.

Codice 3.1: Trovare files con SUID

# find / -type f \( -perm -004000 -o -perm -002000 \) \ -exec ls -lg {} \;2>/dev/null
>suidfiles.txt

Questo comando creerà un file contenente una lista di tutti i file SUID/SGID.

Codice 3.2: Lista dei binari SUID

/bin/su
/bin/ping
/bin/mount
/bin/umount
/var/qmail/bin/qmail-queue
/usr/bin/chfn
/usr/bin/chsh
/usr/bin/crontab
/usr/bin/chage
/usr/bin/expiry
/usr/bin/sperl5.6.1
/usr/bin/newgrp
/usr/bin/passwd
/usr/bin/gpasswd
/usr/bin/procmail
/usr/bin/suidperl
/usr/lib/misc/pt_chown
/usr/sbin/unix_chkpwd
/usr/sbin/traceroute
/usr/sbin/pwdb_chkpwd

Come impostazione predefinita Gentoo Linux non ha molti file SUID (sebbene questo dipenda da che cosa si ha installato), è comunque possibile ottenere una lista come quella sopraelencata. La maggior parte dei comandi non dovrebbero essere eseguiti da utenti normali, ma solo da root. Togliere il SUID bit da ping, mount, umount, chfn, chsh, newgrp, suidperl, pt_chown e traceroute, eseguendo chmod -s su ogni file. Non rimuovere il bit da su, qmail-queue o unix_chkpwd. Rimuovere setuid da questi file impedirà di eseguire su e di ricevere la posta. Rimuovendo il bit (dove è sicuro farlo) si rimuove la possibilità che un utente normale (o un aggressore) conquisti i privilegi di root attraverso uno di questi file.

Gli unici file SUID che si hanno sul sistema di esempio sono su, passwd, gpasswd, qmail-queue, unix_chkpwd e pwdb_chkpwd. Tuttavia, se si sta eseguendo X se ne potrebbero trovare anche altri, dato che X ha bisogno dell'accesso elevato reso possibile da SUID.

6.d. Binari SUID/SGID e hard link

Un file è considerato cancellato solo quando non ci sono più link che puntano ad esso. Questo potrebbe sembrare strano, ma si consideri che un filename come /usr/bin/perl è in realtà un collegamento all'inode dove i dati sono memorizzati. Un numero potenzialmente infinito di link può puntare al file, e finché tutti questi non sono spariti, il file continua ad esistere.

Se gli utenti hanno accesso a una partizione che non è montata con nosuid o noexec (per esempio, se /tmp, /home, o /var/tmp non sono su partizioni separate) assicurarsi che gli utenti non creino hard links a binari SUID o SGID, altrimenti dopo gli aggiornamenti di Portage essi avranno ancora accesso alle vecchie versioni dei programmi.

Avvertenza: Se si è ricevuto un avviso da Portage riguardante degli hard link residui, e se gli utenti possono scrivere su una partizione che consente di eseguire file SUID/SGID, allora si deve leggere attentamente questa sezione. Uno degli utenti potrebbe tentare di eludere un aggiornamento tenendo la versione datata di un programma. Se gli utenti non possono creare files SUID, oppure se possono eseguire programmi solo utilizzando il caricatore dinamico (partizioni montate con noexec), allora non preoccuparsi.

Nota: Gli utenti non hanno bisogno dell'accesso in lettura a un file per creare un link ad esso, hanno bisogno solo dei permessi di lettura sulla directory che lo contiene.

Per verificare quanti link ha un file, si usa il comando stat.

Codice 4.1: Comando stat

$ stat /bin/su    
  File: `/bin/su'
  Size: 29350           Blocks: 64         IO Block: 131072 regular file
Device: 900h/2304d      Inode: 2057419     Links: 1
Access: (4711/-rws--x--x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2005-02-07 01:59:35.000000000 +0000
Modify: 2004-11-04 01:46:17.000000000 +0000
Change: 2004-11-04 01:46:17.000000000 +0000

Per trovare i file SUID e SGID con collegamenti multipli, si usa find.

Codice 4.2: Trovare binari suid/sgid con collegamenti multipli

$ find / -type f \( -perm -004000 -o -perm -002000 \) -links +1 -ls

[ << ] [ < ] [ Home ] [ > ] [ >> ]


Stampa

Visualizza tutto

Aggiornato il 2 aprile 2010

Oggetto: Rendere sicuri i file.

Kim Nielsen
Autore

John P. Davis
Redazione

Eric R. Stockbridge
Redazione

Carl Anderson
Redazione

Jorge Paulo
Redazione

Sven Vermeulen
Redazione

Benny Chuang
Redazione

Sune Jeppesen
Redazione

Tiemo Kieft
Redazione

Zack Gilburd
Redazione

Dan Margolis
Redazione

Joshua Saddler
Redazione

Stefano Pacella
Traduzione

Cristiano Chiucchiolo
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.