
Rileva caratteri visivamente simili (omoglifi) e dati nascosti nel testo per proteggersi da attacchi ingannevoli
Gli attacchi omografi sfruttano la somiglianza visiva di caratteri di diversi sistemi di scrittura (ad es., 'a' latina vs. 'а' cirillica) per contraffare nomi di dominio, nomi di file o altri identificatori, inducendo gli utenti a credere di interagire con una fonte legittima.
huntglyph fornisce una soluzione di rilevamento per identificare queste pratiche ingannevoli, garantendo sicurezza e chiarezza digitale.
huntglyph offre diversi comandi per analizzare stringhe e file.
text: Analizza una stringa di testo grezzaAnalizza una stringa di testo grezza alla ricerca di omoglifi, script misti e caratteri invisibili (potenziale fonte di steganografia). L'input può essere fornito come argomento del comando o tramite stdin.
es. 1 - Analizza una stringa letterale contenente omoglifi e script misti
$ 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)
es. 2 - Analizza una stringa letterale contenente uno spazio a larghezza zero
$ 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)
es. 3 - Usa le pipe (input da stdin)
$ cat demo/suspicious.txt | huntglyph text
es. 4 - Mostra solo il punteggio di rischio normalizzato (0.0-1.0) per una stringa letterale
$ huntglyph text "gооgle.com" --risk-score-only
0.75
inspect: Analisi dettagliata carattere per carattereFornisce una vista tabellare dettagliata di ogni carattere in una stringa o file, inclusi code point, nome, script ed eventuali proprietà sospette.
es. 1 - Ispezione completa. Contiene omoglifi e script misti
$ 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)
es. 2 - Limita i risultati ai caratteri sospetti
$ 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: Scansiona file o directoryScansiona file o directory alla ricerca di caratteri sospetti, analizzando i file di testo in parallelo. es. 1 - Scansiona un file
$ 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)
es. 2 - Scansiona una directory (e imposta 4 worker per le prestazioni)
$ huntglyph scan --workers 4 demo
es. 3 - Mostra solo il punteggio di rischio cumulativo massimo (0.0-1.0) per una directory
$ huntglyph scan demo --risk-score-only
1.00
review: Esamina in modo interattivo i file sospettiScansiona file o directory e fornisce un prompt interattivo per ogni file sospetto trovato, consentendo un'ispezione dettagliata o di saltarlo.
$ huntglyph review demo
Questo comando scaricherà e installerà huntglyph in una posizione standard per il tuo sistema.
Consigliato (a livello utente):
Installa in $HOME/.local/bin (Linux/macOS) o in una directory bin specifica per l'utente (Windows).
curl -sSfL https://raw.githubusercontent.com/gregory-chatelier/huntglyph/main/install.sh | sh
A livello di sistema (richiede sudo):
Installa in /usr/local/bin.
sudo curl -sSfL https://raw.githubusercontent.com/gregory-chatelier/huntglyph/main/install.sh | sh
Directory personalizzata:
Usa la variabile d'ambiente INSTALL_DIR per specificare un percorso personalizzato.
curl -sSfL https://raw.githubusercontent.com/gregory-chatelier/huntglyph/main/install.sh | INSTALL_DIR=$HOME/bin sh
Questo strumento è stato validato su un sottoinsieme del RAID Dataset, confermando la sua efficacia nell'identificare omoglifi e manipolazioni con spazi a larghezza zero.
Questo progetto è concesso in licenza secondo la MIT License - vedi il file LICENSE per i dettagli.
| Opzione | Descrizione | Comandi |
|---|
--format (default, json) | Formato di output. | text, inspect |
--workers N | Numero di worker da usare per la scansione. | scan |
--suspicious-only | Mostra solo i caratteri sospetti nella tabella di output. | inspect |
--full | Mostra i dettagli completi per i caratteri invisibili (forma escape). | inspect |
--risk-score-only | Mostra solo il punteggio di rischio normalizzato (0.0-1.0). Questo punteggio è cumulativo (massimo 100) e si basa su script misti (25), caratteri confondibili (50), invisibili (25) e payload nascosti (100). Per 'text', è il punteggio dell'input. Per 'scan', è il punteggio massimo tra tutti i file scansionati. | text, scan |
--version | Stampa le informazioni sulla versione. | Tutti i comandi |