CyberChef
Le cyber-couteau-suisse
CyberChef est une application Web simple et intuitive permettant d'effectuer toutes sortes d'opérations « cyber » dans un navigateur Web. Ces opérations incluent un codage simple comme XOR et Base64, un cryptage plus complexe comme AES, DES et Blowfish, la création de dumps binaires et hexadécimaux, la compression et la décompression de données, le calcul de hachages et de sommes de contrôle, l'analyse IPv6 et X.509, la modification des encodages de caractères, et bien plus encore. .
L'outil est conçu pour permettre aux analystes techniques et non techniques de manipuler les données de manière complexe sans avoir à utiliser des outils ou des algorithmes complexes. Il a été conçu, conçu, construit et progressivement amélioré par un analyste au cours de son temps d'innovation de 10 % sur plusieurs années.
Démo en direct
CyberChef est toujours en développement actif. Il ne faut donc pas le considérer comme un produit fini. Il reste encore des tests et des corrections de bugs à faire, de nouvelles fonctionnalités à ajouter et une documentation supplémentaire à rédiger. S'il vous plaît, contribuez !
Les opérations cryptographiques dans CyberChef ne doivent en aucun cas être invoquées pour assurer la sécurité. Aucune garantie n'est offerte quant à leur exactitude.
Une démo en direct peut être trouvée ici – amusez-vous !
Conteneurs
Si vous souhaitez essayer CyberChef localement, vous pouvez le créer vous-même :
docker build --tag cyberchef --ulimit nofile=10000 .
docker run -it -p 8080:80 cyberchef
Ou vous pouvez utiliser notre image directement :
docker run -it -p 8080:80 ghcr.io/gchq/cyberchef:latest
Cette image est construite et publiée via nos workflows GitHub
Comment ça marche
Il y a quatre domaines principaux dans CyberChef :
- La zone de saisie en haut à droite, où vous pouvez coller, saisir ou faire glisser le texte ou le fichier sur lequel vous souhaitez opérer.
- La boîte de sortie en bas à droite, où le résultat de votre traitement sera affiché.
- La liste des opérations à l'extrême gauche, où vous pouvez trouver toutes les opérations dont CyberChef est capable dans des listes catégorisées, ou en effectuant une recherche.
- La zone de recette au milieu, où vous pouvez faire glisser les opérations que vous souhaitez utiliser et spécifier des arguments et des options.
Vous pouvez utiliser autant d'opérations que vous le souhaitez de manière simple ou complexe. Voici quelques exemples :
- Décoder une chaîne codée en Base64
- Convertir une date et une heure dans un fuseau horaire différent
- Analyser une adresse IPv6 Teredo
- Convertir les données d'un hexdump, puis décompresser
- Décrypter et désassembler le shellcode
- Afficher plusieurs horodatages sous forme de dates complètes
- Effectuer différentes opérations sur des données de différents types
- Utiliser des parties de l'entrée comme arguments pour les opérations
- Effectuer un déchiffrement AES, en extrayant le IV du début du flux chiffré
- Détecter automatiquement plusieurs couches d'encodage imbriqué
Caractéristiques
- Glisser et déposer
- Les opérations peuvent être glissées dans et hors de la liste de recettes, ou réorganisées.
- Les fichiers jusqu'à 2 Go peuvent être glissés sur la zone de saisie pour les charger directement dans le navigateur.
- Cuisson automatique
- Chaque fois que vous modifiez l'entrée ou la recette, CyberChef « cuit » automatiquement pour vous et produit immédiatement le résultat.
- Ceci peut être désactivé et activé manuellement si cela affecte les performances (si l'entrée est très volumineuse, par exemple).
- Détection automatisée du codage
- CyberChef utilise un certain nombre de techniques pour tenter de détecter automatiquement les codages sous lesquels se trouvent vos données. S'il trouve une opération appropriée qui donne un sens à vos données, il affiche l'icône « magique » dans le champ Sortie sur laquelle vous pouvez cliquer pour décoder vos données.
- Points d'arrêt
- Vous pouvez définir des points d'arrêt sur n'importe quelle opération de votre recette pour suspendre l'exécution avant de l'exécuter.
- Vous pouvez également parcourir la recette, une opération à la fois, pour voir à quoi ressemblent les données à chaque étape.
- Enregistrer et charger des recettes
- Si vous proposez une recette géniale que vous savez que vous voudrez réutiliser, cliquez simplement sur « Enregistrer la recette » et ajoutez-la à votre stockage local. Il vous attendra lors de votre prochaine visite à CyberChef.
- Vous pouvez également copier l'URL, qui inclut votre recette et votre contribution, pour la partager facilement avec d'autres.
- Recherche
- Si vous connaissez le nom de l'opération souhaitée ou un mot qui lui est associé, commencez à le saisir dans le champ de recherche et toutes les opérations correspondantes seront immédiatement affichées.
- Mise en évidence
- Lorsque vous mettez en surbrillance du texte dans l'entrée ou la sortie, les valeurs de décalage et de longueur seront affichées et, si possible, les données correspondantes seront mises en surbrillance respectivement dans la sortie ou l'entrée (exemple : mettez en surbrillance le mot « question » dans l'entrée pour voir où il apparaît dans la sortie).
- Enregistrer dans un fichier et charger à partir d'un fichier
- Vous pouvez enregistrer la sortie dans un fichier à tout moment ou charger un fichier en le faisant glisser et en le déposant dans le champ de saisie. Les fichiers jusqu'à environ 2 Go sont pris en charge (en fonction de votre navigateur), cependant, certaines opérations peuvent prendre beaucoup de temps pour exécuter autant de données.
- CyberChef est entièrement côté client
- Il convient de noter qu'aucune configuration ou entrée de votre recette (que ce soit du texte ou des fichiers) n'est jamais envoyée au serveur Web de CyberChef - tout le traitement est effectué dans votre navigateur, sur votre propre ordinateur.
- Grâce à cette fonctionnalité, CyberChef peut être téléchargé et exécuté localement. Vous pouvez utiliser le lien dans le coin supérieur gauche de l'application pour télécharger une copie complète de CyberChef et la déposer dans une machine virtuelle, la partager avec d'autres personnes ou l'héberger dans un réseau fermé.
Liens profonds
En manipulant le hachage d'URL de CyberChef, vous pouvez modifier les paramètres initiaux avec lesquels la page s'ouvre. Le format est https://gchq.github.io/CyberChef/#recipe=Operation()&input=...
Les arguments pris en charge sont recipe
, input
(codé en Base64) et theme
.
Prise en charge du navigateur
CyberChef est conçu pour prendre en charge
- Google Chrome 50+
- Mozilla Firefox 38+
Prise en charge de Node.js
CyberChef est conçu pour prendre entièrement en charge Node.js v16
. Pour plus d'informations, consultez la page wiki "API Node"
Contribuer
Contribuer à une nouvelle opération à CyberChef est super simple ! Le script de démarrage rapide vous guidera tout au long du processus. Si vous pouvez écrire du JavaScript de base, vous pouvez écrire une opération CyberChef.
Une procédure pas à pas d'installation, des guides pratiques pour ajouter de nouvelles opérations et de nouveaux thèmes, des descriptions de la structure du référentiel, les types de données disponibles et les conventions de codage peuvent tous être trouvés dans la page wiki « Contribuer ».
- Poussez vos modifications sur votre fork.
- Soumettez une pull request. Si vous faites cela pour la première fois, vous serez invité à signer le contrat de licence de contributeur GCHQ via l'assistant CLA sur la demande d'extraction. Cela vous demandera également si vous êtes heureux que le GCHQ vous contacte pour vous remercier de votre contribution ou pour des opportunités d'emploi au GCHQ.
Licence
CyberChef est publié sous la licence Apache 2.0 et est couvert par Crown Copyright.