Vorrei conoscere con quali programmi e con quali metodi gli hackers riescono ad entrare nei sistemi collegati con internet.

Premessa. Il termine hacker indica una persona esperta ed
appassionata di un particolare settore tecnico (nel nostro caso l’informatica)
che passa buona parte del suo tempo ad approfondirne la conoscenza. Il
termine viene ormai spesso usato come sinonimo di “pirata informatico”, ma
in questo senso sarebbe più preciso usare il termine cracker.

Esistono sostanzialmente tre tipi di “attacco” che consentono di guadagnarsi
un accesso non autorizzato ad un sistema di calcolo su una rete accessibile
tramite Internet:

  • Metodi che sfruttano errori presenti nei programmi di comunicazione
    o nella configurazione di tali programmi.

  • Metodi per ricavare la “password” di utenti autorizzati.

  • Metodi detti di “ingegneria sociale”.

Errori nei programmi di comunicazione

Il primo dei metodi citati consiste nello sfruttare errori (o caratteristiche
introdotte dal programmatore senza valutarne la pericolosità) dei
programmi che rispondono alle richieste di servizio provenienti da altri
elaboratori in rete, oppure errori nella configurazione di tali programmi.

Ad esempio in uno dei primi casi divenuti famosi, il cosiddetto “internet
worm” del 1988, veniva utilizzato il fatto che un tipico programma di
rete (il programma “finger” disponibile sui sistemi Unix per
consentire ad un utente esterno di sapere quali utenti sono collegati
ad un elaboratore) leggeva i messaggi in arrivo senza verificare che la
loro lunghezza fosse minore dello spazio lasciato disponibile nella propria
memoria. Un messaggio opportunamente lungo causava un “overflow” della
memoria, ovvero in pratica poteva andare a scrivere il contenuto del messaggio
inviato dal cracker fuori dallo spazio consentito. Poiché la memoria
di un elaboratore contiene contemporaneamente i dati e le istruzioni del
programma, mettendo una serie di istruzioni in una posizione opportuna
del messaggio, è possibile forzare l’eleboratore sotto attacco
ad eseguire un programma inviato dal cracker. Tale programma può,
ad esempio, aggiungere un nome alla lista degli utenti privilegiati con
una password nota al cracker, che diviene cosí a tutti gli effetti
un “amministratore” del sistema.

In altri casi, sempre tratti dall’esperienza reale, è stata utilizzata
una funzione particolare del programma sendmail, quello che gestisce
gli scambi di posta elettronica. Nella sua versione originale il programma
disponeva di una funzione che consentiva di eseguire sull’elaboratore
remoto un comando del sistema operativo; tale funzione veniva utilizzata
per vari scopi durante le prove di funzionamento del programma, ma non
era pensata per l’uso durante il funzionamento normale, tanto che non
fu nemmeno documentata. Quando il programma fu rilasciato al pubblico,
o meglio alle Università e centri di ricerca che ne facevano uso
quando le comunicazioni fra computer erano riservate solo a questo tipo
di utenti, nessuno pensò di disabilitare questa funzione che rimase
dormiente, fino a che qualcuno, molti anni dopo, scoprí che poteva
essere utilizzata per ottenere un accesso non autorizzato.

I due casi citati sono esempi di una classe di problemi che vengono
periodicamente scoperti praticamente in tutti i programmi di comunicazione
in rete, come è testimoniato ad esempio dagli archivi
del GARR-CERT, il principale servizio che si occupa di sicurezza
delle reti in Italia.

Le misure di protezione consistono in questo caso nel limitare al massimo
il numero di programmi di rete attivati sugli elaboratori e, per quei
programmi indispensabili al servizio, adottare tempestivamente le modifiche
consigliate dai produttori del software via via che queste vengono pubblicate.

Una variante dei casi qui descritti è rappresentata dall’uso
di un programma del tipo cosiddetto “backdoor” (porta posteriore). Questo
metodo consiste nell’ottenere in qualche modo, che l’amministratore di
un sistema installi un programma dotato appunto di una “porta posteriore”,
ovvero di una funzione non documentata che consenta a chi la conosce di
acquistare privilegi non autorizzati. I metodi utilizzabili sono vari:
camuffare il programma come aggiornamento di un programma preesistente,
introdurlo nella distribuzione di altri programmi in modo che venga installato
inavvertitamente, etc.

Sottrazione di password

Un’altro metodo ancora assai usato consiste nel cercare di venire a conoscenza
della password di qualche utente di un sistema, meglio se si tratta di
un amministratore dotato di maggiori privilegi degli utenti normali. A
tale scopo si possono utilizzare molti metodi; uno dei più semplici
si basa sul metodo “prova ed errore”, ovvero utilizza un programma che
genera varie stringhe di caratteri e verifica se corrispondono ad una
password. La generazione delle stringhe di prova avviene in modo non casuale,
ma utilizzando parole di vocabolario, nomi propri e simili per aumentare
la probabilità di indovinare.

Se si dispone di un accesso ad una rete locale è possibile utilizzare
programmi che intercettano tutti i pacchetti di dati che “passano” sulla
rete e fra questi individuare quelli che “trasportano” una password. Questo
metodo è facilitato dal fatto che ancora molti sistemi operativi
prevedono lo scambio delle password in chiaro nel momento della verifica
dell’accesso rendendone assai facile l’intercettazione. La stessa cosa
può essere fatta intercettando il segnale modulato del modem su
una linea telefonica nel momento in cui l’utente trasmette la password
di accesso al sistema.

Le misure di protezione riguardo a questo tipo di attacco sono sia di
natura tecnica, ad esempio l’introduzione di metodi crittografici robusti
nella trasmissione dei dati, sia di tipo gestionale, e consistono in questo
caso nell’imporre agli utenti l’uso di password non facilmente individuabili,
il cambiamento periodico delle password e cosí via.

“Ingegneria sociale”

Nella classificazione dei metodi di attacco agli eleboratori viene sempre
inserito anche questo metodo, anche se ha poco a che fare con la tecnologia.
Esso consiste infatti nel “convincere” l’amministratore o chiunque disponga
delle informazioni, a fornire indicazioni o informazioni utili a violare
la sicurezza di un elaboratore o ancora, ad installare un programma “backdoor”
(vedi sopra).

Un cracker potrebbe, ad esempio, spacciarsi per un addetto alla manutenzione,
e chiedere la password di amministratore fingendo di dover effettuare
un’intervento, oppure spacciarsi per un utente e chiedere che venga cambiata
la password dimenticata o per timore che sia stata intercettata. Il limite
in questo tipo di attività è soltanto la fantasia.