
أداة شبه آلية تعتمد على التغذية الراجعة للبحث بسرعة عبر كميات هائلة من البيانات العامة على GitHub عن الأسرار الحساسة.
GitGot هي أداة شبه آلية تعتمد على التغذية الراجعة لتمكين المستخدمين من البحث السريع عبر كميات هائلة من البيانات العامة على GitHub عن الأسرار الحساسة.
خلال جلسات البحث، سيقدم المستخدمون ملاحظات إلى GitGot حول نتائج البحث لتجاهلها، ويقوم GitGot بتقليص مجموعة النتائج. يمكن للمستخدمين وضع قائمة سوداء للملفات حسب اسم الملف، اسم المستودع، اسم المستخدم، أو تطابق ضبابي لمحتويات الملف.
يمكن حفظ القوائم السوداء الناتجة عن الجلسات السابقة وإعادة استخدامها ضد استعلامات مماثلة (مثل example.com مقابل subdomain.example.com مقابل Example Org). يمكن أيضًا إيقاف الجلسات مؤقتًا واستئنافها في أي وقت.
اقرأ المزيد حول التصميم شبه الآلي مع التدخل البشري هنا: https://bishopfox.com/blog/semi-automated-vs-automated-security-tools.
[1] قم بتثبيت تبعية ssdeep للتجزئة الضبابية.
Ubuntu/Debian (أو ما يعادله لتوزيعتك):
apt-get install python3-dev libfuzzy-dev ssdeep
أو لنظام Mac OSX:
brew install ssdeep
بالنسبة لنظام Windows أو توزيعات *nix التي لا تحتوي على حزمة ssdeep، يرجى الاطلاع على تعليمات تثبيت ssdeep.
[2] بعد تثبيت ssdeep، قم بتثبيت تبعيات Python باستخدام pip:
pip3 install -r requirements.txt
قم بتشغيل gitgot-docker.sh لبناء صورة Docker لـ GitGot (إذا لم تكن موجودة بالفعل) وتنفيذ النسخة المعبأة في حاوية من أداة GitGot.
عند الاستدعاء، سيقوم gitgot-docker.sh بإنشاء وتوصيل دليلي logs و states من دليل العمل الحالي للمضيف. إذا تم تنفيذ gitgot-docker.sh هذا من دليل مشروع GitGot فسيقوم بتحديث حاوية Docker بالتغييرات على gitgot.py أو checks/:
./gitgot-docker.sh -q example.com
(انظر gitgot-docker.sh لأوامر docker المحددة)
يتطلب GitHub رمزًا مميزًا لأغراض تحديد المعدل. قم بإنشاء رمز API GitHub بدون صلاحيات/بدون نطاق. سيكون هذا مكافئًا للوصول العام إلى GitHub، ولكنه سيسمح بالوصول لاستخدام واجهة بحث GitHub. قم بتعيين هذا الرمز في أعلى gitgot.py كما هو موضح أدناه:
ACCESS_TOKEN = "<NO-PERMISSION-GITHUB-TOKEN-HERE>"
(بدلاً من ذلك، يمكن تعيين هذا الرمز كمتغير بيئة GITHUB_ACCESS_TOKEN)
بعد إضافة الرمز، أنت مستعد للانطلاق:
# Default RegEx list and logfile location (/logs/<query>.log) are used when no others are specified.
# Query for the string "example.com" using default GitHub search behavior (i.e., tokenization).
# This will find com.example (e.g., Java) or example.com (Website)
./gitgot.py -q example.com
# Query self-hosted GitHub instance
./gitgot.py -q example.com -u https://git.example.com
# Query for the exact string "example.com". See Query Syntax in the next section for more details.
./gitgot.py -q '"example.com"'
# Query through GitHub gists
./gitgot.py --gist -q CompanyName
# Using GitHub advanced search syntax
./gitgot.py -q "org:github cats"
# Custom RegEx List and custom log files location
./gitgot.py -q example.com -f checks/default.list -o example1.log
# Recovery from existing session
./gitgot.py -q example.com -r example.com.state
# Using an existing session (w/blacklists) for a new query
./gitgot.py -q "Example Org" -r example.com.state
يتم إرسال استعلامات GitGot مباشرة إلى واجهة برمجة تطبيقات بحث الكود في GitHub، لذا تحقق من وثائق GitHub للحصول على بناء جملة استعلام أكثر تقدمًا.
/(secretToken))