Nel mondo della sicurezza informatica e dell’analisi dei dati, gli strumenti per la manipolazione, la decodifica e la trasformazione delle informazioni giocano un ruolo cruciale. CyberChef, sviluppato dal GCHQ (Government Communications Headquarters, agenzia governativa britannica che si occupa della sicurezza nazionale), è uno strumento estremamente versatile, definito come il coltellino svizzero della cyber intelligence. Con la sua interfaccia intuitiva basata su browser, CyberChef permette di eseguire operazioni complesse su dati grezzi senza la necessità di competenze avanzate in fatto di programmazione.
CyberChef – è proprio il caso di dirlo – è uno strumento da leccarsi i baffi: nato a novembre 2016, l’applicazione è cresciuta enormemente nel corso degli anni diventando un vero e proprio riferimento per i professionisti.
Cos’è CyberChef
CyberChef è un’applicazione web-based open source che consente di elaborare e manipolare dati attraverso una serie di operazioni modulari. Il suo punto di forza è l’approccio drag and drop, che permette agli utenti di combinare operazioni in una sequenza logica per ottenere il risultato desiderato. Non richiede installazione, essendo completamente eseguibile in locale nel browser: per questo motivo, CyberChef si configura come un’ottima scelta anche sul versante della privacy.
Fonte dell’immagine: GCHQ
Come suggerisce il nome, CyberChef permette di creare “ricette” per eseguire diverse operazioni sui dati. Le ricette sono essenzialmente una serie di passaggi eseguiti in sequenza, dall’alto verso il basso (approccio top-down), per compiere operazioni specifiche sui dati. L’interfaccia di base del software prevede un flusso logico in cui i dati sono inseriti nella finestra di input, le operazioni sono trascinate nell’area delle ricette (recipe) e i risultati delle operazioni mostrati nel riquadro dell’output.
Per accedere a CyberChef, è possibile servirsi dell’applicazione Web dedicata. Cliccando su Download in alto, si può scaricare una versione dell’applicazione avviabile in locale: basta aprire il file Zip compresso quindi estrarne il contenuto in una cartella di propria scelta. A questo punto, è sufficiente fare doppio clic sul file CyberChef_vX.X.X.html
. Tutto il codice è caricato in ambito locale, senza alcuno scambio di dati con server remoti.
Funzionalità dell’interfaccia
L’interfaccia di CyberChef è suddivisa in quattro finestre principali:
- Area di Input: Qui l’utente inserisce i dati su cui si desidera operare. La finestra include un contatore di byte e di righe, che tengono traccia della quantità di dati inseriti. È possibile aggiungere più schede per gestire diversi set di dati e cancellare il contenuto usando l’icona del cestino.
- Box delle Operazioni: Quest’area contiene un elenco di categorie di operazioni che possono essere eseguite sui dati. Gli utenti possono cercare le operazioni effettuabili avvalendosi della barra di ricerca. Le operazioni possono essere aggiunte ai preferiti per un accesso più rapido.
- Area delle Ricette: In questo riquadro, gli utenti trascinano e “impilano” le operazioni dall’area delle operazioni per creare una “ricetta”. È possibile salvare le ricette in diversi formati (Chef, Clean JSON, Compact JSON). Le ricette possono essere caricate successivamente utilizzando l’icona della cartella.
- Riquadro dell’Output: Qui sono mostrati i risultati delle operazioni eseguite sui dati. L’output può essere salvato in locale, copiato negli appunti o usato come nuovo input.
Architettura e funzionamento
CyberChef è interamente scritto in JavaScript (abbinando ovviamente HTML e CSS) e progettato per funzionare lato client. Il suo funzionamento si basa su una pipeline di operazioni, in cui l’utente può:
- Importare dati grezzi (testi, codici binari, stringhe codificate).
- Applicare operazioni di trasformazione (es. decodifica Base64, decrittazione AES, hashing, compressione).
- Esportare il risultato in vari formati.
Le operazioni disponibili spaziano dalla semplice elaborazione di stringhe alla conversione di formati fino ad arrivare alle manipolazioni avanzate, come la decodifica di payload malevoli o l’analisi di file binari.
Esecuzione delle Ricette
CyberChef offre diverse opzioni per eseguire le ricette:
- Bake: Esegue manualmente l’intera ricetta.
- Step: Permette di visualizzare l’esecuzione della ricetta passo dopo passo.
- Auto Bake: Esegue automaticamente la ricetta ogni volta che si aggiunge o rimuove un’operazione.
L’applicazione permette inoltre di disabilitare operazioni specifiche oppure impostare punti di interruzione durante l’esecuzione.
Le operazioni che CyberChef permette di eseguire
È impossibile riassumere in poche parole tutte le operazioni che CyberChef consente di effettuare sui dati inseriti in input. Non per niente, in cima alla colonna Operations spicca una casella di ricerca. Suggeriamo di investigare cosa contengono le varie categorie di operazioni e controllare quali sono gli interventi direttamente supportati.
Se ci si accorgesse di utilizzare spesso una funzione integrata in CyberChef, è sufficiente – dopo averla trascinata nel riquadro Recipe – spostarla nella categoria Favourites, in modo da poterla recuperare velocemente in caso di necessità.
Di seguito proponiamo alcuni esempi pratici di utilizzo di CyberChef suddivisi per categoria, per mostrare la sua versatilità nella manipolazione e analisi dei dati.
Va tuttavia tenuto presente che, per semplicità, negli esempi ci limitiamo a selezionare una sola operazione dalla lista di quelle supportate. Tuttavia, come spiegato in precedenza, si possono “impilare” una sopra l’altra più operazioni in modo che l’output prodotto da ciascuna di esse costituisca l’input per l’operazione successiva.
1️⃣ Decodifica di una stringa Base64
Molti dati vengono codificati in Base64 per il trasporto sicuro. Supponiamo di avere questa stringa:
UXVlc3RhIOggdW4naW5mb3JtYXppb25lIHNlZ3JldGE=
Passaggi in CyberChef
- Inserisci la stringa nel riquadro di input.
- Trascina l’operazione
"From Base64"
nel pannello delle operazioni. - Osserva l’output:
Questa è un'informazione segreta
2️⃣ Hashing di una password con SHA-256
Supponiamo di dover generare un hash SHA-256 per la stringa "MySecurePassword"
.
Passaggi in CyberChef
- Digita
"MySecurePassword"
nel campo di input. - Trascina l’operazione
"SHA2"
dal pannello delle operazioni e scegli 256. - Risultato:
3e9360575161c1fe93bd894a3208d6ef4e84febc534e4153117ee5dbc4156b60
3️⃣ Analisi di un JSON per estrarre informazioni
Supponiamo di avere il seguente JSON e di voler creare un file CSV separato da virgole:
{
"user": {
"name": "Mario Rossi",
"email": "mario.rossi@example.com"
}
}
Passaggi in CyberChef
- Inserisci il JSON nel campo di input.
- Trascina l’operazione
"JSON to CSV"
.
📌 Output:
user.name,user.email
Mario Rossi,mario.rossi@example.com
4️⃣ Estrazione di indirizzi IP da un file di log
Se analizziamo dei log di rete, possiamo estrarre rapidamente tutti gli indirizzi IP.
Esempio di Log
User login from 192.168.1.10
Failed attempt from 203.0.113.45
Successful connection from 172.16.0.5
Passaggi in CyberChef
- Incolla i log nel campo di input.
- Trascina l’operazione
"Extract IP addresses"
. - Risultato:
192.168.1.10
203.0.113.45
172.16.0.5
5️⃣ Analisi dei metadati di un file
CyberChef può estrarre metadati dai file, ad esempio immagini .jpg
con informazioni EXIF.
Passaggi
- Carica un’immagine (basta cliccare sull’icona Open file as input).
- Trascina
"Extract EXIF"
. - Visualizza i dati, come la fotocamera usata e i dati di geolocalizzazione.
6️⃣ Analisi dei metadati di un file
CyberChef può estrarre metadati dai file, ad esempio immagini .jpg
con informazioni EXIF.
Passaggi
- Carica un’immagine (basta cliccare sull’icona Open file as input).
- Trascina
"Extract EXIF"
. - Visualizza i dati, come la fotocamera usata e i dati di geolocalizzazione.
Facendo riferimento alla categoria Multimedia, si possono trovare decine di funzionalità progettate per modificare la struttura di qualunque immagine o estrarne le caratteristiche salienti.
Credit immagine in apertura: iStock.com – gorodenkoff