Come nascondere i file del dispositivo su linux?

0

Voglio nascondere /dev file su Linux perché alcuni file possono essere scaricati e usati per scopi di reverse engineering / attacco.

Il mio obiettivo principale è di evitare che gli utenti possano vedere quei file da una shell: in agguato su internet ho visto udev può essere una soluzione ma voglio evitarne l'uso.

Qualche suggerimento?

    
posta Drew Ber 26.10.2018 - 20:06
fonte

2 risposte

3

Ti suggerisco di verificare se puoi effettivamente fare qualcosa con quei file sul sistema che stai cercando di proteggere come utente normale. Molto probabilmente, scoprirai che la maggior parte di quelli veramente importanti (dispositivi di archiviazione per esempio) non sono già accessibili agli utenti regolari, perché questa è la configurazione standard su una vasta maggioranza di sistemi UNIX, anche nella versione 4.3BSD e SVR4 . Se sei veramente realistico, l'accesso non-root a questi file dispositivo è probabilmente sufficiente per la sicurezza (se l'utente malintenzionato ha accesso root, i file dispositivo non sono importanti perché possono probabilmente ottenere il codice in esecuzione nello spazio del kernel facilmente, cosa che non Non è necessario che i file del dispositivo colpiscano l'hardware). Se il sistema in questione è configurato per utilizzare SELinux o un altro LSM, puoi anche sfruttare (se la configurazione predefinita non lo è già) per limitare ulteriormente l'accesso.

Anche se nascondi o blocchi i percorsi sotto /dev , ciò non impedisce in realtà alle persone di creare nuovi nodi di dispositivo altrove con i numeri di dispositivi maggiori e minori appropriati e le autorizzazioni arbitrarie. Non è possibile impedire facilmente alle persone di creare tali file, ma è possibile renderli sostanzialmente inutili montando tutto tranne /dev con l'opzione di montaggio nodev , che disabilita la gestione speciale dei nodi del dispositivo sul filesystem montato. Per fare ciò è necessario che il filesystem di root sia separato da /dev (che dovrebbe essere un qualche file system virtuale automatico fornito dal kernel (come devtmpfs ) o un'istanza tmpfs popolata da un gestore dispositivi).

Oltre a ciò, molti dei più cattivi ( /dev/mem , /dev/port , /dev/kmem e /dev/msr , e /dev/hpet ) possono essere completamente disabilitati al momento della compilazione. Questo non solo impedisce loro di apparire in /dev , significa che letteralmente non puoi mai avere istanze funzionanti di questi nodi di dispositivo sul sistema. La maggior parte delle distribuzioni Linux disabilita esplicitamente /dev/kmem in questi giorni perché nulla la usa e molti di loro disabilitano anche /dev/mem e /dev/port perché sono largamente utilizzati solo da software legacy. /dev/msr invece è solitamente costruito come un modulo caricabile (e quindi può essere esplicitamente inserito nella blacklist senza ricostruire il kernel) perché ci sono degli usi pratici che non implicano l'attacco al sistema (ad esempio, il debug della CPU problemi di gestione).

Inoltre, a parte la vista, non bloccare /dev/null o /dev/urandom , probabilmente lo spezzerai se lo fai, e nessuno dei due è davvero un vettore di attacco.

    
risposta data 26.10.2018 - 21:31
fonte
0

No.

L'idea di rappresentare la maggior parte degli aspetti di un sistema operativo di un computer e il suo hardware come file è centrale e fondamentale per la progettazione di Unix (il piano 9 lo porta ancora di più). Se non li implementa, allora non è Unix / POSIX. Mentre Linux ha preso questo in una direzione leggermente diversa con devfs (che è stato seguito da udev) è ancora una caratteristica che definisce il sistema operativo.

SEI GIÀ UTILIZZANDO UDEV

because some files can be dumped and used for reverse engineering/attack purposes

... e l'accesso a questi è controllato da permessi. Se pensi che non sia una protezione adeguata, ti suggerisco di cercare con quale frequenza i permessi dei file sono stati bypassati su tali sistemi (nb non sto parlando di programmi setuid - questi sono eseguibili dati privilegi espliciti per comportarsi diversamente - e sono una fonte relativamente comune di exploit).

Non otterrai nulla in questo modo, ma interromperesti completamente il sistema operativo.

Un modo migliore per iniziare a conoscere la sicurezza di Linux e su come rafforzare il sistema consisterebbe nell'esaminare alcune delle guide di protezione disponibili, ad es. da CIS o SANS

    
risposta data 26.10.2018 - 21:48
fonte

Leggi altre domande sui tag