Domanda:
Perché l'accesso esterno a un server tramite SSH è considerato non sicuro?
user142998
2017-03-25 09:52:43 UTC
view on stackexchange narkive permalink

Di recente ho avuto una conversazione con il mio capo e un appaltatore IT che utilizzano. La mia richiesta di consentire l'accesso esterno a una macchina sulla rete tramite SSH è stata negata in quanto SSH non è sicuro. Ho chiesto una spiegazione e sfortunatamente non l'ho capito: il contraente ha dichiarato che SSH non era sicuro ma non sapeva perché.

Perché SSH è insicuro? Sembra che ci sia qualcosa che mi sono perso durante la nostra conversazione che voglio disperatamente capire.

La mia proposta per SSH includeva l'uso di accesso basato su chiave e fail2ban.

AGGIORNAMENTO: Per spiegare la discussione, non appena ho chiesto all'appaltatore perché pensava che SSH fosse insicuro, ha detto, parola per parola, "Non lo so" e ha proceduto con rabbia con un tono di voce aumentato per il resto della conversazione. Ho cercato di districarmi, ma ho dovuto respingere alcuni uomini di paglia per evitare di sembrare completamente incompetente a causa del suo fastidio. Ho fatto gli argomenti che la maggior parte delle buone risposte a questa domanda fa di seguito e sono stati prontamente ignorati.

Queste stesse risposte sono estremamente poco convincenti se viste con occhio scettico. Non sono sicuro che la mia domanda (che è l'appaltatore IT) imponga un onere della prova irragionevolmente alto che non potrà mai essere soddisfatto, per nessuna delle due direzioni. Se questo è il caso, sarebbe saggio parlarne.

Penso che non sia tanto "insicuro" quanto il fatto che l'accesso SSH esterno è meno sicuro di * nessun * accesso esterno.
Inoltre è bene tenere in considerazione che SSH è piuttosto vecchio (e accuratamente testato) ma l'uso delle versioni precedenti (il protocollo ssh1 per esempio) è piuttosto insicuro.il protocollo ssh2 più recente (e per quanto ne so solo utilizzato) può essere abbastanza sicuro, dipende dalle chiavi / cifre / sicurezza del dispositivo da quanto è sicuro.In generale è più sicuro di una connessione HTTPS a causa delle impostazioni predefinite che utilizzano il livello più alto di connessione TLS possibile per ciascuna connessione (quindi TLS 1.2 / 1.3 per la maggior parte delle connessioni) cosa non possibile per un uso diffuso nei siti Web.
Per rispondere alla domanda, speculativamente, l'amministratore della sicurezza ti stava dicendo che non si fidavano di * te * per l'intero sistema della loro azienda, ma te lo dicevano educatamente.Non è che SSH non sia sicuro, ma che un hacker potrebbe hackerare il tuo computer e quindi avere accesso alla rete dell'azienda e non avrebbero modo di sapere la differenza.Per un troll minore, prova a chiedere un account `rlogin` e vedi se questo ti porta da qualche parte.
Sei risposte:
Trey Blalock
2017-03-25 11:08:09 UTC
view on stackexchange narkive permalink

SSH non è generalmente considerato insicuro di per sé, ma è un protocollo amministrativo e alcune organizzazioni richiedono due o più livelli di controllo per ottenere l'accesso a una console di amministrazione . Ad esempio, connettersi prima tramite una VPN e poi aprire una sessione SSH che si connette tramite quella VPN. Questo fornisce semplicemente più livelli di difesa in profondità e impedisce ai tuoi sistemi di essere direttamente interessati dalle ultime vulnerabilità SSH.

Nota: questo NON è un punto debole di SSH stesso e molte organizzazioni continueranno a esporre SSH su porte TCP elevate per l'utilizzo come server SFTP, quindi avranno uno script per spostare i dati da e verso quello sistema (che non consente al server SSH / SFTP esterno di connettersi al resto della rete).

Tutti i protocolli alla fine hanno delle vulnerabilità quindi se è possibile richiedere l'uso di due diversi (cioè IPSEC VPN e SSH) e mantieni la disciplina sugli sforzi di riparazione quando vengono scoperte delle vulnerabilità, il periodo di tempo in cui esistono vulnerabilità note in entrambi i protocolli contemporaneamente sulla tua rete dovrebbe essere molto piccolo. Statisticamente, il requisito per l'utilizzo di due protocolli dovrebbe ridurre la quantità di tempo in cui si avrebbe un singolo protocollo esposto a una vulnerabilità nota (supponendo che effettivamente si correggano / correggano le vulnerabilità).

Come una grafica di testo scadente, guarda quanto segue:

  Ora --- > IPSEC ------------------ ------ ---------------- SSH --------- ------------------ -----------  

Rispetto ad avere solo SSH, o una VPN, da solo:

  SSH ----- ---- -----------------------------  

Nel primo esempio in cui è emersa una vulnerabilità SSH non ce n'era una per IPSEC e viceversa, quindi non c'è mai stato un momento, in questo semplice esempio, in cui i tuoi sistemi presentassero vulnerabilità a entrambi i livelli. Questa difesa in profondità è ciò che protegge il sistema dietro questi protocolli che occasionalmente possono presentare vulnerabilità.

Nel secondo esempio, SSH da solo, nel momento in cui si verifica una vulnerabilità, una violazione della password o qualsiasi numero di altri problemi, un utente malintenzionato può accedere direttamente al tuo sistema vulnerabile durante la finestra di esposizione.

Chiederei se vengono esposti altri protocolli amministrativi e, in tal caso, puoi mettere in dubbio il bias tecnologico, ma molto probabilmente potresti trovarti in un'organizzazione che non consente l'accesso diretto ai protocolli amministrativi Internet.

@R0b0t1 - Dì loro di copiare tutti i dati su un disco rigido e masterizzare tutte le copie rimanenti.Scava una buca di 30 m, posiziona l'unità in basso e riempila di cemento.Ciò renderebbe sicuramente i dati più sicuri di quanto lo siano ora.Vogliono pagare in usabilità per la sicurezza, quindi questo è un piano completamente valido.
@R0b0t1 Perché non accedere al server tramite SSH una volta sulla VPN?Questo dovrebbe soddisfare le esigenze di tutti: è il più sicuro di questo tipo di configurazione (e ciò che fa la mia azienda, una società di servizi finanziari), ti consente di accedere a questo server mentre sei fuori ufficio e mitiga le situazioni in cui si trova un difetto inil server OpenSSH o il protocollo SSHv3.
Questa risposta chiarisce, per me, che l'obiezione non è "SSH è insicuro", ma in realtà è "Usare solo SSH non è sufficientemente sicuro".Non colpisce sufficientemente la triade di sicurezza dei dati di riservatezza, integrità e disponibilità per la preferenza dell'obiettore.
La crittografia @NanbanJim fornisce riservatezza, il codice di autenticazione dei messaggi fornisce integrità.Puoi utilizzare una modalità di cifratura AE per prenderti cura dell'integrità o MAC (hmac o umac) Credo che un server e un client SSH ben rafforzati possano raggiungere facilmente la triade della sicurezza dei dati
@rhymsy E questa è una tua prerogativa.Non sei tu a obiettare.
Steve Sether
2017-03-25 21:22:51 UTC
view on stackexchange narkive permalink

Ho chiesto una spiegazione e sfortunatamente non l'ho capito: il contraente ha dichiarato che SSH non era sicuro ma non sapeva perché.

Perché SSH è insicuro? Sembra che ci sia qualcosa che mi sono perso durante la nostra conversazione che desidero disperatamente capire.

Trattare la sicurezza come un binario "sicuro" o "non sicuro" riflette una scarsa comprensione della sicurezza; la sicurezza è sempre un continuum e nulla è perfettamente sicuro.

L'appaltatore in questione sembra avere una grande mancanza di informazioni su SSH se non può nemmeno dire perché SSH è insicuro, ma crede fermamente è così. L'ignoranza genera paura e la mia ipotesi è che l'appaltatore stia reagendo alla paura piuttosto che alla conoscenza.

SSH non è meno sicuro delle VPN dei principali fornitori. Anche le VPN hanno vulnerabilità di sicurezza e non sono "fatte di magia". Lo sappiamo dalle varie fughe di notizie dalla NSA e non c'è motivo di credere che queste vulnerabilità siano nelle mani solo della NSA.

La vera questione si riduce alla necessità di accesso rispetto alla necessità di sicurezza, non un protocollo su un altro. L'accesso remoto probabilmente ridurrà un po 'la tua sicurezza. Due metodi di accesso remoto ridurranno ulteriormente il metodo di sicurezza. L'abilitazione di uno o più metodi di accesso remoto dovrebbe essere giudicato in base ai compromessi coinvolti, non mantenendo un falso senso di "sicurezza" come concetto binario.

L'appaltatore che usano sembra non avere un background Unix o Linux molto limitato e supportare principalmente Windows.Ho cercato di offrire l'argomento secondo cui Windows sarebbe suscettibile agli stessi argomenti presentati contro l'uso di SSH ("l'assenza di prove non è prova di assenza" per quanto riguarda le vulnerabilità di sicurezza esistenti) ma, ancora una volta, sono apparentemente male informato poiché questo ènon è il caso.
Qui devo essere d'accordo.Ho sentito queste cose solo da persone che non sanno cosa sia veramente ssh.
+1 "niente è perfettamente sicuro" - Si potrebbe immaginare un sistema perfettamente sicuro, tranne che nessuno sarebbe in grado di accedervi.Le password o anche le chiavi sono vulnerabilità, in alcuni casi intrattabili, ma forniscono comunque l'accesso e qualsiasi punto di accesso è una potenziale vulnerabilità.
WhiteWinterWolf
2017-03-25 18:27:36 UTC
view on stackexchange narkive permalink

Cos'è insicuro, esattamente?

Per dirlo brevemente, "Perché l'accesso esterno a SSH è considerato insicuro?" : non è "SSH" che è insicuro, è la parte "accesso esterno" della tua domanda che lo è.

SSH è solo un mezzo tecnico tra gli altri per aprire la tua rete interna all'esterno mondo (che altamente rischioso). Può essere utilizzato, da solo o associato ad altre tecnologie, per implementare la tua politica di accesso remoto.

La politica di accesso remoto è la definizione formale che indica chi può accedere a cosa, quando e da dove, definisce tutte le regole che verranno poi implementate attraverso vari controlli tecnici che forniranno, a loro volta, adeguati servizi di autenticazione, autorizzazione e audit. Tutto questo, ovviamente, deve essere adeguatamente documentato e mantenuto.

Naturalmente, potresti semplicemente andare avanti senza tutti questi oneri amministrativi e di manutenzione, ma ecco il punto: prendere tale scorciatoia è esattamente ciò che sarebbe insicuro nella tua domanda.

Quindi, perché l'accesso esterno a SSH è considerato insicuro? Perché sarebbe troppo costoso implementarlo correttamente per quanto riguarda il ritorno sull'investimento previsto dall'azienda.

Domanda sui costi

Il costo qui non riguarda l'acquisto di software, si limiterà semplicemente a pagare il tempo delle persone prima di progettare e configurare questo servizio e poi di mantenerlo tempo (mentre queste persone sono occupate con questo, ci sono altri compiti che non faranno). Il costo effettivo dipenderà quindi molto dallo stipendio, dalle competenze attuali e dalla complessità della tua attuale infrastruttura.

Da un punto di vista tecnico, l'autenticazione basata su chiavi e fail2ban sono una soluzione valida e ben documentata. Eseguirlo su porte alte lo farà anche uscire dalla vista della maggior parte dei bot. Ma ciò non impedirà, ad esempio, a un vero dipendente di connettersi alla rete interna dal computer di famiglia traboccante di worm, virus e backdoor di ogni tipo, costituendo così involontariamente la rete dell'azienda. Questo è uno dei rischi che potresti dover affrontare.

Dal punto di vista della gestione, è probabile che il "capo" sia più interessato alla ponderazione (monetaria) dei vari rischi rispetto al rendimento atteso sugli investimenti: cosa questo costerà l'installazione e la manutenzione? Quanto consentirà all'azienda di guadagnare o economizzare? Quanto potrebbe costare in caso di disastro?

Il rischio è sempre presente, con tutto. Se riesci a dimostrare che da un punto di vista aziendale aprire la rete interna (o magari alcune parti ben definite di essa, che sarebbe un modo efficace per ridurre il rischio) sarà una mossa redditizia per l'azienda, avrai fatto la metà se non la maggior parte del viaggio. Come farlo sarà quindi solo una questione di scelte tecniche a seconda di ciò che hai pianificato di fare. Ma sicuramente devi risolvere la questione da un punto di vista commerciale e funzionale prima di scendere nei dettagli tecnici.

Qual è la corretta implementazione?Qual è il costo rispetto all'implementazione predefinita?Stavo proponendo un sistema che coinvolge l'autenticazione basata su chiavi e fail2ban.
@R0b0t1: Salve, la stima del costo di un cambiamento in un'azienda può essere complessa o molto complessa a seconda dell'azienda, ed è ben oltre il costo di acquisto del software.Ho aggiunto una nuova sezione alla mia risposta, spero che possa avvantaggiarti in qualche modo :)!
Beh, la configurazione del servizio mi ha richiesto circa 30 minuti.La manutenzione è un altro problema, ma avrei potuto addestrare uno degli ingegneri a farlo o avrei potuto essere di guardia (qualcosa a cui hanno certamente una certa resistenza).Credo di aver seguito la maggior parte dei consigli nel tuo commento w.r.t.costo.Sfortunatamente, il mio datore di lavoro ha avuto l'impressione che la sua rete fosse più sicura senza qualsiasi accesso SSH remoto, indipendentemente da come era stato impostato, e ha basato la sua scelta di non consentirlo su questa base
@R0b0t1: Non avere una porta è davvero più sicuro che avere una porta, per quanto sicuro possa essere.Sebbene la configurazione di SSH e fail2ban possa essere rapida su scala personale, per una rete aziendale potrebbe anche essere necessario configurare la compartimentazione della rete per garantire che gli utenti SSH non possano accedere a più di quanto dovrebbero e un controllo adeguato per rilevare attività insolite.I rischi ci sono, questo è un dato di fatto, e se non vi è alcun vantaggio aziendale significativo nel consentire tale accesso, la reazione prevista è che la direzione respinga la richiesta.
Quella linea di pensiero sembra ancora un ragionamento specioso.Come, esattamente, verrebbero sovvertiti i meccanismi di autenticazione di SSH?SSH si basa su una tecnologia matura che non è considerata sospetta altrove.La speculazione sulla scia del phishing non è qualcosa di esclusivo di SSH e come tale sento che non risponde alla mia domanda
@R0b0t1: Primo esempio che mi viene in mente che ho brevemente menzionato in precedenza: con SSH un dipendente (pigro) è libero di copiare la sua chiave SSH sul computer di famiglia di casa, ad esempio, e aprire una connessione alla rete aziendale da questa macchina non affidabile.Alcune soluzioni VPN alternative consentono di applicare una politica sulla macchina client e rifiuteranno l'accesso o forniranno un accesso limitato se la macchina è sconosciuta, non ha l'ultimo aggiornamento applicato, ha l'antivirus disabilitato, ecc. AFAIK non c'è motivoper implementare queste cose con un accesso SSH standard.
Ancora una volta, questo non è un problema esclusivo di SSH.Una VPN (apparentemente considerata più sicura, anche se usata da sola) soffrirebbe dello stesso problema.
Branden Jensen
2017-03-27 06:55:29 UTC
view on stackexchange narkive permalink

In primo luogo, chiunque dica "questo non è sicuro, ma non so perché" nega completamente il diritto di parlare da una posizione di autorità in materia.

Alcune persone hanno toccato la base sul motivo per cui aprire un vettore di attacco è spesso scoraggiato, ma ecco alcune cose che annullano la necessità di paura se usato correttamente:

  • VPN nella rete, quindi SSH al dispositivo
  • Utilizza una porta non standard
  • Utilizza coppie di chiavi private
  • Implementa strumenti come fail2ban
  • Nega accessi utente root

Onestamente, solo una di queste opzioni rende l'hacking molto più difficile. L'implementazione di almeno due significa che puoi utilizzare SSH senza preoccupazioni.

Che l'appaltatore IT dovrebbe davvero prendere in considerazione un nuovo scambio.

Perché l'utilizzo di una VPN è più sicuro rispetto all'utilizzo di SSH direttamente con le chiavi?Soprattutto se la VPN ti porta all'interno delle difese periferiche della rete di destinazione e forse apre un'intera panacea di computer di destinazione.
Andrew
2017-03-25 10:02:45 UTC
view on stackexchange narkive permalink

SSH non è insicuro, tuttavia non è necessariamente una buona pratica esporre SSH a Internet per paura di compromissione remota. Aprendo SSH al mondo, inviti visitatori non necessari che eseguiranno bot contro la tua distribuzione cercando di ottenerlo. Anche se non riescono, è comunque inutile; se riescono, potresti trovarti in un mondo di dolore. Se il sistema esposto viene compromesso, è facile installare una backdoor persistente e utilizzare questo sistema come punto di leva per attaccare altri nella rete.

Se lo esponi su Internet, disabilita l'autenticazione della password e disabilita accesso root, consente solo l'accesso basato su chiave. Se è necessario consentire le password, non consentirle per root e utilizzare una soluzione a due fattori con password generate casualmente.

Come potrebbero avere successo questi bot?Ho letto che è meglio disabilitare le password e utilizzare l'autenticazione con chiave.L'autenticazione basata su chiave non è sicura?
Un normale bot non supererà una password sicura o un'autenticazione basata su chiave.Un determinato aggressore inizierebbe a tentare di phishing per una password o addirittura a cercare exploit contro la versione specifica di SSH.Personalmente, ho un VPS che ha 22 aperti e lo uso regolarmente, ma è anche configurato con autenticazione basata su chiave e fail2ban per aiutare a bloccare i bot.La mia rete domestica ha solo una VPN che deve essere attivata prima di poter accedere a SSH.
La mia soluzione proposta prevedeva fail2ban e autenticazione basata su chiavi.Perché potrebbe ancora essere considerato insicuro?Sfortunatamente tutto ciò che hai fatto è stato dichiarare in termini vaghi che pensi che SSH sia insicuro, senza dare alcuna prova che lo sia.Mi rendo conto che questa conversazione avviene tipicamente al contrario, ma avevo l'impressione che SSH, correttamente impostato, fosse considerato sicuro, in parte perché si basa su tecnologie di trasporto sicure che sono considerate mature.
Ho detto che non è una buona pratica.La sicurezza non è altro che rischio vs ricompensa.Il rischio è esporsi a 0 giorni sconosciuti o al laptop di un utente compromesso che espone le chiavi.Questo è vero per tutti i servizi esposti.Ovviamente qualsiasi laptop può essere utilizzato per infiltrarsi in una rete ma avere una porta già aperta come ssh rende più facile l'accesso una volta ottenuto.Solo tu e la tua organizzazione potete determinare se vale la pena correre il rischio.Ho già affermato di avere SSH aperto sul mio VPS, sto semplicemente fornendo informazioni su * alcuni * motivi per cui è una cattiva pratica.
SSH è un metodo di accesso remoto.La sua sicurezza deve essere paragonata ad altri metodi di accesso remoto.In che modo SSH è meno sicuro di una VPN?
Sì.La sicurezza è interamente un gioco basato sul rischio.È necessario analizzare il proprio ambiente, le proprie configurazioni e le proprie esigenze per determinare quale rischio vale la pena accettare e in quale misura un servizio deve essere configurato per essere considerato sicuro nel proprio ambiente.Sto semplicemente affermando che è una cattiva pratica da fare, non che non può essere un metodo di accesso remoto sicuro.Cerca centinaia e migliaia di server mal configurati con SSH che fungono da hub di spam per siti di posta elettronica e phishing.Storicamente, è stato configurato male e lasciato per usi dannosi.
@R0b0t1 Si verificano errori di configurazione.Ad esempio, qualcuno aggiorna OpenSSH e reimposta accidentalmente la configurazione per consentire l'autenticazione basata su password e consentire a root di autenticarsi.Richiedere l'accesso tramite una VPN * prima * di avere accesso a SSH è una difesa approfondita e non necessariamente un requisito di sicurezza irragionevole.
@StephenTouset: Ho ricevuto più commenti in modo simile al tuo.Manca il punto della domanda che ho posto poiché tali problemi non sono affatto correlati a SSH ed esistono per qualsiasi meccanismo di autenticazione.
OpenSSH e il protocollo SSH sono, per quanto ne sappiamo e indipendenti da tutto il resto, sicuri: l'appaltatore coinvolto aveva semplicemente torto su questo fronte.Detto questo, la nozione fondamentale di eseguire un processo di proprietà della radice che fornisce l'accesso alla macchina su un'interfaccia di rete pubblica è, secondo alcune misure, un rischio * di sicurezza * inaccettabile che garantisce una difesa a più livelli.Questo non manca affatto il punto della tua domanda: l'appaltatore ha espresso male e sopravvalutato le sue preoccupazioni tecniche, ma la probabile radice delle sue preoccupazioni è ragionevole.
IAmBarry
2017-03-26 18:11:56 UTC
view on stackexchange narkive permalink

SSH può essere considerato insicuro perché la tua organizzazione potrebbe non disporre di politiche in atto per controllare le credenziali.

Nel tempo i dipendenti vanno e vengono. Possono anche cambiare ruolo. Se non esiste un meccanismo per disabilitare l'accesso SSH quando necessario, SSH non sarebbe sicuro. Ciò non indica un problema con il protocollo o il software. Piuttosto è un problema generale applicabile a qualsiasi accesso remoto.

Qualsiasi organizzazione che consenta l'accesso SSH probabilmente vorrebbe prevenire la compromissione della password da parte del dizionario (oltre ad assicurarsi che il software SSH sia aggiornato). Potrebbero scegliere di limitare i tentativi di accesso non riusciti forse tramite IP. Potrebbero scegliere di non consentire affatto l'accesso con password tramite SSH o, come altri menzionati, potrebbero richiedere l'autenticazione a due fattori. Tuttavia, se non hanno una politica, la politica migliore potrebbe essere quella di non consentire l'accesso remoto SSH.

Se l'appaltatore non sa perché potrebbe essere insicuro, potrebbe effettivamente prendere la decisione migliore per non consentire l'accesso remoto.

L'ultima riga è molto pertinente: "Se l'appaltatore non sa perché potrebbe essere insicuro, potrebbe effettivamente prendere la decisione migliore di non consentire l'accesso remoto".
"non consentire l'accesso remoto" - il pericolo qui è che presumibilmente vi sia un requisito per l'accesso remoto e che un individuo male informato abbia una sorta di controllo su come questo verrà implementato.C'è un reale pericolo di finire con una soluzione molto peggiore di ssh qui.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...