“John The Ripper”

(di Bruno Riccio)
25/03/24

John The Ripper, da non confondere con “Jack the Ripper” (Jack lo squartatore, per intenderci) è uno strumento Open Source per l'audit (controllo) della sicurezza delle password e per il recupero delle stesse, disponibile per molti sistemi operativi e sviluppato da Openwall1. Tale strumento è stato sviluppato a fini “costruttivi” ma, alcune volte, può essere utilizzato da malintenzionati in maniera “distruttiva”.

In che modo viene utilizzato?

Le password sono la prima linea di difesa per la maggior parte dei sistemi informatici e degli account online. Una password forte e complessa può aiutare a ostacolare hacker e accessi non autorizzati. Tuttavia, molti utenti scelgono password corte, semplici e dunque facili da indovinare, compromettendo la propria sicurezza e spesso quella altrui. Strumenti di cracking come John the Ripper sono progettati per violare password deboli (pochi caratteri, frasi conosciute e comuni), utilizzando tecniche come:

► attacchi a dizionario, tipologia di attacco che sfrutta la ricerca di parole presenti nei dizionari o frasi di linguaggio comune.

► attacchi a forza bruta, che utilizzano il metodo di “trial and error” (tentativi ed errori) per indovinare le informazioni di accesso: si provano tutte le combinazioni possibili, alfabetiche e numeriche, sperando di indovinare correttamente la password.

► decifratura di hash. Un hash è una stringa di caratteri generata da un “algoritmo di hash”, che prende un input (come una password) e produce una sequenza di caratteri univoca. L'obiettivo principale è rappresentare in modo univoco i dati originali. Gli hash sono comunemente utilizzati per proteggere le password, crittografare dati e garantire l'integrità dei file. Tale processo è spesso irreversibile, anche se con il metodo “brute force” (con grandi capacità di calcolo) si potrebbe risalire all’input originario.

John è stato inizialmente creato per sistemi Unix e ora utilizzato su diverse piattaforme. Supporta diverse modalità di cracking, tra cui la modalità “Single Crack” per concentrarsi su un hash password alla volta, la modalità “Wordlist” per utilizzare un elenco predefinito di parole ed altre ancora. Esso è preinstallato nei sistemi Linux. Una caratteristica notevole di John è che può rilevare automaticamente la tipologia di decifrazione per formati comuni. Ciò permette di risparmiare molto tempo nella ricerca dei formati di hash e nel trovare lo strumento corretto per decifrarli.

John ha molte opzioni; si può avere sia una descrizione approfondita delle stesse digitando "man john", che una sommaria digitando "john" nel terminale.

Esso può gestire un gran numero di formati di hash o file. "john --list=formats" mostra tutte le opzioni supportate dallo strumento.

Esempio pratico di attacco

Ora proviamo ad utilizzare John su un file pdf protetto da password, “prova.pdf”. Il file è protetto da una password “semplice”, con 5 caratteri e 2 numeri.

1) Calcoliamo l’hash del file

Contenuto del file “pdf.hash”

Abbiamo visto in precedenza che possiamo effettuare un attacco a forza bruta ed un attacco a dizionario, proviamo a testarli entrambi.

2) Attacco a forza bruta

John ha provato tutte le combinazioni possibili per quasi 30 minuti, non riuscendo a trovare la password. Avrebbe potuto continuare per molto piu’ tempo ed eventualmente sarebbe riuscito a trovarla, ma non è il punto di questo esempio.

3) Attacco a dizionario

In un attacco a dizionario, utilizzando un file di testo open source (https://github.com/zacheller/rockyou), John ha decifrato l’hash in 1 secondo.

Ciò fa capire quanto sia importante, per un utente malevolo, non solo avere strumenti adatti per attaccare, ma anche avere informazioni sulla vittima, in modo da costruire un dizionario “ad hoc”. Contrariamente all'attacco a forza bruta, che cerca tutte le combinazioni possibili di caratteri, l'attacco a dizionario sfrutta conoscenze specifiche sulla vittima. Queste informazioni possono includere nomi, date importanti, parole chiave o altre informazioni personali che potrebbero essere utilizzate come password (nomi di parenti, animali domestici etc.)

Pertanto, comprendere l'attacco a dizionario e adottare misure per mitigarne gli effetti è essenziale per proteggere le informazioni personali e aziendali.

Consigli finali per sfuggire da attacchi del genere

L'aumento della potenza di calcolo richiede password più lunghe e complesse. Alcuni consigli chiave per scegliere una password sicura sono:

• utilizzare almeno 8-12 caratteri o più: più lunga è, meglio è;

• utilizzare una combinazione di lettere, numeri e simboli;

• non utilizzare parole comuni del dizionario o informazioni personali;

• non riutilizzare la stessa password su diversi siti o applicativi;

• cambiare regolarmente le password;

• se possibile, implementare autenticazioni a due fattori.

La sicurezza di una password robusta è un aspetto fondamentale nella vita quotidiana di ognuno di noi. Implementare altre misure di sicurezza, come l'uso di software antivirus, migliorerà ulteriormente la protezione contro le minacce informatiche; tuttavia non bisogna dimenticare che il peggior nemico informatico dell’uomo, è l’uomo stesso, ecco perché bisogna prima di tutto lavorare su se stessi e poi sui propri dispositivi informatici.

1 (fonte: https://www.openwall.com/john/)