
Détecter les caractères visuellement similaires (homoglyphes) et les données cachées dans le texte pour se protéger contre les attaques trompeuses.
Les attaques par homographes exploitent la similarité visuelle des caractères provenant de différents systèmes d'écriture (par exemple, le 'a' latin contre le 'а' cyrillique) pour usurper des noms de domaine, des noms de fichiers ou d'autres identifiants, trompant les utilisateurs en leur faisant croire qu'ils interagissent avec une source légitime.
huntglyph fournit une solution de détection pour identifier ces pratiques trompeuses, garantissant la sécurité et la clarté numériques.
huntglyph fournit plusieurs commandes pour analyser des chaînes et des fichiers.
text : Analyser une chaîne de texte bruteAnalyse une chaîne de texte brute à la recherche d'homoglyphes, de scripts mixtes et de caractères invisibles (source potentielle de stéganographie). L'entrée peut être fournie comme argument de commande ou via stdin.
Ex. 1 - Analyser une chaîne littérale contenant des homoglyphes et des scripts mixtes
$ huntglyph text "gооgle.com"
Original: gооgle.com
Indicator: ↑↑
Cleaned: google.com
--------------------------------------------------------------------------------------------------------------------------------
Details:
- Pos 2: 'о' (U+00043E, Cyrillic) is a homoglyph of 'o' (U+00006F, Latin).
- Pos 3: 'о' (U+00043E, Cyrillic) is a homoglyph of 'o' (U+00006F, Latin).
Warning: Mixed scripts detected: Latin, Cyrillic
Warning: Confusable characters detected.
Overall Risk: HIGH (Score: 75)
Ex. 2 - Analyser une chaîne littérale contenant un espace de largeur nulle
$ huntglyph text "helloworld"
Original: helloworld
Indicator: ↑
Cleaned: hello world
--------------------------------------------------------------------------------------------------------------------------------
Details:
- Pos 6: Invisible Character '' (U+00200B)
Warning: Invisible characters detected.
Overall Risk: MODERATE (Score: 25)
Ex. 3 - Utiliser des pipes (entrée depuis stdin)
$ cat demo/suspicious.txt | huntglyph text
Ex. 4 - Afficher uniquement le score de risque normalisé (0.0-1.0) pour une chaîne littérale
$ huntglyph text "gооgle.com" --risk-score-only
0.75
inspect : Analyse détaillée caractère par caractèreFournit une vue tabulaire détaillée de chaque caractère d'une chaîne ou d'un fichier, y compris son point de code, son nom, son script et toutes propriétés suspectes.
Ex. 1 - Inspection complète. Contient des homoglyphes et des scripts mixtes
$ huntglyph inspect "аррӏе.com"
┌─────┬──────┬────────────┬──────────┬────────────────────────────────┬────────────────────────────────────┐
│ POS │ CHAR │ CODE POINT │ SCRIPT │ NAME │ DETAILS │
├─────┼──────┼────────────┼──────────┼────────────────────────────────┼────────────────────────────────────┤
│ 1 │ а │ U+000430 │ Cyrillic │ CYRILLIC SMALL LETTER A │ Homoglyph of 'a' (in word 'аррӏе') │
│ 2 │ р │ U+000440 │ Cyrillic │ CYRILLIC SMALL LETTER ER │ Homoglyph of 'p' (in word 'аррӏе') │
│ 3 │ р │ U+000440 │ Cyrillic │ CYRILLIC SMALL LETTER ER │ Homoglyph of 'p' (in word 'аррӏе') │
│ 4 │ ӏ │ U+0004CF │ Cyrillic │ CYRILLIC SMALL LETTER PALOCHKA │ Homoglyph of 'l' (in word 'аррӏе') │
│ 5 │ е │ U+000435 │ Cyrillic │ CYRILLIC SMALL LETTER IE │ Homoglyph of 'e' (in word 'аррӏе') │
│ 6 │ . │ U+00002E │ Common │ FULL STOP │ │
│ 7 │ c │ U+000063 │ Latin │ LATIN SMALL LETTER C │ │
│ 8 │ o │ U+00006F │ Latin │ LATIN SMALL LETTER O │ │
│ 9 │ m │ U+00006D │ Latin │ LATIN SMALL LETTER M │ │
└─────┴──────┴────────────┴──────────┴────────────────────────────────┴────────────────────────────────────┘
Warning: Mixed scripts detected: Cyrillic, Latin
Warning: Confusable characters detected.
Overall Risk: HIGH (Score: 75)
Ex. 2 - Limite les résultats aux caractères suspects
$ huntglyph inspect --suspicious-only "helloworld"
┌─────┬──────┬────────────┬────────┬──────────────────┬───────────┐
│ POS │ CHAR │ CODE POINT │ SCRIPT │ NAME │ DETAILS │
├─────┼──────┼────────────┼────────┼──────────────────┼───────────┤
│ 6 │ │ U+00200B │ Common │ ZERO WIDTH SPACE │ Invisible │
└─────┴──────┴────────────┴────────┴──────────────────┴───────────┘
Warning: Invisible characters detected.
Overall Risk: MODERATE (Score: 25)
scan : Scanner des fichiers ou des répertoiresAnalyse les fichiers ou répertoires à la recherche de caractères suspects, en traitant les fichiers texte en parallèle. Ex. 1 - Scanner un fichier
$ huntglyph scan demo/suspicious.txt
File: demo/suspicious.txt
Risk Level: HIGH (Score: 100)
Scripts: Latin, Cyrillic
Line 1:
Original: This file contains a suspicious url: gооgle.com
Indicator: ↑↑ ↑
Cleaned: This file contains a suspicious url: google.com
--------------------------------------------------------------------------------------------------------------------------------
Details:
- Pos 39: 'о' (U+00043E, Cyrillic) is a homoglyph of 'o' (U+00006F, Latin).
- Pos 40: 'о' (U+00043E, Cyrillic) is a homoglyph of 'o' (U+00006F, Latin).
- Pos 48: Invisible Character '' (U+00200B)
Ex. 2 - Analyse un répertoire (et configure 4 workers pour les performances)
$ huntglyph scan --workers 4 demo
Ex. 3 - Afficher uniquement le score de risque cumulatif maximal (0.0-1.0) pour un répertoire
$ huntglyph scan demo --risk-score-only
1.00
review : Examiner interactivement les fichiers suspectsAnalyse les fichiers ou répertoires et fournit une invite interactive pour chaque fichier suspect trouvé, permettant une inspection détaillée ou de l'ignorer.
$ huntglyph review demo
Cette commande téléchargera et installera huntglyph dans un emplacement standard pour votre système.
Recommandé (niveau utilisateur) :
Installe dans $HOME/.local/bin (Linux/macOS) ou dans un répertoire bin spécifique à l'utilisateur (Windows).
curl -sSfL https://raw.githubusercontent.com/gregory-chatelier/huntglyph/main/install.sh | sh
À l'échelle du système (nécessite sudo) :
Installe dans /usr/local/bin.
sudo curl -sSfL https://raw.githubusercontent.com/gregory-chatelier/huntglyph/main/install.sh | sh
Répertoire personnalisé :
Utilisez la variable d'environnement INSTALL_DIR pour spécifier un chemin personnalisé.
curl -sSfL https://raw.githubusercontent.com/gregory-chatelier/huntglyph/main/install.sh | INSTALL_DIR=$HOME/bin sh
Cet outil a été validé sur un sous-ensemble du jeu de données RAID, confirmant son efficacité à identifier les homoglyphes et les manipulations d'espaces de largeur nulle.
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
| Option | Description | Commandes |
|---|
--format (default, json) | Format de sortie. | text, inspect |
--workers N | Nombre de workers à utiliser pour l'analyse. | scan |
--suspicious-only | Afficher uniquement les caractères suspects dans le tableau de sortie. | inspect |
--full | Afficher les détails complets pour les caractères invisibles (forme échappée). | inspect |
--risk-score-only | Afficher uniquement le score de risque normalisé (0.0-1.0). Ce score est cumulatif (max 100) et repose sur les scripts mixtes (25), les confusables (50), les caractères invisibles (25) et les charges utiles cachées (100). Pour 'text', il s'agit du score de l'entrée. Pour 'scan', il s'agit du score maximum parmi tous les fichiers analysés. | text, scan |
--version | Afficher les informations de version. | Toutes les commandes |