opzione nodev per la directory / tmp

1

Lo standard CIS per Ubuntu 14.04 LTS (01-07-2015) afferma che la directory / tmp dovrebbe essere montata con un flag nodev - questo è sotto la configurazione di FileSystem (Sezione 2). Ciò impedisce la creazione di dispositivi speciali a blocchi e caratteri.

Qualcuno è in grado di confermare come potrebbe un exploit di un attaccante non montare la directory / tmp con il flag nodev?

A mio parere, i file di dispositivo (che a mio avviso consentono una connessione di basso livello a dispositivi hardware connessi) generalmente compaiono nella directory / dev per il collegamento di dispositivi e in genere non sono accessibili a meno che non si abbia un utente root o tty. La directory / dev non è nemmeno scrivibile da un utente diverso da root.

    
posta John 12.09.2016 - 05:20
fonte

1 risposta

1

Con il comando mknod è possibile creare file di dispositivo diversi da quelli che già esistono in / dev.

$ sudo mknod /tmp/sda b 8 0 
$ fdisk -l /tmp/sda
Disk sda: 80 GiB, 85899345920 bytes, 167772160 sectors
...

Quando un filesystem è montato nodev , puoi comunque creare tali file-dispositivo, ma non sono più utilizzabili.

Un attacco ai file / tmp funziona in questo modo. Un programma con privilegi elevati apre alcuni file temporanei in / tmp e scrive qualcosa su di esso. Un utente malintenzionato prima farà qualcosa su questo file in modo che il programma scriva effettivamente su un altro file.

  • L'autore dell'attacco simula /tmp/tmp1234 a /etc/passwd .
  • Root esegue alcuni programmi che scrivono su /tmp/tmp1234 come file temporaneo.
  • / etc / passwd viene sovrascritto.

Puoi vedere che se /tmp/tmp1234 non è un collegamento simbolico ma un file dispositivo, il programma dovrebbe scrivere su /dev/sda , o su qualche altro dispositivo, che potrebbe avere risultati negativi.

    
risposta data 12.09.2016 - 09:04
fonte

Leggi altre domande sui tag