
अर्ध-स्वचालित, फीडबैक-संचालित उपकरण जो 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
विंडोज़ या *nix वितरणों के लिए जिनमें ssdeep पैकेज नहीं है, कृपया ssdeep स्थापना निर्देश देखें।
[2] ssdeep स्थापित करने के बाद, pip का उपयोग करके Python निर्भरताएँ स्थापित करें:
pip3 install -r requirements.txt
GitGot डॉकर इमेज बनाने (यदि यह पहले से मौजूद नहीं है) और GitGot टूल के डॉकरीकृत संस्करण को निष्पादित करने के लिए gitgot-docker.sh चलाएँ।
आह्वान पर, gitgot-docker.sh होस्ट के वर्तमान कार्यशील निर्देशिका से logs और states निर्देशिकाएँ बनाएगा और माउंट करेगा। यदि यह gitgot-docker.sh GitGot प्रोजेक्ट निर्देशिका से निष्पादित किया जाता है, तो यह gitgot.py या checks/ में परिवर्तनों के साथ डॉकर कंटेनर को अपडेट करेगा:
./gitgot-docker.sh -q example.com
(विशिष्ट डॉकर कमांड के लिए gitgot-docker.sh देखें)
GitHub को दर-सीमित उद्देश्यों के लिए एक टोकन की आवश्यकता होती है। बिना अनुमतियाँ/बिना स्कोप के GitHub API टोकन बनाएँ। यह सार्वजनिक GitHub पहुंच के बराबर होगा, लेकिन यह GitHub Search API का उपयोग करने की अनुमति देगा। इस टोकन को 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 कोड सर्च API में फीड की जाती हैं, इसलिए अधिक उन्नत क्वेरी सिंटैक्स के लिए GitHub का दस्तावेज़ीकरण देखें।
/(secretToken))