
يكتشف حمولات هجوم سلسلة التوريد GlassWorm من خلال فحص إضافات VS Code، وحزم npm/PyPI، ومستودعات git بحثًا عن حمولات Unicode غير مرئية، وأنماط فك التشفير، وعلامات C2، ومؤشرات IOC ضارة معروفة.

اكتشف حمولات هجوم سلسلة التوريد GlassWorm على جهازك. يقوم بمسح إضافات VS Code، حزم npm، حزم Python، ومستودعات git.
هذا الماسح يكشف تقنية الهجوم نفسها - حمولات محددات الاختلاف Unicode غير المرئية، أنماط فك تشفير GlassWorm، مؤشرات C2، وكود سرقة بيانات الاعتماد.
pip install glassworm-hunter
أو باستخدام pipx:
pipx install glassworm-hunter
امسح الدليل الحالي دون مسح إضافات VS Code/Cursor:
glassworm-hunter scan --no-extensions
امسح مشروعًا معينًا:
glassworm-hunter scan /path/to/project
| المستوى | المعنى |
|---|---|
| حرج | تم اكتشاف حمولة GlassWorm نشطة (مجموعة Unicode غير مرئية في الكود، نمط فك التشفير) |
glassworm-hunter scan [OPTIONS] [PATHS...]
يتم عرض شريط تقدم Rich على stderr أثناء المسح. يتم إخفاؤه تلقائيًا مع --quiet أو --verbose. يتم دائمًا طباعة سطر ملخص (الملفات الممسوحة ضوئيًا، النتائج، مسار الإخراج) إلى stderr بعد اكتمال المسح.
# سرد جميع معرفات قواعد الكشف (للاستخدام مع --disable-rule)
glassworm-hunter rules
# تحديث قاعدة بيانات IoC المحلية من GitHub (المصدر الافتراضي:
# https://raw.githubusercontent.com/afine-com/glassworm-hunter/main/data/ioc.json)
glassworm-hunter update
# التحديث من مصدر مخصص (على سبيل المثال، خادم استخبارات تهديدات داخلي)
glassworm-hunter update --source https://internal.corp/ioc.json
# فرض الكتابة فوق قاعدة بيانات IoC المحلية الموجودة
glassworm-hunter update --force
# طباعة الإصدار
glassworm-hunter version
| الرمز | المعنى |
|---|---|
| 0 | لا توجد نتائج |
| 1 | تم اكتشاف نتائج |
| 2 | خطأ في الماسح |
إخراج JSON للمعالجة الآلية:
glassworm-hunter scan . --format json --output report.json --no-extensions
SARIF لمسح الكود في GitHub:
glassworm-hunter scan . --format sarif --output results.sarif --no-extensions
رفع SARIF إلى GitHub:
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
استخدام رموز الخروج في CI:
glassworm-hunter scan . --severity critical --no-extensions || exit 1
استبعاد القطع الأثرية للبناء وكود البائع:
glassworm-hunter scan . --exclude "dist/**" --exclude "*.min.js" --no-extensions
هذا الماسح يعمل دون اتصال بالإنترنت بشكل افتراضي. يقرأ الملفات المحلية فقط. لا يوجد قياس عن بعد، لا اتصال بالمنزل، لا فحص تلقائي للتحديثات. قواعد بيانات IoC مرفقة في الحزمة.
الأمر الوحيد الذي يقوم بطلب شبكة هو glassworm-hunter update، الذي يجلب أحدث قاعدة بيانات IoC من GitHub (أو عنوان URL مخصص --source). لا يتم استدعاؤه تلقائيًا أبدًا.
ضع ملف .glassworm.yml في جذر مشروعك لتعيين القيم الافتراضية:
exclude:
- "*.min.js"
- "vendor/**"
- "dist/**"
disable_rules:
- zero-width-chars
severity: medium
علامات CLI تتجاوز قيم ملف التكوين.
استخدم --ioc-file لتحميل مؤشرات إضافية من ملف JSON. هذا مفيد لمؤشرات خاصة بالفريق أو استخبارات تهديدات داخلية:
glassworm-hunter scan /path --ioc-file /path/to/team_ioc.json
يجب أن يتبع الملف نفس مخطط data/ioc.json:
{
"schema_version": "1.0",
"extensions": [{"id": "publisher.name"}],
"npm_packages": [{"name": "pkg", "malicious_versions": "1.0.0"}],
"c2_ips": [{"ip": "1.2.3.4"}],
"c2_wallets": [{"address": "..."}],
"attacker_artifacts": [{"type": "email", "value": "[email protected]"}]
}
يتم دمج الملف المخصص فوق جميع طبقات IoC الأخرى (مضمن → مرفق → مستخدم ~/.glassworm/ioc.json → --ioc-file).
يستخدم الماسح نظام IoC من 3+1 طبقة (كل طبقة تدمج فوق السابقة، لا تزيل أبدًا):
data/ioc.json مشحونة مع الحزمة~/.glassworm/ioc.json، محدثة عبر glassworm-hunter update--ioc-file، أعلى أولويةيعمل الماسح على Windows. تفشل 4 اختبارات ما لم تقم بتشغيل موجه أوامر بصلاحية مرتفعة (مسؤول).
MIT
| عالي | مطابقة مؤشر اختراق معروف (IP C2، محفظة، اعتماد إضافة على برمجية ضارة معروفة) |
| متوسط | نمط مشبوه يستحق المراجعة (eval + محتوى ديناميكي، الوصول إلى بيانات الاعتماد، Trojan Source) |
| منخفض | معلوماتي (كثافة غير عادية لأحرف العرض الصفري، نصوص تثبيت مشبوهة) |
| الخيار | الافتراضي | الوصف |
|---|
--extensions / --no-extensions | تشغيل | مسح إضافات VS Code/Cursor/Codium |
--npm-scan / --no-npm-scan | تشغيل | مسح node_modules |
--pip-scan / --no-pip-scan | إيقاف | مسح Python site-packages |
--git / --no-git | تشغيل | مسح مستودعات git |
--format [console|json|sarif] | console | تنسيق الإخراج |
--output FILE | stdout | كتابة التقرير إلى ملف |
--severity [critical|high|medium|low] | low | الحد الأدنى من الخطورة للإبلاغ |
--max-file-size SIZE | 10MB | تخطي الملفات الأكبر من ذلك |
--include-hidden | إيقاف | مسح الملفات/الدلائل المخفية |
--quiet | إيقاف | إخفاء إخراج التقدم |
--verbose | إيقاف | إظهار كل ملف يتم مسحه |
--exclude PATTERN | — | أنماط glob لاستبعادها (قابلة للتكرار) |
--disable-rule RULE_ID | — | إخفاء قواعد كشف معينة (قابلة للتكرار) |
--ioc-file FILE | — | تحميل مؤشرات IoC إضافية من ملف JSON |