Come proteggere / home correttamente con account utente separati su Linux

4

Una grande citazione da questo Thread di InfoExec stackExchange.

The way to prevent malicious code from damaging files in your home directory is to not run it using your account. Create a separate_user that doesn't have any special permissions and run code under that UID until you've determined whether or not you can trust it.

La maggior parte del codice che eseguo, potenzialmente dannoso, è un'applicazione di nicchia scientifica che viene installata tramite sudo apt-get install suspect_program . apt-get fornirà l'accesso root suspect_program durante l'installazione. Il codice può quindi eseguire qualsiasi cosa dannosa che vuole ovunque sul mio sistema.

In che modo l'esecuzione del codice sotto un account seperate_user protegge altri account sulla mia scatola Ubuntu Linux? Ho già dato l'accesso root suspect_program quando ho installato la cosa darn.

    
posta stackinator 27.03.2018 - 20:59
fonte

1 risposta

4

Se hai dato l'accesso root al programma, non puoi impedirgli di accedere al tuo account.

(Per "accesso root", intendo "il livello più alto di privilegi" .È possibile eseguire programmi come root dell'utente senza concedere loro il livello più alto di privilegi, attraverso framework di sicurezza come SELinux. ottenere una protezione effettiva, dovresti eseguire il gestore di pacchetti con privilegi limitati, in un modo che non gli consenta di aumentare i suoi privilegi, ad esempio creando un setinid binario o un cron job. Penso che sia possibile, ma sarebbe molto difficile da configurare e non sono a conoscenza di un framework esistente che faccia questo.)

Per isolare veramente il programma (inclusi i suoi script di installazione), dovresti installarlo ed eseguirlo in un ambiente virtuale. Se il programma non ha bisogno di accedere direttamente all'hardware e non ha bisogno di spremere le prestazioni della CPU, eseguirlo in una macchina virtuale. Se ciò non è possibile, esegui il programma in un container , che crea un ambiente userland virtuale sullo stesso kernel del tuo ambiente principale. Poiché il programma è in esecuzione sullo stesso kernel, le sue prestazioni non sono influenzate dall'esecuzione in un contenitore e il contenitore ha accesso a qualsiasi dispositivo che si sceglie di consentire l'accesso. Un programma eseguito come root in un contenitore è solo root all'interno del contenitore e non può accedere ai file che non sono condivisi con il contenitore. Docker è un software popolare per gestire e distribuire i contenitori.

    
risposta data 27.03.2018 - 22:30
fonte

Leggi altre domande sui tag