
أداة لالتقاط جميع أسرار git من خلال الاستفادة من أدوات بحث git مفتوحة المصدر المتعددة
git-all-secrets هي أداة يمكنها:
يتم المسح باستخدام أدوات مفتوحة المصدر متعددة مثل:
ملاحظة - يمكن إضافة المزيد من هذه الأدوات في المستقبل إذا رغب المستخدم!
ملاحظة - يمكن إجراء المسح باستخدام جميع الأدوات أو أي منها عن طريق تحديد العلامة toolName.
إذا تم استخدام جميع الأدوات للمسح، فإن المخرجات النهائية من الأداة تجمع مخرجات جميع الملفات من جميع الأدوات في ملف مخرجات واحد موحد.
أسهل طريقة لتشغيل git-all-secrets هي عبر Docker وأوصي بشدة بتثبيت Docker إذا لم يكن مثبتًا لديك بالفعل. بمجرد تثبيت Docker،
docker run --rm -it abhartiya/tools_gitallsecrets --help لفهم العلامات المختلفة التي يمكن أن يقبلها كمدخلات.docker run -it abhartiya/tools_gitallsecrets -token=<> -org=<>. يمكنك أيضًا تحديد أداة معينة لاستخدامها في المسح عن طريق كتابة شيء مثل docker run -it abhartiya/tools_gitallsecrets -token=<> -org=<> -toolName=<>. الخيارات هي thog و repo-supervisor.thogEntropy على النحو التالي - docker run -it abhartiya/tools_gitallsecrets -token=<> -org=<> -toolName=thog -thogEntropy.docker ps -a.docker cp <container-id>:/root/results.txt .-token = رمز الوصول الشخصي لـ GitHub. نحتاج إلى هذا لأن الطلبات غير الموثقة لواجهة برمجة تطبيقات GitHub يمكن أن تصل إلى حدود المعدل بسرعة!
-org = اسم المؤسسة المراد مسحها. سيؤدي هذا إلى مسح جميع المستودعات العامة في المؤسسة + جميع المستودعات وGists لجميع المستخدمين في المؤسسة. إذا كنت تستخدم رمز مستخدم هو جزء من هذه المؤسسة، فسيقوم أيضًا باستنساخ ومسح جميع الـ Gists السرية التي تخص هذا المستخدم بالإضافة إلى جميع المستودعات الخاصة في تلك المؤسسة التي يملك المستخدم صلاحية الوصول إليها. ومع ذلك، لن يقوم باستنساخ ومسح أي مستودعات خاصة لهذا المستخدم تنتمي إلى هذه المؤسسة. لمسح المستودعات الخاصة للمستخدمين، يرجى استخدام العلامة scanPrivateReposOnly مع العلامة user مع مفتاح SSH المثبت على وحدة تخزين.
-user = اسم المستخدم المراد مسحه. سيؤدي هذا إلى مسح جميع المستودعات وGists لهذا المستخدم. إذا كان الرمز المقدم هو رمز المستخدم، فسيتم أيضًا استنساخ ومسح الـ Gists السرية. ولكن، سيتم فقط استنساخ ومسح المستودعات العامة. لمسح المستودعات الخاصة لهذا المستخدم، يرجى استخدام العلامة scanPrivateReposOnly مع العلامة user مع مفتاح SSH المثبت على وحدة تخزين.
-repoURL = عنوان HTTPS URL للمستودع المراد مسحه. سيؤدي هذا إلى مسح هذا المستودع فقط. بالنسبة للمستودعات العامة، يكفي ذكر عنوان https للمستودع. ومع ذلك، إذا كنت ترغب في مسح مستودع خاص، فأنت بحاجة إلى توفير عنوان ssh مع مفتاح SSH المثبت على وحدة تخزين والعلامة scanPrivateReposOnly.
-gistURL = عنوان HTTPS URL لـ Gist المراد مسحه. سيؤدي هذا إلى مسح هذا الـ Gist فقط. لا يوجد مفهوم لـ Gist عام أو سري طالما أن لديك العنوان. حتى لو كان لديك Gist سري، إذا كان شخص ما يعرف عنوان HTTPS لـ Gist السري الخاص بك، فيمكنه الوصول إليه أيضًا.
-output = هذا هو اسم الملف الذي سيتم تخزين جميع النتائج فيه. افتراضيًا، هذا هو results.txt.
-cloneForks = هذه علامة اختيارية من نوع Boolean لاستنساخ forks لمستودعات المؤسسة والمستخدم. افتراضيًا، هذا مضبوط على 0 أي عدم استنساخ الـ forks. إذا كان يجب استنساخ الـ forks، يجب تعيين هذه القيمة إلى 1. أو، ببساطة اذكر -cloneForks مع العلامات الأخرى.
-orgOnly = هذه علامة اختيارية من نوع Boolean لتخطي استنساخ مستودعات المستخدم التي تنتمي إلى مؤسسة. افتراضيًا، هذا مضبوط على 0 أي السلوك العادي. إذا لم يتم مسح مستودعات المستخدم ويتم مسح مستودعات المؤسسة فقط، يجب تعيين هذه القيمة إلى 1. أو، ببساطة اذكر -orgOnly مع العلامات الأخرى.
-toolName = هذه علامة سلسلة نصية اختيارية لتحديد الأداة التي سيتم استخدامها للمسح. افتراضيًا، هذا مضبوط على all أي سيتم استخدام كل من thog و repo-supervisor للمسح. القيم هي إما thog أو repo-supervisor.
-teamName = اسم فريق المؤسسة الذي لديه صلاحية الوصول إلى المستودعات الخاصة للمسح. لم يتم اختبار هذه العلامة بالكامل لذلك لا يمكنني ضمان الوظيفة.
-scanPrivateReposOnly = هذه علامة اختيارية من نوع Boolean لتحديد ما إذا كنت تريد مسح المستودعات الخاصة للمستخدم أم لا. ذكر هذا لن يقوم بمسح المستودعات العامة للمستخدم. وتحتاج إلى توفير مفتاح SSH عن طريق تثبيت وحدة التخزين على الحاوية. أيضًا، هذا يعمل فقط مع العلامة user أو العلامة repoURL أو العلامة org.
عند ذكر العلامة org مع العلامة scanPrivateReposOnly وبدون العلامة orgOnly، فسيقوم بمسح المستودعات العامة والخاصة التي تنتمي إلى هذه المؤسسة والتي يملك المستخدم صلاحية الوصول إليها (الذي تم توفير رمزه). ثم سيستمر في مسح المستودعات الخاصة للمستخدم فقط (الذي تم توفير رمزه). وأخيرًا، سيستمر في مسح جميع Gists العامة والسرية لهذا المستخدم (الذي تم توفير رمزه). باختصار، العلامة scanPrivateReposOnly تؤثر فقط على العلامتين user و repoURL.
-enterpriseURL = علامة اختيارية لتوفير عنوان URL لمؤسسة Github Enterprise، إذا كنت ترغب في مسح مستودعات المؤسسة. يجب أن يكون شيئًا مثل https://github.org.com/api/v3 مع مفتاح SSH المثبت على الحاوية. راجع مسح Github Enterprise أدناه.
-threads = القيمة الافتراضية هي 10. هذا للحد من عدد الخيوط إذا كان نظامك غير قوي بما يكفي. في معظم الأحيان، ترك هذا على 10 يجب أن يكون جيدًا.
-thogEntropy = هذه علامة اختيارية تخبرك أساسًا ما إذا كنت تريد الحصول على أسرار عالية الإنتروبيا من truffleHog أم لا. تنتج الأسرار عالية الإنتروبيا من truffleHog الكثير من الضوضاء، لذا إذا كنت لا تريد كل هذه الضوضاء وإذا كنت تقوم بتشغيل git-all-secrets على مؤسسة كبيرة، فإنني أوصي بعدم ذكر هذه العلامة. افتراضيًا، هذا مضبوط على False مما يعني أن truffleHog سينتج نتائج فقط بناءً على التعبيرات المنتظمة في ملف rules.json. إذا كنت تقوم بمسح مؤسسة صغيرة نسبيًا مع مجموعة محدودة من المستودعات أو مستخدم مع عدد قليل من المستودعات، فإن ذكر هذه العلامة يكون أكثر معنى.
-mergeOutput = علامة اختيارية لدمج وإزالة التكرار من مخرجات الأدوات المستخدمة (حاليًا truffleHog و repo-supervisor). القيمة الافتراضية هي False.
-blacklist = أسماء المستودعات المقدمة كقيم مفصولة بفواصل والتي لا يجب مسحها.
العلامة token إلزامية. لا يمكن أن تكون فارغة.
لا يمكن أن تكون العلامات org و user و repoURL و gistURL فارغة جميعها في نفس الوقت. تحتاج إلى تقديم قيمة واحدة فقط من هذه القيم. إذا قدمت جميعها أو قيمًا متعددة معًا، فسيكون ترتيب الأولوية هو org > user > repoURL > gistURL. على سبيل المثال، إذا قدمت كلتا العلامتين -org=secretorg123 و -user=secretuser1 معًا، فستشتكي الأداة من أنها لا تحتاج إلى أي شيء مع قيمة org. لتشغيلها ضد مستخدم معين فقط، تحتاج فقط إلى توفير العلامة user وليس العلامة org.
عند تحديد العلامة scanPrivateReposOnly:
-v.ssh عند استخدام العلامة وليس عنوان https.