Malware che ottiene l'accesso come root tramite "sudo" e "sudo -s"

2

In realtà, vorrei fare tre domande. Ma dato che sono molto imparentati, chiederò a tutti qui. Io uso Ubuntu 12.04.4.

Situazione 1: utilizzo Terminator, in uno dei suoi terminali lancio sudo iotop (perché non funziona senza accesso root). La domanda è: un malware può ottenere i privilegi di root tramite un processo che viene eseguito con l'uso di sudo e in che modo?

Situazione 2: apro tty1 (Ctrl + Alt + F1) e digito sudo -s lì, ottenendo così i privilegi di root. Senza uscire da questa shell sudo, potrei tornare all'interfaccia grafica (Ctrl + Alt + F7) e lavorare come utente non privilegiato. La domanda è: un malware può abusare di questo sudo root shell nella console tty1 per ottenere i privilegi di root?

Situazione 3: eseguo sudo -s in un terminale Gnome. Questa shell può essere sfruttata da un malware per ottenere l'accesso come root? Qui, ho una presunzione, che può abusare di alcune funzioni di input per attivare la finestra del terminale e digitare un comando nel terminale, ma non è sicuro.

    
posta Highstaker 08.02.2014 - 12:07
fonte

3 risposte

5

Dipende da dove si trova il malware. Supponiamo che intendi: qualche programma in esecuzione come utente e che desidera ottenere i privilegi.

Primer di sicurezza X veramente breve

Per prima cosa, devi essere consapevole che X esegue un controllo di accesso ma non isola tra i client connessi. Ogni client connesso al desktop può interrogare il server per ottenere informazioni su qualsiasi altro client X e interagire con esso.

Ad esempio, se si esegue Skype (o qualunque programma, open-source o meno) sul desktop, può spiare attività: elencare le finestre, i loro titoli, fare screenshot, premere tasti, anche (con alcuni toolkit grafici) fuori la struttura di ciò che sta attualmente visualizzando. Quindi in teoria può localizzare se si ha un terminale con una shell di root aperta, inviare eventi di tasti per digitare qualcosa lì (anche se non tutti gli emulatori di terminale obbediscono a questi).

In pratica la simulazione di pressioni di tasti può essere notata da te (vedi che qualcosa è successo, o forse il programma potrebbe semplicemente chiudere la finestra dopo aver fatto il lavoro per nasconderlo), mentre plain keylogging è invisibile (soprattutto) se il programma è autorizzato per comunicare con il mondo esterno tramite una connessione crittografata (programmi di messaggistica istantanea, audio e video, ad esempio, che includono Skype, Google Talk, Flash e altri plug-in).

Riferimento: Il blog di Invisible Things Lab: The Linux Security Circus: Sull'isolamento della GUI

Risposte alle tue domande.

Nella situazione 1 , ti sei sostanzialmente fidato di iotop ma immagino che non sia il tuo punto. Immaginiamo un malware connesso al desktop o in esecuzione come utente. Potrebbe tentare di ingannare iotop nel fare qualcosa di brutto (simulando pressioni dei tasti, ecc.) Ma sarebbe probabilmente inefficace.

Nella situazione 2 , la shell è separata da X, quindi è meglio la sicurezza. Devi sapere che un programma in esecuzione con il tuo account utente può scrivere su una console virtuale Linux in cui hai effettuato l'accesso, ma sta solo inserendo caratteri sullo schermo, non l'attività di elaborazione. AFAIK non puoi ingannare un programma per digitare effettivamente qualcosa in un'altra console virtuale di Linux.

Situazione 3 è ciò che è spiegato sopra. Un programma potrebbe notare che, digitare alcuni comandi e provare a nascondere il fatto.

Se sei davvero preoccupato, probabilmente sei interessato alla sicurezza per isolamento e Qubes .

    
risposta data 26.02.2014 - 17:22
fonte
1

Vedendo qualche risposta in un altro sito, non penso che l'utilizzo dell'account di root aumenti la sicurezza, sto postando questo.

Con le impostazioni di timeout predefinite, c'è un modo semplice per ottenere i privilegi di root aggiungendo questa riga in .bashrc :

trap 'sudo -S touch /hacked </dev/null 2>/dev/null' debug

Creerà un file hacked nella directory root una volta che l'utente ha utilizzato sudo .

Un hack completo potrebbe anche modificare il comando trap per impedire all'utente sapendo questo, e nascondere tali modifiche modificando set , declare , command , type , ecc Un'altra opzione è quella di modificare sudo stesso.

In teoria un programma può uccidere il vostro pannello e del desktop, la loro sostituzione con versioni modificate dove ogni ingresso sudo o gksu , ecc, o un programma di monitoraggio, viene sostituito con qualcos'altro. Il codice sopra ha reso tutto più semplice. Ci possono essere soluzioni alternative modificando sudo in qualche modo, ma almeno non credo che la password sudo possa essere utilizzata per motivi di sicurezza nella versione corrente.

    
risposta data 21.06.2015 - 06:13
fonte
0

Un'applicazione in esecuzione come SUDO sta per essere eseguita nella memoria privilegiata e un'applicazione che non è già in esecuzione come SUDO non sarà in grado di accedere al codice.

Potrebbe essere possibile fare un qualche tipo di attacco di iniezione contro l'applicazione se è mal codificata e usa qualche altro meccanismo per esporsi al di fuori dello spazio privilegiato, ma sarebbe banale farlo e dovrebbe essere specifico per quella applicazione.

    
risposta data 08.02.2014 - 19:07
fonte

Leggi altre domande sui tag