Perché l'ID utente e l'ID di gruppo di ogni file corrispondono a un utente esistente?

3

Ho letto nella maggior parte delle guide di hardening per Linux, che dovresti controllare file e directory senza un utente valido o un gruppo valido. Quello che non riesco a trovare è come potrebbe essere usato per un attacco, o come questo potrebbe essere un punto debole, oltre che essere "improprio".

    
posta user857990 20.08.2012 - 09:27
fonte

3 risposte

3

Ogni file deve appartenere a un utente o un gruppo, per il motivo principale dell'esecuzione delle autorizzazioni dei file.

Un concetto basilare ma molto importante di protezione di un sistema è il principio del privilegio minimo : consente agli utenti l'accesso minimo necessario per portare a termine il lavoro.

Ad esempio, il tuo team di sviluppo web potrebbe aver bisogno di accedere alla tua directory / www, ma non dovrebbe aver bisogno di accedere ai tuoi file di sistema. L'impostazione di proprietà e controllo degli accessi appropriati per i tuoi file semplifica l'applicazione del principio dei privilegi minimi limitando la quantità di accesso consentita a ciascun utente.

    
risposta data 20.08.2012 - 09:32
fonte
8

I file hanno sempre un id proprietario e un id di gruppo. Ma se i file vengono copiati da un altro sistema (ad esempio, estratto da un archivio tar), potrebbe non esserci alcun nome assegnato a tali id.

In un secondo momento può essere creato un nuovo utente o gruppo che ottiene il prossimo ID disponibile. Questo id, tuttavia, potrebbe essere lo stesso id usato in precedenza.

Di conseguenza, il nuovo utente / gruppo ottiene l'accesso a tali file.

    
risposta data 20.08.2012 - 09:56
fonte
0

La formulazione di questa domanda è un po 'strana: ogni file appartiene a esattamente un utente e esattamente un gruppo. Ogni file ha set separati di permessi (rwx) per l'utente proprietario, il gruppo proprietario (meno l'utente proprietario se è nel gruppo) e altri. È impossibile per un file non avere quell'unico utente e gruppo.

Se il filesystem ha ACL , potrebbero esserci più utenti e gruppi con permessi specifici su ciascun file.

Utenti e gruppi sono codificati come numeri interi nel filesystem. Questi numeri interi sono chiamati ID utente (uid) e ID gruppo (gid). L'associazione tra questi numeri interi e nomi di utenti e gruppi è di livello superiore, sono forniti dalla libreria standard. Le associazioni sono registrate in database locali come /etc/passwd e /etc/group , e in database di rete come NIS e < a href="http://en.wikipedia.org/wiki/LDAP"> LDAP . Questi database definiscono l'ambito in cui un utente o un gruppo è valido. Generalmente quell'ambito è la macchina locale per un database locale e una rete di macchine che utilizzano lo stesso database per un database di rete, ma c'è molto potenziale per situazioni più complesse; ad esempio, è comune avere utenti di sistema con un ambito per macchina e utenti reali forniti da un database di rete e condivisi su più macchine.

Occasionalmente potresti vedere un file che appartiene a un utente o un gruppo che non ha un nome. Ci possono essere molte ragioni per questo, ma la maggior parte sono un'indicazione che qualcosa non va.

  • L'utente o il gruppo viene fornito da un database di rete attualmente inaccessibile.
  • Un utente o un gruppo è stato rimosso, ma ci sono ancora file ad esso appartenenti.
  • Il file è visualizzato nell'ambito sbagliato:

    • su un protocollo di filesystem remoto come NFS , il server e il client hanno diversi database di utenti o gruppi e il il filesystem remoto non esegue la rimappatura che sarebbe necessaria;
    • su un disco rimovibile che è stato spostato tra sistemi che utilizzano database diversi;
    • estratto da un archivio creato in un ambito diverso;
    • in un ambiente virtuale (che potrebbe essere qualsiasi cosa da chroot su) che utilizza database diversi.

Si noti che in tutti questi casi, ad eccezione del database di rete temporaneamente non disponibile, il fatto che si veda un numero invece di vedere il nome sbagliato dipende dalla fortuna. Se un ID utente è stato rimosso e riassegnato, il nuovo utente con questo ID avrà il controllo sui file rimasti dal vecchio utente con questo ID: per quanto riguarda il sistema operativo, questo è lo stesso utente. Se un file viene visualizzato nell'ambito utente errato e l'ID viene assegnato a nomi utente diversi nei due ambiti, non verrà visualizzato alcun avviso. Quindi, mentre vedere un utente o un gruppo senza nome è un sintomo che qualcosa non va, non puoi fare affidamento sul fatto che il sintomo compaia. Gli utenti e i gruppi senza nome dovrebbero far parte di un controllo del filesystem, ma non sono l'obiettivo principale.

    
risposta data 20.08.2012 - 20:07
fonte

Leggi altre domande sui tag