حماية تسريبات خطافات Git

اقضِ على تسريبات البيانات الحساسة.
قبل وصولها إلى المستودع.

كرينوكس (Crenox) هو ملف برمجي ثنائي مستقل ومجمع بلغة Go، يقوم بفحص التحقق من المرفقات محلياً في أقل من 20 جزءاً من الثانية لحماية مفاتيحك السرية وبياناتك الحساسة قبل مغادرتها جهاز المطور.

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

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 TruffleHog)

لضمان تحليل أداء شفاف، قمنا بمقارنة كرينوكس بأبرز أدوات الكشف (Gitleaks و TruffleHog). تم جمع هذه المقاييس على محطة عمل محلية بمعالج ثماني النواة (ARM64)، مع قياس زمن الاستجابة والحد الأقصى لاستهلاك الذاكرة العشوائية (Peak RSS).

المقياس المرصود كرينوكس (v2.0.7) جيتليكس (v8.30.1) ترافلهوغ (v3.95.7)
حجم الملف الثنائي (المجمّع) 11.6 MB 42.5 MB 185.0 MB
ذاكرة محطة العمل (Peak RSS) 11.3 - 11.9 MB 60.8 - 63.3 MB 204.7 - 207.3 MB
فحص ملفات النظام المرحلية 31 - 40 ms 1.13 - 1.22 s 6.69 - 7.39 s
الفحص التاريخي (سجل Git) 52 - 58 ms 1.26 - 1.27 s 6.79 - 7.26 s
الاعتمادية الخارجية للملف صفر (مستقل) صفر صفر
04 / تثبيت الأداة

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

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

الخيار أ: الملفات الثنائية الجاهزة (موصى به)

أسرع طريقة لتثبيت الأداة مباشرة على نظامك دون الحاجة لبناء الملف من المصدر. مثال للتثبيت على أنظمة Linux أو macOS:

# 1. تنزيل الملف الثنائي المناسب لمعمارية جهازك (مثال لـ Linux AMD64)
wget https://github.com/crenoxhq/crenox/releases/download/v2.0.7/crenox-v2.0.7-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 / المدونة الهندسية

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

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

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 / مجتمع المطورين والدعم

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

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

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