Rimuovere i permessi di esecuzione su '/ tmp' o montarlo con il flag 'noexec'?

2

Il benchmark di sicurezza CIS consiglia di montare /tmp e tutte le altre directory scrivibili del mondo su una partizione separata in modo che possa essere montata con il flag noexec .

Poiché ho già montato il mio /tmp nella stessa partizione di / e preferirei evitare il trambusto del ripartizionamento, vorrei sapere qual è la differenza (in termini di sicurezza, ovvero, i rischi) tra chmod -R -x /tmp e montaggio di una partizione separata con il flag noexec .

    
posta Tom Klino 25.08.2016 - 16:05
fonte

3 risposte

2

In realtà stai discutendo di tre tecniche di indurimento separate.

Separa le partizioni

Separare le partizioni fa due cose per te. Prima isola i sistemi. Questo può essere utile in molti modi, non solo per la sicurezza, come per i problemi di archiviazione. Dal punto di vista della sicurezza, si isolano le directory a cui si accede globalmente e possono facilmente rimuovere, ricostruire e ridistribuire senza il lavoro della partizione di avvio che richiede una ricostruzione completa.

Secondo, backup. Non è raro eseguire sistemi di backup su una directory home della partizione e utilizzare uno strumento di gestione della configurazione come Chef o Puppet sul sistema radice. Le configurazioni del sistema root cambiano raramente e, in una situazione di ricostruzione completa, di solito è più vantaggioso distribuire file "/" basati su Chef o Puppet per mantenere gli standard, piuttosto che ripristinare i file degli utenti, oltre a ripristinare i file di configurazione dal backup.

di montaggio

È passato un po 'di tempo e non ho il mio sistema Nix di fronte a me, ma dovrei essere in grado di andare nel file fstab e modificare la directory / tmp per usare il flag NOEXEC. Questo non dovrebbe richiedere una partizione separata. La bandiera delle PAGINE DELL'UOMO:

noexec

Do not allow direct execution of any binaries on the mounted filesystem. (Until recently it was possible to run binaries anyway using a command like /lib/ld*.so /mnt/binary. This trick fails since Linux 2.4.25 / 2.6.0.)

Fa quello che dice.

CHMOD

Change Mode è usato per cambiare permesso a livello di File / Directory. Se leggi la pagina man di chmod, puoi vedere che -x concede i diritti eseguibili su File e diritti di ACCESSO alle directory.

    
risposta data 25.08.2016 - 16:54
fonte
1

Alcuni file, anche in temp, devono effettivamente essere eseguibili senza la necessità di eseguire. Contrassegnare la partizione con noexec ti consentirà comunque di impostare +x , ma l'esecuzione (tramite shell, ld-linux-x86-64.so) è proibita. Ciò comporta un ulteriore livello di sicurezza, come hai detto.

    
risposta data 25.08.2016 - 16:21
fonte
1

Rimuovere ricorsivamente il bit di esecuzione in / tmp con chmod -R -x /tmp non impedisce l'esecuzione di file da / tmp.

Innanzitutto, si applica solo ai file attualmente in / tmp. I nuovi file creati dopo l'esecuzione di chmod non avranno restrizioni.

In secondo luogo, se rimuovi il bit di esecuzione dal file di un altro utente, questo non impedisce all'utente di eseguirlo. L'utente può aggiungere il bit di esecuzione dopo averlo modificato.

In terzo luogo, il bit di esecuzione nelle directory è in realtà chiamato "ricerca" e ha un significato diverso rispetto ai file. Data questa struttura di directory:

.:
total 8
drwxrwxr-x 2 root root 4096 ago 25 13:54 dir1
drwxrwxr-x 2 root root 4096 ago 25 13:54 dir2
./dir1:
total 0
-rw-rw-r-- 1 root root 0 ago 25 13:54 file1
-rw-rw-r-- 1 root root 0 ago 25 13:54 file2

./dir2:
total 0
-rw-rw-r-- 1 root root 0 ago 25 13:54 file1
-rw-rw-r-- 1 root root 0 ago 25 13:54 file2

Se rimuovi il bit "search" da dir1 con chmod -x dir1 ottieni questo:

$ chmod -x dir1
$ ls -l dir1
ls: no se puede acceder a 'dir1/file2': Permiso denegado
ls: no se puede acceder a 'dir1/file1': Permiso denegado
total 0
-????????? ? ? ? ?            ? file1
-????????? ? ? ? ?            ? file2

$ cat dir1/file1 
cat: dir1/file1: Permiso denegado

Se lo fai su / tmp otterrai una directory temporanea inutilizzabile e diversi programmi si bloccheranno su di te.

Quindi l'opzione di montaggio noexec non può essere sostituita da chmodding.

Se vuoi davvero farlo senza aggiungere una nuova partizione 1 o usando un file tmpfs / loop-montato (come suggerito da Shane), puoi provare il bind-fu in questa risposta SF

1 : direi che non avresti questo problema se stavi usando i volumi logici;)

    
risposta data 25.08.2016 - 19:10
fonte

Leggi altre domande sui tag