May 10 2004

Password


by tonycrypt

Qualunque apparato informatico degno di rispetto deve essere dotato di sistemi che, pur consentendo agli utenti autorizzati di farne uso e di accedere ai suoi dati, impediscano l’accesso agli estranei. Nei casi estremi in cui si richiede un livello di sicurezza particolarmente elevato, si fa uso di analisi biometriche (impronte digitali, struttura dell’iride ecc.). Ma uno dei più semplici di questi sistemi è senza dubbio la password, una parola chiave che garantisce l’accesso al sistema. L’utente viene insomma invitato a digitare la sua password; questa viene poi confrontata con quella memorizzata nel sistema e, se esiste la corrispondenza, si acquisiscono diritti più o meno estesi sulla macchina su cui si cerca di accedere. I criteri mediante i quali la password digitata viene confrontata con quella già memorizzata sono svariati e spesso molto insicuri; così in molti casi, dopo aver approfondito qualche aspetto tecnico sul matching (confronto), si è già in grado di mettere in pericolo la sicurezza dei sistemi di protezione più elementari. Condizione necessaria (ma sicuramente non sufficiente) per assicurare ad un sistema informatico un buon livello di sicurezza è senza dubbio la scelta della password. Ma per poter comprendere a pieno cosa si intende per una “buona password” e come valutare il livello di sicurezza del proprio pc (o della propria rete) penso sia necessario capire in che modo gli esperti sono riusciti a superare queste barriere. Esporrò quindi alcune tecniche di attacco comunemente utilizzate da hackers e, purtoppo, anche crackers, per meglio comprendere come difendersi.
Credo sia di fondamentale importanza sottolineare che queste informazioni vengono comunicate a puro scopo informativo, nell’intento di illustrare quanto insidiosi possano rivelarsi gli strumenti informatici se non se ne fa un uso consapevole e illuminato da un corretto spirito critico. L’idea di partenza è che un polizziotto non sarà mai un bravo polizziotto se non ha prima analizzato attentamente i comportamenti e le tecniche del ladro. Bisogna insomma conoscere a fondo il problema prima di azzardare soluzioni che potrebbero rivelarsi totalmente scorrette. Se poi, qualcuno di voi, pensasse di fare cattivo uso di queste informazioni…faccia pure, ma se ne assuma tutte le responsabilità e sappia che la sua superbia e ignoranza non lo premieranno di certo.

  • Password del bios: Il Bios (Basic input output system) rappresenta l’insieme di operazioni basilari che un computer è in grado di eseguire per la gestione delle comunicazioni con le unità di sistema. Nel BIOS sono memorizzate molte informazioni di supporto al sistema come l’orario, la data, la configurazione delle periferiche e anche la password di accesso. E si tratta di una password di fondamentale importanza, perchè, non conoscendola, non sarà possibile nessun tipo di accesso alla macchina in questione. Esistono comunque molti programmi che consentono di leggere e modificare li contenuto della memoria CMOS, aggirando eventuali password. Ma, ovviamente, questi programmi sono utilizzabili solo se il sistema è già avviato, quindi non sono di alcuna utilità nel caso in cui si vuole avviare una macchina spenta. In tal caso esiste un’altra soluzione, molto più efficace: staccare per qualche secondo la batteria tampone della scheda madre, resettando così completamente il BIOS. In alcuni casi poi, trovandosi davanti un computer di qualche anno fa, è possibile sfruttare alcune passwords standard che, a prescindere dalla parola chiave impostata dall’utente, consentono di aggirare il problema. Le più famose sono:

    – Per AMI BIOS: AMI, ami, AMI_SW, AMI?SW, AMI?PW, AMI_PW, A.M.I., BIOS, LKWPETER , PASSWORD, 589589

    – Per AWARD BIOS: 589721, 589589, ALFAROME, AWARD, award, AWARD_SW, AWARD?SW, AWARD_PW, bios, BIOS , BIOSTAR, BIOSSTAR, j262, j256, Syxz, SER, SKY_FOX, aLLy, awkward, HLT, LKWPETER, lkwpeter

    – Per Phoenix Bios: PHOENIX, phoenix, BIOS, CMOS

    Esistono poi alcuni bugs in determinati BIOS che li rendono completamente insicuri. Per esempio il computer IBM Aptiva cancella tutte le password del BIOS se si premono entrambi i tasti del mouse durante l’avvio del sistema. In alcuni laptop della Toshiba è possibile bypassare la password del BIOS premendo il tasto shift della tastiera durante l’avvio. Nella versione 1.19 dell’AMI BIOS e nelle precedenti, è possibile azzerare il contenuto del BIOS premendo il tasto ESC durante l’avvio. E questi sono solo gli esempi più famosi…

  • Password di Windows 95/98: si tratta di un sistema di protezione delle password molto vulnerabile; questo dovrebbe farci riflettere sul fatto che una software house di un così grande prestigio non abbia ritenuto opportuno dedicare sufficiente attenzione alla implementazione di un algoritmo sicuro per la protezione delle password di sistema. Il tipo di algoritmo utilizzato dalla Microsoft era inizialmente l ‘algoritmo RC4 per la cifratura e quindi un’ottima protezione dal punto di vista crittografico. A causa di qualche problema i programmatori Microsoft implementarono una versione dell’RC4 leggermente modificata a livello di codice, ma completamente stravolta a livello di funzionalità. Con semplici operazioni di X0R e di traslazione e grazie a numerosi programmi freeware si possono decodificare tutte le password contenute nel file .PWL. Un esempio di programma atto a questo tipo di attacco può essere PWL-TOOL , facilmente reperibile in rete. Questo dovrebbe farci riflettere sul fatto che una software house di un così grande prestigio non abbia ritenuto opportuno dedicare sufficiente attenzione alla implementazione di un algoritmo sicuro per la protezione delle password di sistema. In definitiva si può tranquillamente affermare che la password di protezione utilizzata in questi sistemi è assolutamente insicura ed estremamente vulnerabile.

  • Password di Unix/Linux: In ambiente Unix il discorso legato alla protezione delle password del sistema e’ molto piu complesso. Si tratta d’altra parte di sistemi molto più sicuri rispetto al windows, soprattutto perchè continuamente migliorati dalla collettività grazie alla loro caratteristica di essere gratuiti (solo Linux) ed open source (il codice sorgente è pubblico e, entro certe condizioni, liberamente modificabile). Di solito in un sistema Unix le password di accesso vengono memorizzate in un file chiamato /etc/passwd. In questo file di testo le password sono cifrate con un sistema crittografico basato su funzioni non invertibili. L’unico modo per attaccarlo, dunque, è quello di tentare tutte le possibili password. Bisogna creare un programmino che, volta per volta, prenda in considerazione la password da testare, la cifri, ed effettui il matching con la password cifrata contenuta nel file passwd. Ecco dunque che diventa fondamentale la scelta di una buona password. Una parola contenuta in un dizionario sarebbe banale, perchè l’attacco andrebbe a buon fine in pochi secondi (se non in qualche decimo di secondo). Lo stesso potrebbe dirsi di una data di nascita. Bisogna quindi far uso di termini non catalogati in dizionari di qualsivoglia genere. Tuttavia, anche scegliendo termini non presenti nei dizionari, bisogna aver cura di scegliere una parola abbastanza lunga (almeno 8-9 caratteri) e che contenga lettere maiuscole e minuscole, numeri, e caratteri ascii come parentesi, punti, virgole o altri. In questo modo si rende estremamente difficile (ma non impossibile) un brute force attack, cioè un attacco che testi tutte le possibili combinazioni di caratteri. Se non si è in grado di costruirsi da soli un programma che faccia un simile lavoro, in rete se ne trovano tantissimi: i più famosi sono John The Ripper, Kille Cracker, L0phtCrack, ecc. Tuttavia è bene osservare che un prudente amministratore, per evitare attacchi di questo tipo, può privare gli utenti del diritto stesso di lettura del file passwd, impedendo l’accesso anche alle passwords cifrate. Il discorso sui sistemi Unix è comunque estremamente vasto e complesso, e va oltre gli scopi divulgativi momentaneamente fissati per questo sito.

  • Password email: Escludendo i casi in cui si riesce a bucare qualche server o si ottiene un accesso al computer di un utente, le password di un account pop3 possono essere ottenute solo per tentativi. I tempi necessari per un attacco di questo tipo sono estremamente lunghi, sia perchè l’attacco va effettuato in remoto, sia perchè, per ovvi motivi di sicurezza, il server imposterà un intervallo di tempo minimo tra un tentativo errato e l’altro. In tal caso, dopo aver tentato tutte le password di un dizionario, si passa ad un brute force attack. Se non si è in grado di costruire un simile programma, la rete ne offre davvero tanti, di ogni tipo e per ogni esigenza. I consigli per la password sono quindi sempre gli stessi: niente parole comuni, niente nomi o date di nascita, ed un numero di caratteri non troppo piccolo.

  • Password FTP: Valgono esattamente le stesse cose dette per le password delle email. Anche in questo caso, o ci si crea un apposito programmino, o lo so scarica dalla rete. Naturalmente il livello di sicurezza da garantire in questo caso è ancora più alto, visto che è in gioco uno spazio web. Bisogna quindi cercare password estremamente complesse e conservarle gelosamente. Se dovesse essere necessario spedirle per email, bisogna aver cura di cifrarle con programmi come il PGP. In genere comunque, essendo troppo dispendioso e spesso infruttuoso un simile attacco, gli hacker preferiscono attaccare il pc dell’amministratore per rubare le password o, in alcuni casi, attaccare direttamente il server.