
आह shhgit! अपने कोड में रहस्य खोजें। आपके GitHub, GitLab और Bitbucket रिपॉजिटरी के लिए रहस्य पहचान।
किसी सार्वजनिक कोड रिपॉजिटरी में गलती से रहस्य लीक करना — उपयोगकर्ता नाम और पासवर्ड, API टोकन, या निजी कुंजियाँ — डेवलपर्स और सुरक्षा टीमों के लिए एक बुरा सपना है। धोखेबाज़ सिस्टम में पैर जमाने के लिए लगातार सार्वजनिक कोड रिपॉजिटरी को स्कैन करते हैं। कोड पहले से कहीं अधिक जुड़ा हुआ है, इसलिए अक्सर ये रहस्य निजी और संवेदनशील डेटा — क्लाउड बुनियादी ढाँचे, डेटाबेस सर्वर, भुगतान गेटवे और फ़ाइल भंडारण प्रणालियाँ — तक पहुँच प्रदान करते हैं।
shhgit इन रहस्यों को खोजने और आपको सचेत करने के लिए आपके कोड रिपॉजिटरी को लगातार स्कैन कर सकता है।
आपके पास दो विकल्प हैं। मैं पहले विकल्प की सिफारिश करूँगा क्योंकि यह आपको shhgit लाइव वेब इंटरफ़ेस तक पहुँच प्रदान करेगा। यदि आप केवल कमांड लाइन इंटरफ़ेस चाहते हैं तो दूसरे विकल्प का उपयोग करें।
git clone https://github.com/eth0izzle/shhgit.gitdocker-compose buildconfig.yaml फ़ाइल संपादित करें (जैसे अपने GitHub टोकन जोड़ना)docker-compose upध्यान दें: इस विधि में shhgit वेब इंटरफ़ेस शामिल नहीं है
go get github.com/eth0izzle/shhgit स्वचालित रूप से shhgit डाउनलोड और बिल्ड करेगा। या आप इस रिपॉजिटरी को क्लोन कर सकते हैं और go build -v -i चला सकते हैं।config.yaml फ़ाइल संपादित करें और नीचे उपयोग देखें।shhgit दो तरीकों से काम कर सकता है: GitHub, Gist, GitLab और BitBucket के सार्वजनिक API का उपभोग करके या किसी स्थानीय निर्देशिका में फ़ाइलों को प्रोसेस करके।
डिफ़ॉल्ट रूप से, shhgit पहले 'सार्वजनिक मोड' में चलेगा। GitHub और Gist के लिए, आपको एक एक्सेस टोकन प्राप्त करना और प्रदान करना होगा (देखें यह गाइड; इसके लिए किसी स्कोप या अनुमति की आवश्यकता नहीं है)। और फिर इसे config.yaml में github_access_tokens के अंतर्गत रखें। GitLab और BitBucket को किसी API टोकन की आवश्यकता नहीं है।
आप हस्ताक्षरों को छोड़ सकते हैं और अपनी स्वयं की कस्टम खोज क्वेरी के साथ shhgit का उपयोग कर सकते हैं, जैसे कि सभी AWS कुंजियाँ खोजने के लिए आप shhgit --search-query AWS_ACCESS_KEY_ID=AKIA का उपयोग कर सकते हैं। और स्थानीय मोड में चलाने (और शायद अपने CI पाइपलाइनों में एकीकृत करने) के लिए आप --local फ़्लैग पास कर सकते हैं (नीचे उपयोग देखें)।
--clone-repository-timeout
किसी रिपॉजिटरी को क्लोन करने में लगने वाला अधिकतम समय सेकंड में (डिफ़ॉल्ट 10)
--config-path
दिए गए निर्देशिका से config.yaml खोजता है। यदि सेट नहीं है, तो shhgit बाइनरी और वर्तमान निर्देशिका से खोजने का प्रयास करता है
--csv-path
यदि आप पाए गए रहस्यों को CSV में लिखना चाहते हैं तो एक पथ निर्दिष्ट करें। अक्षम करने के लिए खाली छोड़ें
--debug
डिबगिंग जानकारी प्रिंट करें
--entropy-threshold
फ़ाइलों में उच्च एन्ट्रॉपी स्ट्रिंग्स ढूँढता है। उच्च थ्रेशोल्ड = अधिक गुप्त रहस्य, निम्न थ्रेशोल्ड = अधिक झूठी सकारात्मकता। एन्ट्रॉपी जाँच अक्षम करने के लिए 0 पर सेट करें (डिफ़ॉल्ट 5.0)
--local
स्कैन करने के लिए स्थानीय निर्देशिका (पूर्ण पथ) निर्दिष्ट करें। दी गई निर्देशिका को केवल पुनरावर्ती रूप से स्कैन करता है। स्थानीय रन के लिए Github टोकन की आवश्यकता नहीं है।
--maximum-file-size
प्रोसेस करने के लिए अधिकतम फ़ाइल आकार KB में (डिफ़ॉल्ट 512)
--maximum-repository-size
डाउनलोड और प्रोसेस करने के लिए अधिकतम रिपॉजिटरी आकार KB में (डिफ़ॉल्ट 5120)
--minimum-stars
केवल इतने या अधिक स्टार वाले रिपॉजिटरी क्लोन करें। स्टार गिनती को अनदेखा करने के लिए 0 पर सेट करें (डिफ़ॉल्ट 0)
--path-checks
फ़ाइल नाम/पथ हस्ताक्षर जाँच अक्षम करने के लिए false पर सेट करें, यानी केवल regex पैटर्न मिलाएँ (डिफ़ॉल्ट true)
--process-gists
वास्तविक समय में Gists देखें और प्रोसेस करें। अक्षम करने के लिए false पर सेट करें (डिफ़ॉल्ट true)
--search-query
हस्ताक्षरों को अनदेखा करने और इस स्ट्रिंग वाली फ़ाइलों पर फ़िल्टर करने के लिए एक खोज स्ट्रिंग निर्दिष्ट करें (regex संगत)
--silent
त्रुटियों को छोड़कर सभी आउटपुट दबाएँ
--temp-directory
रिपॉजिटरी/मिलान संग्रहीत करने के लिए निर्देशिका (डिफ़ॉल्ट "%temp%\shhgit")
--threads
उपयोग करने के लिए समवर्ती थ्रेड्स की संख्या (डिफ़ॉल्ट तार्किक CPUs की संख्या)
config.yaml फ़ाइल में 7 तत्व हैं। एक डिफ़ॉल्ट प्रदान किया गया है।
github_access_tokens: # कम से कम एक टोकन प्रदान करें
- 'टोकन एक'
- 'टोकन दो'
webhook: '' # POST वेबहुक का URL।
webhook_payload: '' # वेबहुक URL पर POST करने के लिए पेलोड
blacklisted_strings: [] # अनदेखा करने के लिए स्ट्रिंग्स की सूची
blacklisted_extensions: [] # अनदेखा करने के लिए एक्सटेंशन की सूची
blacklisted_paths: [] # अनदेखा करने के लिए पथों की सूची
blacklisted_entropy_extensions: [] # एन्ट्रॉपी जाँच के लिए अनदेखा करने के लिए अतिरिक्त एक्सटेंशन
signatures: # जाँच करने के लिए हस्ताक्षरों की सूची
- part: '' # या तो filename, extension, path या contents
match: '' # सरल पाठ तुलना (यदि कोई regex तत्व नहीं है)
regex: '' # regex पैटर्न (यदि कोई match तत्व नहीं है)
name: '' # हस्ताक्षर का नाम
shhgit 150 हस्ताक्षरों के साथ आता है। आप config.yaml फ़ाइल संपादित करके उन्हें हटा या जोड़ सकते हैं।
1Password पासवर्ड मैनेजर डेटाबेस फ़ाइल, Amazon MWS Auth Token, Apache htpasswd फ़ाइल, Apple Keychain डेटाबेस फ़ाइल, Artifactory, AWS Access Key ID, AWS Access Key ID मान, AWS Account ID, AWS CLI क्रेडेंशियल्स फ़ाइल, AWS cred फ़ाइल जानकारी, AWS Secret Access Key, AWS Session Token, Azure सेवा कॉन्फ़िगरेशन स्कीमा फ़ाइल, Carrierwave कॉन्फ़िगरेशन फ़ाइल, Chef Knife कॉन्फ़िगरेशन फ़ाइल, Chef निजी कुंजी, CodeClimate, ऑटो-लॉगिन प्रक्रिया के लिए कॉन्फ़िगरेशन फ़ाइल, एक निजी कुंजी रखता है, एक निजी कुंजी रखता है, cPanel बैकअप ProFTPd क्रेडेंशियल्स फ़ाइल, Day One जर्नल फ़ाइल, DBeaver SQL डेटाबेस मैनेजर कॉन्फ़िगरेशन फ़ाइल, DigitalOcean doctl कमांड-लाइन क्लाइंट कॉन्फ़िगरेशन फ़ाइल, Django कॉन्फ़िगरेशन फ़ाइल, Docker कॉन्फ़िगरेशन फ़ाइल, Docker रजिस्ट्री प्रमाणीकरण फ़ाइल, एनवायरनमेंट कॉन्फ़िगरेशन फ़ाइल, esmtp कॉन्फ़िगरेशन, Facebook एक्सेस टोकन, Facebook Client ID, Facebook Secret Key, FileZilla FTP कॉन्फ़िगरेशन फ़ाइल, FileZilla FTP हालिया सर्वर फ़ाइल, Firefox सहेजे गए पासवर्ड DB, git-credential-store सहायक क्रेडेंशियल्स फ़ाइल, Git कॉन्फ़िगरेशन फ़ाइल, GitHub Hub कमांड-लाइन क्लाइंट कॉन्फ़िगरेशन फ़ाइल, Github Key, GNOME Keyring डेटाबेस फ़ाइल, GnuCash डेटाबेस फ़ाइल, Google (GCM) Service Account, Google Cloud API Key, Google OAuth Access Token, Google OAuth Key, Heroku API key, Heroku कॉन्फ़िग फ़ाइल, Hexchat/XChat IRC क्लाइंट सर्वर सूची कॉन्फ़िगरेशन फ़ाइल, उच्च एन्ट्रॉपी स्ट्रिंग, HockeyApp, Irssi IRC क्लाइंट कॉन्फ़िगरेशन फ़ाइल, Java keystore फ़ाइल, Jenkins पब्लिश ओवर SSH प्लगइन फ़ाइल, Jetbrains IDE कॉन्फ़िग, KDE Wallet मैनेजर डेटाबेस फ़ाइल, KeePass पासवर्ड मैनेजर डेटाबेस फ़ाइल, Linkedin Client ID, LinkedIn Secret Key, Little Snitch फ़ायरवॉल कॉन्फ़िगरेशन फ़ाइल, लॉग फ़ाइल, MailChimp API Key, MailGun API Key, Microsoft BitLocker रिकवरी कुंजी फ़ाइल, Microsoft BitLocker Trusted Platform Module पासवर्ड फ़ाइल, Microsoft SQL डेटाबेस फ़ाइल, Microsoft SQL सर्वर कॉम्पैक्ट डेटाबेस फ़ाइल, Mongoid कॉन्फ़िग फ़ाइल, Mutt ई-मेल क्लाइंट कॉन्फ़िगरेशन फ़ाइल, MySQL क्लाइंट कमांड इतिहास फ़ाइल, bcrypt हैश के साथ MySQL डंप, SMTP क्रेडेंशियल्स के साथ netrc, नेटवर्क ट्रैफ़िक कैप्चर फ़ाइल, NPM कॉन्फ़िगरेशन फ़ाइल, NuGet API Key, OmniAuth कॉन्फ़िगरेशन फ़ाइल, OpenVPN क्लाइंट कॉन्फ़िगरेशन फ़ाइल, Outlook team, Password Safe डेटाबेस फ़ाइल, PayPal/Braintree Access Token, PHP कॉन्फ़िगरेशन फ़ाइल, Picatic API key, Pidgin चैट क्लाइंट खाता कॉन्फ़िगरेशन फ़ाइल, Pidgin OTR निजी कुंजी, PostgreSQL क्लाइंट कमांड इतिहास फ़ाइल, PostgreSQL पासवर्ड फ़ाइल, संभावित क्रिप्टोग्राफ़िक निजी कुंजी, संभावित Jenkins क्रेडेंशियल्स फ़ाइल, संभावित jrnl जर्नल फ़ाइल, संभावित Linux passwd फ़ाइल, संभावित Linux shadow फ़ाइल, संभावित MediaWiki कॉन्फ़िगरेशन फ़ाइल, संभावित निजी कुंजी (.asc), संभावित निजी कुंजी (.p21), संभावित निजी कुंजी (.pem), संभावित निजी कुंजी (.pfx), संभावित निजी कुंजी (.pkcs12), संभावित PuTTYgen निजी कुंजी, संभावित Ruby On Rails डेटाबेस कॉन्फ़िगरेशन फ़ाइल, निजी SSH कुंजी (.dsa), निजी SSH कुंजी (.ecdsa), निजी SSH कुंजी (.ed25519), निजी SSH कुंजी (.rsa), सार्वजनिक ssh कुंजी, Python बाइटकोड फ़ाइल, Recon-ng वेब टोही फ्रेमवर्क API कुंजी डेटाबेस, Atom के लिए remote-sync, रिमोट डेस्कटॉप कनेक्शन फ़ाइल, Robomongo MongoDB मैनेजर कॉन्फ़िगरेशन फ़ाइल, Rubygems क्रेडेंशियल्स फ़ाइल, Ruby IRB कंसोल इतिहास फ़ाइल, Ruby on Rails मास्टर कुंजी, Ruby on Rails रहस्य, Ruby On Rails गुप्त टोकन कॉन्फ़िगरेशन फ़ाइल, S3cmd कॉन्फ़िगरेशन फ़ाइल, Salesforce क्रेडेंशियल्स, Sauce Token, Sequel Pro MySQL डेटाबेस मैनेजर बुकमार्क फ़ाइल, Atom के लिए sftp-deployment, Atom के लिए sftp-deployment, SFTP कनेक्शन कॉन्फ़िगरेशन फ़ाइल, शेल कमांड उपनाम कॉन्फ़िगरेशन फ़ाइल, शेल कमांड इतिहास फ़ाइल, शेल कॉन्फ़िगरेशन फ़ाइल (.bashrc, .zshrc, .cshrc), शेल कॉन्फ़िगरेशन फ़ाइल (.exports), शेल कॉन्फ़िगरेशन फ़ाइल (.extra), शेल कॉन्फ़िगरेशन फ़ाइल (.functions), शेल प्रोफ़ाइल कॉन्फ़िगरेशन फ़ाइल, Slack Token, Slack Webhook, SonarQube Docs API Key, SQL डेटा डंप फ़ाइल, SQL डंप फ़ाइल, SQLite3 डेटाबेस फ़ाइल, SQLite डेटाबेस फ़ाइल, Square Access Token, Square OAuth Secret, SSH कॉन्फ़िगरेशन फ़ाइल, SSH पासवर्ड, Stripe API key, T कमांड-लाइन Twitter क्लाइंट कॉन्फ़िगरेशन फ़ाइल, Terraform वेरिएबल कॉन्फ़िग फ़ाइल, Tugboat DigitalOcean प्रबंधन उपकरण कॉन्फ़िगरेशन, Tunnelblick VPN कॉन्फ़िगरेशन फ़ाइल, Twilo API Key, Twitter Client ID, Twitter Secret Key, URI में उपयोगकर्ता नाम और पासवर्ड, Ventrilo सर्वर कॉन्फ़िगरेशन फ़ाइल, VSCode के लिए vscode-sftp, Windows BitLocker पूर्ण वॉल्यूम एन्क्रिप्टेड डेटा फ़ाइल, WP-Config
git checkout -b my-new-featuregit commit -am 'Add some feature'git push origin my-new-featureमैं इस उपकरण का उपयोग करने के तरीके के लिए कोई जिम्मेदारी नहीं लेता। गधा मत बनो।
MIT. देखें LICENSE