09 lug 2009

sicurezza in rete.... poche certezze tante speranze



Capita per lavoro, divertimento o altro di voler rendere accessibile il proprio pc da remoto tramite internet.
Vogliamo far vedere delle pagine web, delle foto o scambiare file tra due pc; oppure vogliamo anche dall'ufficio accedere al pc di casa utilizzando vnc/ssh o software simili di gestione remota.

Ci sono diverse correnti di pensiero relativi a come fare a proteggere un computer su internet, senza dover ricorrere a sistemi mostruosamente complessi.
Traslascio il mondo dei firewall, che presuppongo siano funzionanti e non permettano il traffico indesiderato da internet verso il proprio pc: infatti se vogliamo dare accesso a qualcuno da remoto, dovremo per forza aprire una porta TCP o UDP per la comunicazione.

C'e' chi consiglia di non utilizzare porte pubbliche note; un server web usa la porta 80: il vantaggio è che chi si connette per vedere le pagine che abbiamo rese pubbliche sul nostro pc può farlo digitando semplicemente URL che gli abbiamo fornito, come http://delirihitech.dyndns.org.
L'utilizzo di servizi come dyndns o myip sono consigliati per tutti coloro che hanno connessioni domestiche, dove ad ogni connessione viene assegnato un indirizzo IP diverso.
Nel caso cambiassimo la porta in 81 dovremmo invece digitare
http://delirihitech.dyndns.org:81

Questa tecnica viene chiamata "Security through obscurity"

http://it.wikipedia.org/wiki/Sicurezza_tramite_segretezza
http://en.wikipedia.org/wiki/Security_through_obscurity

IMHO questo metodo fa credere che un pc possa essere sicuro quando invece aumenta la sua sicurezza di pochi punti percentuali.
Chi cerca pc con porte aperte su internet usa scanner di rete che troveranno la porta aperta: uno scan più approfondito dirà quale servizio gira sulla porta 81 del nostro pc.

Quindi per rendere più sicuro il nostro pc sarà necessario utilizzare un accesso limitato, con utenze e password per poter accedere ai servizi che offriamo.
Per sua natura alcuni servizi funzionano già così: ftp, ssh.
Altri invece, come il server web, necessitano di essere configurati per chiedere l'utenza di accesso.

Ma basta questo? no. Se c'e' un pc su internet che offre un servizio con utenza e password vuol dire che c'e' qualcosa di interessante che qualcuno vuole "tenere riservato".
La curiosità oltre che essere femmina, è anche la spinta che porta gli hacker, meglio parlare di cracker in questo caso, a cercare di accedere a qualcosa a cui non tutti possano farlo.
Attenzione però a non cadere in banalità come l'utilizzo di utente e password semplici; accedere ad un sito come il seguente
http://delirihitech.dyndns.org:81/segreto/
che abbia come utente gianluca e password delirihitech quanto sarebbe protetto?

Ok allora impostiamo un utente come g14nluk4 e come password Hj3f8v!D3
Qui possiamo quasi dire di essere al sicuro.

Quasi, perché con attacchi come Brute Force comodamente un programma proverà molte combinazioni di password possibili e continuerà a tentare finché non l'avrà trovata.

Qui finalmente arrivo a parlare di quello che avevo in mente fin dalla prima riga di questo "breve" blog.
Ci sono alcuni software che analizzano gli attacchi in corso e bloccano gli IP di coloro che stanno cercando di entrare sul proprio pc.
Fail2ban monitora i file di log di un sistema linux e seguendo le regole del file di configurazione, blocca l'attaccante dopo X tentativi effettuati.
Fail2ban permette di proteggere accessi non autorizzati per ssh, apache, vsftpd, proftpd ed altri.
Oltre a Fail2ban c'e' anche BlockHosts e denyHost; quest'ultimo però protegge solo dagli attacchi di ssh.

2 commenti:

Marcello ha detto...

crackare Hj3f8v!D3 con un brute force? Indovinando pure la login?
Auguri!
Credo sia molto più pratico puntare su qualche trucchetto tipo buffer underrun, se non sbaglio trovi in rete programmini che ne aplicano diversi premendo un pulsante.
Se la macchina non è costantemente aggiornata è sempre vulnerabile.
E poi non dimenticare il buon vecchhio "social engineering":
"Pronto Gianluca? Sono la mamma, com'era il tuo login SSH remoto?"
(spero tu non faccia ancora usare telnet a tua mamma ;) )

Pipex ha detto...

fail2ban è un buon metodo per fermare un brute force remoto, indipendentemente da quanto sia difficile la password - quelle contenute dei dizionari sono di certo da evitare ;)

estremizzando non si è al sicuro anche con password difficili da indovinare.