
أداة أمنية لاكتشاف حزم Go الخبيثة عن طريق التحقق من المجاميع الاختبارية في go.sum مقابل الكود المصدري الأصلي.
أداة أمنية لكشف حزم Go الخبيثة من خلال التحقق من المجاميع الاختبارية في ملف go.sum مقارنةً بكود المصدر الأصلي، مع تجاوز ذاكرة التخزين المؤقت لخادم وكيل وحدات Go (Go Module Proxy).
تساعد هذه الأداة في الحماية من هجمات سلسلة التوريد التي تستغل ذاكرة التخزين المؤقت لخادم وكيل وحدات Go، كما أُثبت ذلك مؤخراً من خلال الحزمة الخبيثة github.com/boltdb-go/bolt.
تستغل هذه الهجمات آلية التخزين المؤقت غير المحدودة في خادم وكيل وحدات Go لتقديم كود خبيث حتى بعد تنظيف مستودع المصدر.
لمزيد من التفاصيل حول هذا النوع من الهجمات، انظر:
تعمل الأداة من خلال:
go install github.com/knqyf263/go-mal-pkgs@latest
الاستخدام الأساسي:
go-mal-pkgs /path/to/your/go/project
ستقوم الأداة بتحليل ملف go.sum الخاص بمشروعك والتحقق من سلامة كل وحدة (module).
التحقق الناجح:
$ go-mal-pkgs /path/to/project
Checking golang.org/x/[email protected]...
✅ Verified golang.org/x/[email protected]
Checking github.com/stretchr/[email protected]...
✅ Verified github.com/stretchr/[email protected]
كشف حزمة خبيثة محتملة:
$ go-mal-pkgs /path/to/compromised-project
Checking github.com/boltdb-go/[email protected]...
⚠️ WARNING: checksum mismatch for github.com/boltdb-go/[email protected]:
expected: h1:abc123def456...
actual: h1:xyz789uvw012...
تنفّذ الأداة خوارزمية التحقق من المجاميع الاختبارية الخاصة بـ Go باستخدام حزمة golang.org/x/mod/sumdb/dirhash. وعند اكتشاف تباين بين المجموع الاختباري في ملف go.sum الخاص بك والمجموع المحسوب من مستودع المصدر، فقد يشير ذلك إلى:
هذه أداة تجريبية أُنشئت كإثبات للمفهوم (proof of concept) استجابةً للاستغلال الأخير لذاكرة التخزين المؤقت لخادم وكيل وحدات Go. تم توليد قاعدة الكود بأكملها باستخدام مساعد الذكاء الاصطناعي Claude 3.5 Sonnet.