SSH2.ppt [Sola lettura]
Transcript
SSH2.ppt [Sola lettura]
Sommario Sistemi di elaborazione dell'informazione (Sicurezza su Reti) Anno Acc. 2001-2002 Secure Shell n n n n A cura di: Carotenuto Francesco, D’Antuono Massimiliano, De Vito Nadia, Nicolino Alessio Alessio 08/09/2002 Prof. De Santis Alfredo SSH 1 Introduzione n Introduzione Protocollo Installazione Tunneling 08/09/2002 SSH 2 Introduzione Secure Shell originariamente progettato e scritto dal finlandese, Tatu Ylones (ylo ylo@ @ssh ssh.. fi fi)) n Consente quindi di: - loggarsi in rete in modo sicuro - eseguire comandi su un sistema remoto n E’ un protocollo di comunicazione che garantisce un login remoto sicuro e altri servizi di rete sicuri su un canale insicuro (Internet) - copiare file da una macchina all’altra - fornire protezione per le connessioni X11 e per l’inoltro dei pacchetti pacchetti TCP - supportare sistemi di autenticazione fortemente protetti come RSA, SecurID , S/key S/key,, Kerberos e TIS 08/09/2002 SSH 3 Introduzione n 08/09/2002 SSH 4 Introduzione Nasce per rimpiazzare i punti deboli dei comandi Berkeley r* (rsh (rsh,, rlogin rlogin,, rcp rcp)) in quanto suscettibili allo sniffing e allo spoofing dell’indirizzo IP n Risolve noti problemi di sicurezza circa protocolli TCP/IP come: - IP spoofing nFornisce Fornisce:: - DNS spoofing - infrastruttura per connessione crittografata - autenticazione tra host e host e tra utente ed host (falsificazione dell’ indirizzo IP del mittente) (falsificazione delle informazioni contenute nel DNS) - Routing spoofing (falsificazione delle rotte intraprese dai - possibilità di creare un canale di connessione sicuro per qualsiasi qualsiasi pacchetti e instradamento su percorsi diversi) connessione TCP/IP 08/09/2002 SSH 5 08/09/2002 SSH 6 1 Introduzione Introduzione Protegge da: n I servers SSH girano su: UNIX, Linux e VAX n I clients SSH girano su: UNIX, Linux Linux,, VAX, Windows e - Intercettazione di dati trasmessi tramite rete - Manipolazioni di dati negli elementi intermedi della rete - IP address spoofing dove l’host attaccante finge di essere affidabile altre piattaforme inviando pacchetti con l’indirizzo di questo - DNS spoofing di server fidati SSH usa: - IP source routing - l’autenticazione a chiave pubblica/privata per verificare l’identità delle macchine connesse - la cifratura di tutti i dati scambiati, con algoritmi robusti come blowfish blowfish,, 3DES, IDEA,… SSH non protegge da: - Configurazione o utilizzo scorretto Un account root compromesso - Home directory insicure 08/09/2002 SSH 7 Introduzione 08/09/2002 SSH 8 Introduzione SSH1 vs SSH2 SSH2: - SSH1: - include sftp sftp,, ftp cifrato SSH2 prima versione, gratuita in primo tempo, adesso più restrittiva. Utilizzabile solo per scopi non com merciali. - usa file di configurazione separati da SSH1 (/etc (/etc/ssh2/ssh2_ /ssh2/ssh2_config config), ), - SSH2: ma può richiamare SSH1 se un client ne richiede i protocolli SSH1 e se riscrittura della vecchia versione SSH con miglioramenti apportati nella crittografia; gratuita solo per organizzazioni non profit profit.. SSH1 è disponibile. I protocolli SSH1 SSH2 pubblicati come Internet Draft Draft.. - mantiene la compatibilità con SSH1 se questo è stato installato prima di SSH1 Security Communication - ha sviluppato i protocolli SSH1 e SSH2 e ne mantiene le principali principali distribuzioni. - supporta scambi con chiavi DSA, Diffie Diffie--Hellman Data Fellows - a causa della commercializzazione, l’accettazione di SSH2 è stata stata lenta - ha acquistato la licenza di vendere e supportare SSH. 08/09/2002 SSH 9 Introduzione 08/09/2002 10 Introduzione Autenticazione forte Connessione crittografata: - i dati scambiati con SSH sono cifrati con algoritmi a chiave simmetrica negoziati tra le parti Per memorizzare le chiavi: - - le chiavi per gli algoritmi di cifratura vengono scambiate in precedenza; la cifratura previene gli attacchi di tipo sniffing. Autenticazione forte: - avviene tramite algoritmi a chiave pubblica; - le chiavi sono generate, di solito, al momento dell’installazione; dell’installazione; - ogni host su cui è installato un server SSH ha almeno una coppia di chiavi per ogni algoritmo a chiave pubblica supportato; - ogni host ha un database con le chiavi pubbliche degli host conosciuti. 08/09/2002 SSH SSH 11 i client utilizzano il file /etc etc/ /ssh ssh/ /known known..host i server utilizzano il file /etc etc/ /ssh ssh_ _known known_ _hosts database utente nel file $HOME/. $HOME/.ssh ssh/ /known known_ _host chiavi e login degli utenti sono contenute nel file $HOME/.ssh $HOME/. ssh/ /authorized authorized_ _keys Il server memorizza nuove chiavi utente se accompagnate da certificati o se già certo dell’identità dell’utente. Il client memorizza la nuova chiave del server se i certificati che accompagnano la chiave sono validi. 08/09/2002 SSH 12 2 Introduzione Introduzione SSH garantisce: PROBLEMA: - metodo classico di autenticazione rhost di UNIX vulnerabile ad attacchi di tipo spoofing - sicurezza per qualsiasi protocollo allo strato di applicazione come FTP, HTTP e SMTP. ESEMPIO di connessione HTTP sicura: SOLUZIONE: - SSH aggiunge un controllo sull’ host più rigoroso. - Autenticazione rhosts + chiave pubblica Web Browser Server SSH Server HTTP il client invia un pacchetto firmato con la chiave privata del proprio host host;; il server verifica la firma con la chiave pubblica dell’host del client client.. INTERNET Host A 08/09/2002 SSH 13 Introduzione ESEMPIO Host B 08/09/2002 SSH RETE SICURA Host C 14 Introduzione di connessione HTTP sicura: - TCP port forwarding Il protocollo http è in chiaro!!! OPENSSH (http://www. http://www.openssh openssh..com com): ): 1. A crea una connessione SSH con B 2. B crea una connessione HTTP con C e invia i dati cifrati con SSH Web Browser Server SSH Server HTTP - nato per far parte del sistema operativo OpenBSD - Open Source - utilizza solo algoritmi di crittografia senza restrizioni di utilizzo INTERNET Host A Host B 08/09/2002 SSH RETE SICURA Host C 15 Introduzione SSH 16 Introduzione Compilazione SSH1: Compilazione SSH1: Opzioni utili di compilazione Compilare SSH1 per Unix (ex: sotto Solaris Solaris)) è semplice. --without-- idea --without --without -without--none none:: ( non non usa l'algoritmo brevettato IDEA) ( non consente le comunicazioni in chiaro (non cifrate) se uno dei server non ha chiavi) chi avi) --without -without-- rsh rsh:: (non consente l'opzione rsh rhosts quando un server non ha le chiavi) --prefix -prefix=/ =/usr usr/ / bsd ---sbindir sbindir=/ =/usr usr/ / bsd ---bindir bindir=/ =/usr usr/ / bsd : (per installare inst allare in directory non standard) --with -with--securid securid=../ =../ace ace (aggiunge il supporto per l'autenticazione SecureID (sono necessarie le librerie ACE)). --with -with--socks5=/ socks5=/usr usr/ / local local/ / lib (Supporto per proxy Socks5) Supponiamo di volere: le opzioni standard, connessione non in chiaro, vecchio algoritmo RSH/rlogin RSH/rlogin,, algoritmo IDEA; allora… gzcat sshssh-1.2.27. 1.2.27.tar tar..gz | tar xf cd ssh ssh--1.2.27; ./configure ./configure ---prefix prefix =/ =/usr usr ---without without--none -without -rsh ---without without--idea make make install 08/09/2002 08/09/2002 SSH 17 08/09/2002 SSH 18 3 Introduzione Introduzione Compilazione SSH1: Preparazione di un pacchetto di installazione binaria Configurazione: - la seguente procedura presume che si abbiano copiati alcuni dei documenti SSH come le FAQ in /usr /usr//localssh localssh--docs docs.. File Fi le di configurazione: configurazione: tar cvf ssh_ ssh _ bin bin..tar /usr /local /bin /{ /{s s s h,ssh1, h,ssh1,s s c p,scp1, p,scp1,slogin slogin} } tar uvf ssh_ ssh_bin .tar / usr usr/ / local local/ / bin bin/ / {s {s s hh-keygen1, keygen1,s s s hh- keygen ,ssh ssh--agent1, agent1,s s s hhagent } tar uvf ssh_ ssh_bin .tar / usr usr/ / local local/ / bin bin/ / {s {s s hh-add1, add1,s s s hh-add add,,s s hh- askpass1, askpass1,s s s hh-askpass askpass} } tar uvf ssh_ ssh_bin .tar / usr usr/ / local local/ / bin bin/ / {make {make--ssh ssh--known known-- hosts1, hosts1,make make -ssh ssh-- known known-hosts } tar uvf ssh_ ssh_bin .tar / etc etc/ / {sshd {sshd_ _config config,,s s h_ h_config config} } tar uvf ssh_ ssh_bin .tar / etc etc/rc2.d/{S10sshd,K10sshd} /rc2.d/{S10sshd,K10sshd} / etc etc/ /init .d/ .d/sshd sshd tar uvf ssh_ ssh_bin .tar / usr usr/ / local local/ /sbin sbin/ / {sshd {sshd ,sshd1} tar uvf ssh_ ssh_bin .tar / usr usr/ / local local/man/man1/{ /man/man1/{s s s hh- keygen keygen.1, .1,ssh ssh--agent .1, .1,ssh ssh-add.. 1 ,ssh add ,ssh.1,ssh1.1, .1,ssh1.1,slogin slogin.1,slogin1.1, .1,slogin1.1,s s c p.1,scp1.1, p.1,scp1.1,make make--s s hh-known known-- hosts hosts.1} .1} /usr /local local/man/man8/{ /man/man8/{s s s h d.8,sshd1.8} d.8,sshd1.8} tar uvf ssh_ ssh_bin .tar / usr usr/ / local local/ /s s hh- docs compress ssh_ ssh_bin .tar 08/09/2002 SSH n Client:: bisogna configurare le opzioni globali per il client SSH Client 08/09/2002 20 In una connessione tra client e server che utilizza SSH: E’ possibile instaurare una comunicazione cifrata, autenticandosi usando: Ø host key Ø certificati che possono essere verificati tramite una autorit à fidata. SSH n Client e server si scambiano le chiavi pubbliche. n SSH chiede all’utente se accettare o meno la chiave (solo la prima p rima volta). n Client e server negoziano una chiave di sessione (usata per cifrare cifr are tutti i dati seguenti attraverso un cifrario a blocchi). 21 Protocollo 08/09/2002 SSH 22 Protocollo Schema dell’ dell’ architettura di SSH e sua divisione in protocolli: 08/09/2002 SSH Protocollo Il protocollo SSH utilizza le funzioni crittografiche dell’SSL 08/09/2002 n Server:: bisogna configurare il demone ssh in modo che Server l'accesso sia limitato agli host specificati 19 Protocollo n • /etc etc//sshd sshd_ _config per il server; • /etc etc//ssh ssh_ _config per il client (contiene settaggi di default a livello di sistema). SSH n 23 Schema dell’ dell’ architettura di SSH e sua divisione in protocolli: 08/09/2002 SSH 24 4 Protocollo n Protocollo Schema dell’ dell’ architettura di SSH e sua divisione in protocolli: 08/09/2002 SSH n 25 Protocollo Schema dell’ dell’ architettura di SSH e sua divisione in protocolli: 08/09/2002 SSH 26 Protocollo TRANSPORT LAYER PROTOCOL TRANSPORT LAYER PROTOCOL E’ un protocollo di trasporto sicuro a basso livello E’ costituito da diverse fasi: nFornisce Fornisce:: - crittografia forte - autenticazione crittografica degli host - protezione dell dell’’integrit integrità à 08/09/2002 SSH 27 Protocollo 08/09/2002 SSH 28 Protocollo AUTHENTICATION PROTOCOL AUTHENTICATION PROTOCOL E’ un protocollo di autenticazione utente general general--purpose purpose.. - gira al di sopra dell’ dell ’SSH Transport Layer Protocol; Protocol; - assume che il protocollo sottostante fornisca protezione dell’ dell ’integrit integrità à e confidenzialit confidenzialità à. Sono supportati tre tipi di autenticazione: n Autenticazione con con chiave pubblica pubblica:: Ø Lo User Authentication Protocol autentica l’l’utente del client sul server. Ø Ø Il client invia un pacchetto firmato con la propria chiave privata. Il server verifica la firma tramite la chiave pubblica del client client.. Se il server non possiede la chiave pubblica del client client,, il metodo fallisce. 08/09/2002 SSH 29 08/09/2002 SSH 30 5 Protocollo Protocollo AUTHENTICATION PROTOCOL n CONNECTION PROTOCOL Autenticazione con password: Ø all'utente sul client viene presentato il prompt per l'inserimento della password. Progettato per girare al di sopra dello User Authentication Protocol.. Protocol Fornisce: - n Autenticazione Host based: based: - simile a rhosts di UNIX, ma più più sicuro; - aggiunge la verifica dell'identità dell'identit à dell'host tramite Host key . 08/09/2002 SSH 31 Protocollo 08/09/2002 Il client può richiedere: - una shell remota, - l'esecuzione di un comando, - un trasferimento di file sicuro, ecc. SSH 33 Protocollo n Divide la connessione in canali logici multiplexati in una singola connessione. n Rende possibile accedere a più più servizi con un singolo tunnel cifrato. 08/09/2002 SSH 34 Installazione e Setup ASPETTI DI SICUREZZA OpenSSH può essere scaricato dal sito http://www. http://www.openssh openssh..com com// n Scopo primario di SSH è migliorare la sicurezza su Internet. Sono disponibili sia il formato binario RPM sia il sorgente. n Tutti gli algoritmi di cifratura cifratura,, integrità integrità e a chiave pubblica sono ben conosciuti e ben stabiliti. Per i binari RPM si ha bisogno di: n Tutti gli algoritmi sono utilizzati con chiavi sufficientemente lunghe da stabilire una forte protezione contro gli attacchi crittoanalitici.. crittoanalitici n Tutti gli algoritmi sono negoziati. Se uno di essi viene rotto è facile passare ad un altro senza modificare il protocollo di base. 08/09/2002 32 CONNECTION PROTOCOL Dà inizio alla sessione vera e propria. In definitiva: SSH Protocollo CONNECTION PROTOCOL 08/09/2002 sessioni interattive di login login;; esecuzione remota di comandi; inoltro di connessioni TCP/IP; inoltro di connessioni X11. SSH § openssh openssh--versionep versionep.. rpm § openssh openssh--clients clients-- versionep versionep.. rpm § openssh openssh--server server-- versionep versionep.. rpm § zlib zlib-- versione versione.. rpm § openssl openssl-- versione versione.. rpm 35 08/09/2002 SSH 36 6 Installazione e Setup Installazione e Setup Programma Zlib Programma SSL n Open source e free free.. n Open source n Ha come obiettivo quello di costruire una libreria per la compressione dei dati. n Mira a creare un toolkit commerciale per realizzare il Secure Socket Layer,, Transport Layer Securety e librerie per la realizzazione di Layer sistemi fortemente crittografati. n Si trova già all'interno di quasi tutte le principali distribuzioni di Linux Linux.. n E’ disponibile sia come sorgente sia come pacchetto RPM. n E’ possibile scaricarlo dal sito www.freesoftware www. freesoftware..com com/pub/ /pub/infozip infozip//zlib zlib//. n I pacchetti RPM si possono reperire insieme a quelli di OpenSSH OpenSSH.. n Sono disponibili sia il formato binario RPM sia il sorgente. n I sorgenti sono disponibili presso il sito http://www.openssl http://www. openssl..org org//. 08/09/2002 SSH 37 Installazione e Setup 08/09/2002 SSH 38 Installazione e Setup Installazione del programma Zlib Installazione del programma OpenSSl n Se si ha a disposizione il pacchetto in formato RPM RPM,, basta digitare alla riga di comando: rpm -ivh zlib-versione.rpm n Se si ha a disposizione il pacchetto in formato RPM RPM,, basta digitare alla riga di comando: rpm -ivh zlib-versione.rpm n Se si preferisce usare il formato tar tar..gz gz,, si deve scrivere: n Se si preferisce usare il formato tar tar..gz gz,, si deve scrivere: tar xzvf zlib-versione.tar.gz cd zlib-versione ./configure make su -c "make install" 08/09/2002 SSH tar xzvf zlib-versione.tar.gz cd zlib-versione ./configure make su -c "make install" 39 08/09/2002 Installazione del programma OpenSSl n Se si ha a disposizione il pacchetto in formato RPM RPM,, basta digitare alla riga di comando: rpm -ivh openssl-versione.rpm n Se si preferisce usare il formato tar tar..gz gz,, si deve scrivere: tar xzvf openssl- versione.tar.gz cd openssl- versione ./configure make su -c "make install" SSH 40 Installazione e Setup Installazione e Setup 08/09/2002 SSH Installazione del programma OpenSSH n Se si ha a disposizione il pacchetto in formato RPM RPM,, basta digitare alla riga di comando: rpm -ivh versionep.i386.rpm rpm -ivh openssh-clients- versionep.rpm rpm -ivh openssh-server -versionep.rpm n Se si preferisce usare il formato tar tar..gz gz,, si deve scrivere: tar xzvf openssh- versione.tar.gz cd openssh- versione ./configure --prefix=/usr -- 41 08/09/2002 SSH sysconfdir=/etc/ssh 42 7 Installazione e Setup Installazione e Setup Installazione del programma OpenSSH n Il parametro "---prefix prefix"" impone di porre i file binari nelle directory bin bin,, sbin ed i manuali nella directory man man.. n Per default OpenSSH pone i file di configurazione all'interno della cartella / usr usr/ /local local/etc /etc.. n Il parametro sysconfdir rende possibile modificare l'impostazione di default e impostare, a propria scelta, la cartella contenente i file di configurazione. 08/09/2002 SSH 43 Installazione del programma OpenSSH n I comandi: make su -c "make install“ su -c "make host-key" consentono di installare i file generati e creare le chiavi. n ssh impiega una coppia di chiavi pubblica/privata pubblica/privata.. n L’ RSA é il formato più più vecchio, mentre il DSA è quello più più recente. 08/09/2002 SSH 44 Installazione e Setup Installazione e Setup Installazione del programma OpenSSH Installazione del programma OpenSSH La sottosotto-cartella contrib contiene: n il file sshd sshd.. pam pam.. generic per l'autenticazione PAM. Per usarlo basta copiarlo all'interno della cartella /etc/pam.d/ col nome di sshd:: cp sshd.pam.generic /etc/pam.d/sshd. n Se il demone SSH é già in esecuzione con un collegamento via telnet alla porta 22 della propria macchina si dovrebbe ottenere: script init relativi alle distribuzioni SuSE e Red Hat . Per la SuSE SuSE,, inoltre, bisogna copiare un file di configurazione in /etc rc. rc.config config/ /: Trying 127.0.0.1... Connected to localhost . Escape character is '^]' SSH -1.99-OpenSSH _2.3.)p1 cp rc.config.sshd etc/rc.config.d/sshd.rc.config.z n script di startup startup:: va copiato in etc/rc.d/init.d per la Red Hat e in /sbin/init.d per la SuSE SuSE.. /etc/rc.d/init.d/sshd start (Red Hat), /sbin/init.d/sshd start (SuSE). 08/09/2002 SSH 45 Installazione e Setup $HOME/.s s h/ known_hosts File interessati (1) 46 File interessati (2) $HOME/.s s h/identity , $HOME/.s s h/i d _d s a Contengono le chiavi private RSA e DSA dell'utente, rispettivamente. rispettivame nte. $HOME/.s s h/identity .pub, $HOME/.ssh/i d_dsa.pub Contengono le chiavi pubbliche RSA e DSA dell'utente, rispettivamente. $HOME/.s s h/config File di configurazione utente usato dal client SSH. $HOME/.s s h/ authorized_keys Elenca le chiavi pubbliche RSA degli utenti autorizzati ad effettuare effet tuare il login per quell' account. $HOME/.s s h/ authorized_keys2 Elenca le chiavi pubbliche RSA/DSA degli utenti autorizzati ad e ffettuare il login per quell' account /etc/s s h/s s h_known_hosts, /etc /ssh_known_hosts2 Lista delle host key per gli host conosciuti. Il primo contiene chiavi pubbliche RSA mentre il secondo anche chiavi pubbliche DSA. SSH SSH Installazione e Setup Registra le chiavi pubbliche degli host in cui l'utente ha effettuato il login login.. 08/09/2002 08/09/2002 47 /etc/s s h/s s h_config File di configurazione di default per i client client.. $HOME/. rhosts File usato nella autenticazione .rhosts . rhosts ; contiene la lista delle coppie host host-- utente che possono autenticarsi in questo modo. $HOME/.shosts Lo stesso del precedente, tranne che permette di effettuare il login solo tramite SSH. /etc/ hosts.equiv Usato nell'autenticazione .rhosts .rhosts.. /etc/s s h/shosts .equiv E' usato allo stesso modo di / etc etc// hosts hosts..equiv equiv,, ma permette di effettuare il login solo tramite SSH. /etc/s s h/sshrc;$HOME/.ssh/rc I comandi i questo file vengono eseguiti quando l'utente effettua effettu a i l login appena prima che la shell (o il comando) parta. $HOME/.s s h/ environment Contiene definizioni addizionali per le variabili d'ambiente. /etc/s s h/ primes Contiene i valori primi utilizzati da Diffie Diffie-- Hellman 08/09/2002 SSH 48 8 Installazione e Setup Installazione e Setup File interessati (3) Configurazione di OpenSSH (1) La configurazione di OpenSSH funziona per chiunque si colleghi. I vari file di configurazione si trovano in /etc/ssh o in /usr/local/etc /etc/ssh/sshd_config File di configurazione per l'utente usato dal server SSH. /etc/ssh/ssh _host _key, / etc/ssh/ssh_ host _dsa _key, /etc/ssh/ssh _host _rsa_key Contengono, rispettivamente, la parte privata delle chiavi SSH1, SSH2 DSA e SSH2 RSA del server. Nota : SSH ignora una chiave privata registrata in un file acces sibile da altri. In queste cartelle ci sono due file: n n /etc/ssh/ssh _host _key.pub, / etc/ssh/ssh_ host_ dsa _key.pub /etc/ssh/ssh _host _rsa_key.pub Contengono, rispettivamente, la parte pubblica delle chiavi SSH1, SSH1, SSH2 DSA e SSH2 RSA del server. /etc/nologin Se questo file esiste, SSH si rifiuta di effettuare il login tranne che per l'utente SSH n n n 49 I files di configurazione possono contenere: n 08/09/2002 SSH 50 Installazione e Setup Configurazione di OpenSSH (2) n le opzioni inserite alla riga di comando; il file $HOME/.ssh/config il file /etc/ssh/ssh_config. Un utente può impostare le proprie opzioni senza modificare quelle quelle comuni contenute in /etc/ssh/ssh_config. Installazione e Setup n verrà utilizzato; Quando viene lanciato il programma ssh ssh,, esso consulta: root . 08/09/2002 ssh_config imposta le opzioni per il programma SSH client che sshd_config é il file di configurazione del demone SSH ( sshd sshd). ). righe di commento evidenziate dal simbolo ‘# ‘#’ iniziale; righe vuote (che vengono ignorate); righe contenenti direttive, composte da coppie <nome> <valore>, spaziate, senza alcun simbolo di assegnamento ssh--keygen: ssh Comandi principali (1) n Crea una coppia di chiavi pubblica/privata. n E’ sufficiente a realizzare una chiave RSA . n L'opzione -d permette di costruire una chiave DSA in luogo di una RSA che potrà potrà essere utilizzata in seguito insieme a SSH2. n La chiave privata viene salvata, col nome del file specificato, in: n La parte pubblica della chiave creata viene posta nel file n Viene chiesta una passpharse per criptare la chiave privata: ssh-keygen -d. $HOME/.ssh/NomeFileScelto Per le principali direttive di configurazione contattare: www.dia.unisa www.dia. unisa.. it it//ads ads.dir/ .dir/ HOME/.ssh/NomeFileScelto.pub. $ ssh-keygen -b 1024 -N 'password' 08/09/2002 SSH 51 Installazione e Setup 08/09/2002 Comandi principali (2) Comandi principali (3) ssh -C -i NomeFileConteneteLaCoppiaDiChiavi -v –x NomeUtente@NomeHost [comando] $ ssh NomeHost -C indica di usare la compressione dei dati. La prima volta che ci si collega a NomeHost NomeHost,, compare il messaggio: -i consente di specificare se si usano più coppie di chiavi pubbliche/private pubbliche/private per collegarsi ai vari host (va indicato il percorso e il nome del file che contiene la chi ave privata privata). ). The authentication of host NomeHost can't be established. RSA key fingerprint is 3b:60:57:4e:6c:59:5a:99:cf:41:d5:e0:14:af:0d:a1. Are you sure you want to continue connecting (yes/no) ? -x disabilita il forward automatico delle connessioni X11; -v mostra le info fondamentali dell'andamento della connessione. L’opzione yes aggiunge la chiave relativa dell’ host alla lista degli host conosciuti da SSH che si trova in $HOME/.ssh/know_hosts.. NomeUtente (opzionale) indica il nome utente con cui si effettua il collegamento. collegamento. Per le connessioni successive alla prima la chiave inviata dal server viene confrontata con quelle memorizzate: solo se il confronto ha successo successo si prosegue. SSH 52 Installazione e Setup Per collegarsi ad una macchina remota, NomeHost NomeHost,, basta scrivere al prompt della shell shell:: 08/09/2002 SSH 53 NomeHost indica il nome della macchina a cui ci si vuole collegare. [comando] (opzionale) serve ad eseguire un comando appena viene stabilita la connessione. 08/09/2002 SSH 54 9 Installazione e Setup Installazione e Setup Trasferimenti sicuri di file : scp (1) Comandi principali (4) SSH offre la possibilità di collegarsi agli host remoti senza specificare alcuna password: ü scp fornisce un modo sicuro di trasferire i file attraverso Internet: Internet: scp si copia il file contenente la chiave pubblica sul server a cui NomeUtente@NomeHostDiPartenza :NomeFileDaCopiare NomeUtente@NomeHostDiArrivo :NomeFile si desidera connettersi; ü ü si aggiungere il riferimento alla lista dei file che si trova: - in $HOME/.ssh/authorized_keys (chiave RSA ); - in $HOME/.ssh/authorized_key2 (chiave DSA ); Per copiare un file che locale in un altro host si può scrivere: scp NomeFileDaCopiare NomeUtente@NomeHost ::NomeFileDaC opiare NomeFileDaCopiare viene copiato nella directory dell’utente NomeUtente dell’host NomeHost NomeHost.. per collegarsi alla propria cartella home sul server remoto, non resta che eseguire normalmente il comando ssh ssh.. 08/09/2002 SSH 55 08/09/2002 Installazione e Setup SSH 56 Installazione e Setup Trasferimenti sicuri di file : scp (2) Altri esempi pratici $ ssh -l tizio linux.brot.dg Accede all’elaboratore ‘linux ‘linux .brot brot..dg dg’’, utilizzando lì il nominativonominativo-utente ‘tizio ‘tizio’’. Per copiare un file che si trova in un host remoto nella cartella locale, si deve scrivere : $ ssh -l tizio linux.brot.dg ls -l /tmp scp NomeUtenteRemoto@NomeHostRemoto:NomeFileDaCopiare Esegue il comando ‘ls ‘ls -l /tmp /tmp’’ nell’elaboratore ‘linux ‘linux..brot brot..dg dg’’, utilizzando il nome-- utente ‘ tizio nome tizio’’. Viene copiato il file NomeFileDaCopiare dell'utente NomeUtenteRemoto dall'host remoto NomeHostRemoto alla cartella locale corrente. $ ssh -l tizio linux.brot.dg tar czf - /home/tizio > backup.tar.gz Esegue la copia di sicurezza, con l’ausilio di ‘tar ‘tar’’ e ‘gzip ‘gzip’’ della directory personale dell’utente‘ tizio tizio’’ nell’elaboratore remoto. L’operazione genera il file ‘backup backup.. tar tar.. gz’ nella directory corrente dell’elaboratore locale. -r consente di copiare in modo ricorsivo i file da una cartella ad un’altra. $ scp [email protected]:/etc/profile . Copia il file ‘/etc ‘/etc//profile’ dall’elaboratore ‘linux ‘linux..brot brot..dg dg’’ utilizzando il nominativo--utente ‘tizio nominativo ‘tizio’’, nella directory corrente dell’elaboratore locale. 08/09/2002 SSH 57 08/09/2002 Installazione e Setup SSH 58 Installazione e Setup Port Forwarding (2) Esempio : Port Forwarding (1) Permette di creare un canale di comunicazione sicuro attraverso il quale veicolare qualsiasi connessione TCP. n Host A è separato dalla intranet da una rete insicura e deve comunicare via telnet con Host C. n Host B permette connessioni SSH. n Il port forwarding di SSH crea il canale sicuro tra Host A e Host B. n La connessione telnet vera e propria viene effettuata tra Host B e Host C. Intranet 23 1111 CANALE SICURO Host A 08/09/2002 Host B Host C CANALE IN CHIARO SSH 59 08/09/2002 SSH 60 10 Installazione e Setup Installazione e Setup Port Forwarding (3) n n Dimostrazione di utilizzo Il comando, dato su Host A : hostA > ssh -L 1111:HostC :23 HostB sleep 100 alloca la porta TCP 1111 su Host A attraverso cui, passando per il canale sicuro, si arriva alla porta 23 di Host C. Dopo l’installazione di OpenSSH OpenSSH:: Per completare la connessione bisogna effettuare un telnet alla porta: hostA > telnet localhost 1111 Nota: se Host B e Host C coincidono si fa il forwarding di una porta dall'host Locale verso un host remoto. E' possibile effettuare anche l'operazione inversa. n viene generata una coppie di chiavi pubblica/privata; n il comando ssh-keygen Ø permette di creare chiavi RSA e DSA di lunghezza variabile e nel formato relativo al protocollo SSH1 ed SSH2 Ø chiede di specificare i file in cui salvare le chiavi e di cifrare cifrare la parte privata della chiave con una passphrase passphrase.. n Tutte le chiavi hanno una dimensione di default di 1024 bit 08/09/2002 SSH 61 Installazione e Setup SSH SSH 62 Installazione e Setup Generazione di una coppia di chiavi RSA relative al protocollo SSH1 08/09/2002 08/09/2002 63 Installazione e Setup Generazione di una coppia di chiavi RSA relative al protocollo SSH2 08/09/2002 SSH 64 Installazione e Setup Generazione di una coppia di chiavi DSA relative al protocollo SSH2 Per collegarsi ad una macchina remota di nome NomeHost basta digitare: ssh NomeHost -l “login remota”-v -v attiva la modalità di verbose,, che fornisce un verbose output dettagliato su come sta procedendo la connessione 08/09/2002 SSH 65 08/09/2002 SSH 66 11 Installazione e Setup Installazione e Setup Esempio: Durante questa fase un programma di ascolto del traffico TCP/IP fallisce. Ad esempio Ethereal Ethereal,, uno degli sniffer più noti avrebbe catturato: 08/09/2002 SSH 67 Installazione e Setup n Consideriamo una connessione HTTP, protocollo che prevede scambio di dati in chiaro. n Viene richiesta una pagina di default del server junior in cui è presente un form HTTP. n Nei campi vengono inseriti dei dati di prova. 08/09/2002 SSH 68 Installazione e Setup Alla pressione del tasto "Submit "Submit Query " i dati vengono inviati con il metodo POST ad uno script CGI scritto nel linguaggio Perl Perl.. Tale script risponde semplicemente dando l'eco dei dati immessi. 08/09/2002 SSH 69 Installazione e Setup 08/09/2002 70 Installazione e Setup Se uno sniffer viene posto in ascolto durante la sessione HTTP: Con il seguente comando si inoltra la connessione al server HTTP sul canale cifrato creato con il server SSH. Nel comando viene specificata: Ø Ø Ø 08/09/2002 SSH SSH 71 la porta locale a cui si connetterà in seguito il web browser il nome dell'host e la porta su cui gira il server HTTP il nome dell'host su cui gira il server SSH 08/09/2002 SSH 72 12 Installazione e Setup Installazione e Setup Infine dobbiamo specificare nel browser l’ URL: http://localhost :1111/ per inoltrare la richiesta all'host junior. 08/09/2002 SSH 73 Installazione e Setup 08/09/2002 SSH 74 Tunneling Ethereal non può fornire alcuna informazione significativa. La connessione con il server SSH che si è occupato di inoltrarla al server HTTP rende il traffico catturato cifrato e dunque incomprensibile: incomprensibile: • Fornire accesso remoto alle applicazioni gestionali e ’ divenuto di fondamentale importanza. • L’accesso remoto basato su Internet aggiunge rischi significativi. • I dati sensibili trasmessi fra operatore remoto e una rete aziendale possono essere intercettati, modificati o re-- indirizzati ovunque. re • Le tecnologie di accesso come quelle via cavo e via etere sono vulnerabili. 08/09/2002 SSH 75 Tunneling 08/09/2002 SSH 76 Tunneling SSH Tunneling permette permette:: • Connessioni Always On a banda larga aumentano il pericolo: l’aggressore ha un obiettivo fisso da attaccare nel tempo. • di rendere sicure applicazioni che altrimenti invierebbero informazioni vulnerabili su reti pubbliche; • di proteggere i messaggi dell’ dell’applicazione trasmessi da una parte all’ all’altra della connessione. • SSH aiuta a rendere sicuri la maggior parte degli accessi remoti basati su Internet e ad assicurare la riservatezza e l’l’integrit integrità à delle informazioni scambiate tra client e server. I filtri effettuati da firewall e router possono essere ristretti a una sola porta: la porta Secure Shell (22). • SSH effettua il tunneling di informazioni per qualsiasi applicazione basata su TCP Il Tunneling crea canali point-t o-point virtuali tra due pc connessi. 08/09/2002 SSH 77 08/09/2002 SSH 78 13 Tunneling Tunneling Internet per accedere ad e-mail: Tunneling su Internet: Internet: - Quando il client spedisce la posta, i messaggi vengono trasmessi ad un server SMTP. MAIL S v r: r: smtp (25) MAIL S v r: r: pop (110) - Quando il client legge la posta, le intestazioni e il testo dei messaggi vengono scaricati da un server POP3 o IMAP. MAIL S v r: r: smtp (143) MAIL--Client MAIL - Chiunque e in qualsiasi punto del percorso può intercettare testo in chiaro del messaggio, indirizzi ee- mail, nomi utenti e password. MAIL--Server MAIL I server ee-mail sono facilmente individuabili - Attacchi Denial of Service - Utilizzo un server aperto 08/09/2002 SSH 79 Tunneling 80 Tunneling su Intranet: Identificando il server gli hacker sono in grado di sfruttare le vulnerabilità vulnerabilit à conosciute nel sistema operativo del server o nel software di posta elettronica. 1. 2. SOLUZIONE: Punti di accesso WLAN spesso disposti in modo errato dietro il firewall corporativo, trattando tutte le postazioni su WLAN come fidate. fidate. WLANs basate sul protocollo IEEE 802.11b Wi Wi--Fi Fi:: permettono il broadcast in ogni direzione. Attacchi: Il tunneling può aiutare ad eliminare le porte accessibili, bloccando utenti non autorizzati, e assicurando: - freeware NetStumbler o AirSnort per scoprire una WLAN. - registrando i pacchetti con WEPCrack , gli hackers possono - privacy rompere le chiavi di WEP e decifrare tutto il traffico su WLAN. WLAN. - integrit integrità à WLAN diventa vulnerabile come le LAN Ethernet 08/09/2002 SSH 81 Tunneling 08/09/2002 SSH 82 Tunneling Tunneling con risorse condivise: Tunneling con risorse condivise: file condivisi tra PC • - Ciascuna risorsa condivisa deve essere protetta da attacchi di tipo DoS, perdite, modifiche fraudolente e accessi non autorizzati. autorizzati. ATTACCO: - Se la connessione via cavo è sempre attiva, un hacker può tentare un attacco basato su dizionario,, scoprendo password e nomi utenti delle risorse condivise. SSH Desktop - Altra risorsa condivisa a cui si accede in maniera remota - Condivisione effettuata tramite software per il controllo remoto: Symantec ; pcAnywhere;; pcAnywhere AT&T Labs VNC; Microsoft NetMeeting NetMeeting;; Windows XP Remote DeskTop Assistence Assistence. - Le misure di sicurezza di sistemi operativi basati su privilegi, lettura/scrittura, nomi utenti, password, per il controllo sugli accessi non proteggono l’ l’integrit integrità à dei dati. 08/09/2002 SSH Tunneling ATTACCO: • 08/09/2002 83 08/09/2002 SSH 84 14 Tunneling Tunneling Problema: • Funzionamento del Tunneling SSH: Il controllo remoto non autorizzato rappresenta un problema per coloro che amministrano la sicurezza delle aziende. aziende Soluzione: Il Tunneling SSH fornisce: • un meccanismo uniforme di autenticazione forte • un controllo a livello di accesso • privacy per i files e i desktop condivisi • Si esegue il Tunneling del flusso di informazioni delle applicazioni. • Il flusso verrà verrà inviato su una singola connessione TCP. • Dopo l’ l’inoltro di una porta locale, SecureCRT rimane in ascolto sulla specifica porta dell dell’’host locale. • Vshell apre una connessione con l ’host remoto dove il Server delle applicazioni è in esecuzione. - I flussi di dati insicuri vengono multiplexati su un'unica sessione SSH. - Vengono controllate le credenziali degli utenti. - Viene garantito l’l’accesso su una singola porta completamente sotto il controllo di un unico amministratore: il Server SSH. 08/09/2002 SSH 85 Tunneling 08/09/2002 SSH Tunneling ESEMPIO: Client: Spedizione dalla Postazione locale: - L’applicazione deve essere riconfigurata in modo tale da connettersi sul localhost localhost.. Mail--Svrl Mail - I pacchetti inviati sul localhost localhost:: localport vengono intercettati e criptati dal SecureCRT o da un altro Client e quindi viene effettuato il Tunneling attraverso la connessione Secure Shell verso la Vshell o un altro Server SSH. MAIL S v r: r: smtp (25) MAIL S v r: r: pop (110) MAIL S v r: r: smtp (143) MAIL S v r: r: smtp (25) Server: MAIL S v r: r: pop (110) - Vshell riceve i pacchetti, li decodifica rinviandoli come testo in chiaro chiaro attraverso la connessione TCP al server in ascolto sulla remotehost remotehost::remoteport remoteport.. MAIL S v r: r: smtp (143) Secure -Crt 08/09/2002 SSH 87 Tunneling V -Shell 08/09/2002 Mail--Svrl Mail SSH 88 Tunneling Osservazione: Autenticazione ad accesso controllato: Il traffico che transita fra: Ø SecureCRT e VShell è protetto mediante crittografia Ø Vshell e remote host non lo è. § Vshell è situato all’ all’ interno del perimetro della rete locale, protetto da un firewall.. firewall § Il firewall viene configurato per permettere connessioni di tipo Secure Shell,, ma non connessioni da parte delle applicazioni di cui viene Shell effettuato il Tunneling (SMTP, IMAP, POP). § La configurazione del firewall protegge lo scambio delle informazioni in chiaro verso il Server che è presente all’ all’ interno della rete aziendale. 08/09/2002 86 SSH 89 • Lasciando la porta della Secure Shell aperta sul firewall viene delegato il controllo sulle applicazioni alla Vshell Vshell.. • Viene realizzato un unico ed integrato punto di controllo per: • SecureCRT viene autenticata da Vshell prima che inizi qualsiasi Tunnel. • Rigido il controllo sui tentativi di accesso consecutivi e sui limiti di timeout. Ø Ø Ø 08/09/2002 autenticazione remota degli utenti accesso alle risorse gestione delle applicazioni in Tunneling Tunneling.. SSH 90 15 Tunneling Tunneling Protezione: 1. 2. 3. 4. Creazione di filtri Vshell in modo da permettere o negare la connessione SSH da specifici indirizzi IP, host host,, subnet subnet,, o interi domini . Possibilità di fornire l’ Possibilità l’ inoltro su porte locali o remote senza la possibilità possibilit à di eseguire comandi o di avere privilegi SFTP. Definizione del mapping delle porte di accesso da parte di ciascun Client Secure Shell. Vshell accetta o rifiuta l ’inoltro sulla porta richiesta in base ai privilegi posseduti dall’ dall’utente ed ai filtri impostati. 08/09/2002 MESSAGGI MESSAGGI INVIATI INVIATI AAVSHELL VSHELL E-mail sicure Per accedere in modo sicuro all’ all’e -mail sono richiesti un POP e un SMTP sicuro. In caso contrario possono essere inavvertitamente scoperti dati sensibili e confidenziali. CONTROLLO CONTROLLO VSHELL VSHELL SUCCESSO Danni: Messaggi legittimi possono essere registrati, modificati e sostituiti con altri. INSUCCESSO Rimedio: Il tunneling dell dell’’e -mail è un modo semplice di assicurare la privatezza e l’ l’integrit integrità à di tutte le ee -mail inviate o ricevute autenticate attraverso le compagnie di servers serversPOP, POP, IMAP e SMTP. NON NONSI SI ACCETTA ACCETTA L’INOLTRO L’INOLTRO SULLA SULLA PORTA PORTA RICHIESTA RICHIESTA SI SIACCETTA ACCETTA L’INOLTRO L’INOLTRO SULLA SULLA PORTA PORTA RICHIESTA RICHIESTA SSH 91 08/09/2002 Tunneling SSH 92 Tunneling Tunneling per e-mail Tunneling per e-mail 1. 2 . Si utilizza un server esterno, SendMail SendMail,, ed un server interno, Exchange . In entrambi i casi il traffico di mail è protetto sull’ sull’Internet pubblico, ma inviato come testo in chiaro al mail server. Ogni utente configura un SecureCRT o qualche altro client Secure Shell con una porta locale, mappando le porte del localhost su porte note ascoltate dai mail servers servers.. Vshell Vshell WIN32 Eudora Secure CRT Secure CRT Corp.com Corp. com WIN 32 Secure CRT WIN 32 Elm Corp.com Corp. com WIN 32 ISP.net Outlook WIN32 Eudora EXCHA NGE Outlook WIN32 Secure CRT WIN 32 Internet WIN32 Internet Elm Open SSH EXCHA NGE ISP.net Open SSH Linux Linux 08/09/2002 SSH 93 08/09/2002 Tunneling Accesso sicuro Wireless a Corpororate LANs 3 . Solo utenti autenticati possono ottenere l’ l’accesso a questi mail servers (in questo caso le coppie di chiavi vengono memorizzate in maniera sicura su smart cards cards). ). Obiettivi: Rendere sicuro il traffico WLAN destinato a servers intranet nella LAN aziendale. Vshell WIN32 Eudora Secure CRT EXCHA NGE ISP.net WIN32 Secure CRT Elm Prevenire lo sniffing da parte di AirSnort o WEPCrack - uso di SecureCRT per il forwarding delle porte sulla porta 80 (HTTP), 443 (SSL) e 119 (NNTP(NNTP-News) del localhost ascoltate da questi servers servers.. Corp.com Corp. com WIN 32 WIN 32 94 Tunneling Tunneling per e-mail Outlook SSH • • Internet • Un server IMail con accesso alle mail basato su browser viene raggiunto con la URL http://localhost :3080. Un server IIS viene raggiunto con la URL http://localhost :4080. ……… Open SSH Linux 08/09/2002 SSH 95 08/09/2002 SSH 96 16 Tunneling Tunneling Accesso sicuro Wireless a Corpororate LANs Accesso sicuro Wireless a Corpororate LANs Graficamente: Browser Secure CRT IS Wi-- Fi Wi Acces L A N WIN NT Vshell WIN32 Wi-- Fi LAN Wi WIN32 HTTP può essere cifrato con SSL, quindi non viene eseguito il tunnel di http su Secure Shell. Shell. IMAIL Solo utenti con chiavi pubbliche note possono accedere ai ai servers di intranet intranet.. WIN32 NEWS Browser WIN32 Criptato SSH Secure CRT L’unico traffico wireless che può penetrare in questa LAN è autenticato. Il multiplexing delle applicazioni sulla Secure Shell riduce il numero totale di connessioni TCP, ottimizzando la performance del del firewall firewall.. Testo in chiaro WIN XP Il firewall tra l’l’802.11b Wireless Access Point e la Vshell protegge la corporate LAN dalla WLAN. Abbiamo un solo server NNTP. Se un utente naviga su tali pagin e web del server, solo le URL relative all’host forwarded sarà accessibile. 08/09/2002 SSH 97 08/09/2002 SSH Tunneling Tunneling Secure VNC Screen Sharing Secure VNC Screen Sharing Virtual Network Computing è un sistema remoto di display. - Consente di visualizzare un ambiente di calcolo desktop sulla macchina macchina su cui è in esecuzione da qualsiasi luogo su Internet e su diversi tipi di di sistemi operativi. E ’ illustrata la condivisione sicura dello schermo VCN, implementata implementata tramite SecureCRT locale e remote port forward. forward. Si crea una local port forward, forward, mappando la porta 5900 del local host sulla 5900 del desktop remoto che sta eseguendo VCN. Criptato SSH Testo in chiaro VCN è conveniente perché perché gira su molteplici piattaforme: Win32, Linux Linux,, Solaris Solaris,, Macintosh Macintosh,, DEC, e WinCE WinCE.. Corp.com Corp. com Internet Fornisce solo una debole autenticazione con username e password e nessuna cifratura cifratura.. VNC wiewer Secure CRT Win32 08/09/2002 98 V -Shell VNC Win32 OS SSH 99 Il tunneling VNC su Secure Shell è critico. 08/09/2002 SSH Tunneling Tunneling Secure VNC Screen Sharing Osservazione: Implicazioni di sicurezza 100 Prodotti Secure Shell come SecureCRT e VShell danno all’ all’amministratore di rete un controllo granulare sulla condivisione remota dello schermo. schermo. Nessuna misura di sicurezza – compreso il Secure ShellTunneling – protegge contro tutti i possibili attacchi. Gli utenti possono essere fortemente autenticati con chiavi pubbliche, pubbliche, certificati, o metodi di autenticazione a due fattori come SecureID . Se un hacker penetra in un firewall mal configurato può sfruttare la debole password dell’ dell’amministratore per loggarsi nel server SSH. I filtri VShell controllano quali desktop possono essere accessi attraverso le porte VNC e quali utenti ne hanno il permesso. Il firewall può bloccare le porte VNC. Il server VShell agisce come un singolo punto di controllo sull’ sull’accesso VNC. 08/09/2002 SSH 101 Il Secure Tunneling non può evitare che i dati cadano nelle mani sbagliate. 08/09/2002 SSH 102 17 Tunneling Tunneling ESEMPI CLASSICI DI DoS DOVUTI AD ERRORI DI PROGRAMMAZIONE: • Produce una perdita di funzionalità funzionalità, più più o meno prolungata nel tempo, di uno o più più servizi dell dell’’host attaccato. • • Ce ne sono alcuni le cui cause fondamentali risiedono in errori di configurazione o di programmazione. buffer overflows in lettura dovuti alla gestione inappropriata del parsing;; parsing • • Sono evitabili ed in genere, dopo essere stati individuati, l’eliminazione è banale. input scelti dall’ dall’utente che si traducono nell’ nell’esecuzione continua di pezzi di codice; • mancanza di timeout su alcune operazioni; • ... Tali problemi possono essere presenti sia in programmi che girano nello spazio utente che nello stesso kernel. 08/09/2002 SSH 103 Tunneling 08/09/2002 SSH 104 Tunneling Negli ultimi anni sono proliferati i DoS che prendono di mira gli gli stacks TCP/IP dei sistemi operativi: Il tipo DoS (winnuke, land, teardrop ecc.) è facilmente sfruttabile dall’attaccante. Stack TCP/IP, SYN flood e firewalls • SYN flood spedisce una grande quantità quantit à di pacchetti SYN provenienti da una sorgente che non è in grado di resettare il SYN/ACK. • L’host attaccato riserverà riserver à molte risorse a queste connessioni che non verranno mai completate. • L’attacco non permette a nessun altro di effettuare connessioni verso verso la vittima. - Le energie richieste sono minime; - le possibilità di essere identificati molto basse. VITTIMA Management Un altro DoS remoto “importante” è il SYN flood. 08/09/2002 SSH 105 Tunneling 08/09/2002 SSH 106 Tunneling Esempio tipico: smurf Questo problema è stato risolto grazie all ’aiuto della crittografia, ma concettualmente rimane. Ø L’attaccante esegue lo spoofing utilizzando l’l’indirizzo della vittima come indirizzo sorgente e spedisce un ICMP di echo echo--request sull’’indirizzo di broadcast di una rete mal configurata. sull Alcuni servizi di rete mal progettati generano un nuovo processo per ogni nuova connessione da parte del client client.. Ø Tutti gli host appartenenti al broadcast risponderanno assieme allo stesso pacchetto, ma le risposte saranno indirizzate alla vittima. Concetto di amplificatore. Ø Un attaccante con una connessione da 10K/s può facilmente raggiungere raggiungere una potenza di attacco pari a 1000K/s! Ø Svariate regole dei firewalls (che tengono traccia delle connessioni) sono vulnerabili a questo attacco. Ø Ø 08/09/2002 SSH 107 08/09/2002 SSH 108 18 Tunneling Tunneling ALTRI TIPI DI ATTACCHI Soluzioni: Man in the middle: sniffing, tcp connection hijacking, spoofing • In teoria la classe di DoS che sfrutta errori vari di programmazione programmazione è debellabile. • In pratica è impossibile evitare che nuovi errori di programmazione siano introdotti nelle nuove versioni dei programmi. • Evitare lo spoofing stroncherebbe all’ all’origine molti problemi. • La maggior sicurezza si paga in perdita di performance. • Fino a quando il TCP/IP e il modello client client/server /server saranno alla base di Internet ci saranno dei DoS. • Si può solo costringere l’l’attaccante ad utilizzare sempre più più risorse per ottenere lo stesso effetto. 08/09/2002 SSH • Un attacco dalla rete, nel quale l'aggressore prende posizione fra due interlocutori: “man man-- in in-- the the-- middle middle-- attack attack””. • Questi attacchi hanno tutti un fattore in comune: la vittima non si accorge di niente. 109 Tunneling • La vittima, senza saperlo, apre un collegamento di rete con il computer errato. 08/09/2002 SSH 110 Tunneling ALTRI TIPI DI ATTACCHI ALTRI TIPI DI ATTACCHI Man in the middle: sniffing, tcp connection hijacking, spoofing Man in the middle: sniffing, tcp connection hijacking, spoofing 1. Sniffing: origlia ai collegamenti di rete che gli passano davanti. davanti. 3. Spoofing Spoofing:: invio di pacchetti con i dati del mittente modificati. 2. Hijacking: Hijacking : l'attaccante cerca di rapire un collegamento già esistente. Ø Analizza per un certo periodo di tempo i pacchetti che gli passano davanti per poter predire i numeri giusti di sequenza del del collegamento TCP. Ø Quasi tutte le varianti richiedono l'invio di pacchetti falsificati. falsific ati. Ø Sotto UNIX/Linux UNIX/Linux l’invio può essere eseguito solo dal superuser.. superuser Ø Molte possibilità possibilità di attacco appaiono solo in combinazione con un DoS. Approfitta soprattutto di quei protocolli che non sono assicurati in modo crittografico e nei quali all'inizio del collegamento avviene un'autenticazione. 08/09/2002 SSH 111 Tunneling 08/09/2002 SSH 112 Tunneling ALTRI TIPI DI ATTACCHI ALTRI TIPI DI ATTACCHI DNS poisoning (1) Ø L'attaccante cerca, con i pacchetti risposta DNS falsificati, di avvelenare la cache di un server. Ø Ø 08/09/2002 Ø DNS poisoning (2) Ø Il server DNS avvelenato inoltra l'informazione a chi la richiede. Molti server hanno creato un rapporto di fiducia verso altri computer: l’l’attacco può funzionare molto rapidamente. Ø Normalmente l'attaccante deve ricevere ed analizzare alcuni pacchetti del server. Un DoS cronologicamente sintonizzato contro un server DNS nella maggior parte dei casi non è evitabile. Ø Si può ricevere aiuto da un collegamento criptato che può verificare l'identità l'identità della meta del collegamento. SSH 113 08/09/2002 SSH 114 19 Tunneling Worms Tunneling ALTRI TIPI DI ATTACCHI Consigli ed espedienti (1) Ø Sono spesso comparati ai virus anche se vi è una notevole differenza tra essi. Una buona protezione contro gli errori di tutti i tipi è la veloce integrazione di pacchetti di update annunciati da un security announcement.. announcement Ø Un worm non deve contagiare alcun programma ospite ed è specializzato a diffondersi rapidamente nella rete. Ø Vermi noti ( Ramen Ramen,, Lion o Adore Adore)) utilizzano alcune lacune di sicurezza ben note dei programmi dei server (bind8 o lprNG lprNG)) . Ø Dal momento in cui si viene a conoscenza della lacuna utilizza ta e l'arrivo dei vermi passano alcuni giorni. Ø Per difendersi l'amministratore deve integrare le security update nei suoi sistemi. 08/09/2002 SSH 115 Tunneling REGOLE PRINCIPALI PER MIGLIORARE LA SICUREZZA DEL SISTEMA: • Lavorare il meno possibile come utente root • Usare sempre collegamenti criptati per eseguire lavori in remoto • Non usare metodi di autenticazione basati solo sull'indirizzo IP IP • Tenere sempre aggiornati i pacchetti più più importanti per la rete • Abbonarsi alle mailing list per gli avvisi dei relativi software softwar e 08/09/2002 SSH 116 Tunneling Conclusioni: Consigli ed espedienti (2) • Ottimizzare i diritti di accesso ai file di sistema critici per la sicurezza L’installazione e la configurazione di Secure Shell è relativamente veloce e semplice. • Disattivare ogni servizio di rete non strettamente necessario sul sul server VShell e SecureCRT mettono a disposizione una piattaforma di tunneling general--purpose che può essere usata per implementare un’ general un’ampia varietà varietà di politiche di sicurezza garantendo: - privatezza, - integrit integrità à, - autenticit autenticità à. • Criptare la banca dati per proteggerla contro accessi atti a manipolarla • Fare molta attenzione quando si installa nuovo software • Controllare regolarmente il backup dei dati e del sistema • Controllare i file "log". 08/09/2002 SSH 117 08/09/2002 SSH 118 Tunneling A cura di: Carotenuto Francesco, D’Antuono Massimiliano, De Vito Nadia, Nicolino Alessio Alessio 08/09/2002 SSH 119 20