
एक बहुआयामी सुरक्षा उपकरण जो OSINT, Forensics, Pentesting और अधिक के लिए सार्वजनिक GitHub REST APIs का लाभ उठाता है।
Gitxray (Git X-Ray का संक्षिप्त रूप) एक बहुआयामी सुरक्षा उपकरण है जो GitHub रिपॉजिटरी पर उपयोग के लिए डिज़ाइन किया गया है। यह OSINT और फोरेंसिक सहित कई उद्देश्यों की पूर्ति कर सकता है। gitxray सार्वजनिक GitHub REST API का लाभ उठाकर ऐसी जानकारी एकत्र करता है जो अन्यथा मैन्युअल रूप से प्राप्त करने में बहुत समय लगेगा। इसके अतिरिक्त, यह अपरंपरागत स्थानों में जानकारी खोजता है।

Gitxray का उपयोग, उदाहरण के लिए, निम्नलिखित के लिए किया जा सकता है:
योगदानकर्ता प्रोफाइल में गलती से प्रकट संवेदनशील जानकारी खोजें, जैसे कि Armored PGP Keys या Key Names के भीतर।
रिपॉजिटरी में खतरे के अभिनेताओं की पहचान करें। आप सह-स्वामित्व वाले या साझा खातों को देख सकते हैं, साथ ही नकली Stargazers का पता लगाने के लिए सार्वजनिक घटनाओं का निरीक्षण कर सकते हैं।
नकली या संक्रमित रिपॉजिटरी की पहचान करें। यह छेड़छाड़ की गई कमिट तिथियों के साथ-साथ, उदाहरण के लिए, रिलीज़ के बाद अपडेट की गई रिलीज़ एसेट्स का पता लगा सकता है।
फोरेंसिक उपयोग-मामले, जैसे कि किसी घटना के दिन और क्या हुआ, यह जांचने के लिए तिथि के अनुसार परिणामों को फ़िल्टर करना।
और भी बहुत कुछ! ढेर सारा डेटा एकत्र करने के लिए पूर्ण एक्स-रे चलाएँ।
gitxray -r https://github.com/some-org/some-repository
gitxray -r https://github.com/some-org/some-repository -f user_input -outformat text
gitxray -r https://github.com/some-org/some-repository -f keys,association,starred -outformat text
gitxray -r https://github.com/some-org/some-repository -f warning -outformat text
gitxray -r https://github.com/some-org/some-repository -f 2024-09-01 -outformat text
अतिरिक्त उपयोग-मामलों और परिचयात्मक जानकारी के लिए कृपया दस्तावेज़ीकरण देखें।
Gitxray दर सीमाओं को सुंदरता से संभालता है और बिना GitHub API टोकन के भी सीधे काम कर सकता है, लेकिन आप शायद बहुत जल्दी दर सीमाओं से टकराएंगे (10+ योगदानकर्ताओं वाली छोटी से मध्यम आकार की रिपॉजिटरी को दर सीमाओं के रीसेट होने की प्रतीक्षा करते हुए पूरा होने में घंटों लग सकते हैं)। यह GitHub द्वारा उनके दस्तावेज़ीकरण में यहाँ विस्तृत रूप से बताया गया है।
सार्वजनिक रिपॉजिटरी तक सीमित एक सरल केवल-पढ़ने योग्य टोकन बनाना हालांकि आपको उन प्रतिबंधों को काफी हद तक बढ़ाने में मदद करेगा। यदि आप जल्दी में नहीं हैं या gitxray को चलता छोड़ सकते हैं, तो आप इसकी पूरी क्षमता का उपयोग कर पाएंगे, क्योंकि यह सीमाएँ हटने की प्रतीक्षा करते समय निष्पादन को रोक देता है।
आप टोकन को सुरक्षित रूप से लोड कर सकते हैं (इससे टोकन स्क्रीन पर प्रदर्शित होने या आपके शेल इतिहास में लॉग होने से बचता है):
read -rs GH_ACCESS_TOKEN
export
Gitxray वैकल्पिक रूप से VirusTotal API का उपयोग करके GitHub के Code search API से पहचाने गए किसी भी होस्ट की जांच कर सकता है, लेकिन इसे काम करने के लिए VirusTotal API Key की आवश्यकता होती है। अपनी VirusTotal API Key प्राप्त करने के निर्देश यहाँ उपलब्ध हैं: https://docs.virustotal.com/docs/please-give-me-an-api-key
दुर्भाग्य से, व्यक्तिगत API Keys (आज तक) VirusTotal द्वारा प्रति दिन 500 लुकअप तक सीमित हैं।
एक बार जब आपके पास API key हो, तो आप इसे अपने वातावरण में सुरक्षित रूप से लोड कर सकते हैं:
read -rs VT_API_KEY
export
gitxray को requests लाइब्रेरी के अलावा किसी बाहरी पैकेज निर्भरता के उपयोग के बिना लिखा गया था।
gitxray PyPI पर है और इसे निम्नलिखित के साथ स्थापित और अपडेट किया जा सकता है:
pip install gitxray --upgrade
एक बार स्थापित होने के बाद, अपने कमांड लाइन से gitxray चलाने के लिए बस टाइप करें:
gitxray -h
gitxray -o https://github.com/kulkansecurity

आप इसके GitHub रिपॉजिटरी को क्लोन या डाउनलोड करके और चलाकर सीधे gitxray चला सकते हैं।
python3 -m pip install -r requirements.txt
cd src/
python3 -m gitxray.gitxray
निम्नलिखित में से एक निर्दिष्ट किया जाना चाहिए:
-r, --repository [URL] - जाँच करने के लिए एक एकल रिपॉजिटरी निर्दिष्ट करें। URL वैकल्पिक रूप से https://github.com/ से शुरू हो सकता है। उदाहरण: --repository https://github.com/example/repo
-rf, --repositories-file [FILEPATH] - एक फ़ाइल पथ प्रदान करें जिसमें रिपॉजिटरी की सूची हो, प्रत्येक नई पंक्ति पर। फ़ाइल मौजूद होनी चाहिए। उदाहरण: --repositories-file ./list_of_repos.txt
-o, --organization [URL] - उस संगठन के अंतर्गत सभी रिपॉजिटरी की जाँच करने के लिए एक संगठन निर्दिष्ट करें। URL वैकल्पिक रूप से https://github.com/ से शुरू हो सकता है। उदाहरण: --organization https://github.com/exampleOrg
आप इन्हें वैकल्पिक पाएंगे लेकिन सामान्य gitxray उपयोग में बहुत उपयोगी हैं।
-l, --list - यदि कोई रिपॉजिटरी निर्दिष्ट है तो योगदानकर्ताओं को सूचीबद्ध करें या यदि कोई संगठन निर्दिष्ट है तो रिपॉजिटरी सूचीबद्ध करें। विशिष्ट संस्थाओं पर ध्यान केंद्रित करने के लिए उपयोगी। उदाहरण: --list
-c, --contributor [USERNAMES] - निर्दिष्ट रिपॉजिटरी या संगठन के भीतर ध्यान केंद्रित करने के लिए GitHub उपयोगकर्तानामों की अल्पविराम से पृथक सूची। उदाहरण: --contributor user1,user2
-f, --filters [KEYWORDS] - परिणामों को फ़िल्टर करने के लिए अल्पविराम से पृथक कीवर्ड, जैसे 'user_input', 'association', या 'mac'। उदाहरण: --filters user_input,association,mac
-out, --outfile [FILEPATH] - आउटपुट लॉग के लिए फ़ाइल पथ निर्दिष्ट करें। निर्देशिका नहीं हो सकती। उदाहरण: --outfile ./output.log
-outformat, --output-format [FORMAT] - लॉग फ़ाइल के लिए प्रारूप सेट करें। समर्थित प्रारूप html, text और json हैं। डिफ़ॉल्ट html है। उदाहरण: --output-format json
--shush - प्रगति-संबंधित आउटपुट प्रदर्शित न करके Gitxray को थोड़ा शांत बनाता है। उदाहरण: --shush--debug - विस्तृत और व्यापक आउटपुट के लिए डीबग मोड सक्षम करें। उदाहरण: --debugउपयोगकर्ता पूरी तरह से यह सुनिश्चित करने के लिए जिम्मेदार है कि इस उपकरण का उपयोग लागू कानूनों और विनियमों के अनुपालन में किया जाए, जिसमें रिपॉजिटरी स्कैनिंग और उत्पन्न किसी भी परिणाम के वितरण के लिए उचित प्राधिकरण प्राप्त करना शामिल है। अनधिकृत उपयोग या परिणामों का साझाकरण स्थानीय, राष्ट्रीय या अंतर्राष्ट्रीय कानूनों का उल्लंघन कर सकता है।