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