
ホモグラフ攻撃は、異なる文字体系(例:ラテン文字の「a」とキリル文字の「а」)の文字の視覚的類似性を利用して、ドメイン名、ファイル名、またはその他の識別子を偽装し、ユーザーが正当なソースとやり取りしていると思い込ませるものです。
huntglyph は、これらの欺瞞的な行為を識別するための検出ソリューションを提供し、デジタルセキュリティと明瞭性を確保します。
huntglyph は、文字列やファイルを解析するためのいくつかのコマンドを提供します。
text: 生のテキスト文字列を解析ホモグリフ、混合スクリプト、不可視文字(ステガノグラフィの潜在的なソース)がないか、生のテキスト文字列を解析します。入力はコマンド引数または標準入力から提供できます。
例1 - ホモグリフ、混合スクリプトを含むリテラル文字列を解析
$ 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)
例2 - ゼロ幅スペースを含むリテラル文字列を解析
$ 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)
例3 - パイプを使用(標準入力からの入力)
$ cat demo/suspicious.txt | huntglyph text
例4 - リテラル文字列の正規化されたリスクスコア(0.0~1.0)のみを出力
$ huntglyph text "gооgle.com" --risk-score-only
0.75
inspect: 詳細な文字ごとの内訳文字列またはファイル内の各文字の詳細なテーブルビューを提供します。コードポイント、名前、スクリプト、および不審なプロパティが含まれます。
例1 - フルインスペクション。ホモグリフ、混合スクリプトを含む
$ 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)
例2 - 結果を不審な文字のみに制限
$ 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: ファイルまたはディレクトリをスキャン不審な文字がないかファイルまたはディレクトリをスキャンし、テキストファイルを並列に解析します。 例1 - ファイルをスキャン
$ 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)
例2 - ディレクトリをスキャン(パフォーマンスのために4つのワーカーを設定)
$ huntglyph scan --workers 4 demo
例3 - ディレクトリの最大累積リスクスコア(0.0~1.0)のみを出力
$ huntglyph scan demo --risk-score-only
1.00
review: インタラクティブに不審なファイルをレビューファイルまたはディレクトリをスキャンし、見つかった不審なファイルごとにインタラクティブなプロンプトを表示し、詳細な検査またはスキップを可能にします。
$ huntglyph review demo
このコマンドは、huntglyph をシステムの標準的な場所にダウンロードしてインストールします。
推奨(ユーザーレベル):
$HOME/.local/bin(Linux/macOS)またはユーザー固有の bin ディレクトリ(Windows)にインストールします。
curl -sSfL https://raw.githubusercontent.com/gregory-chatelier/huntglyph/main/install.sh | sh
システム全体(sudo が必要):
/usr/local/bin にインストールします。
sudo curl -sSfL https://raw.githubusercontent.com/gregory-chatelier/huntglyph/main/install.sh | sh
カスタムディレクトリ:
環境変数 INSTALL_DIR を使用してカスタムパスを指定します。
curl -sSfL https://raw.githubusercontent.com/gregory-chatelier/huntglyph/main/install.sh | INSTALL_DIR=$HOME/bin sh
このツールは、RAID データセットのサブセットに対して検証されており、ホモグリフおよびゼロ幅スペース操作を識別する効果が確認されています。
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
| オプション | 説明 | コマンド |
|---|
--format (default, json) | 出力形式。 | text, inspect |
--workers N | スキャンに使用するワーカー数。 | scan |
--suspicious-only | 出力テーブルに不審な文字のみを表示する。 | inspect |
--full | 不可視文字の詳細(エスケープ形式)を表示する。 | inspect |
--risk-score-only | 正規化されたリスクスコア(0.0~1.0)のみを出力する。このスコアは累積(最大100)で、混合スクリプト(25)、紛らわしい文字(50)、不可視文字(25)、隠れたペイロード(100)に基づきます。'text'の場合は入力のスコア、'scan'の場合はスキャンした全ファイルの最大スコアです。 | text, scan |
--version | バージョン情報を表示する。 | すべてのコマンド |