È sicuro connettersi a server SSH casuali? [duplicare]

3

In breve: Quanto sono sicuri i client SSH? I server possono pasticciare con loro?

Ho visto questo Ghost nel remake di bash della Shell oggi. Abbastanza divertente e ci sono alcuni film (The Matrix, Star Wars, ecc.) Che vengono distribuiti su SSH. Ci sono anche giochi che si basano sulla tua connessione su SSH.

Ma oggi mi è venuto in mente che quando parliamo di sicurezza SSH, ci concentriamo davvero sul server; i meccanismi di sicurezza e autenticazione del trasporto, bloccando gli attacchi di forza bruta e gli exploit casuali a distanza. E il cliente? Il mio client funziona come me , può fare molto danno a molti file locali ... Certamente non ha bisogno di root per ferirmi.

Che cosa può fare un server SSH che potremmo non aspettarci? Il mio cliente trasmette dati su me ? Esiste un vettore di exploit come un browser web?

    
posta Oli 24.04.2017 - 12:13
fonte

3 risposte

4

2 opzioni vengono in mente:

  1. vulnerabilità nel client SSH
  2. "rimedi indietro"

Eseguo honeypot SSH e un collega ha scritto uno script per prendere la password che l'utente malintenzionato ha utilizzato per creare o modificare un account sull'honeypot e usarlo per riconnettersi all'SSH dell'aggressore e enumerare la directory home. Ha una percentuale di successo del 10% ...

Questo potrebbe essere un caso d'angolo, ma evidenzia che una volta stabilita una connessione con un altro computer, tutte le scommesse sono disattivate. Loro conoscono te, il tuo IP e possono utilizzare qualsiasi informazione tu fornisca contro di te.

    
risposta data 24.04.2017 - 13:44
fonte
2

Innanzitutto, ovviamente, se c'è un bug nel client SSH, potrebbe consentire al server di eseguire il codice lì. Un bug davvero brutto potrebbe anche consentire a un man-in-the-middle di sfruttare il client. Il resto della superficie di attacco è costituito da dove SSH invia i dati che riceve dal server.

Il testo ricevuto tramite la connessione SSH è, nel tuo caso, inviato a un terminale. I terminal analizzano le sequenze di escape: è così che visualizzano i colori, spostano il cursore, ecc. Ci possono essere dei bachi nel parser della sequenza di escape. Inoltre, alcune sequenze di escape possono richiedere cose che vanno oltre il display, come cambiare il titolo del terminale, ridimensionare la finestra o iniettare dati di input (ad esempio un comando per interrogare la posizione del cursore o il titolo della finestra). I terminali moderni disattivano i comandi veramente pericolosi (quelli che causano input iniettati che possono essere impostati da un testo arbitrario attraverso un'altra sequenza di escape). Per ulteriori informazioni su questo argomento, vedi Can "cat -ing "un file può essere un potenziale rischio per la sicurezza? , Come posso proteggermi da questo tipo di abuso negli appunti? e Come evitare gli attacchi della sequenza di escape nei terminali? . La soluzione è verificare che il tuo terminale non consenta sequenze pericolose. Per maggiore sicurezza, invece di aprire un terminale in cui si esegue una shell in cui si esegue ssh , eseguire ssh direttamente nel terminale e disabilitare qualsiasi gestione della tastiera che potrebbe avere ( EscapeChar none nella configurazione del client OpenSSH); in questo modo, anche se un server malintenzionato riesce a iniettare input, non c'è il rischio che venga eseguito come comando di shell sulla tua macchina.

SSH può anche inoltrare le connessioni di rete, consentendo al server di raggiungere il client oltre al terminale. Questo può bypassare una restrizione firewall. Due comuni connessioni di rete inoltrate comportano rischi autonomi. L'inoltro X11 consente al server di accedere al server X locale; questo è praticamente equivalente a dare l'accesso alla shell al server in quanto consente cose come l'iniezione di input in altre applicazioni (una funzione utile per cose come i macro recorder e la remapping degli input basata su window manager, ma manca il corretto firewall). L'inoltro dell'agente SSH consente al server di utilizzare le chiavi private per accedere eventualmente altrove. Quindi, quando ti connetti al server non attendibile, assicurati di non attivare alcun inoltro. Attiva l'inoltro in modo selettivo per i server conosciuti.

Inoltre esiste un'esposizione alla privacy se si invia un nome utente predefinito o un'offerta di chiave pubblica.

    
risposta data 24.04.2017 - 23:19
fonte
0

Solo un'aggiunta alla risposta di @ schroeder.

Una sessione SSH generalmente non è off ground ma viene avviata da un'applicazione terminale. Normalmente, le applicazioni terminali non si aspettano byte casuali e possono avere comportamenti strani quando ricevono caratteri di controllo. La maggior parte li usa per controllare il proprio aspetto. Mai studiato, ma potrebbero esserci delle vulnerabilità nell'applicazione terminale. In ogni caso, il semplice fatto che il terminale abbia scritto alcune linee con lo stesso colore di primo piano e il colore di sfondo potrebbe portare a risultati interessanti se l'utente spesso taglia e incolla le finestre del terminale.

    
risposta data 24.04.2017 - 15:38
fonte

Leggi altre domande sui tag