L'ACL predefinito in Linux è un difetto di sicurezza?

2

Attualmente sto imparando il sistema Linux e ho una domanda sull'ACL Linux predefinito.
Sulla mia macchina virtuale, tutti i file creati sono impostati con le autorizzazioni predefinite come segue:

-rw- rw- r--

In base a questo livello di autorizzazione, qualsiasi altro utente sul sistema potrebbe vedere il file appena creato conoscendo il percorso e il nome del file . Ciò potrebbe portare ad un tipico attacco di attraversamento del percorso.
Approfittare di questo attacco sembra ancora più facile sui sistemi multi-utente.
Ad esempio, un server in cui tutti gli studenti utilizzano gli stessi nomi di cartelle per le stesse lezioni e gli stessi nomi di file. Si può andare avanti e creare uno script controllando le creazioni di file in questa directory e ottenere il contenuto non appena viene creato.

Altro punto, alcune cartelle sono comuni in ogni directory home, in genere nella cartella "Documenti".
Anche con una directory home impostata come segue:

-rwx --- ---

Possiamo ancora accedere e leggere il contenuto che abbiamo indovinato. Sono consapevole del fatto che gli attacchi di traversal path non sono nuovi, ma la mia domanda è:

  • Perché le autorizzazioni non sono più restrittive?
  • Che cosa possiamo fare per difenderci da questo tranne da chmoding ogni nuovo la creazione di file prima ancora di aggiungervi contenuti? (se non siamo l'utente root)

Grazie per l'aiuto

    
posta Mike 18.11.2014 - 00:00
fonte

2 risposte

1

Innanzitutto, non esiste un "ACL Linux standard". Le autorizzazioni di file predefinite possono variare in base al sistema e alla distribuzione; la maggior parte delle distribuzioni sembrano avere le autorizzazioni predefinite di 644 o 664 , ma ciò non è inerente al kernel Linux, e il corretto umask dipende dal sistema.

Più in generale: se i file sono di default leggibili a livello mondiale è un difetto di sicurezza o non dipende strongmente da quali minacce specifiche siete preoccupati. Se le autorizzazioni predefinite sono leggibili a livello mondiale, ciò significa che tutti gli utenti del sistema possono leggere i file non contrassegnati in modo specifico privato. Questo non è necessariamente un bug: in un ambiente multiutente, è plausibile dichiarare che gli utenti in genere condividono i file e fornire una directory ~/private/ di default per i file che non vogliono essere condivisa; le persone possono di default leggere qualsiasi cosa direttamente sotto la tua home directory, ma la condivisione sul lato opposto è più facile. C'è un compromesso, che vale spesso la pena fare.

Inoltre, le autorizzazioni predefinite su file non cambiano in base alla singola cartella. Se gli utenti vogliono mantenere alcune cose private e condividere altre cose, e non vogliono chmod molte cose, hai per impostare permessi permessi di default. A quel punto, certe cartelle che avranno oggetti privati avranno permessi più restrittivi. Non puoi fare il contrario; se vuoi rendere assolutamente possibile che qualcuno abbia una directory Public senza imparare chmod , in pratica hai per implementarlo in questo modo. È davvero facile limitare l'accesso a un file oltre a ciò che è nelle sue autorizzazioni; concedere l'accesso oltre le sue autorizzazioni non è possibile (devi cambiare i permessi).

Questo perché hai torto quando dici che una directory home 0700 non protegge nulla. Il bit x di una cartella controlla l'accesso all'interno della directory. Se un utente non dispone dell'autorizzazione di esecuzione su /example/directory/ , non può accedere a qualsiasi elemento entro /example/directory/ . Anche se sanno che /example/directory/a è un file. Anche se hanno permessi di lettura su quel file. Anche se possiedono quel file: non puoi accedere a un file a meno che tu non abbia solo le autorizzazioni su quel file, ma anche hanno le autorizzazioni di esecuzione su tutto directory madri di quel file. L'implicazione è che puoi proteggere una sottodirectory molto più facilmente di quella che puoi fare in modo particolarmente aperto.

Nel tuo caso, la directory Documents è 700 ; probabilmente le altre directory "user-friendly" (questo è un termine terribile per questo, ma intendo cose come Documents , Desktop , Downloads , Music , ecc. - roba che è progettata per l'utente medio da usare per tenere i loro file normali) lo sono pure. A condizione di archiviare i tuoi documenti lì e non in sottodirectory personalizzate della tua directory home (o direttamente nella tua home directory), nessun altro ha accesso. La tua home directory è destinata a contenere principalmente file di configurazione che dovrebbero essere lì; la maggior parte dei file personali è destinata alla sottodirectory predefinita (protetta). Se memorizzi le cose direttamente in una home directory, sono visibili, ma non è quello che il tuo sistema operativo ti sta spingendo a fare. Se crei una nuova sottodirectory di ~ e vuoi che sia privata, imposta le sue autorizzazioni su 700 ; se lo vuoi pubblico, impostalo su 755 (se vuoi che le persone possano accedere ai file se e solo se conoscono il nome, 711 ). Ma l'aspettativa è che le tue cose private non vadano dritte in ~ e che i luoghi in cui i tuoi documenti vanno, sono già protetti.

    
risposta data 18.11.2014 - 03:25
fonte
0

Il comando umask consente di cambiare la maschera utilizzata per la creazione del file che cambia le autorizzazioni predefinite.

Maggiori dettagli sulle varie modalità qui: link

    
risposta data 18.11.2014 - 02:34
fonte

Leggi altre domande sui tag