Possibile modo di estrarre la password sudo dal sistema in esecuzione tramite gli appunti

6

Io uso per copiare e incollare la mia password sudo da un file KeePass, quindi suppongo che la password utente in testo semplice verrà salvata nella RAM ad un certo punto quando la utilizzo, ad esempio, per accettare un aggiornamento. È giusto?

Sarebbe teoricamente possibile per un utente malintenzionato estrarre questa stringa password o parte di essa collegando la RAM a un'altra macchina (ad esempio Cold Boot Attack)? L'autore dell'attacco può quindi ricollegare la RAM al primo computer ancora in esecuzione e inserire la password dell'utente per sbloccare lo schermo, ad esempio?

Potrebbe fare la differenza se ho digitato la password sudo con la mia tastiera ogni volta che ne ho bisogno? Penso che le semplici sequenze di tasti non vengano salvate nella RAM, giusto?

Un'altra opzione per evitare che ciò sia una password di screenlocker personalizzata, suppongo.

    
posta Junior J. Garland 29.04.2015 - 01:05
fonte

2 risposte

7

. In realtà questa è una caratteristica comune dei keylogger. Spesso catturano schermate ogni X secondi, monitorano gli appunti e registrano i tratti dei tasti. Queste funzionalità praticamente annullano la strategia di digitazione piuttosto che copia / incolla.

Comunque hai detto che stai usando keepass. Quindi potresti essere protetto. Dai un'occhiata alle queste informazioni dalle loro FAQ

Because we are heavily using the clipboard, it is useful to block all current clipboard monitors. This means that no other applications will get notified when KeePass changes the clipboard.

For this, an invisible window is created and added to the top of the clipboard event handler chain. This window simply throws away all clipboard change messages it receives, practically blocking all other applications from receiving any events.

Descrive anche un'altra funzione per sconfiggere i keylogger:

The Auto-Type feature of KeePass is very powerful: it sends simulated keypresses to other applications. This works with all Windows applications and for the target applications it's not possible to distinguish between real keypresses and the ones simulated by Auto-Type. This at the same time is the main disadvantage of Auto-Type, because keyloggers can eavesdrop the simulated keys. That's where Two-Channel Auto-Type Obfuscation (TCATO) comes into play.

TCATO makes standard keyloggers useless. It uses the Windows clipboard to transfer parts of the auto-typed text into the target application. Keyloggers can see the Ctrl-V presses, but do not log the actual contents pasted from the clipboard.

La linea di fondo, come puoi capire, è che quando sorgono nuovi attacchi, quindi fai nuove difese (e viceversa).

    
risposta data 29.04.2015 - 01:27
fonte
3

Test con LiME su CentOS. Innanzitutto, KeePassX era impostato per generare semplici password ricercabili, rigenerate ogni volta perché le ricerche inseriscono le password in memoria.

Tutti questi erano sicuri (non rivelare, e se non indicato ho eseguito il passo prima di iniziare un dump LiMe):

  • Genera password in KeePassX, non terminare il salvataggio.
  • Rigenera password, salva password e lascia aperta la finestra principale.
  • Avviare l'acquisizione della memoria, rigenerare la password, acquisire le finiture prima che scada il timeout della password (soggetto a scadenze, ma improbabile).
  • Regen password, copia negli appunti con la funzione di copia di KeePassX, il timeout della password non scade.
  • Regen password, copia negli appunti con la copia di KeePassX, avvia dump; la password scade tra 10 secondi (il dump termina a 30 secondi)
  • Regen password, copia negli appunti a mano con Ctrl-C, avvia il dump dopo il timeout.
  • Regen password, copia negli appunti a mano (Ctrl-C), timeout non scaduto.
  • Regen password, salva, quindi lascia [Mostra password] attivo durante il dump.
  • Regen, copia e incolla da KeePassX a GNote.
  • Regen, copia e incolla da KeePassX al campo di immissione della password di Firefox + Gmail.
  • Regen, mostra la password, digita manualmente nel campo di immissione della password di Firefox + Gmail.

Ho avuto un rilevamento di colpo di fortuna, probabilmente un errore. Un vero rilevamento è stato un tentativo manuale di accodare un comando di ricerca mentre si aspettava che il dump finisse: questo ha iniettato la password in memoria.

Per le tue domande:

C'è ampio tempo per usare la Volatilità con la memoria copiata + le chiavi di crittografia, ma l'accesso fisico è spesso più difficile. Molte persone (secondo me) non devono preoccuparsi troppo del loro hardware. Sì, ci sono I / O di basso livello, aggiornamenti del BIOS, BadUSB, Thunderstrike, comunicazione a ultrasuoni, persino modifiche al firmware del disco rigido; tutte le notizie, ma il più delle volte con un ambito ristretto.

I gestori di appunti o programmi di sicurezza inferiore rispetto a KeePassX sono più preoccupanti e l'interazione della shell in realtà assomiglia alla pistola fumante (specialmente con completamento di tabulazioni, ricerche e accodamento dei comandi).

La mia password sudo persiste nella memoria se elevo, ma lo faccio molto. Per emulare un basso utilizzo, ecco un test da un nuovo account, a partire da root (minori opportunità per sudo). Non ho cercato tra i dump della memoria, confidando in KeePassX per proteggere le password come sopra:

Terminal 1:
========================
# adduser keepasstest
# su keepasstest            ' user is working
$ exit
# passwd keepasstest
Changing password for user keepasstest.
New password:               ' paste from KeePassX
Retype new password:        ' paste from KeePassX
passwd: all authentication tokens updated successfully.

# exit                      ' dump memory #1

Terminal 2:
=====================
$ sudo -s                        ' my account
# su keepasstest                  ' substitute user
$ sudo -s                        ' elevate
[sudo] password for keepasstest:  ' Paste from KeePassX
#                                ' dump memory #2

Risultati:

$ sudo grep Ifnavcogi... lime*.txt

lime1.txt:Ifnavcogi...
lime1.txt:Ifnavcogi...     ' 3 entries after passwd
lime1.txt:Ifnavcogi...

lime2.txt:Ifnavcogi...
lime2.txt:Ifnavcogi...
lime2.txt:Ifnavcogi...     ' 5 entries after sudo
lime2.txt:Ifnavcogi...
lime2.txt:Ifnavcogi...

15 minuti dopo almeno una password è ancora presente nei dump, anche dopo che il timeout della cache di sudo è scaduto; il resto proviene dalla memoria del mio browser.

Un'altra preoccupazione, anche se KeePassX fa blocca pagine per impedire che si scambino su disco (ps -axu mostrerà "L" nelle sue bandiere) che non conta più se ibernare il sistema e non utilizzare una buona crittografia completa del disco.

Sembra che la password sia in diversi posti al di fuori di KeePassX quando uso sudo (indipendentemente da come ci arrivo). Ma il dumping di memoria dal vivo ha bisogno di autorizzazioni elevate ... come il livello richiesto per inserire malware sul tuo sistema, o per sostituire l'hardware, o per ottenere l'accesso fisico necessario per copiare la tua memoria. Non mi piacciono le password in chiaro, ma il rischio sembra ancora nella media.

    
risposta data 29.04.2015 - 05:50
fonte

Leggi altre domande sui tag