
نصوص برمجية Shell لاستنساخ ومرآة مستودعات Git، وحساب الفروقات، وتشغيل gitleaks لكشف الأسرار المخفية في الالتزامات المحذوفة أو المعاد تعيينها.
يحتوي هذا المستودع على نصوص شل يمكن استخدامها لتنزيل وتحليل الفروق بين مستودعات Git المستنسخة والمنعكسة. لمزيد من المعلومات حول الخلل الأساسي في سلوك Git، يُرجى زيارة قراءة مقالنا.
تقوم هذه النصوص باستنساخ نسخة من مستودع Git المحدد، سواءً كاستنساخ عادي أو مع خيار المرآة ("--mirror"). ثم تُنشئ دلتا بين الاثنين، سعيًا للعثور على أجزاء المستودع المتاحة فقط في وضع المرآة. أخيرًا، يتم تشغيل gitleaks للتحقق من وجود أي أسرار في جزء الدلتا، ويتم استخدام "git log" لإنشاء ملف واحد يحتوي على نصوص الالتزامات (commits) لتسهيل تحليلها.
يُرجى ملاحظة أنه نظرًا لأن هذا النص يُنشئ ثلاث نسخ من المستودع، فقد يستهلك مساحة كبيرة على القرص.
يمكنك اختبار هذه الأدوات على المستودعين المثالين التاليين:
ستحتاج إلى تثبيت Git وPython 3 وGitLeaks وgit-filter-repo. فيما يلي مثال على تثبيتها على MacOS:
brew install git python3 gitleaks git-filter-repo
يمكنك تشغيل هذا ضد مستودع كالتالي:
git clone https://github.com/nightwatchcybersecurity/gitbleed_tools.git
cd gitbleed_tools
./gitbleed.sh https://github.com/nightwatchcybersecurity/gitbleed_tools.git example
هناك أيضًا بعض النصوص المساعدة التي يمكن استخدامها لمسح مستودعات GitHub وGitLab كالتالي:
./gitbleed_gh.sh nightwatchcybersecurity/gitbleed_tools
./gitbleed_gl.sh nwcs/junit_ui_bug
سيؤدي هذا إلى إنشاء مجلد example يحتوي على ثلاثة مجلدات فرعية:
هناك أيضًا ثلاثة ملفات يتم إنشاؤها:
يُرجى استخدام متتبع المشكلات في GitHub للإبلاغ عن المشكلات أو اقتراح الميزات: https://github.com/nightwatchcybersecurity/gitbleed_tools
يمكنك أيضًا إرسال بريد إلكتروني إلى research /at/ nightwatchcybersecurity [dot] com