
CyberChef v11.4.0
The Cyber Swiss Army Knife - un'app web per crittografia, codifica, compressione e analisi dei dati
CyberChef
Il coltellino svizzero informatico
CyberChef è una web app semplice e intuitiva per eseguire ogni tipo di operazione "cyber" all'interno di un browser web. Queste operazioni includono semplici codifiche come XOR e Base64, crittografie più complesse come AES, DES e Blowfish, creazione di binary ed hexdump, compressione e decompressione dei dati, calcolo di hash e checksum, parsing di IPv6 e X.509, modifica delle codifiche dei caratteri e molto altro.
Lo strumento è progettato per consentire sia agli analisti tecnici che a quelli non tecnici di manipolare i dati in modi complessi senza dover gestire strumenti o algoritmi complessi. È stato concepito, progettato, costruito e migliorato progressivamente da un analista nel proprio tempo di innovazione del 10% nell'arco di diversi anni.
Indice
- Sito web ufficiale
- Esecuzione locale
- Come funziona
- Funzionalità
- Collegamento profondo
- Supporto browser
- Supporto Node.js
- Sicurezza
- Contribuire
- Licenza
Sito web ufficiale
Il sito web ufficiale di CyberChef si trova qui - buon divertimento!
Esecuzione locale
Puoi eseguire CyberChef con Docker (nessun toolchain richiesto) o compilarlo dal sorgente con Node.js.
Con Docker
Prerequisiti
- Docker
- Docker Desktop deve essere aperto e in esecuzione sul tuo computer
Opzione 1: crea l'immagine Docker manualmente
- Crea l'immagine Docker
docker build --tag cyberchef --ulimit nofile=10000 .
- Esegui il container Docker
docker run -it -p 8080:8080 cyberchef
- Vai su
http://localhost:8080nel tuo browser
Opzione 2: usa l'immagine Docker precompilata
Se preferisci saltare il processo di creazione, puoi usare l'immagine precompilata
docker run -it -p 8080:8080 ghcr.io/gchq/cyberchef:latest
Come prima, vai su http://localhost:8080 nel tuo browser.
Questa immagine viene creata e pubblicata tramite i nostri GitHub Workflows.
Dal sorgente
Se vuoi sviluppare CyberChef o eseguirlo senza Docker, puoi compilarlo direttamente con Node.js.
Prerequisiti
- Node.js
v24(vedi Supporto Node.js)
[!NOTE]
Puoi usare nvm per gestire le versioni di Node.js e utilizzare la versione di sviluppo corrente in questo progetto per evitare conflitti con altri progetti sul tuo computer.
Configurazione
git clone https://github.com/gchq/CyberChef.git
cd CyberChef
npm install
Attività comuni
| Comando | Descrizione |
|---|---|
npm start | Avvia il server di sviluppo con ricaricamento automatico su http://localhost:8080. |
npm run build | Genera una build di produzione nella directory build/prod. |
npm test | Esegue le suite di test Node.js e delle operazioni. |
npm run testui | Esegue i test del browser (UI). |
npm run lint | Verifica il codice rispetto alle regole di linting. |
npm run newop | Crea una nuova operazione tramite lo script interattivo di avvio rapido. |
Se incontri un errore di memoria insufficiente durante la creazione di ricette di grandi dimensioni, aumenta la dimensione dell'heap di Node con npm run setheapsize.
Come funziona
Ci sono quattro aree principali in CyberChef:
- La casella input in alto a destra, dove puoi incollare, digitare o trascinare il testo o il file su cui vuoi operare.
- La casella output in basso a destra, dove verrà visualizzato il risultato della tua elaborazione.
- L'elenco delle operazioni all'estrema sinistra, dove puoi trovare tutte le operazioni di cui CyberChef è capace in elenchi categorizzati, oppure tramite ricerca.
- L'area della ricetta al centro, dove puoi trascinare le operazioni che vuoi utilizzare e specificare argomenti e opzioni.
Puoi usare quante operazioni vuoi, in modi semplici o complessi. Alcuni esempi sono i seguenti:
- Decodificare una stringa codificata in Base64
- Convertire una data e un'ora in un fuso orario diverso
- Analizzare un indirizzo IPv6 Teredo
- Convertire i dati da un hexdump, poi decomprimerli
- Decrittare e disassemblare shellcode
- Visualizzare più timestamp come date complete
- Eseguire operazioni diverse su dati di tipo diverso
- Usare parti dell'input come argomenti per le operazioni
- Eseguire la decrittazione AES, estraendo l'IV dall'inizio del flusso cifrato
- Un modo più semplice per eseguire la stessa decrittazione AES
- Rilevare automaticamente più livelli di codifica annidata
Funzionalità
- Trascina e rilascia
- Le operazioni possono essere trascinate dentro e fuori dall'elenco della ricetta, oppure riorganizzate.
- I file fino a 2GB possono essere trascinati sulla casella di input per caricarli direttamente nel browser.
- Auto Bake
- Ogni volta che modifichi l'input o la ricetta, CyberChef eseguirà automaticamente il "bake" per te e produrrà l'output immediatamente.
- Questa funzione può essere disattivata e gestita manualmente se influisce sulle prestazioni (ad esempio se l'input è molto grande).
- Rilevamento automatico della codifica
- CyberChef utilizza una serie di tecniche per tentare di rilevare automaticamente le codifiche dei tuoi dati. Se trova un'operazione adatta che dia un senso ai tuoi dati, visualizza l'icona 'magic' nel campo Output, su cui puoi fare clic per decodificare i tuoi dati.
- Breakpoint
- Puoi impostare breakpoint su qualsiasi operazione della tua ricetta per mettere in pausa l'esecuzione prima di eseguirla.
- Puoi anche scorrere la ricetta un'operazione alla volta per vedere come appaiono i dati in ogni fase.
- Salvare e caricare ricette
- Se crei una ricetta fantastica che sai di voler riutilizzare, fai semplicemente clic su "Save recipe" e aggiungila al tuo storage locale. Ti aspetterà la prossima volta che visiterai CyberChef.
- Puoi anche copiare l'URL, che include la tua ricetta e l'input, per condividerlo facilmente con altri.
- Ricerca
- Se conosci il nome dell'operazione che vuoi o una parola associata, inizia a digitarla nel campo di ricerca e tutte le operazioni corrispondenti verranno mostrate immediatamente.
- Evidenziazione
- Quando evidenzi del testo nell'input o nell'output, verranno visualizzati i valori di offset e lunghezza e, se possibile, i dati corrispondenti verranno evidenziati rispettivamente nell'output o nell'input (esempio: evidenzia la parola 'question' nell'input per vedere dove appare nell'output).
- Salva su file e carica da file
- Puoi salvare l'output in un file in qualsiasi momento oppure caricare un file trascinandolo e rilasciandolo nel campo di input. Sono supportati file fino a circa 2GB (a seconda del browser); tuttavia, alcune operazioni potrebbero richiedere moltissimo tempo per essere eseguite su una mole di dati così grande.
- CyberChef è interamente lato client
- Va notato che nessuna parte della configurazione della tua ricetta o dell'input (né testo né file) viene mai inviata al server web di CyberChef: tutta l'elaborazione avviene all'interno del tuo browser, sul tuo computer.
- Grazie a questa funzionalità, CyberChef può essere scaricato ed eseguito localmente. Puoi usare il link nell'angolo in alto a sinistra dell'app per scaricare una copia completa di CyberChef e inserirla in una macchina virtuale, condividerla con altre persone o ospitarla in una rete chiusa.
Collegamento profondo
Manipolando l'hash dell'URL di CyberChef, puoi modificare le impostazioni iniziali con cui si apre la pagina.
Il formato è https://gchq.github.io/CyberChef/#recipe=Operation()&input=...
Gli argomenti supportati sono recipe, input (codificato in Base64) e theme.
Supporto browser
CyberChef è progettato per supportare
- Google Chrome 50+
- Mozilla Firefox 38+
Supporto Node.js
CyberChef è progettato per supportare pienamente Node.js v24 ed è testato anche con Node.js v26 in previsione della sua prossima disponibilità come release LTS attiva. Per maggiori informazioni, consulta la pagina wiki "Node API"
Sicurezza
Consulta la security policy di CyberChef.
Contribuire
Contribuire con una nuova operazione a CyberChef è facilissimo! Lo script di avvio rapido ti guiderà attraverso il processo. Se sai scrivere JavaScript di base, puoi scrivere un'operazione per CyberChef.
Una guida all'installazione, guide pratiche per aggiungere nuove operazioni e temi, descrizioni della struttura del repository, dei tipi di dati disponibili e delle convenzioni di codifica: tutto questo si trova nella pagina wiki "Contributing".
- Invia le tue modifiche al tuo fork.
- Invia una pull request. Se lo fai per la prima volta, ti verrà chiesto di firmare la GCHQ Contributor Licence Agreement tramite l'assistente CLA sulla pull request. Ti verrà anche chiesto se sei d'accordo che GCHQ ti contatti per un piccolo ringraziamento per il tuo contributo o per opportunità di lavoro presso GCHQ.
Licenza
CyberChef è rilasciato sotto la Licenza Apache 2.0 ed è coperto da Crown Copyright.