فاحص أسرار Git وكشف تسريب المفاتيح

كرينوكس: أفضل فاحص أسرار وكشف تسريب المفاتيح وكلمات المرور في Git

كرينوكس (Crenox) هو أقوى وأسرع فاحص أسرار (Secret Scanner) مكتوب بلغة Go وبدون أي اعتماديات خارجية. يفحص التعديلات المرحلية ويكتشف مفاتيح API المسربة وكلمات المرور والأسرار البرمجية في أقل من 20 مللي ثانية قبل رفعها إلى GitHub أو GitLab.

نُشر بواسطة خالد هاني في 3 يوليو 2026

Crenox Secret Scanner - Context-aware Git secret scanner in Go | Product Hunt
01 / الفلسفة الأمنية

لماذا يعد الفحص المحلي خط الدفاع الأخير الحقيقي

في بيئات التطوير الحديثة (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 الفعلية.

المقياس المرصود كرينوكس (v2.1.7) جيتليكس (v8.18.2) بيترليكس (v1.6.1)
ذاكرة الوصول العشوائي — فحص الملفات 13.5 – 17.3 MB 21.6 – 23.9 MB 40.0 – 67.2 MB
وقت فحص الملفات (متوسط) 7.0 – 11.8 ms 26.7 – 1822.3 ms 58.2 – 761.0 ms
وقت الفحص التاريخي (متوسط) 5.4 – 11.9 ms 23.6 – 42.6 ms 30.9 – 202.6 ms
دقة الاستدعاء التاريخي (sample_secrets) 9 / 9 (100%) 5 / 9 (56%) 5 / 9 (56%)
الاعتمادية الخارجية للملف صفر (مستقل) صفر صفر

شفاف وقابل للتدقيق — النتائج مُولَّدة بواسطة سكربت مقارنة مفتوح المصدر. المنهجية والأكشن متاحان للعموم. عرض أحدث تشغيل ←

04 / تثبيت الأداة

التثبيت والدمج المحلي

يتم تجميع كرينوكس كملف ثنائي مستقل للعمل مباشرة على أنظمة Linux و macOS وأجهزة Android عبر بيئة Termux دون الحاجة لتثبيت لغة Go أو أي اعتماديات برمجية أخرى.

الخيار أ: التثبيت التفاعلي بسطر واحد (الموصى به)

الطريقة الأسرع والأسهل لتثبيت كرينوكس محلياً مع اكتشاف نظام التشغيل ومعمارية المعالج وتجهيز خطاف Git تلقائياً:

curl -fsSL https://crenoxhq.github.io/crenox/install.sh | bash

الخيار ب: الملفات الثنائية الجاهزة (Pre-compiled)

تنزيل البرنامج الجاهز مباشرة بدون أي متطلبات سابقة. مثال لنظام 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 عند كتابة أمر الالتزام. يقوم بقراءة الملفات المجهزة جزئياً فقط وفحصها في الذاكرة لمنع الالتزام إذا كانت تحتوي على أسرار.

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) دون التسبب بأي بطء تشغيلي:

# .crenox.yaml
custom_signatures:
  - id: "internal-api-key"
    description: "Proprietary internal service credential"
    prefix: "mycompany_key_"
    severity: "CRITICAL"
    regex: "^mycompany_key_[a-zA-Z0-9]{32}$"

استبعاد المسارات والامتدادات (Exclusions)

لتسريع عمليات الفحص والابتعاد عن فحص المجلدات الخارجية أو ملفات الوسائط الثقيلة:

exclude_paths:
  - "vendor/**"
  - "node_modules/**"
exclude_extensions:
  - ".png"
  - ".zip"

أنماط القائمة البيضاء العالمية (Allowlist)

لمنع إطلاق تنبيهات كاذبة حول مفاتيح عامة أو تجريبية معروفة مسبقاً وتستخدم بكثرة في الاختبارات:

allowlist_patterns:
  - "AKIAIOSFODNN7EXAMPLE"   # مطابقة تامة
  - "sk_test_*"              # كافة مفاتيح اختبار Stripe
07 / المدونة الهندسية

كواليس التطوير الهندسية وملفات النظام

مقالات يشاركها المطورون لشرح آليات تحسين وسرعة الكشف والفلسفة الأمنية خلف بناء الأداة.

3 سبتمبر 2026

الإصدار 2.1.7: إصلاح توافقية أندرويد وTermux Seccomp، تسريع المسار الساخن بانعدام حجز الذاكرة، وتنقية ألوان Git ANSI

يقدم الإصدار 2.1.7 بناءً مخصصاً لبيئة Android/Termux لمعالجة قيود أمان Seccomp التي كانت تسبب انهيار (SIGSYS) بسبب faccessat2 على مختلف أنوية أندرويد، ويلغي تخصيص الذاكرة نهائياً في مصفوفات السياق الأمني للوصول إلى انعدام تام لحجز الذاكرة (Zero-Allocations) في المسار الساخن، إلى جانب تنقية نصوص ومخرجات Git diff تلقائياً من رموز ألوان ANSI لمنع تفويت أي تسريبات في الفحص التاريخي.

15 أغسطس 2026

الإصدار 2.1.6: توسيع التواقيع إلى 125+، تسريع الإنتروبيا بجدول Log2 LUT، وتصفية الإنذارات الكاذبة للتجزئات

يقدم الإصدار 2.1.6 توسيعاً شاملاً لقاعدة التواقيع المدمجة لتتجاوز 125 توقيعاً أمنياً (بإضافة Cohere وTogether AI وMistral AI وDatadog وAWS AppSync)، وتسريع محرك الإنتروبيا بنسبة 41.4% عبر جدول بحث مسبق Log2 LUT، وتوليد تقارير GitLab Secret Detection SAST الرسمية (-f gitlab-sast)، مع تصفية ذكية لكافة تجزئات الحزم ووحدات Go (مثل h1: وMD5sum و.ziphash) لمنع التنبيهات الكاذبة.

8 أغسطس 2026

الإصدار 2.1.5: تفوق السرعة بـ 9.8 أضعاف على Gitleaks، مرشح التنوع الرياضي hasDiversity واستبعاد التنبيهات الكاذبة

يقدم الإصدار 2.1.5 مرشح التنوع الرياضي hasDiversity لتسريع فحص Shannon Entropy بنسبة 39% على المستودعات الضخمة، ودعم تعليقات التجاهل المباشرة #nosec و nolint، وتصفية صيغ fmt.Sprintf، وإلغاء التكرار الخطي بـ O(1)، وتفوق السرعة بمقدار 9.8 ضعف مقارنة بأداة Gitleaks عبر المستودعات الشهيرة.

20 يوليو 2026

الإصدار 2.1.4: حماية ملفات JS الكبيرة، تخصيص الذاكرة الكسول، وتغطية اختباريّة 100%

يقدم الإصدار 2.1.4 حماية التقطع عند 8KB للملفات المضغوطة الكبيرة (+15MB) مع تسريع 53x في الفحص، وتخفيض استهلاك الذاكرة للملفات النظيفة بنسبة 480 ضعفاً عبر التخصيص الكسول، إلى جانب حزمة اختبارات شاملة تغطي كل الحزم بنسبة 100%.

18 يوليو 2026

الإصدار 2.1.3: بث تدفقي ديناميكي، استبعاد المجلدات، وتحليل عشوائي بلا حجز ذاكرة

يقدم الإصدار 2.1.3 آلية فحص عبر قنوات محدودة لحجم الذاكرة (مقللاً ذروة الرام بنسبة 22.6% لفحوصات المجلدات الضخمة)، واستبعاد المجلدات المستثناة مبكراً أثناء التجول بالملفات لتفادي استدعاءات النظام المكررة، ودمج حلقات استخراج الرموز العشوائية لمنع حجز الذاكرة للـ closures تماماً.

17 يوليو 2026

الإصدار 2.1.2: توقيعات جديدة، تحسين إزالة التكرار، وبينشمارك سحابي

يضيف الإصدار 2.1.2 أكثر من 8 توقيعات كشف مدمجة جديدة (روابط Slack وDiscord، معرّفات GitHub Client، MongoDB وPostgres DSNs، متغيرات مفتاح AWS)، ويُحكم سلسلة أولويات إزالة التكرار الرباعية، ويتحقق من وجود تذييل END لمفاتيح PEM قبل الإبلاغ عنها، ويُطلق نظام بينشمارك آلي قابل للتدقيق على GitHub Actions.

13 يوليو 2026

إعادة تدوير الذاكرة: تقييد استهلاك الذاكرة المؤقتة عبر sync.Pool

كيف يقدم الإصدار 2.0.7 محرك فحص متدفق عبر قنوات 8 ميجابايت مع تخزين مؤقت عام للذاكرة المستعملة. أدى ذلك إلى تقييد حجم الذاكرة المستهلكة RSS بحدود عدد خيوط المعالجة المتزامنة فقط، متفادياً تراكم حجز الذاكرة ومقلصاً ذروة RAM بمقدار 13 ضعفاً.

7 يوليو 2026

محرك الـ DFA المسطح: القضاء على حجز الذاكرة في المسار الساخن

كيف نجح الإصدار 2.0.5 في تمثيل خوارزمية Aho-Corasick عبر جدول DFA مسطح ومتصل ومفهرس بالأعداد الصحيحة. أدى ذلك لتقليص ذاكرة Trie النشطة إلى 500 كيلوبايت، وتخفيض ذروة استهلاك ذاكرة النظام RSS إلى الحدود الدنيا لبيئة عمل Go (~11 ميجابايت) مع انعدام تام لحجز الذاكرة المؤقتة (Heap Allocations) أثناء الفحص.

3 يوليو 2026

تحسين استهلاك الذاكرة: تجميع القواعد مباشرة في الأوتوماتون

كيف نجح الإصدار 2.0.4 في تقليص حجم استهلاك الذاكرة RSS بنسبة 27% من خلال بناء القواعد المخصصة وتجميعها مباشرة ضمن مصفوفة الحالات البرمجية لشجرة Trie، متفادياً معالجة الرموز أثناء التشغيل.

28 يونيو 2026

وهم الفحص الأمني بعد الرفع (Post-Push)

دراسة حول النافذة الزمنية لاختراق المفاتيح السحابية بعد رفعها للإنترنت ولماذا يعتبر تدارك التسريب في خوادم الـ CI فواتاً للأوان وضرورة تصفية الأخطاء عند جهاز المطور محلياً.

08 / المشاريع الأخرى

مشاريع برمجية أخرى

قائمة ببعض المشاريع والبرمجيات الأخرى المتاحة في نفس البيئة التقنية.

NexusFi

بيئة سحابية وشبكية متكاملة ومستقلة ثلاثية الطبقات مصممة للعمل بشكل أصلي على أجهزة أندرويد المعززة بصلاحيات الروت. تربط محركات قطع اتصال L2، استكشاف الـ OTG التلقائي، وتجزئة سرعة النطاق الترددي.

NetAnatomy

أداة متقدمة لتصور الشبكات والتخطيط التشريحي للطبولوجيا المعقدة للبنية التحتية. متوفرة عبر لوحة تحكم ويب تشخيصية.

Decisify

محرك اتخاذ قرارات متطور وإطار لتحديد الأولويات مصمم للتحليل السريع للخيارات والنمذجة المنطقية.

09 / مجتمع المطورين والدعم

تواصل معنا وناقش تفاصيل الحماية البرمجية

كرينوكس هو مشروع مفتوح المصدر تم تطويره بالكامل بمجهود فردي. نهتم جداً بمراجعاتكم واقتراحاتكم لتحديث القواعد وزيادة فاعلية الكشف.

إذا كنت ترغب في الإبلاغ عن مشكلة أمنية، أو اقتراح قاعدة مطابقة جديدة، أو الاستفسار عن التثبيت في بيئات عمل مختلفة، يرجى استخدام قنوات التواصل التالية: