
اكتشاف الأحرف المتشابهة بصرياً (homoglyphs) والبيانات المخفية في النص للحماية من الهجمات الخادعة
تستغل هجمات التجانس البصري التشابه البصري بين الحروف من أنظمة كتابة مختلفة (مثل الحرف اللاتيني 'a' مقابل السيريلي 'а') لتزوير أسماء النطاقات أو أسماء الملفات أو معرفات أخرى، وخداع المستخدمين ليعتقدوا أنهم يتفاعلون مع مصدر شرعي.
توفر أداة huntglyph حلاً للكشف عن هذه الممارسات الخادعة، مما يضمن الأمان الرقمي والوضوح.
توفر huntglyph عدة أوامر لتحليل السلاسل النصية والملفات.
text: تحليل سلسلة نصية خامتحلل سلسلة نصية خام بحثًا عن الأشكال المتجانسة (homoglyphs) والنصوص المختلطة والأحرف غير المرئية (مصدر محتمل للإخفاء). يمكن إدخال النص كوسيط أمر أو عبر stdin.
مثال 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 - استخدام الأنابيب (إدخال من stdin)
$ cat demo/suspicious.txt | huntglyph text
مثال 4 - إخراج درجة الخطورة الطبيعية فقط (0.0-1.0) لسلسلة حرفية
$ huntglyph text "gооgle.com" --risk-score-only
0.75
inspect: تفصيل حرفي شامليوفر عرضًا جدوليًا مفصلاً لكل حرف في سلسلة نصية أو ملف، بما في ذلك نقطة الكود (code point) والاسم والنص وأي خصائص مشبوهة.
مثال 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 (لينكس/macOS) أو في دليل bin خاص بالمستخدم (ويندوز).
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 | طباعة معلومات الإصدار. | جميع الأوامر |