Sei sulla pagina 1di 20

Sommario

Sistemi di elaborazione dell'informazione (Sicurezza su Reti)

Anno Acc. 2001-2002

Secure Shell n Introduzione


n Protocollo
n Installazione
n Tunneling
A cura di:
Carotenuto Francesco, D’Antuono Massimiliano, De Vito Nadia, Nicolino Alessio
Alessio Prof. De Santis Alfredo
08/09/2002 SSH 1 08/09/2002 SSH 2

Introduzione Introduzione

n Secure Shell originariamente progettato e scritto dal n Consente quindi di:


finlandese, Tatu Ylones (ylo
ylo@@ssh
ssh.. fi
fi)) - loggarsi in rete in modo sicuro
- eseguire comandi su un sistema remoto
n E’ un protocollo di comunicazione che garantisce un - copiare file da una macchina all’altra
login remoto sicuro e altri servizi di rete sicuri su un - fornire protezione per le connessioni X11 e per l’inoltro dei pacchetti
pacchetti TCP
canale insicuro (Internet) - supportare sistemi di autenticazione fortemente protetti
come RSA, SecurID , S/key
S/key,, Kerberos e TIS

08/09/2002 SSH 3 08/09/2002 SSH 4

Introduzione Introduzione

n Nasce per rimpiazzare i punti deboli dei comandi Berkeley n Risolve noti problemi di sicurezza circa
r* (rsh
(rsh,, rlogin
rlogin,, rcp
rcp)) in quanto suscettibili allo sniffing e allo protocolli TCP/IP come:
spoofing dell’indirizzo IP
- IP spoofing (falsificazione dell’ indirizzo IP del mittente)

nFornisce
Fornisce::
- DNS spoofing (falsificazione delle informazioni contenute
- infrastruttura per connessione crittografata nel DNS)
- autenticazione tra host e host e tra utente ed host - 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
- Intercettazione di dati trasmessi tramite rete
n I clients SSH girano su: UNIX, Linux
Linux,, VAX, Windows e - 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 SSH non protegge da:
- la cifratura di tutti i dati scambiati, - Configurazione o utilizzo scorretto
con algoritmi robusti come blowfish
blowfish,, 3DES, IDEA,… - Un account root compromesso
- Home directory insicure
08/09/2002 SSH 7 08/09/2002 SSH 8

Introduzione Introduzione

SSH1 vs SSH2 SSH2:


- SSH1: prima versione, gratuita in primo tempo, - include sftp
sftp,, ftp cifrato SSH2
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: riscrittura della vecchia versione SSH con miglioramenti apportati nella ma può richiamare SSH1 se un client ne richiede i protocolli SSH1 e se
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
- a causa della commercializzazione, l’accettazione di SSH2 è stata
stata lenta
Data Fellows
- ha acquistato la licenza di vendere e supportare SSH.

08/09/2002 SSH 9 08/09/2002 SSH 10

Introduzione Introduzione

Connessione crittografata: Autenticazione forte


- i dati scambiati con SSH sono cifrati con algoritmi a chiave simmetrica Per memorizzare le chiavi:
negoziati tra le parti
- i client utilizzano il file /etc
etc//ssh
ssh//known
known..host
- le chiavi per gli algoritmi di cifratura vengono scambiate in precedenza; - i server utilizzano il file /etc
etc//ssh
ssh__known
known__hosts
la cifratura previene gli attacchi di tipo sniffing. - database utente nel file $HOME/.
$HOME/.ssh ssh/
/known
known_ _host
- chiavi e login degli utenti sono contenute nel file
Autenticazione forte: $HOME/.ssh
$HOME/. ssh/ /authorized
authorized_ _keys
- avviene tramite algoritmi a chiave pubblica;
Il server memorizza nuove chiavi utente se accompagnate
- le chiavi sono generate, di solito, al momento dell’installazione;
dell’installazione;
da certificati o se già certo dell’identità dell’utente.
- ogni host su cui è installato un server SSH ha almeno una coppia di
Il client memorizza la nuova chiave del server se
chiavi per ogni algoritmo a chiave pubblica supportato;
i certificati che accompagnano la chiave sono validi.
- ogni host ha un database con le chiavi pubbliche degli host conosciuti.
08/09/2002 SSH 11 08/09/2002 SSH 12

2
Introduzione Introduzione

SSH garantisce:
PROBLEMA:
- metodo classico di autenticazione rhost di UNIX vulnerabile - sicurezza per qualsiasi protocollo allo strato di
ad attacchi di tipo spoofing 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 Host B Host C


08/09/2002 SSH 13 08/09/2002 SSH RETE SICURA 14

Introduzione Introduzione

ESEMPIO di connessione HTTP sicura:


- TCP port forwarding
OPENSSH (http://www.
http://www.openssh
openssh..com
com):
):
1. A crea una connessione SSH con B
- nato per far parte del sistema operativo OpenBSD
Il
protocollo
http è in
chiaro!!! 2. B crea una connessione HTTP con
- Open Source
C e invia i dati cifrati con SSH
- utilizza solo algoritmi di crittografia senza restrizioni
di utilizzo
Web Browser Server SSH Server HTTP

INTERNET

Host A Host B Host C


08/09/2002 SSH RETE SICURA 15 08/09/2002 SSH 16

Introduzione Introduzione

Compilazione SSH1: Compilazione SSH1:


Compilare SSH1 per Unix (ex: sotto Solaris
Solaris)) è semplice. Opzioni utili di compilazione
--without-- idea
--without ( non
non usa l'algoritmo brevettato IDEA)
Supponiamo di volere: le opzioni standard, connessione --without
--without--none
none:: ( non consente le comunicazioni in chiaro (non cifrate)
non in chiaro, vecchio algoritmo RSH/rlogin
RSH/rlogin,, algoritmo se uno dei server non ha chiavi)
chi avi)
IDEA; allora… --without
--without-- rsh
rsh:: (non consente l'opzione rsh rhosts quando un server
gzcat ssh-
ssh-1.2.27.
1.2.27.tar
tar..gz | tar xf - non ha le chiavi)
cd ssh
ssh--1.2.27; ./configure
./configure ----prefix
prefix =/
=/usr
usr --
--without
without--none -- --prefix
--prefix=/
=/usr
usr// bsd --
--sbindir
sbindir=/=/usr
usr/
/ bsd --
--bindir
bindir=/=/usr
usr/
/ bsd : (per
without -rsh --
--without
without--idea installare
inst allare in directory non standard)
make --with
--with--securid
securid=../
=../ace
ace (aggiunge il supporto per l'autenticazione
make install SecureID (sono necessarie le librerie ACE)).
--with
-- with--socks5=/
socks5=/usr usr// local
local/
/ lib (Supporto per proxy Socks5)

08/09/2002 SSH 17 08/09/2002 SSH 18

3
Introduzione Introduzione

Compilazione SSH1: Preparazione di un pacchetto di installazione binaria


- la seguente procedura presume che si abbiano copiati alcuni dei documenti SSH come Configurazione:
le FAQ in /usr
/usr//localssh
localssh--docs
docs..
tar cvf ssh_
ssh _ bin
bin..tar /usr /local /bin /{ /{ss s h,ssh1,
h,ssh1,s s c p,scp1,
p,scp1,slogin
slogin} }
File
File di configurazione:
configurazione:
tar uvf ssh_
ssh_bin .tar / usr
usr// local
local/ / bin
bin// {s
{s s h-
h-keygen1,
keygen1,s s s h-
h- keygen ,ssh
ssh--agent1,
agent1,s s s h-
h- • /etc
etc//sshd
sshd__config per il server;
agent } • /etc
etc//ssh
ssh_
_config per il client (contiene settaggi di default a livello di sistema).
tar uvf ssh_
ssh_bin .tar / usr
usr// local
local/ / bin
bin// {s
{s s h-
h-add1,
add1,s s s h-
h-add
add,,s s h-
h- askpass1,
askpass1,s s s h-
h-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} }
Server:: bisogna configurare il demone ssh in modo che
Server
tar uvf ssh_
ssh_bin .tar / etc
etc/rc2.d/{S10sshd,K10sshd}
/rc2.d/{S10sshd,K10sshd} / etc etc//init .d/
.d/sshd
sshd l'accesso sia limitato agli host specificati
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 h-
h- 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,makemake--s s h-h-known
known-- hosts
hosts.1}
.1} Client:: bisogna configurare le opzioni globali per il client SSH
Client
/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 h-
h- docs
compress ssh_ ssh_bin .tar

08/09/2002 SSH 19 08/09/2002 SSH 20

Protocollo Protocollo

In una connessione tra client e server che utilizza SSH:


n Il protocollo SSH utilizza le funzioni crittografiche
dell’SSL
n Client e server si scambiano le chiavi pubbliche.

n E’ possibile instaurare una comunicazione cifrata, n SSH chiede all’utente se accettare o meno la chiave (solo la prima
p rima volta).
autenticandosi usando:
Ø host key n Client e server negoziano una chiave di sessione (usata per cifrare
cifr are
Ø certificati che possono essere verificati tramite tutti i dati seguenti attraverso un cifrario a blocchi).
una autorit à fidata.

08/09/2002 SSH 21 08/09/2002 SSH 22

Protocollo Protocollo

n Schema dell’
dell’ architettura di SSH e sua divisione in n Schema dell’
dell’ architettura di SSH e sua divisione in
protocolli: protocolli:

08/09/2002 SSH 23 08/09/2002 SSH 24

4
Protocollo Protocollo

n Schema dell’
dell’ architettura di SSH e sua divisione in n Schema dell’
dell’ architettura di SSH e sua divisione in
protocolli: protocolli:

08/09/2002 SSH 25 08/09/2002 SSH 26

Protocollo Protocollo

TRANSPORT LAYER TRANSPORT LAYER


PROTOCOL 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 08/09/2002 SSH 28

Protocollo Protocollo

AUTHENTICATION AUTHENTICATION
PROTOCOL PROTOCOL
E’ un protocollo di autenticazione utente general
general--purpose
purpose..
Sono supportati tre tipi di autenticazione:
- gira al di sopra dell’
dell ’SSH Transport Layer Protocol;
Protocol;
- assume che il protocollo sottostante fornisca n Autenticazione con
con chiave pubblica
pubblica::
protezione dell’
dell ’integrit
integritàà e confidenzialit
confidenzialitàà. Ø Il client invia un pacchetto firmato con la propria chiave privata.

Lo User Authentication Protocol autentica l’l’utente Ø Il server verifica la firma tramite la chiave pubblica del client
client..
del client sul server.
Ø 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 CONNECTION
PROTOCOL PROTOCOL
n Autenticazione con password: Progettato per girare al di sopra dello User Authentication
Ø all'utente sul client viene presentato il prompt per l'inserimento Protocol..
Protocol
della password.
Fornisce:
n Autenticazione Host based:
based: - sessioni interattive di login
login;;
- esecuzione remota di comandi;
- simile a rhosts di UNIX, ma più
più sicuro;
- inoltro di connessioni TCP/IP;
- aggiunge la verifica dell'identità
dell'identit à dell'host tramite Host key .
- inoltro di connessioni X11.

08/09/2002 SSH 31 08/09/2002 SSH 32

Protocollo Protocollo

CONNECTION CONNECTION
PROTOCOL PROTOCOL

Dà inizio alla sessione vera e propria. n Divide la connessione in canali logici multiplexati in
una singola connessione.

Il client può richiedere:


n Rende possibile accedere a più
più servizi con un singolo tunnel
- una shell remota, cifrato.
- l'esecuzione di un comando,
- un trasferimento di file sicuro, ecc.

08/09/2002 SSH 33 08/09/2002 SSH 34

Protocollo Installazione e Setup


ASPETTI DI
SICUREZZA OpenSSH può essere scaricato dal sito http://www.
http://www.openssh
openssh..com
com//
In definitiva:

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
Per i binari RPM si ha bisogno di:
pubblica sono ben conosciuti e ben stabiliti.
§ openssh
openssh--versionep
versionep.. rpm
n Tutti gli algoritmi sono utilizzati con chiavi sufficientemente
§ openssh
openssh--clients
clients-- versionep
versionep.. rpm
lunghe da stabilire una forte protezione contro gli attacchi
crittoanalitici..
crittoanalitici § openssh
openssh--server
server-- versionep
versionep.. rpm
§ zlib
zlib-- versione
versione.. rpm
n Tutti gli algoritmi sono negoziati. Se uno di essi viene rotto
§ openssl
openssl-- versione
versione.. rpm
è facile passare ad un altro senza modificare il protocollo
di base.
08/09/2002 SSH 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 n Mira a creare un toolkit commerciale per realizzare il Secure Socket
Layer,, Transport Layer Securety e librerie per la realizzazione di
Layer
per la compressione dei dati.
sistemi fortemente crittografati.
n Si trova già all'interno di quasi tutte le principali
n E’ disponibile sia come sorgente sia come pacchetto RPM.
distribuzioni di Linux
Linux..

n E’ possibile scaricarlo dal sito n I pacchetti RPM si possono reperire insieme a quelli di OpenSSH
OpenSSH..
www.freesoftware
www. freesoftware..com
com/pub/
/pub/infozip
infozip//zlib
zlib//.
n I sorgenti sono disponibili presso il sito
n Sono disponibili sia il formato binario RPM sia il sorgente. http://www.openssl
http://www. openssl..org
org//.

08/09/2002 SSH 37 08/09/2002 SSH 38

Installazione e Setup 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 n Se si ha a disposizione il pacchetto in formato RPM
RPM,, basta digitare alla
riga di comando: riga di comando:
rpm -ivh zlib-versione.rpm 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 tar xzvf zlib-versione.tar.gz cd zlib-versione
./configure ./configure
make make
su -c "make install" su -c "make install"

08/09/2002 SSH 39 08/09/2002 SSH 40

Installazione e Setup Installazione e Setup


Installazione del programma OpenSSl Installazione del programma OpenSSH

n Se si ha a disposizione il pacchetto in formato RPM


RPM,, basta digitare alla n Se si ha a disposizione il pacchetto in formato RPM
RPM,, basta digitare alla
riga di comando: riga di comando:
rpm -ivh openssl-versione.rpm rpm -ivh versionep.i386.rpm rpm -ivh
openssh-clients- versionep.rpm
n Se si preferisce usare il formato tar
tar..gz
gz,, si deve scrivere: rpm -ivh openssh-server -versionep.rpm
tar xzvf openssl- versione.tar.gz cd openssl- versione
./configure n Se si preferisce usare il formato tar
tar..gz
gz,, si deve scrivere:
make
tar xzvf openssh- versione.tar.gz cd openssh- versione
su -c "make install"
./configure --prefix=/usr -- sysconfdir=/etc/ssh

08/09/2002 SSH 41 08/09/2002 SSH 42

7
Installazione e Setup Installazione e Setup
Installazione del programma OpenSSH Installazione del programma OpenSSH

n Il parametro "----prefix
prefix"" impone di porre i file binari nelle n I comandi:
directory bin
bin,, sbin ed i manuali nella directory man
man.. make su -c "make install“
su -c "make host-key"
n Per default OpenSSH pone i file di configurazione all'interno consentono di installare i file generati e creare le chiavi.
della cartella / usr
usr//local
local/etc
/etc..
n ssh impiega una coppia di chiavi pubblica/privata
pubblica/privata..
n Il parametro sysconfdir rende possibile modificare l'impostazione
di default e impostare, a propria scelta, la cartella contenente i file n L’ RSA é il formato più
più vecchio, mentre il DSA è quello più
più
di configurazione. recente.

08/09/2002 SSH 43 08/09/2002 SSH 44

Installazione e Setup Installazione e Setup


Installazione del programma OpenSSH Installazione del programma OpenSSH
La sotto-
sotto-cartella contrib contiene:

n il file sshd
sshd.. pam
pam.. generic per l'autenticazione PAM. Per usarlo basta copiarlo Se il demone SSH é già in esecuzione con un collegamento via telnet alla
all'interno della cartella /etc/pam.d/ col nome di sshd:: porta 22 della propria macchina si dovrebbe ottenere:
cp sshd.pam.generic /etc/pam.d/sshd.

n script init relativi alle distribuzioni SuSE e Red Hat . Per la SuSE
SuSE,, inoltre, Trying 127.0.0.1...
bisogna copiare un file di configurazione in /etc rc.
rc.config
config//: Connected to localhost .
cp rc.config.sshd Escape character is '^]'
etc/rc.config.d/sshd.rc.config.z SSH -1.99-OpenSSH _2.3.)p1

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 08/09/2002 SSH 46

Installazione e Setup Installazione e Setup


File interessati (1) File interessati (2)
$HOME/.s s h/ known_hosts /etc/s s h/s s h_config
Registra le chiavi pubbliche degli host in cui l'utente ha effettuato il login
login.. File di configurazione di default per i client
client..
$HOME/.s s h/identity , $HOME/.s s h/i d _d s a $HOME/. rhosts
Contengono le chiavi private RSA e DSA dell'utente, rispettivamente.
rispettivame nte. File usato nella autenticazione .rhosts
. rhosts ; contiene la lista delle coppie host
host-- utente che possono
$HOME/.s s h/identity .pub, $HOME/.ssh/i d_dsa.pub autenticarsi in questo modo.
Contengono le chiavi pubbliche RSA e DSA dell'utente, rispettivamente. $HOME/.shosts
$HOME/.s s h/config Lo stesso del precedente, tranne che permette di effettuare il login solo tramite SSH.
File di configurazione utente usato dal client SSH. /etc/ hosts.equiv
Usato nell'autenticazione .rhosts
.rhosts..
$HOME/.s s h/ authorized_keys
/etc/s s h/shosts .equiv
Elenca le chiavi pubbliche RSA degli utenti autorizzati ad effettuare
effet tuare il login per quell' account.
E' usato allo stesso modo di / etc
etc// hosts
hosts..equiv
equiv,, ma permette di effettuare il login solo tramite SSH.
$HOME/.s s h/ authorized_keys2
/etc/s s h/sshrc;$HOME/.ssh/rc
Elenca le chiavi pubbliche RSA/DSA degli utenti autorizzati ad e ffettuare il login
I comandi i questo file vengono eseguiti quando l'utente effettua
effettu a i l login appena prima che la shell
per quell' account (o il comando) parta.
/etc/s s h/s s h_known_hosts, /etc /ssh_known_hosts2 $HOME/.s s h/ environment
Lista delle host key per gli host conosciuti. Il primo contiene chiavi pubbliche RSA mentre Contiene definizioni addizionali per le variabili d'ambiente.
il secondo anche chiavi pubbliche DSA. /etc/s s h/ primes
Contiene i valori primi utilizzati da Diffie
Diffie-- Hellman
08/09/2002 SSH 47 08/09/2002 SSH 48

8
Installazione e Setup Installazione e Setup
File interessati (3) Configurazione di OpenSSH (1)
/etc/ssh/sshd_config La configurazione di OpenSSH funziona per chiunque si colleghi.
File di configurazione per l'utente usato dal server SSH. I vari file di configurazione si trovano in /etc/ssh o in /usr/local/etc
/etc/ssh/ssh _host _key, / etc/ssh/ssh_ host _dsa _key,
/etc/ssh/ssh _host _rsa_key In queste cartelle ci sono due file:
Contengono, rispettivamente, la parte privata delle chiavi SSH1, SSH2 DSA e
n ssh_config imposta le opzioni per il programma SSH client che verrà utilizzato;
SSH2 RSA del server.
n sshd_config é il file di configurazione del demone SSH ( sshd
sshd).
).
Nota : SSH ignora una chiave privata registrata in un file acces sibile da altri.
/etc/ssh/ssh _host _key.pub, / etc/ssh/ssh_ host_ dsa _key.pub
Quando viene lanciato il programma ssh
ssh,, esso consulta:
/etc/ssh/ssh _host _rsa_key.pub
Contengono, rispettivamente, la parte pubblica delle chiavi SSH1, SSH1, SSH2 DSA e
n le opzioni inserite alla riga di comando;
SSH2 RSA del server.
n il file $HOME/.ssh/config
/etc/nologin n il file /etc/ssh/ssh_config.
Se questo file esiste, SSH si rifiuta di effettuare il login tranne che per l'utente
root . Un utente può impostare le proprie opzioni senza modificare quelle
quelle comuni
contenute in /etc/ssh/ssh_config.
08/09/2002 SSH 49 08/09/2002 SSH 50

Installazione e Setup Installazione e Setup


Configurazione di OpenSSH (2) Comandi principali (1)
ssh--keygen:
ssh
n Crea una coppia di chiavi pubblica/privata.
I files di configurazione possono contenere:
ssh-keygen -d.
n righe di commento evidenziate dal simbolo ‘#
‘#’ iniziale; n E’ sufficiente a realizzare una chiave RSA .
n righe vuote (che vengono ignorate);
n L'opzione -d permette di costruire una chiave DSA in luogo di una RSA che potrà
potrà
n righe contenenti direttive, composte da coppie <nome> <valore>, essere utilizzata in seguito insieme a SSH2.
spaziate, senza alcun simbolo di assegnamento
n La chiave privata viene salvata, col nome del file specificato, in:
$HOME/.ssh/NomeFileScelto
Per le principali direttive di configurazione contattare:
n La parte pubblica della chiave creata viene posta nel file
www.dia.unisa
www.dia. unisa.. it
it//ads
ads.dir/
.dir/ HOME/.ssh/NomeFileScelto.pub.

n Viene chiesta una passpharse per criptare la chiave privata:


$ ssh-keygen -b 1024 -N 'password'

08/09/2002 SSH 51 08/09/2002 SSH 52

Installazione e Setup Installazione e Setup


Comandi principali (2) Comandi principali (3)
Per collegarsi ad una macchina remota, NomeHost
NomeHost,, basta scrivere al
ssh -C -i NomeFileConteneteLaCoppiaDiChiavi -v –x NomeUtente@NomeHost
prompt della shell
shell:: [comando]
$ ssh NomeHost
-C indica di usare la compressione dei dati.
La prima volta che ci si collega a NomeHost
NomeHost,, compare il messaggio:
The authentication of host NomeHost can't be established. -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).
).
RSA key fingerprint is
3b:60:57:4e:6c:59:5a:99:cf:41:d5:e0:14:af:0d:a1. -x disabilita il forward automatico delle connessioni X11;
Are you sure you want to continue connecting (yes/no) ?
-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.

NomeHost indica il nome della macchina a cui ci si vuole collegare.


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. [comando] (opzionale) serve ad eseguire un comando appena viene stabilita la connessione.
08/09/2002 SSH 53 08/09/2002 SSH 54

9
Installazione e Setup Installazione e Setup
Comandi principali (4) Trasferimenti sicuri di file : scp (1)

SSH offre la possibilità di collegarsi agli host remoti senza specificare scp fornisce un modo sicuro di trasferire i file attraverso Internet:
Internet:
alcuna password: scp
ü si copia il file contenente la chiave pubblica sul server a cui NomeUtente@NomeHostDiPartenza :NomeFileDaCopiare
si desidera connettersi; NomeUtente@NomeHostDiArrivo :NomeFile

ü si aggiungere il riferimento alla lista dei file che si trova: Per copiare un file che locale in un altro host si può scrivere:
- in $HOME/.ssh/authorized_keys (chiave RSA );
scp NomeFileDaCopiare NomeUtente@NomeHost ::NomeFileDaC opiare
- in $HOME/.ssh/authorized_key2 (chiave DSA );
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 SSH 56

Installazione e Setup Installazione e Setup


Trasferimenti sicuri di file : scp (2) Altri esempi pratici
$ ssh -l tizio linux.brot.dg
Per copiare un file che si trova in un host remoto nella cartella Accede all’elaboratore ‘linux
‘linux .brot
brot..dg
dg’’, utilizzando lì il nominativo-
nominativo-utente ‘tizio
‘tizio’’.
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 $ ssh -l tizio linux.brot.dg tar czf - /home/tizio > backup.tar.gz
alla cartella locale corrente. 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
-r consente di copiare in modo ricorsivo i file da una cartella ad ‘backup
backup.. tar
tar.. gz’ nella directory corrente dell’elaboratore locale.
un’altra. $ scp tizio@linux.brot.dg:/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 SSH 58

Installazione e Setup Installazione e Setup


Port Forwarding (2)

Esempio : Port Forwarding (1)


n Host A è separato dalla intranet da una rete insicura e deve comunicare
Permette di creare un canale di comunicazione sicuro attraverso il via telnet con Host C.
quale veicolare qualsiasi connessione TCP.
n Host B permette connessioni SSH.

n Il port forwarding di SSH crea il canale sicuro tra Host A e Host B.


Intranet
n La connessione telnet vera e propria viene effettuata tra Host B e Host C.
1111 23
CANALE SICURO

Host A Host B Host C


CANALE IN CHIARO
08/09/2002 SSH 59 08/09/2002 SSH 60

10
Installazione e Setup Installazione e Setup
Port Forwarding (3)

n Il comando, dato su Host A : Dimostrazione di utilizzo


hostA > ssh -L 1111:HostC :23 HostB sleep 100 Dopo l’installazione di OpenSSH
OpenSSH::
alloca la porta TCP 1111 su Host A attraverso cui, passando per il
canale sicuro, si arriva alla porta 23 di Host C. n viene generata una coppie di chiavi pubblica/privata;

n il comando
n Per completare la connessione bisogna effettuare un telnet alla porta: ssh-keygen
hostA > telnet localhost 1111
Ø permette di creare chiavi RSA e DSA di lunghezza variabile e
nel formato relativo al protocollo SSH1 ed SSH2
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. Ø 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 08/09/2002 SSH 62

Installazione e Setup Installazione e Setup

Generazione di una coppia di chiavi RSA relative al protocollo SSH1 Generazione di una coppia di chiavi RSA relative al protocollo SSH2

08/09/2002 SSH 63 08/09/2002 SSH 64

Installazione e Setup 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:

n Consideriamo una connessione HTTP, protocollo che prevede


Durante questa scambio di dati in chiaro.
fase un programma
di ascolto del traffico n Viene richiesta una pagina di default del server junior in cui è presente
un form HTTP.
TCP/IP fallisce.
Ad esempio Ethereal
Ethereal,,
n Nei campi vengono inseriti dei dati di prova.
uno degli sniffer più
noti avrebbe catturato:

08/09/2002 SSH 67 08/09/2002 SSH 68

Installazione e Setup 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 08/09/2002 SSH 70

Installazione e Setup Installazione e Setup

Se uno sniffer Con il seguente comando si inoltra la connessione al server HTTP sul canale
viene posto in cifrato creato con il server SSH. Nel comando viene specificata:
ascolto durante la Ø la porta locale a cui si connetterà in seguito il web browser
sessione HTTP: Ø 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 71 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 08/09/2002 SSH 74

Installazione e Setup 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 08/09/2002 SSH 76

Tunneling Tunneling

SSH Tunneling permette


permette::
• Connessioni Always On a banda larga aumentano il pericolo: • di rendere sicure applicazioni che altrimenti invierebbero
l’aggressore ha un obiettivo fisso da attaccare nel tempo. informazioni vulnerabili su reti pubbliche;
• di proteggere i messaggi dell’
dell’applicazione trasmessi da una
• SSH aiuta a rendere sicuri la maggior parte degli accessi remoti
parte all’
all’altra della connessione.
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
• SSH effettua il tunneling di informazioni per qualsiasi applicazione ristretti a una sola porta: la porta Secure Shell (22).
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
MAIL S v r:
r: smtp (25)
ad un server SMTP.
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)

- Chiunque e in qualsiasi punto del percorso può intercettare MAIL--Client


MAIL
MAIL--Server
MAIL
testo in chiaro del messaggio, indirizzi e-
e- mail, nomi utenti e
password.
I server e-
e-mail sono facilmente individuabili
- Attacchi Denial of Service
- Utilizzo un server aperto
08/09/2002 SSH 79 08/09/2002 SSH 80

Tunneling Tunneling
ATTACCO: Tunneling su Intranet:
Identificando il server gli hacker sono in grado di 1. Punti di accesso WLAN spesso disposti in modo errato dietro
sfruttare le vulnerabilità
vulnerabilit à conosciute nel sistema il firewall corporativo, trattando tutte le postazioni su WLAN
operativo del server o nel software di posta elettronica. come fidate.
fidate.
2. WLANs basate sul protocollo IEEE 802.11b Wi Wi--Fi
Fi::
permettono il broadcast in ogni direzione.
SOLUZIONE: Attacchi:
Il tunneling può aiutare ad eliminare le porte - freeware NetStumbler o AirSnort per scoprire una WLAN.
accessibili, bloccando utenti non autorizzati, e
assicurando: - 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 08/09/2002 SSH 82

Tunneling Tunneling
Tunneling con risorse condivise: Tunneling con risorse condivise:
• file condivisi tra PC • Desktop
- Ciascuna risorsa condivisa deve essere protetta da attacchi - Altra risorsa condivisa a cui si accede in maniera remota
di tipo DoS, perdite, modifiche fraudolente e accessi non autorizzati.
autorizzati.
- Condivisione effettuata tramite software per il controllo
- Le misure di sicurezza di sistemi operativi basati su remoto:
privilegi, lettura/scrittura, nomi utenti, password, per il
controllo sugli accessi non proteggono l’ l’integrit
integrità
à dei dati. Symantec ;
pcAnywhere;;
pcAnywhere
ATTACCO: AT&T Labs VNC;
- Se la connessione via cavo è sempre attiva, un hacker può Microsoft NetMeeting
NetMeeting;;
tentare un attacco basato su dizionario,, scoprendo Windows XP Remote DeskTop Assistence
Assistence.
password e nomi utenti delle risorse condivise.

08/09/2002 SSH 83 08/09/2002 SSH 84

14
Tunneling Tunneling
Problema:
• Il controllo remoto non autorizzato rappresenta un problema Funzionamento del Tunneling SSH:
per coloro che amministrano la sicurezza delle aziende.
aziende

• Si esegue il Tunneling del flusso di informazioni delle


Soluzione: applicazioni.
Il Tunneling SSH fornisce:
• Il flusso verrà
verrà inviato su una singola connessione TCP.
• un meccanismo uniforme di autenticazione forte
• Dopo l’
l’inoltro di una porta locale, SecureCRT rimane in
• un controllo a livello di accesso ascolto sulla specifica porta dell
dell’’host locale.
• privacy per i files e i desktop condivisi • Vshell apre una connessione con l ’host remoto dove il Server
- I flussi di dati insicuri vengono multiplexati su un'unica sessione SSH. delle applicazioni è in esecuzione.
- 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 08/09/2002 SSH 86

Tunneling Tunneling

Client: ESEMPIO:
- L’applicazione deve essere riconfigurata in modo tale da connettersi
Spedizione dalla Postazione locale:
sul localhost
localhost..
- I pacchetti inviati sul localhost
localhost:: localport vengono intercettati e Mail--Svrl
Mail
criptati dal SecureCRT o da un altro Client e quindi viene effettuato il MAIL S v r:
r: smtp (25)
Tunneling attraverso la connessione Secure Shell verso la Vshell o un MAIL S v r:
r: pop (110)
altro Server SSH. MAIL S v r:
r: smtp (143)

Server: MAIL S v r:
r: smtp (25)
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 V -Shell Mail--Svrl
Mail

08/09/2002 SSH 87 08/09/2002 SSH 88

Tunneling Tunneling

Osservazione: Autenticazione ad accesso controllato:


• Lasciando la porta della Secure Shell aperta sul firewall viene
Il traffico che transita fra: delegato il controllo sulle applicazioni alla Vshell
Vshell..
Ø SecureCRT e VShell è protetto mediante crittografia
Ø Vshell e remote host non lo è. • Viene realizzato un unico ed integrato punto di controllo per:
Ø autenticazione remota degli utenti
§ Vshell è situato all’
all’ interno del perimetro della rete locale, protetto da un Ø accesso alle risorse
firewall..
firewall Ø gestione delle applicazioni in Tunneling
Tunneling..
§ Il firewall viene configurato per permettere connessioni di tipo Secure • SecureCRT viene autenticata da Vshell prima che inizi
Shell,, ma non connessioni da parte delle applicazioni di cui viene
Shell qualsiasi Tunnel.
effettuato il Tunneling (SMTP, IMAP, POP).
• Rigido il controllo sui tentativi di accesso consecutivi e sui
§ La configurazione del firewall protegge lo scambio delle informazioni in limiti di timeout.
chiaro verso il Server che è presente all’
all’ interno della rete aziendale.

08/09/2002 SSH 89 08/09/2002 SSH 90

15
Tunneling Tunneling
MESSAGGI
Protezione: MESSAGGI
INVIATI
INVIATI
AAVSHELL
VSHELL
E-mail sicure
Per accedere in modo sicuro all’all’e -mail sono richiesti un POP
1. Creazione di filtri Vshell in modo da
permettere o negare la connessione SSH da e un SMTP sicuro.
specifici indirizzi IP, host
host,, subnet
subnet,, o interi In caso contrario possono essere inavvertitamente
domini . scoperti dati sensibili e confidenziali.
2. Possibilità di fornire l’
Possibilità l’ inoltro su CONTROLLO
CONTROLLO
porte locali o remote senza la VSHELL
VSHELL Danni:
possibilità
possibilit à di eseguire comandi o di
Messaggi legittimi possono essere registrati, modificati e
avere privilegi SFTP.
sostituiti con altri.
3. Definizione del mapping delle porte di
accesso da parte di ciascun Client SUCCESSO INSUCCESSO
Secure Shell. Rimedio:
Il tunneling dell
dell’’e -mail è un modo semplice di assicurare la privatezza
4. Vshell accetta o rifiuta l ’inoltro sulla NON
NONSI
SI
SIACCETTA
ACCETTA
SI
ACCETTA
e l’
l’integrit
integrità
à di tutte le e-
e -mail inviate o ricevute autenticate attraverso
porta richiesta in base ai privilegi L’INOLTRO
L’INOLTRO
ACCETTA
L’INOLTRO le compagnie di servers
serversPOP,
POP, IMAP e SMTP.
posseduti dall’
dall’utente ed ai filtri SULLA L’INOLTRO
SULLA SULLA
impostati. PORTA SULLA
PORTA PORTA
PORTA
RICHIESTA
RICHIESTA RICHIESTA
RICHIESTA
08/09/2002 SSH 91 08/09/2002 SSH 92

Tunneling Tunneling
Tunneling per e-mail Tunneling per e-mail
1. Ogni utente configura un SecureCRT o qualche altro client 2 . Si utilizza un server esterno, SendMail
SendMail,, ed un server
Secure Shell con una porta locale, mappando le porte del interno, Exchange . In entrambi i casi il traffico di mail è
localhost su porte note ascoltate dai mail servers
servers.. protetto sull’
sull’Internet pubblico, ma inviato come testo in
chiaro al mail server.
Vshell Vshell
WIN32 WIN32
Eudora Eudora
Secure CRT Secure CRT
WIN 32
Corp.com
Corp. com WIN 32
Corp.com
Corp. com
EXCHA EXCHA
ISP.net NGE ISP.net NGE
Outlook Outlook
Secure CRT WIN32 Secure CRT WIN32
WIN 32 WIN 32
Internet Internet
Elm Elm
Open SSH Open SSH
Linux Linux
08/09/2002 SSH 93 08/09/2002 SSH 94

Tunneling Tunneling
Tunneling per e-mail 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 Obiettivi:
memorizzate in maniera sicura su smart cards
cards).
).
Rendere sicuro il traffico WLAN destinato a servers intranet
Vshell
nella LAN aziendale.
WIN32
Eudora Prevenire lo sniffing da parte di AirSnort o WEPCrack
Secure CRT - uso di SecureCRT per il forwarding delle porte sulla
WIN 32
Corp.com
Corp. com porta 80 (HTTP), 443 (SSL) e 119 (NNTP-
(NNTP-News)
EXCHA del localhost ascoltate da questi servers
servers..
ISP.net NGE
Outlook
• Un server IMail con accesso alle mail basato su browser
Secure CRT WIN32 viene raggiunto con la URL http://localhost :3080.
WIN 32
Internet
• Un server IIS viene raggiunto con la URL http://localhost :4080.
Elm • ………
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
Browser
Secure CRT
Graficamente:
IS
WIN NT Wi-- Fi
Wi HTTP può essere cifrato con SSL, quindi non viene eseguito il
Vshell
Acces L A N WIN32 tunnel di http su Secure Shell.
Shell.
WIN32

IMAIL Solo utenti con chiavi pubbliche note possono accedere ai


ai servers di intranet
intranet..
Wi-- Fi LAN
Wi WIN32
Il firewall tra l’l’802.11b Wireless Access Point e la Vshell protegge la corporate
LAN dalla WLAN.
NEWS
L’unico traffico wireless che può penetrare in questa LAN è autenticato.
Browser WIN32
Secure CRT Criptato SSH Il multiplexing delle applicazioni sulla Secure Shell riduce il numero
WIN XP Testo in chiaro totale di connessioni TCP, ottimizzando la performance del del firewall
firewall..

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 98

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 è E ’ illustrata la condivisione sicura dello schermo VCN, implementata
implementata
in esecuzione da qualsiasi luogo su Internet e su diversi tipi di
di sistemi operativi. tramite SecureCRT locale e remote port forward.
forward.
Criptato SSH Si crea una local port forward,
forward, mappando la porta 5900 del local host
Testo in chiaro sulla 5900 del desktop remoto che sta eseguendo VCN.

VCN è conveniente perché


perché gira su molteplici piattaforme:
Corp.com
Corp. com Win32, Linux
Linux,, Solaris
Solaris,, Macintosh
Macintosh,, DEC, e WinCE
WinCE..
Internet
Fornisce solo una debole autenticazione con username e password e
nessuna cifratura
cifratura..
VNC wiewer
V -Shell VNC Il tunneling VNC su Secure Shell è critico.
Secure CRT
Win32 OS
Win32
08/09/2002 SSH 99 08/09/2002 SSH 100

Tunneling Tunneling
Secure VNC Screen Sharing Implicazioni di sicurezza
Osservazione: Nessuna misura di sicurezza – compreso il Secure ShellTunneling –
Prodotti Secure Shell come SecureCRT e VShell danno all’all’amministratore
di rete un controllo granulare sulla condivisione remota dello schermo.
schermo. protegge contro tutti i possibili attacchi.

Gli utenti possono essere fortemente autenticati con chiavi pubbliche,


pubbliche, Se un hacker penetra in un firewall mal configurato può sfruttare la
certificati, o metodi di autenticazione a due fattori come SecureID . 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 Secure Tunneling non può evitare che i dati cadano nelle mani
sbagliate.
Il server VShell agisce come un singolo punto di controllo sull’
sull’accesso VNC.

08/09/2002 SSH 101 08/09/2002 SSH 102

17
Tunneling Tunneling

• Produce una perdita di funzionalità


funzionalità, piùpiù o meno prolungata nel ESEMPI CLASSICI DI DoS DOVUTI AD ERRORI DI PROGRAMMAZIONE:
tempo, di uno o più
più servizi dell
dell’’host attaccato. • buffer overflows in lettura dovuti alla gestione inappropriata del
parsing;;
parsing
• Ce ne sono alcuni le cui cause fondamentali risiedono in errori di
configurazione o di programmazione. • input scelti dall’
dall’utente che si traducono nell’
nell’esecuzione continua di
pezzi di codice;
• Sono evitabili ed in genere, dopo essere stati individuati,
l’eliminazione è banale. • 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 08/09/2002 SSH 104

Tunneling Tunneling

Stack TCP/IP, SYN flood e firewalls


Negli ultimi anni sono proliferati i DoS che prendono di mira gli
gli stacks TCP/IP • SYN flood spedisce una grande quantità
quantit à di pacchetti SYN provenienti da una
dei sistemi operativi: sorgente che non è in grado di resettare il SYN/ACK.
• L’host attaccato riserverà
riserver à molte risorse a queste connessioni che non verranno
Il tipo DoS (winnuke, land, teardrop ecc.) mai completate.
è facilmente sfruttabile dall’attaccante. • 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 08/09/2002 SSH 106

Tunneling 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
Ø Svariate regole dei firewalls (che tengono traccia delle sull’’indirizzo di broadcast di una rete mal configurata.
sull
connessioni) sono vulnerabili a questo attacco.

Ø Alcuni servizi di rete mal progettati generano un nuovo processo Ø Tutti gli host appartenenti al broadcast risponderanno assieme allo stesso
per ogni nuova connessione da parte del client
client.. 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!

08/09/2002 SSH 107 08/09/2002 SSH 108

18
Tunneling Tunneling
ALTRI TIPI
DI ATTACCHI
Soluzioni: Man in the middle:
• In teoria la classe di DoS che sfrutta errori vari di programmazione
programmazione è
debellabile. sniffing, tcp connection hijacking, spoofing
• In pratica è impossibile evitare che nuovi errori di programmazione siano
introdotti nelle nuove versioni dei programmi. • Un attacco dalla rete, nel quale l'aggressore prende
posizione fra due interlocutori: “man
man-- in
in-- the
the-- middle
middle-- attack
attack””.
• Evitare lo spoofing stroncherebbe all’
all’origine molti problemi.

• La maggior sicurezza si paga in perdita di performance. • Questi attacchi hanno tutti un fattore in comune: la vittima
non si accorge di niente.
• Fino a quando il TCP/IP e il modello client
client/server
/server saranno alla base di
Internet ci saranno dei DoS. • La vittima, senza saperlo, apre un collegamento di rete con
il computer errato.
• Si può solo costringere l’l’attaccante ad utilizzare sempre più
più risorse
per ottenere lo stesso effetto.

08/09/2002 SSH 109 08/09/2002 SSH 110

Tunneling Tunneling
ALTRI TIPI ALTRI TIPI
DI ATTACCHI DI ATTACCHI
Man in the middle: Man in the middle:
sniffing, tcp connection hijacking, spoofing 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.
Ø Quasi tutte le varianti richiedono l'invio di pacchetti falsificati.
falsific ati.
2. Hijacking:
Hijacking : l'attaccante cerca di rapire un collegamento già esistente.
Ø Analizza per un certo periodo di tempo i pacchetti che gli Ø Sotto UNIX/Linux
UNIX/Linux l’invio può essere eseguito solo dal
superuser..
superuser
passano davanti per poter predire i numeri giusti di sequenza deldel
collegamento TCP. Ø 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 08/09/2002 SSH 112

Tunneling Tunneling
ALTRI TIPI ALTRI TIPI
DI ATTACCHI DI ATTACCHI
DNS poisoning (1) DNS poisoning (2)

Ø L'attaccante cerca, con i pacchetti risposta DNS Ø Molti server hanno creato un rapporto di fiducia verso
falsificati, di avvelenare la cache di un server. altri computer: l’l’attacco può funzionare molto
rapidamente.
Ø Il server DNS avvelenato inoltra l'informazione a chi la
richiede. Ø Un DoS cronologicamente sintonizzato contro un server
DNS nella maggior parte dei casi non è evitabile.
Ø Normalmente l'attaccante deve ricevere ed analizzare
alcuni pacchetti del server. Ø Si può ricevere aiuto da un collegamento criptato che
può verificare l'identità
l'identità della meta del collegamento.

08/09/2002 SSH 113 08/09/2002 SSH 114

19
Tunneling Tunneling
ALTRI TIPI
DI ATTACCHI
Worms Consigli ed espedienti (1)
Ø Sono spesso comparati ai virus anche se vi è una notevole Una buona protezione contro gli errori di tutti i tipi è la veloce
differenza tra essi. integrazione di pacchetti di update annunciati da un security
Ø Un worm non deve contagiare alcun programma ospite ed è announcement..
announcement
specializzato a diffondersi rapidamente nella rete.
REGOLE PRINCIPALI PER MIGLIORARE LA SICUREZZA DEL SISTEMA:
Ø Vermi noti ( Ramen
Ramen,, Lion o Adore
Adore)) utilizzano alcune lacune di
sicurezza ben note dei programmi dei server (bind8 o lprNG
lprNG)) . • Lavorare il meno possibile come utente root
Ø Dal momento in cui si viene a conoscenza della lacuna utilizza ta e • Usare sempre collegamenti criptati per eseguire lavori in remoto
l'arrivo dei vermi passano alcuni giorni.
• Non usare metodi di autenticazione basati solo sull'indirizzo IP
IP
Ø Per difendersi l'amministratore deve integrare le security update nei
suoi sistemi. • 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 115 08/09/2002 SSH 116

Tunneling Tunneling

Consigli ed espedienti (2) Conclusioni:

• 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
• Criptare la banca dati per proteggerla contro accessi atti a manipolarla politiche di sicurezza garantendo:
- privatezza,
• Fare molta attenzione quando si installa nuovo software - integrit
integrità
à,
• Controllare regolarmente il backup dei dati e del sistema - autenticit
autenticitàà.

• 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

Potrebbero piacerti anche