مطور بلغة Go • صفر اعتماديات خارجية • أقل من 20 مللي ثانية
منع تسريب البيانات الحساسة قبل مغادرتها الجهاز.
أداة مجمعة ثنائياً بلغة Go وبدون أي اعتماديات تشغيل خارجية، تفحص التعديلات المرحلية محلياً في ذاكرة محطة العمل لاعتراض تسريب المفاتيح وبيانات الاعتماد قبل إتمام الالتزام.
في بيئات التطوير الحديثة (DevSecOps)، يتم تأجيل فحص البيانات الحساسة غالباً إلى منصات البناء المستمر (CI) أو خطافات الرفع (Post-Push Webhooks). وعلى الرغم من أهمية هذه الفحوصات، إلا أنها تعمل بعد فوات الأوان. بمجرد وصول المفتاح السري إلى قاعدة بيانات git البعيدة، يجب اعتباره مكشوفاً، مما يستدعي إجراءات مكلفة لتدوير المفاتيح، ومراجعة سجلات الوصول، وتنسيق استجابة الطوارئ بين فرق العمل.
"بمجرد خروج المفتاح السري من محطة عمل المطور، تتحول المهمة الأمنية من الوقاية إلى معالجة الكارثة."
يعمل كرينوكس على سد هذه الثغرة عند الحافة (Edge). من خلال تثبيته كخطاف pre-commit أصلي لـ Git مباشرة في بيئتك المحلية، يقوم بفحص التعديلات المرحلية وإلغاء الالتزام فوراً إذا تم الكشف عن مفاتيح سحابية نشطة أو كلمات مرور أو إعدادات حساسة. ولأنه يعمل بالكامل محلياً، فهو لا يتطلب أي اتصال بشبكة الإنترنت ولا يشارك أي بيانات مع خوادم خارجية.
02 / البنية الهندسية للأداة
التحقق من البيانات الحساسة في أقل من 20 جزءاً من الثانية
تعتبر سرعة التطوير قيداً أساسياً عند تفعيل خطافات pre-commit؛ إذ أن الخطافات التي تتسبب في بطء الالتزام تدفع المطورين لتجاهلها. لحل هذا القيد، يعتمد كرينوكس على خط فحص ثلاثي المستويات يقوم بتحليل التعديلات في أجزاء من الثانية مع الحفاظ على دقة كشف استثنائية.
المستوى الأول: خوارزمية Aho-Corasick الأوتوماتيكية
يمر كل ملف عبر فحص خطي ذو تعقيد O(N) باستخدام شجرة البحث المجمعة Aho-Corasick. يتم تضمين القواعد الافتراضية والمخصصة للمستخدم مباشرة داخل جدول الحالات البرمجية للأداة، مما يسمح باكتشاف الأنماط والرموز في ممر واحد دون إثقال المعالج.
المستوى الثاني: قياس شانون لعشوائية النصوص (Entropy)
تخضع الرموز المرشحة المكتشفة في الممر الأول لحساب مدى العشوائية وتوزيع الأحرف فيها (Shannon Entropy). يساعد هذا المقياس في التمييز بين المفاتيح العشوائية الحقيقية والمتغيرات أو القوالب النصية الافتراضية.
المستوى الثالث: محلل سياق الاستثناءات
أخيراً، يقوم المحلل بقراءة أسطر الكود المحيطة بالمتغيرات والتعليقات المجاورة. يتيح هذا المستوى استبعاد المفاتيح الموجودة في ملفات الاختبار أو بيئات التطوير الافتراضية، أو الأسطر الملحقة بتتعليق التجاوز // crenox:ignore.
معاينة مخرجات الفحص الفعلية
عندما يكتشف كرينوكس تسريباً للبيانات، يقوم بإلغاء عملية الالتزام وعرض تفاصيل الفحص الدقيقة في واجهة سطر الأوامر بالشكل التالي:
03 / إحصائيات الأداء
مقارنة الأداء: كرينوكس ضد جيتليكس وبيترليكس (Crenox vs Gitleaks vs Betterleaks)
تم قياس الأداء على مستودعات حقيقية ومفتوحة المصدر، باستخدام بيئة GitHub Actions Ubuntu cloud runner — البنية التحتية ذاتها المستخدمة في خطوط CI/CD الفعلية.
يتم تجميع كرينوكس كملف ثنائي مستقل للعمل مباشرة على أنظمة Linux و macOS وأجهزة Android عبر بيئة Termux دون الحاجة لتثبيت لغة Go أو أي اعتماديات برمجية أخرى.
الخيار أ: التثبيت التفاعلي بسطر واحد (الموصى به)
الطريقة الأسرع والأسهل لتثبيت كرينوكس محلياً مع اكتشاف نظام التشغيل ومعمارية المعالج وتجهيز خطاف Git تلقائياً:
تنزيل البرنامج الجاهز مباشرة بدون أي متطلبات سابقة. مثال لنظام Linux AMD64:
# 1. تنزيل الملف الثنائي المناسب لمعمارية جهازك (مثال لـ Linux AMD64)
wget https://github.com/crenoxhq/crenox/releases/download/v2.1.5/crenox-v2.1.5-linux-amd64 -O crenox
# 2. منح صلاحيات التشغيل للملف
chmod +x crenox
# 3. نقل الملف لمسار البرامج المعتمد في جهازك (/usr/local/bin)
sudo mv crenox /usr/local/bin/
# 4. التحقق من نجاح التثبيت
crenox version
الخيار ج: مدير حزم أندرويد (Termux)
إذا كنت تستخدم أندرويد عبر بيئة Termux، يمكنك تثبيت الأداة مباشرة وبسهولة فائقة بسطرين من الأوامر عبر مستودع مستخدمي Termux (TUR):
pkg install tur-repo
pkg install crenox
الخيار د: مثبت حزم لغة Go
إذا كان لديك بيئة Go مهيأة في مسار نظامك، يمكنك تنزيل وبناء الأداة مباشرة بالأمر التالي:
go install github.com/crenoxhq/crenox/v2/cmd/crenox@latest
الخيار هـ: التجميع والبناء من المصدر
استنساخ المستودع وبناء الملف الثنائي يدوياً باستخدام أوامر Makefile المرفقة:
git clone https://github.com/crenoxhq/crenox.git
cd crenox
make build
./dist/crenox version
تفعيل خطاف Git في المستودعات
بعد وضع البرنامج في مسار نظامك، يمكنك تفعيل فحص الالتزام التلقائي للمستودعات محلياً:
# تفعيل الفحص للمستودع الحالي فقط
crenox install
# تفعيل الفحص عالمياً لكافة المستودعات المستقبلية
crenox install --global
05 / تفاصيل التشغيل والأوامر
أوائل أوامر التشغيل وسير العمل
يدعم كرينوكس عدة طرق تشغيل مختلفة لتناسب احتياجات المطورين وسير العمل محلياً أو في الخوادم البعيدة:
1. فاحص الالتزام التلقائي (Pre-Commit)
يتم تشغيله تلقائياً بواسطة git عند كتابة أمر الالتزام. يقوم بقراءة الملفات المجهزة وفحصها في الذاكرة وفق سياسة عدم التسامح المطلق والإغلاق عند الفشل (Zero-Tolerance & Fail-Closed): أي اكتشاف أمني مهما كانت درجته أو أي ملف يتعذر قراءته يمنع الالتزام فوراً (كود الخروج 1).
crenox run
2. الفحص اليدوي للمجلدات
لفحص مجلد أو ملف محدد يدوياً وبشكل تكراري قبل البدء في تجهيز الملفات للالتزام:
crenox scan -r ./path/to/project
3. التصدير لمنصات البناء المستمر
تصدير تقرير أمني مهيكل بصيغة JSON أو SARIF لدمجه مع أدوات التحليل الأخرى في خوادم CI/CD:
crenox scan -r -f sarif . > report.sarif
06 / التخصيص والضبط
تخصيص كرينوكس ليتوافق مع مستودعك البرمجي
يعمل كرينوكس بالإعدادات الافتراضية بشكل تلقائي، كما يدعم التخصيص لبيئات العمل المختلفة عبر إضافة ملف .crenox.yaml في الجذر الرئيسي للمستودع.
قواعد الكشف المخصصة (Custom Signatures)
يمكنك كتابة وتحديد بادئات المفاتيح الخاصة بمؤسستك وتجميعها مباشرة ضمن شجرة حالات البحث (Aho-Corasick Automaton) دون التسبب بأي بطء تشغيلي:
يعالج الإصدار 2.1.9 حالات حافة دقيقة في نواة المحرك ويحسن زمن الاستجابة: يصحح مشكلة استبدال النتائج عند تواجد أكثر من سر مختلف في نفس السطر، ويضمن إبلاغ الفحص عن الأسرار المكررة عبر الملفات المنفصلة بدلاً من إخفائها كلياً، ويختزل عمليات استدعاء subprocess لـ Git عند تشغيل pre-commit hook، ويمنع الانهيار (Panic) عند إدخال قواعد Regex مخصصة غير صالحة، ويضيف آلية DNS مزدوجة احتياطية للبيئات المقيدة شبكياً، مع كتم تنبيهات الإنتروبيا المكررة عند تطابق قواعد الأنماط الصريحة، وتوسيع تصنيف مسارات الاختبارات لتشمل بيئات Pytest وBun.
يقدم الإصدار 2.1.8 حجب الأسرار التلقائي بالنجوم (****) في كافة التقارير (Zero-Plaintext Masking)، وترقية سكربت التثبيت السريع بأعلى معايير الأمان والتحقق التشفيري بـ SHA-256 والسقوط الآمن بدون صلاحيات جذر، وفحص تاريخ Git المتوازي بعدد أنوية المعالج مع شمول دمج الفروع (Merge Commits) ورسائل الـ Commits، والتحقق المبكر من المسارات وصيغ الإخراج، مع إضافة 6 تواقيع جديدة تشمل DeepSeek وAlibaba AccessKey وAzure Storage وGrafana Cloud وTerraform Cloud وInfracost.
يقدم الإصدار 2.1.7 بناءً مخصصاً لبيئة Android/Termux لمعالجة قيود أمان Seccomp التي كانت تسبب انهيار (SIGSYS) بسبب faccessat2 على مختلف أنوية أندرويد، ويلغي تخصيص الذاكرة نهائياً في مصفوفات السياق الأمني للوصول إلى انعدام تام لحجز الذاكرة (Zero-Allocations) في المسار الساخن، إلى جانب تنقية نصوص ومخرجات Git diff تلقائياً من رموز ألوان ANSI لمنع تفويت أي تسريبات في الفحص التاريخي.
يقدم الإصدار 2.1.5 مرشح التنوع الرياضي hasDiversity لتسريع فحص Shannon Entropy بنسبة 39% على المستودعات الضخمة، ودعم تعليقات التجاهل المباشرة #nosec و nolint، وتصفية صيغ fmt.Sprintf، وإلغاء التكرار الخطي بـ O(1)، وتفوق السرعة بمقدار 9.8 ضعف مقارنة بأداة Gitleaks عبر المستودعات الشهيرة.
يقدم الإصدار 2.1.4 حماية التقطع عند 8KB للملفات المضغوطة الكبيرة (+15MB) مع تسريع 53x في الفحص، وتخفيض استهلاك الذاكرة للملفات النظيفة بنسبة 480 ضعفاً عبر التخصيص الكسول، إلى جانب حزمة اختبارات شاملة تغطي كل الحزم بنسبة 100%.
يضيف الإصدار 2.1.2 أكثر من 8 توقيعات كشف مدمجة جديدة (روابط Slack وDiscord، معرّفات GitHub Client، MongoDB وPostgres DSNs، متغيرات مفتاح AWS)، ويُحكم سلسلة أولويات إزالة التكرار الرباعية، ويتحقق من وجود تذييل END لمفاتيح PEM قبل الإبلاغ عنها، ويُطلق نظام بينشمارك آلي قابل للتدقيق على GitHub Actions.
كيف يقدم الإصدار 2.0.7 محرك فحص متدفق عبر قنوات 8 ميجابايت مع تخزين مؤقت عام للذاكرة المستعملة. أدى ذلك إلى تقييد حجم الذاكرة المستهلكة RSS بحدود عدد خيوط المعالجة المتزامنة فقط، متفادياً تراكم حجز الذاكرة ومقلصاً ذروة RAM بمقدار 13 ضعفاً.
كيف نجح الإصدار 2.0.5 في تمثيل خوارزمية Aho-Corasick عبر جدول DFA مسطح ومتصل ومفهرس بالأعداد الصحيحة. أدى ذلك لتقليص ذاكرة Trie النشطة إلى 500 كيلوبايت، وتخفيض ذروة استهلاك ذاكرة النظام RSS إلى الحدود الدنيا لبيئة عمل Go (~11 ميجابايت) مع انعدام تام لحجز الذاكرة المؤقتة (Heap Allocations) أثناء الفحص.
كيف نجح الإصدار 2.0.4 في تقليص حجم استهلاك الذاكرة RSS بنسبة 27% من خلال بناء القواعد المخصصة وتجميعها مباشرة ضمن مصفوفة الحالات البرمجية لشجرة Trie، متفادياً معالجة الرموز أثناء التشغيل.
دراسة حول النافذة الزمنية لاختراق المفاتيح السحابية بعد رفعها للإنترنت ولماذا يعتبر تدارك التسريب في خوادم الـ CI فواتاً للأوان وضرورة تصفية الأخطاء عند جهاز المطور محلياً.
08 / مجتمع المطورين والدعم
مجتمع الأداة والدعم الفني
كرينوكس هو مشروع أمني مفتوح المصدر يُدار ويُطور بواسطة CrenoxHQ. نرحب باقتراحات القواعد والمساهمات البرمجية من مجتمع المطورين.
إذا كنت ترغب في الإبلاغ عن مشكلة أمنية، أو اقتراح قاعدة كشف جديدة، أو المساهمة في المشروع، يرجى استخدام قنوات التواصل التالية:
نقاشات وقضايا GitHub: لمناقشة الميزات المطلوبة واقتراح قواعد الفحص في صفحة المشروع على مستودع GitHub.
مجتمع ودعم Crenox: يمكنك الانضمام إلى منتدى نقاشات Crenox للتفاعل مع المطورين والمستخدمين.