Perché i file non assegnati a un utente sono considerati a rischio per la sicurezza? [duplicare]

86

Dalla Bibbia di Linux, edizione 9:

Files that are not assigned to any username are considered to be a security risk.

Come è possibile e come potrebbe essere sfruttato?

Modifica: la mia domanda non è un duplicato della domanda menzionata perché la mia domanda si concentra sul processo di creazione dell'utente invece di concentrarsi sul principio del minimo privilegio.

    
posta AXANO 04.01.2018 - 02:25
fonte

1 risposta

121

Su un sistema Linux puoi facilmente eliminare un utente senza dover eliminare alcun file di proprietà dell'utente. Tale file rimarrà al suo posto e l'ID utente del proprietario del file (che è memorizzato come attributo del inode ) rimane invariato . In questo modo un file può diventare effettivamente ownerless.

Se successivamente crei un utente con lo stesso ID, l'utente diventerà automaticamente il proprietario dei file orfani precedentemente. È così che un nuovo utente può involontariamente (o con intenzioni malevole) diventare il proprietario di file che non dovrebbero possedere, il che ovviamente è dannoso per la sicurezza.

Tieni presente che userdel ha uno switch in più per rimuovere gli utenti insieme ai loro file, ma rimuoverà solo i file da alcuni posizioni fisse, come la home directory:

 -r, --remove
       Files in the user's home directory will be removed along with
       the home directory itself and the user's mail spool. Files
       located in other file systems will have to be searched for
       and deleted manually.

Potresti voler utilizzare find con l'opzione -nouser per scoprire i file con un proprietario inesistente:

 -nouser
    No user corresponds to file's numeric user ID.

Ecco una rapida demo su Arch Linux.

Aggiungiamo un utente alice e rendiamola proprietaria di un file foo .

[root@box /]# useradd alice
[root@box /]# touch foo
[root@box /]# chown alice foo
[root@box /]# ls -l foo
-rw-r--r-- 1 alice root 0 Jan  5 02:59 foo

Ora eliminiamo alice .

[root@box /]# userdel alice
[root@box /]# ls -l foo
-rw-r--r-- 1 1001 root 0 Jan  5 02:59 foo

ls non può determinare il nome del proprietario e mostra solo l'ID proprietario numerico 1001 . Ora aggiungiamo un nuovo utente bob .

[root@box /]# useradd bob
[root@box /]# ls -l foo
-rw-r--r-- 1 bob root 0 Jan  5 02:59 foo

Poiché a bob è stato assegnato il prossimo ID utente gratuito, ora è automaticamente il proprietario del file.

    
risposta data 04.01.2018 - 02:41
fonte

Leggi altre domande sui tag