
GitHub Actions पाइपलाइन गणना एवं हमला उपकरण
[!WARNING]
यह रिपॉजिटरी अप्रचलित और संग्रहीत है
Gato को अब Trajan द्वारा प्रतिस्थापित कर दिया गया है, जो Praetorian का मल्टी-प्लेटफ़ॉर्म CI/CD भेद्यता पहचान और आक्रमण स्वचालन उपकरण है। Trajan GitHub Actions (Gato) और GitLab (Glato) CI/CD आक्रमण क्षमताओं को एक एकल, सक्रिय रूप से रखरखाव किए गए प्रोजेक्ट में समेकित करता है।
कृपया Trajan पर माइग्रेट करें: https://github.com/praetorian-inc/trajan
इस रिपॉजिटरी में कोई और अपडेट, बग फिक्स, या सुरक्षा पैच नहीं किए जाएंगे।
Gato, या GitHub Attack Toolkit, एक मूल्यांकन और आक्रमण उपकरण है जो नीली टीमों और आक्रामक सुरक्षा चिकित्सकों दोनों को GitHub संगठन के सार्वजनिक और निजी रिपॉजिटरीज़ में पाइपलाइन कमजोरियों की पहचान और शोषण करने की अनुमति देता है।
इस उपकरण में एक समझौता किए गए व्यक्तिगत एक्सेस टोकन का लाभ उठाने के लिए पोस्ट-एक्सप्लॉइटेशन सुविधाएँ हैं, इसके अलावा सार्वजनिक रिपॉजिटरीज़ के विरुद्ध जहरीली पाइपलाइन निष्पादन कमजोरियों और क्रियाओं के आर्टिफैक्ट्स रहस्यों की पहचान करने के लिए मूल्यांकन सुविधाएँ भी हैं।
GitHub अनुशंसा करता है कि स्व-होस्टेड रनर का उपयोग केवल निजी रिपॉजिटरीज़ के लिए किया जाए, हालाँकि, हजारों संगठन हैं जो स्व-होस्टेड रनर का उपयोग करते हैं। डिफ़ॉल्ट कॉन्फ़िगरेशन अक्सर कमजोर होते हैं, और Gato बड़े पैमाने पर संभावित रूप से कमजोर रिपॉजिटरीज़ की पहचान करने के लिए वर्कफ़्लो फ़ाइल विश्लेषण और रन-लॉग विश्लेषण के मिश्रण का उपयोग करता है।
Gato संस्करण 1.7 Actions Artifacts Secrets Scanner प्रस्तुत करता है।
Actions Artifacts Secrets Scanner GitHub Actions वर्कफ़्लो आर्टिफैक्ट्स में रहस्यों की गणना करता है। Praetorian के शोधकर्ताओं ने स्कैनर का उपयोग करके कई प्रमुख ओपन-सोर्स प्रोजेक्ट्स में महत्वपूर्ण कमजोरियों की पहचान की है। इन कमजोरियों का विवरण प्रकटीकरण प्रक्रिया पूरी होने के बाद जारी किया जाएगा। यह कार्य प्रारंभ में Palo Alto Networks के शोध से प्रेरित था।
Actions Artifacts Secrets Scanner निम्नलिखित क्रियाएँ करता है:
NoseyParker को Actions Artifacts Secrets Scanner चलाने वाले सिस्टम के $PATH में स्थापित होना चाहिए।
सार्वजनिक वर्कफ़्लो आर्टिफैक्ट्स में रहस्यों में कई गलत सकारात्मक हो सकते हैं। डिफ़ॉल्ट रूप से, Actions Artifacts Secrets Scanner सामान्य गलत सकारात्मक से जुड़े नियमों और परिणामों को बाहर करता है। सभी रहस्य स्कैनिंग परिणामों को शामिल करने के लिए, आप --include_all_artifact_secrets फ्लैग का उपयोग कर सकते हैं।
यहाँ एक उदाहरण कमांड है जो GitHub संगठनों की सूची पर Actions Artifacts Secrets Scanner चलाता है, स्व-होस्टेड रनर गणना को अक्षम करता है, सभी आर्टिफैक्ट रहस्य परिणामों को शामिल करता है, और JSON फ़ाइल में आउटपुट देता है।
gato e --enum_wf_artifacts --include_all_artifact_secrets --skip_sh_runner_enum -O testorgs.txt -oJ testorgoutput.json
डिफ़ॉल्ट रूप से, Actions Artifacts Secrets Scanner एकल रिपॉजिटरी पर बिताए गए समय को कम करने के लिए निम्नलिखित सीमाएँ लगाता है:
ये बाधाएं इस प्रकार अनुकूलित की गईं कि Actions Artifacts Secrets Scanner 48 घंटों के भीतर शीर्ष 200 GitHub संगठनों को स्कैन कर सके। यदि आप इन बाधाओं को संशोधित करना चाहते हैं, तो आप उन्हें gato/enumerate/repository.py के scan_wf_artifacts() फ़ंक्शन में अपडेट कर सकते हैं।
Gato OS X और Linux का समर्थन करता है जिसमें कम से कम Python 3.7 हो।
उपकरण स्थापित करने के लिए, बस रिपॉजिटरी को क्लोन करें और pip install का उपयोग करें। हम इसे वर्चुअल एनवायरनमेंट के भीतर करने की सलाह देते हैं।
git clone https://github.com/praetorian-inc/gato
cd gato
python3 -m venv venv
source venv/bin/activate
pip install .
Gato को यह भी आवश्यकता है कि git संस्करण 2.27 या उससे ऊपर सिस्टम के PATH पर स्थापित हो। फोर्क PR आक्रमण मॉड्यूल चलाने के लिए, sed भी स्थापित और सिस्टम पथ पर मौजूद होना चाहिए।
हम एक विकास शाखा बनाए रखते हैं जिसमें Gato की नई विशेषताएँ शामिल हैं जो अभी तक मुख्य में नहीं जोड़ी गई हैं। इस बात की अधिक संभावना है कि आपको बग का सामना करना पड़े; हालाँकि, हम अभी भी dev शाखा पर अपना इंटीग्रेशन टेस्ट सूट चलाते हैं, इसलिए कोई स्पष्ट बग नहीं होना चाहिए।
यदि आप dev शाखा का उपयोग करना चाहते हैं, तो pip install चलाने से पहले इसे चेकआउट करें - बस इतना ही!
यदि आपको अपने विशिष्ट उपयोग के लिए कोई बग मिलता है, तो कृपया एक इश्यू खोलें!
उपकरण स्थापित करने के बाद, इसे gato या praetorian-gato चलाकर लॉन्च किया जा सकता है।
हम gato -h का उपयोग करके आधार उपकरण के पैरामीटर देखने की सलाह देते हैं, और उपकरण के प्रत्येक मॉड्यूल के पैरामीटर निम्नलिखित चलाकर देखें:
gato search -hgato enum -hgato attack -hउपकरण को कार्य करने के लिए GitHub क्लासिक या ऐप इंस्टॉलेशन टोकन की आवश्यकता होती है। एक बनाने के लिए, GitHub में लॉग इन करें और GitHub Developer Settings पर जाएँ और Generate New Token और फिर Generate new token (classic) चुनें।
यह टोकन बनाने के बाद अपने शेल में export GH_TOKEN=<YOUR_CREATED_TOKEN> चलाकर GH_TOKEN एनवायरनमेंट वेरिएबल सेट करें। वैकल्पिक रूप से, टोकन को एक सुरक्षित पासवर्ड मैनेजर में संग्रहीत करें और जब एप्लिकेशन संकेत दे तो इसे दर्ज करें।
यदि GitHub ऐप इंस्टॉलेशन टोकन बना रहे हैं, तो ऐप में गणना मॉड्यूल निष्पादित करने के लिए कम से कम Actions:read और Contents:read होना चाहिए।
समस्या निवारण और अतिरिक्त विवरण के लिए, जैसे डेवलपर मोड में स्थापित करना या यूनिट टेस्ट चलाना, कृपया wiki देखें।
कृपया विस्तृत दस्तावेज़ीकरण के लिए wiki देखें, साथ ही उपकरण के विभिन्न मॉड्यूल के लिए OpSec विचार भी देखें!
यदि आपको लगता है कि आपने सॉफ़्टवेयर में एक बग की पहचान की है, तो कृपया उपकरण के आउटपुट के साथ एक इश्यू खोलें, साथ ही उन कार्यों को भी बताएं जिन्हें आप करने का प्रयास कर रहे थे।
यदि आप सुनिश्चित नहीं हैं कि व्यवहार एक बग है, तो इसके बजाय चर्चा अनुभाग का उपयोग करें!