STATO MAGGIORE DIFESA
Reparto Informazioni e Sicurezza
Ufficio Sicurezza Difesa
BOLLETTINO DI
SICUREZZA
INFORMATICA
N°4/2003
 SISTEMI OPERATIVI :
- IL PROGRAMMA “NSLOOKUP”
- L’IMPORTANZA DEGLI AGGIORNAMENTI
Pag. 1
Pag. 6
 FOCUS ON….:
-
CENNI DI CRITTOGRAFIA
Pag. 9
 SICUREZZA DELLA RETE:
- LE VENTI VULNERABILITA’ PIU’ CRITICHE PER LA SICUREZZA IN INTERNET
(OTTAVA PARTE).
Pag. 15
PER CONTATTI ED EVENTUALI SUGGERIMENTI :
TEL. 06/46917156–FAX 06/36000904
E-MAIL : [email protected]
IL PROGRAMMA “NSLOOKUP”
NSLOOKUP è un programma, fornito con le distribuzioni non recenti di Linux, (le
ultime release usano in sostituzione i programmi “dig” - domain information groper e
“host” che svolgono pressochè le stesse funzioni). Nei
sistemi operativi della
Microsoft, invece il programma trova ampia applicazione. La sua funzione, tra le altre,
è quella di effettuare manualmente delle query (domande) al server DNS per la
risoluzione dei nomi e dei domini. Detto programma è basato su linee di comando e
viene richiamato dalla shell per i sistemi operativi Linux; mentre per quanto riguarda
i sistemi Windows il programma deve essere chiesto tramite l’accesso preventivo in
ambiente DOS.
Esistono molte varianti definite a seconda del sistema operativo su cui viene installato
ma le funzioni svolte son di massima sempre le stesse.
Nell’esempio che segue, si riporta una semplice sessione (effettuata su una macchina
Windows 2000 Professional con collegamento ADSL): si suppone di operare in
modalità DOS (START>PROGRAMMI>ACCESSORI>PROMPT DEI COMANDI) nel caso,
invece di macchine Linux si opera dalla shell al prompt dell’host locale.
(I numeri delle righe sono stati aggiunti per avere un riferimento e non fanno parte
del dialogo).
1.C:\>nslookup
18. dominio=
2.Server predefinito : dns.interbusiness.it
19. MSxfr
3.Address: 151.99.125.2
20. IXFRversion=1
4. > set all
21. srchlist=
5. Imposta opzioni
6. debug
N.B. (i caratteri battuti dall’utente sono in grassetto)
7. defname
8. search
9. nod2
10. novc
11. noignoretc
12. porta=53
13. tipo=A
14. classe=IN
15. timeout=2
16. riprova=1
17. radice=A.ROOT-SERVERS.NET.
Figura 1
Pagina 1
La sessione riportata si svolge come segue (figura 1):
• digitando il comando “nslookup” si richiama il programma (riga1); nslookup dichiara
il nome del name server (server DNS di default) (riga 2) e il relativo indirizzo IP (riga
3). Pertanto dns.interbusiness.it è il name server del dominio e ha come indirizzo
151.99.125.2. Quindi, tutte le query saranno inviate a questo indirizzo per essere
successivamente instradate, se la risposta non risiede nella cache.
A questo punto il programma si arresta, “stampa” il suo prompt che è “>” e resta in
attesa di istruzioni (riga 4);
• si digita il comando “set all” (riga 4). Il comando set serve in genere a modificare i
parametri del dialogo, con l’opzione all vengono visualizzati tutti i parametri attuali,
che saranno quelli di default dato che siamo all’inizio del dialogo;
• dalla riga 6 alla riga 21 sono listate tutte le opzioni attuali; infine il programma si
arresta in attesa di nuove istruzioni.
Di seguito sono esplicitate le righe relative ai parametri :
-nodebug = non si vogliono visualizzare tutti i particolari del dialogo; in alternativa si
può indicare debug per avere ulteriori informazioni;
- defname = si usa il nome del dominio che è : dns.interbusiness.it;
- search = a ogni nome viene fatto seguire il nome del dominio di default;
- recurse = si permette al name server di interrogare ricorsivamente altri server se
non ha la risposta (comportamento usuale);
- d2 = si attiva il modo di debugging esaustivo (tutti i campi sono visualizzati), di
default è disabilitato (per disabilitare impostare “no” davanti al comando);
- vc = si usa un circuito virtuale (vc – ossia TCP) per interrogare il server. Di default è
disabilitato e si usa UDP;
- ignoretc =ignora i “packet truncation error” (sono delle segnalazioni di errore
dovuti all’errata dimensione dei paccheti in entrata ed in uscita), di default sono
visualizzati;
- porta=53 = questa è la porta di default su cui è attivo il server;
- tipo=A = si richiede un record di tipo “Address”;
- classe=IN = si usa indirizzamento Internet;
- timeout=2 se non si riceve risposta dopo 2 secondi si ripete la query;
- riprova=1 = si ripete la query per un massimo di 1 volta;
- radice=A.ROOT-SERVERS.NET. = indica la radice del sistema DNS;
- dominio= = indica il dominio di appartenenza;
- MSxfr= indica il tipo di programma per il trasferimento rapido delle query ad altre
zone;
- IXFRversion=1 = indica la versione del contatore di trasferimento di zona
incrementale;
- srchlist= = indica la ricerca in una lista indicata.
Pagina 2
Inoltre il programma può agire in due modalità: Interactive – Non-interactive.
Interactive: permette di effettuare più query e visualizza i singoli risultati. Viene
abilitato in modo automatico quando il comando non è seguito da argomenti,
oppure se il primo argomento è un trattino (-) seguito dal secondo argomento che
corrisponde all’host name o all’IP del name server.
Non-interactive: permette di effettuare una sola query e ovviamente visualizza il
risultato della singola query. Abilitato ogni qualvolta si specifica l’host-to-find.
Il DNS configurato di default nei sistemi operativi Linux a cui si effettuano le query
si trova nel percorso : /etc/resolv.conf.
Comandi principali del programma
? = richiama l’help;
host [server] = lookup dell’host eseguendo una query al DNS di default oppure
al server specificato;
server nomeserver = modifica il DNS di default per la sessione corrente
class= valore – modifica la query class
Valori consentiti :
IN = Internet class;
CHAOS = chaos class;
HESIOD = MIT Athena Hesiod class;
ANY = wildcard, cioè tutte le classi.
Passiamo ora ad analizzare le impostazioni definibili con il comando “set” il quale
modifica il tipo di informazioni da richiedere al DNS.
Il comando set type corrisponde a set querytype.
set q[uerytype]= valore
Impostazione predefinita = A (address)
PARAMETRI (TYPE):
= A - Indirizzo IP del computer;
= ANY - Tutti i tipi di dati;
= CNAME - (Canonical Name) Nome canonico di un alias
(Un host può avere più di un nome. In tal caso uno di questi nomi è quello ufficiale
ed è detto Canonical Name (CNAME), mentre gli altri sono detti “alias”. Gli alias
sono riconosciuti come tali dal DNS.
Pagina 3
=GID – Identificatore di un nome di gruppo;
=HINFO – Tipo di CPU e di sistema operativo del computer;
=MB – Nome della cassetta postale del dominio;
=MG – Membro del gruppo posta;
=MINFO – Informazioni relative alla cassetta postale o all’elenco di posta;
=MR – Nome di dominio per rinominare una cassetta postale esistente;
=MX – Mail exchanger;
=NS – Server dei nomi DNS relativo alla zona specificata;
=PTR – Nome del computer se la richiesta è un indirizzo IP. In caso contrario
verranno fornite altre informazioni;
=SOA – Record di origine di autorità del dominio DNS;
=TXT – Informazioni di testo;
=UID – Identificatore utente;
=UINFO – Informazioni sull’utente;
=WKS – Descrizione di servizi conosciuti.
figura 2
In ambiente DOS è possibile consultare tramite il comando “help” (figura 2)
tutte le potenzialità di tale programma; in ambiente Linux potrebbe succedere
che digitando “man nslookup” il sistema operativo risponda con un segnale di
errore (No manual entry for lookup) che indica che il programma non è
presente. Si suggerisce quindi, di consultare il “man dig” per vedere come
funziona il programma che sostituisce nslookup nelle ultime versioni delle
distribuzioni Linux.
Pagina 4
Generalmente il programa viene usato da :
System Administrator :
• per configurare e controllare il funzionamento di un server DNS;
• per individuare e risolvere i problemi relativi alla risoluzione dei nomi degli host;
• per l’ottimizzazione e configurazione dei firewall.
Hackers :
Per quanto riguarda invece, il mondo hacker, bisogna sottolineare l’importanza del
comando “nslookup”, che viene usato in fase preparatoria prima dell’attacco vero e
proprio. Questo per venire a conoscenza di quante più informazioni possibili
riguardanti la “vittima”; inoltre detto comando risulta basilare per l’invio di Fake Mail
via Telnet.
Come Antispam :
Nella lotta antispam viene usato, in quanto l’uso di questo comando consente una
attenta lettura degli headers delle e-mail che, nella maggior parte dei casi, porta
all’identità dello “spammer”.
Pagina 5
L’IMPORTANZA DEGLI AGGIORNAMENTI
Nel campo della Sicurezza Informatica e per la tutela dei propri dati personali, l’uso di
antivirus e personal firewall riveste un ruolo fondamentale nella lotta contro coloro che
cercano continuamente di scoprire nuovi modi per poter entrare nei computer. Questi
individui conosciuti come “hacker” cercano di catturare più informazioni sui PC,
sfruttando vulnerabilità conosciute o non ancora diffuse. Generalmente, si è portati a
pensare che una volta installati i software dedicati alla sicurezza dei sistemi non sia
necessario aggiornargli, determinando cos’ la perdita di efficacia.
Il CERT.Difesa ha sperimentato questo, effettuando un test per dimostrare come dei
programmi di sicurezza, non aggiornati, possano essere facilmente “aggirabili”,
utilizzando un programma denominato Firewar, un exploit di sicurezza che permette di
disabilitare la protezione del firewall attivo sui computer senza essere riconosciuto
dagli antivirus.
Il programma Firewar è disponibile in due versioni :
- la prima si può scaricare e installare localmente (nostro caso);
- la seconda versione è inglobata in un controllo Active X, che incluso in una pagina
Web disabilita da remoto il personal firewall appena viene aperta la pagina del sito.
Questa seconda versione è la più pericolosa, in quanto un sito Web costruito
appositamente permetterebbe ad un hacker di utilizzare questa debolezza per far si,
che una volta connessi al sito, il firewall venga disabilitato e questo possa agire
indisturbato nella ricerca di informazioni sul computer vittima.
Il test è stato svolto su una macchina con Windows 98 come sistema operativo. I
programmi usati sono stati i seguenti :
- Firewar 1.0;
- Zone Alarm (ver. 2.6.362 – ver. 3.0.081 – ver. 3.5.169.002) Personal
Firewall;
- Norton Antivirus ed. 2002 – Norton Antivirus 2003.
1° Fase
Sulla macchina sono stati installati:
- Personal firewall : Zone Alarm ver. 2.6.362 (non aggiornato);
- Antivirus : Norton Antivirus 2002 (aggiornato al 14.11.2001) con il live update
disabilitato.
Una volta installati questi programmi
è stato mandato in esecuzione il
programma firewar.exe.
Questo
disabilitava totalmente il personal
firewall, abbassando tutti i settaggi
su “off”; inoltre
l’esecuzione di
Firewar non veniva rilevata dal
programma antivirus;
Pagina 6
2° Fase
Sono stati installati:
- Personal firewall : Zone Alarm ver. 2.6.362 (non aggiornato);
-Antivirus : Norton Antivirus 2003 (aggiornato al 19.08.2002) con il live
update disabilitato.
Nonostante la versione 2003
del programma antivirus , i
risultati sono stati i medesimi.
3° Fase
Sono stati installati:
- Personal firewall : Zone Alarm ver. 3.1.395 (non aggiornato)
- Antivirus : Norton Antivirus 2003 (aggiornato al 19.08.2002) con il live
update disabilitato.
Anche in questa occasione, in presenza di un personal firewall abbastanza
recente (agosto 2002), il programma firewar è stato capace di bloccare il
funzionamento di Zone Alarm, senza essere riconosciuto da Norton Antivirus.
4° Fase
Sono stati installati :
- Personal firewall : Zone Alarm ver. 3.5.169.002
- Antivirus : Norton Antivirus 2003 (con l’ultimo aggiornamento disponibile)
In quest’ultima fase la prova è stata divisa in due parti lasciando in un primo
momento il programma antivirus disattivato. L’esecuzione del programma
firewar è risultato “trasparente” al personal firewall, infatti i settaggi sono
rimasti quelli impostati dall’utente continuando così a funzionare come
previsto. In un secondo momento, dopo la riattivazione del programma
antivirus, l’esecuzione del programma firewar è stato riconosciuto dal Norton
Antivirus 2003 come un “trojan” bloccando il suo “threat”, è consigliando di
metterlo in quarantena.
Pagina 7
E’, quindi, necessario aggiornare costantemente il software antivirus mediante
l’update automatico o in manuale, ogni qualvolta la casa produttrice del
programma antivirus ne offre la possibilità. Considerato che, in sistemi basati
su reti locali o su geografiche aumenta il pericolo di diffusione dei virus, ove
possibile, il sistema antivirus deve essere centralizzato (server).
E’ altresì corretto considerare cha anche gli altri programmi, che in paticolare
qualli relativi alla sicurezza informatica, devono essere constantemente
aggiornati: questo processo garantisce da eventuali vulnerabilità man mano
verificate nelle versioni obsolete, disponibili in commercio.
Pagina 8
Il procedimento di crittografia consiste nel rendere illeggibile un testo in chiaro
mediante l’uso di un determinato algoritmo e di una lista chiave con cui il testo è
stato cifrato. E’ opportuno sottolineare il fatto che questi algoritmi sono
tranquillamente resi pubblici in quanto non viene trattato il Segreto di Stato, perché
la confidenzialità del messaggio è legata sopratutto alla lista chiave (key).
La figura 1 mostra come il messaggio in chiaro (plaintext) originato dal mittente si
trasforma in un testo cifrato (ciphertext) mediante la cifratura; il messaggio
raggiunto il destinatario viene decifrato per ritornare testo in chiaro.
Destinatario
Plaintext
Mittente
Plaintext
Cifratura
Ciphertext
Decifratura
Figura 1
Ad esempio, nel Codice di Cesare, l’algoritmo consisteva nel translare le lettere del
plaintext di un numero di posizioni pari a n (chiave di cifratura). In un famoso film
di Kubrik, veniva denominato un super-computer “HAL”, che altro non era che
l’utilizzo del codice di Cesare alla parola “IBM” con n=1.
Da questo esempio risulta :
- che la conoscenza delll’algoritmo di cifratura, non abilita la decifra del messaggio,
se non in possesso della chiave di cifratura;
- che la chiave deve essere scelta tra un vastissimo numero di combinazioni, per
risultare efficace.
Esistono due tipologie di algoritmi per crittografare:
- algoritmi a chiave segreta (o simmetrici), in cui la chiave per cifrare è la stessa
utilizzata per decifrare;
- algoritmi a chiave pubblica (o asimmetrici), in cui ogni utente interessato alla
comunicazione possiede 2 chiavi : una chiave privata, che conosce solo il
possessore, e una chiave pubblica, che viene resa nota.
Pagina 9
La crittografia a chiave segreta (CCS)
La crittografia a chiave segreta (CCS) è una tecnica che modifica l'informazione in
chiaro, in una cifrata, basandosi su un parametro, appunto chiamato chiave di
cifratura, utilizzando la stessa sia per la cifratura che per decifratura
(figura 2),(chiave simmetrica). Essendo la funzione invertibile, il destinatario dovrà
soltanto elaborare nuovamente il crittogramma richiamando l'inversa della funzione di
cifratura avente come parametro la stessa chiave utilizzata dal mittente.
STESSA CHIAVE
ALFA
File cifrato
OMEGA
Sdsdfsdfsdaiwe
nlsdluionsdinsù
+à+à+eàd+èe
dèeèe
VANTAGGI:
Figura 2
- dal punto di vista tecnico le fasi di codifica e di decodifica possono essere svolte
anche da un computer non particolarmente potenti, in tempi decisamente brevi;
SVANTAGGI:
1. Il limite di questa tecnica consiste nel fatto che costringe gli interessati a
scambiarsi in qualche modo la chiave, con il pericolo che questa possa venire cadere
nelle mani sbagliate; questo svantaggio è molto più evidente nel momento in cui la
distribuzione è rivolta a più utenti.
Possibile soluzione :
- scambio della lista chiave attraverso un corriere abilitato;
- scambio della lista chiave via e-mail cifrandola con un sistema a chiave pubblica.
2. Altro svantaggio consiste nel fatto che, considerata la difficoltà di scambiare le
chiavi, queste hanno una durata abbastanza lunga, che potrebbe facilitare il lavoro di
un esperto crittografo nella scoperta della lista chiave.
Possibile soluzione :
Per evitare questa vulnerabilità, si consiglia di aggiornare la lista chiave con frequenze
più ravvicinate, variando continuamente i periodi di aggiornamento della stessa.
Pagina 10
Alcuni degli algoritimi più utilizzati nella crittografia simmetrica includono: RC4,
DES, Triple-DES. Questi si differenziano per lunghezza, espressa in bit, elemento
base per garantire la robustezza dell’algoritmo. Infatti la robustezza dell’algoritmo
deriva dalla lunghezza della chiave, in quanto più è lunga , più tempo è
necessario per violare il sistema.
Crittografia a chiave pubblica (CCP)
Al fine di superare i problemi derivanti dalla cifratura simmetrica relativi allo
scambio in sicurezza della lista chiave, vennero condotti studi approfonditi e nel
Maggio del 1976, negli Stati Uniti un articolo scritto da Whitfield Diffie e Martin
Hellman, pubblicato sulle "IEEE Transactions on Information Theory" del Novembre
'76, annunciava un nuovo sistema che prevedeva l‘utilizzo di chiavi pubbliche.
“Siamo all'inizio di una rivoluzione nella crittografia“, titolava il "New Directions in
Cryptography“, prevedendo l’inizio di una nuova era per la crittografia moderna.
Questo tipo di sistema crittografico consiste in due chiavi messe in relazione
matematicamente, in cui quella privata viene tenuta segreta dal proprietario e
quella pubblica viene distribuita oppure “allocata” su server, predisposti alla loro
conservazione, consultabili da tutti gli utenti on-line. Le due chiavi vengono
costruite con un meccanismo “esponenziale” di numeri primi, con modulo molto
elevato, che le rende praticamente impossibili da ricostruire a partire dalla
conoscenza di una sola delle due. Inoltre dato che la chiave pubblica, è resa
disponibile al pubblico, la creazione e lo scambio iniziale della chiave di cifratura
condivisa è più semplice rispetto a quella simmetrica.
L’applicazione del metodo di cifratura a chiave pubblica trova il suo impiego ogni
volta sia necessario garantire confidenzialità, autenticazione, integrità e non
ripudio.
La confidenzialità si ottiene tramite l’invio di messaggi cifrati; gli algoritimi a chiave
pubblica prevedono che il mittente cifri con la chiave pubblica del destinatario e
quest’ultimo decifri con la propria chiave privata (figura 3).
ALFA
File cifrato
OMEGA
Sdsdfsdfsdaiwe
nlsdluionsdinsù
+à+à+eàd+èe
dèeèe
File in chiaro, cifrato
con la chiave
pubblica di Omega
Figura 3
File decifrato con la
chiave privata di
Omega
Dato che le due chiavi, sono legate matematicamente, il testo cifrato con la
chiave pubblica potrà essere decifrato solo da chi è in possesso della rispettiva
chiave privata.
Pagina 11
Il bisogno dell’autenticazione parte dal presupposto che le “chiavi pubbliche”
non sono segrete ma note e comunque distribuibili in rete. Potrebbe succedere
che con un “attacco” del tipo “man in the middle” un terza persona potrebbe
inviare messaggi cifrati facendosi passare per “alfa”. Risulta, quindi,
indispensabile utilizzare meccanismi che garantiscano l’identità del mittente. Per
garantire che il messaggio provenga proprio da “alfa”, questo potrà firmare il
documento con la propria chiave privata (firma digitale) il documento,
utilizzando degli algoritmi denominati : Algoritmi di Hash.
Algoritimi di Hash:
Gli algoritmi di Hash sono funzioni che ricavano una stringa di lunghezza fissa
(128 o 160 bit) (impronta digitale), detta “digest” o “hash”, dal messaggio in
chiaro, indipendentemente dalla sua lunghezza (figura 4).
TESTO
IN
CHIARO
HASHING
101101110111101101100
DIGEST
Figura 4
Si tratta di funzioni molto usate e non invertibili, cioè non è possibile risalire al testo a
partire dalla conoscenza del digest. L’utilità di queste funzioni si manifesta quando
queste vengono usate congiuntamente ad algoritimi simmetrici e soprattutto
asimmetrici per realizzare i servizi di autenticazione, integrità e non ripudio.
I più noti algoritmi di Hash sono : MD4, MD5, SHA-1 e CBC-DES-MAC che variano in
base alla lunghezza del valore del digest generato.
Queste funzioni dette one-way hash svolgono due funzioni molto importanti nella
crittografia:
- verifica dell'integrità: se il valore di hash di un certo messaggio è uguale prima e
dopo la trasmissione, allora vi è una “discreta certezza” che il messaggio ricevuto sia
rimasto invariato;
- Concisione: nei calcoli matematici risulta più facile usare un'impronta a 128 bit che
un testo normale a lunghezza variabile.
Le funzioni di hash possono essere usate per la creazione di firme digitali. Molti
crittosistemi richiedono calcoli molto lunghi e complessi per apporre la propria firma
digitale su un file di grosse dimensioni mentre, grazie a queste funzioni, si può
semplicemente calcolare e firmare il valore di hash del file, sicuramente di dimensioni
molto ridotte.
Pagina 12
FIRMA DIGITALE:
La prima applicazione pratica della firma digitale, basata sulle tecniche di
crittografia a doppia chiave fu sviluppata nel 1978 da tre professori americani:
Ronald Rivest, Adi Shamir e Leonard Adleman, l’algoritmo “RSA" (dalle iniziali
dei suoi inventori) e la sua implementazione.
Tale processo si sviluppa nelle seguenti fasi (figura 5):
Messaggio
in chiaro
Messaggio
in chiaro
HASHING
DIGEST in
chiaro
DIGEST
Cifrato
Se risultano uguali
il msg risulta
autenticato
Messaggio
in chiaro
Se non risultano
uguali il msg non
risulta autenticato
HASHING
DIGEST in
chiaro
Chiave
privata di
Alfa
DIGEST
Cifrato
Figura 5
DIGEST in
chiaro
Chiave
pubblica
di Alfa
1. il messaggio da “firmare” viene sottoposto alla funzione di hash (“hashing”)
che, in base ad una formula matematica, genera una stringa di caratteri detta
“digest” di lunghezza fissa. Anche cambiando un solo carattere del messaggio
la stringa risulterà diversa;
2. il digest viene cifrato con la chiave privata del PC Alfa;
3. il messaggio ed il digest, vengono trasmessi al PC Omega.
Il destinatario PC Omega, procederà ad effettuare un controllo con le
seguenti operazioni:
1.
sottopone nuovamente alla funzione di hash (“hashing”), il messaggio,
generando un nuovo digest;
2. decifra il digest cifrato ricevuto utilizzando la chiave pubblica del PC Alfa;
3.
confronta i due digest.
Pagina 13
Se i due digest sono uguali la firma risulta autentica.
Differentemente possono essere accadute due cose :
- chi ha mandato
(autenticazione);
il messaggio non è il possessore della chiave privata
- il messaggio è stato modificato durante la trasmissione (integrità);
- infine questo meccanismo non consente al trasmittente di “ripudiare” tutto quello
scritto nel messaggio.
Nell’uso comune però, anche se l’utilizzo della cifratura a chiave pubblica risulta più
sicura, la sua elaborazione è molto più “pesante”, mentre gli algoritmi a cifratura
simmetrica risultano molto più veloci. Per ovviare a tutto ciò in pratica si usa cifrare
il messaggio con la chiave simmetrica (processo elaborato in tempi brevi), quest’
ultima invece, viene spedita al destinatario cifrata con la sua chiave pubblica
(figura 6).
OMEGA
ALFA
Chiave
simmetrica
Messaggio
in chiaro
Cifratura con
chiave
simmetrica
Chiave
simmetrica
cifrata con la
chiave
pubblica di
OMEGA
Chiave
simmetrica
cifrata
Messaggio
cifrato
Figura 6
In ricezione Omega decifrerà la chiave simmetrica, con la sua chiave privata, in
un secondo momento ottenuta la chiave simmetrica potrà in tempi brevi
decifrare il messaggio.
In rete è possibile trovare programmi per la cifra e decifra con chiavi
asimmetriche e simmetriche. Il più famoso è PGP (Pretty Good Privacy)
(www.pgp.com) il quale funziona sia su sistemi operativi Microsoft che Unix like.
La GNU interessata a PGP ha sviluppato un sistema analogo ``The GNU Privacy
Guard'', cioè GPG, che opera solo su piattaforme Unix like. Informazioni e codice
sono disponibili all'URL:
http://www.d.shuttle.de/isil/crypt/gnupg.html
Pagina 14
LE VENTI VULNERABILITA’ PIU’ CRITICHE
PER LA SICUREZZA IN INTERNET
(OTTAVA PARTE)
W6 Autenticazione LAN Manager -- Hashing LM debole
W6.1 Descrizione:
Per quanto la maggior parte degli ambienti Windows attuali non necessitino del
supporto LAN Manager (LM), Microsoft memorizza per default in locale gli hash
delle password legati al LM (noti anche come hash LANMAN) nei sistemi
Windows NT, 2000 e XP. Siccome LAN Manager usa uno schema di codifica
molto più debole di quelli, più aggiornati, attualmente utilizzati da Microsoft
(NTLM and NTLMv2), le password del LAN Manager possono essere violate in
brevissimo tempo. Anche le password che in un altro ambiente sarebbero
considerate "forti" possono essere violate con sistemi "brute-force" in meno di
una settimana.
La debolezza degli hash del Lan Manager deriva dal fatto che:
• le password sono troncate a 14 caratteri;
• le password utilizzano lo spazio come carattere di riempimento per
raggiungere i 14 caratteri;
• i caratteri usati nelle password vengono convertiti tutti in caratteri maiuscoli;
• le password vengono divise in due blocchi di sette caratteri.
Questo processo di hashing comporta che, per ottenere un accesso autenticato
al sistema, un eventuale aggressore ha bisogno solo di determinare due
semplici password da sette caratteri, che per di più contengono solo caratteri
maiuscoli. Siccome la difficoltà nel violare gli hash aumenta con progressione
geometrica in proporzione alla lunghezza dell’hash, ciascuna stringa di sette
caratteri è almeno di un ordine di grandezza più semplice da attaccare con
sistemi "brute-force" rispetto a una stringa di quattordici caratteri. Dal
momento che le stringhe sono tutte esattamente di sette caratteri (spazi
inclusi) e tutte in caratteri maiuscoli, anche un attacco da dizionario risulta
molto semplificato. Il metodo di hashing del Lan Manager rende quindi
inefficace qualsiasi buona policy sull’uso delle password.
In aggiunta al rischio dettato dal fatto di avere gli hash collegati a LM
memorizzati nel SAM, il processo di autenticazione del LAN Manager è spesso
abilitato per default sui client e accettato dai server. La conseguenza è che
macchine Windows, in grado di utilizzare hash più robusti, inviano hash LM
deboli attraverso la rete, rendendo l’autenticazione di Windows vulnerabile
all’intercettazione attraverso packet sniffing e facilitando il compito degli
aggressori di recuperare e violare le password degli utenti
Pagina 15
W6.2 Sistemi operativi interessati
Tutti i sistemi operativi Microsoft Windows.
W6.3 Riferimenti CVE
Non disponibili.
W6.4 Come determinare se siete vulnerabili
Se utilizzate un'installazione predefinita di NT, 2000 o XP, siete vulnerabili, perché
l’impostazione predefinita prevede il salvataggio in locale degli hash del LAN
Manager.
Se nel vostro ambiente avete sistemi operativi che richiedono l’autenticazione LM
per comunicare con in server, allora siete vulnerabili perché tali macchine inviano
gli hash del Lan Manager attraverso la rete, e questi corrono il rischio di essere
intercettati.
I più sofisticati strumenti per la determinazione delle password in ambiente
Windows come LC4 (l0phtcrack versione 4, disponibile all’indirizzo
http://www.atstake.com/research/lc/download.html) vi mostreranno tutti gli hash
trovati nel database SAM (LM, NTLM o NTLMv2), e metteranno in evidenza la
possibilità di violare ciascun hash. ATTENZIONE: Non utilizzate mai un password
scanner, neanche sui sistemi per i quali avete un accesso da amministratore.
W6.5 Come proteggersi
1. Disabilitare l’autenticazione LM attraverso la rete. Il modo migliore per
sostituire l’autenticazione LAN Manager in Windows è quello di utilizzare NT Lan
Manager versione 2 (NTLMv2). I metodi di verifica/risposta di NTLMv2 eliminano
la maggior parte dei difetti del Lan Manager utilizzando crittografia più avanzata e
meccanismi di autenticazione e per la sicurezza delle sessioni decisamente
migliori. La chiave del registro che controlla questa proprietà per Windows NT e
2000 è:
Hive: HKEY_LOCAL_MACHINE Key: System\CurrentControlSet\Control\LSA
Value: LMCompatibilityLevel
Value Type: REG_DWORD - Number
Valid Range: 0-5
Default: 0
Pagina 16
Descrizione: questi parametri specificano il tipo di autenticazione che sarà utilizzato.
0 - Spedisce le risposte LM e le risposte NTLM; non usa mai il meccanismo di sicurezza delle
sessioni NTLMv2
1 - Usa meccanismo di sicurezza delle sessioni NTLMv2 se richiesto
2 - Invia solo l'autenticazione NTLM
3 - Invia solo l'autenticazione NTLMv2
4 - DC rifiuta l'autenticazione LM 5 - DC rifiuta l'autenticazione LM e NTLM (accetta solo
NTLMv2)
Se tutti i vostri sistemi sono Windows NT SP4 o successivi, potete impostare il
valore a 3 su tutti i client e a 5 su tutti i controller di dominio, in modo da
evitare qualsiasi trasmissione di hash LM in rete. I sistemi di vecchio tipo (come
Windows 95/98) non usano NTLMv2 con il Client di rete Microsoft predefinito.
Per implementare le funzionalità NTLMv2, installate il Directory Services Client.
Una volta installato, la chiave del registro corrispondente è "LMCompatibility," e i
valori consentiti sono 0 o 3.
Se non potete obbligare i vostri client più vecchi ad usare NTLMv2, potete
ottenere comunque un certo miglioramento nel sistema di hashing LM forzando
NTLM (NT Lan Manager, versione 1) sul controller di dominio (impostate
"LMCompatibilityLevel" a 4). Ma l’opzione più sicura riguardo a questi sistemi è
quella di passare a sistemi più recenti, dal momento che i sistemi operativi più
vecchi non
permettono neanche questo minimo livello di sicurezza .
2. Evitare la memorizzazione degli Hash LM. Un altro problema che si presenta
anche qualora si eviti che gli hash LM vengano inviati attraverso la rete è che gli
hash vengono comunque creati e memorizzati nella SAM o Active Directory.
Microsoft rende disponibile un meccanismo per evitare la creazione degli hash
LM,
ma
solo
in
Windows
2000
e
XP.
Sui sistemi Windows 2000, la funzione è controllata da questa chiave del
registro:
Hive: HKEY_LOCAL_MACHINE
Key: System\CurentControlSet\Control\LSA\NoLMHash
Se questa chiave viene creata in un Controller di Dominio di Windows 2000, gli
hash LanMan non saranno più creati e memorizzati nella Active Directory.
Su Windows XP, la stessa funzionalità può essere implementata impostando
questo valore del registro:
Hive: HKEY_LOCAL_MACHINE
Key: System\CurrentControlSet\Control\Lsa
Value: NoLMHash
Type: REG_DWORD - Number
Data: 1
Pagina 17
Dopo aver effettuato queste modifiche al registro, è necessario riavviare il
sistema in modo che le nuove impostazioni abbiano effetto. NOTA IMPORTANTE:
Questa operazione evita solo che vengano generati nuovi hash LM. Gli hash LM
esistenti vengono rimossi singolarmente solo quando l’utente modifica la propria
password.
I seguenti articoli di Microsoft forniscono alcune utili indicazioni:
•How to Disable LM Authentication on Windows NT [Q147706] specifica le
modifiche al registro richieste per Windows 9x e Windows NT/2000.
•LMCompatibilityLevel and Its Effects [Q175641]
interoperabilità relativi a questo parametro.
spiega
i
problemi
di
•How to Enable NTLMv2 Authentication for Windows 95/98/2000/NT [Q239869]
illustra come utilizzare il Directory Services Client di Windows 2000 in Windows
95/98 per superare i limiti di compatibilità con NTLMv2.
•New Registry Key to Remove LM Hashes from Active Directory and Security
Account Manager
Pagina 18
Scarica

Visualizza file ppt