Come sapere se l'accesso alla console è autentico?


13

Su Windows è possibile applicare premendo Ctrl+ Alt+ Delper attivare un interrupt che fa apparire la finestra di accesso.

Quando si accede a una console di un computer Linux: come posso sapere se questo accesso è reale o deriso per rubare le mie credenziali?

Risposte:


14

Supponendo che tu voglia essere protetto contro altri utenti normali del sistema (se l'avversario ha accesso come root, tutte le scommesse sono disattivate), in linea di principio potresti usare un tasto di attenzione sicuro :

La chiave di attenzione sicura di un sistema operativo è uno strumento di sicurezza che viene fornito come protezione contro i programmi di acquisizione delle password di trojan. È un modo imbattibile di uccidere tutti i programmi che potrebbero essere mascherati da applicazioni di accesso. È necessario insegnare agli utenti come immettere questa sequenza di tasti prima di accedere al sistema.

( Gestione della chiave di attenzione sicura Linux 2.4.2 (SAK), Andrew Morton, 18 marzo 2001 )

Questa domanda U&L correlata può essere interessante: come posso trovare la chiave di attenzione sicura (SAK) sul mio sistema e posso disabilitarla?


Cosa potrebbe accadere quando SAK verrà attivato con un server X acceso?
Incnis Mrsi,

@IncnisMrsi: ci ho provato; sembra essere approssimativamente equivalente a Ctrl + Alt + Backspace supponendo che tu non l'abbia disabilitato. Ricordo che mi è sembrato un po 'più intenso, ma non riesco a ricordare alcun dettaglio.
Kevin,

L'ho colpito frequentemente sul mio vtty e dopo qualche tempo, il login non è tornato. Sembra buggy, ma +1 per un SysRq realmente utile tutti i giorni.
Max Ried

@Kevin: Quindi se un utente eseguiva un server X legittimo (che è necessariamente euid = 0, almeno su PC) su un tty ≠ 7, la sua configurazione ha SAK disabilitato, quindi SAK non è così irripetibile come sostengono i documenti del kernel? Supponiamo che un DM GUI emulato venga eseguito su di esso.
Incnis Mrsi,

@IncnisMrsi: Penso che ciò che effettivamente fa è uccidere tutto nella tua sessione e riavviare la cosa "corretta", qualunque essa sia. Quindi, se tty = 7, ottieni una X nuova di zecca, altrimenti ottieni login, ecc. Questo è difettoso perché ad alcuni DE fantasiosi come GNOME non piace essere uccisi dal nulla. Ma se il tuo attaccante ha euid = 0, hai già perso comunque.
Kevin,

2

Prima di tutto, non sono sicuro che tu possa essere troppo sicuro della finestra di login Ctrl+ Alt+ Delsu Windows, questo è anche il ruolo di un virus / trojan per dirottare l'interruzione e implementarlo è molto possibile.

In secondo luogo, se tale meccanismo è implementato sia su Windows / Linux, significa che i privilegi di amministratore sono sicuramente compromessi.

In Linux, se qualcuno ha scritto una shell falsa per visualizzare un prompt e catturare le tue credenziali, immagino che basti Ctrl+ Co Ctrl+ Zpossa essere sufficiente, se quei segnali non vengono catturati per scoprire il trucco. Anche l'immissione di credenziali errate più volte può aiutarti a vedere qualsiasi deviazione dal normale comportamento del timer.

Passare da una console all'altra aumenta anche la probabilità di scoprire il trucco.

Ma in ogni caso non puoi essere sicuro al 100% su qualsiasi tipo di sistema di affidabilità del tuo prompt / finestra di accesso.


0

Puoi usare ctrl+ alt+ F1... F7per accedere ad altri tty e accedere da lì. Puoi anche usare ctrl+ zo ctrl+ c. Tuttavia, se qualcuno sta cercando di rubare il tuo login e la tua password usando questo metodo, è ancora possibile che ti stiano tradendo. Dipende dal sistema operativo in uso, da chi ha avuto accesso ad esso e dal tipo di accesso che ha avuto.

In generale, non puoi mai essere sicuro al 100%, ma se qualcuno lo facesse, suppongo che abbia già l'accesso come root, quindi i tuoi dati di accesso non avrebbero senso per lui.


3
Se dovessi impostare una tale trappola, farei sicuramente funzionare il mio programma su ogni tty. Tieni presente che quelli a cui accedi con i tasti di controllo non sono particolarmente sicuri.
John WH Smith

Punto valido; questo è stato il migliore che mi sia venuto in mente.
MatthewRock

Qualche sysrq magico può aiutarti?
Max Ried

0

Un utente (anche non root) che ha un accesso fisico alla console può fare un simile trucco.

Accedi sshe verifica quali processi operano su una console virtuale a cui desideri accedere localmente. Che si tratti getty(per un TUI tty) o di altri legittimi display manager? Ha UID = 0?

Se uno dei due è falso, allora il nome host login: banner è sicuramente forgiato. Ma, poiché le risposte dello stato sono già scritte, non aiuta contro un trasgressore a cui i suoi privilegi sono già aumentati root.


-1

Risposta breve: non si può dire.

Ma se il comando del prompt di accesso è stato sostituito, significa che l'attaccante ha accesso root sulla macchina. In questo caso potrebbe anche:

  • ha installato un keylogger per rubare la tua password. Puoi mitigare il problema utilizzando una password univoca, in modo che l'attaccante non sia in grado di accedere ad altri servizi online che utilizzi;
  • accedi come te (o come qualsiasi altro utente) sulla macchina, semplicemente cambiando la password, o accedi ai tuoi file (o di chiunque altro).

Pertanto preoccuparsi se il prompt di accesso sia legittimo o meno è un punto controverso.

Come regola generale, non dovresti accedere a una macchina che ritieni possa essere compromessa.


8
Potrei progettare un programma che imita il comportamento di un prompt di login ed eseguirlo in ogni TTY senza privilegi di root (come me stesso). Se eseguito correttamente, sarebbe impossibile distinguere il vero prompt dall'output del programma, invitandoti a inserire le tue credenziali. Tuttavia, tieni presente che occorrerebbero i privilegi di root per autenticarti (rendendo la trappola completamente trasparente), quindi se il login fallisce e sei sicuro di non aver fatto un refuso ... potresti pensare di essere stato intrappolato (anche tardi però).
John WH Smith,

6
Non lo installi. È sufficiente utilizzare il proprio account per accedere a tutti i terminali ed eseguire il login falso lì. Gli utenti che tentano di utilizzare un terminale successivamente troveranno il tuo falso prompt, in esecuzione come te, non il loginprogramma in esecuzione come root. Non presumo che il loginprogramma attuale sia stato effettivamente compromesso.
John WH Smith,

7
@ DR01. Accedi normalmente. Quando sei pronto per iniziare il tuo ~/bin/fakelogin, usalo in exec ~/bin/fakeloginmodo tale che quando esce (per qualsiasi motivo) il tuo account utente sia disconnesso e il vero prompt di accesso sia presentato all'altro utente.
roaima,

3
Normalmente quando si tenta di rubare una password in un prompt, la si registra e si scrive "Accesso non valido.", Quindi si esce dal programma. Quindi, non è necessario autenticarsi utilizzando $euid=0.
Ned64,

1
Perché i downvotes?
dr01,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.