
Nosey Parker एक कमांड-लाइन टूल है जो टेक्स्टुअल डेटा और Git इतिहास में रहस्य और संवेदनशील जानकारी ढूंढता है।
हमारी घोषणा पोस्ट देखें https://www.praetorian.com/blog/titus-open-source-secret-scanner/। Titus रेपो https://github.com/praetorian-inc/titus पर पाया जा सकता है
Nosey Parker एक CLI टूल है जो टेक्स्टुअल डेटा में रहस्य और संवेदनशील जानकारी ढूंढता है।
यह मूलतः रहस्यों का पता लगाने के लिए एक विशेष-उद्देश्यीय grep-जैसा टूल है।
इसे आक्रामक सुरक्षा (जैसे, रेड टीमों पर पार्श्व गति सक्षम करना) के लिए डिज़ाइन किया गया है, लेकिन यह रक्षात्मक सुरक्षा परीक्षण के लिए भी उपयोगी हो सकता है। इसने Praetorian में सैकड़ों आक्रामक सुरक्षा अभियानों में रहस्य पाए हैं।
मुख्य विशेषताएं:
सामान्य कार्यप्रवाह तीन चरणों में है:
scan कमांड का उपयोग करके रुचि के इनपुट स्कैन करेंreport कमांड का उपयोग करके स्कैन परिणामों के विवरण रिपोर्ट करेंbrew install noseyparker
नवीनतम रिलीज़ पृष्ठ में x86_64/aarch64 Linux और macOS के लिए पूर्व-निर्मित बाइनरी हैं।
docker pull ghcr.io/praetorian-inc/noseyparker:latest
सबसे हालिया कमिट main टैग के माध्यम से भी उपलब्ध है।
docker pull ghcr.io/praetorian-inc/noseyparker-alpine:latest
सबसे हालिया कमिट main टैग के माध्यम से भी उपलब्ध है।
https://aur.archlinux.org/packages/noseyparker
Nosey Parker मूलतः Windows पर नहीं बनता है (#121)। WSL1 और मूल Linux रिलीज़ का उपयोग करके Windows पर चलाना संभव है।
इसे Ubuntu Linux और macOS के कई संस्करणों पर x86_64 और aarch64 दोनों पर परीक्षण किया गया है।
आवश्यक निर्भरताएँ:
cargo: अनुशंसित दृष्टिकोण: https://rustup.rs से स्थापित करेंcmake: vectorscan-sys क्रेट और कुछ अन्य निर्भरताओं के निर्माण के लिए आवश्यकboost: vectorscan-sys क्रेट के निर्माण के लिए आवश्यक (समर्थित संस्करण >=1.57)git: noseyparker CLI में संस्करण जानकारी एम्बेड करने के लिए आवश्यकpatch: vectorscan-sys क्रेट के निर्माण के लिए आवश्यकpkg-config: vectorscan-sys क्रेट के निर्माण के लिए आवश्यकsha256sum: डाइजेस्ट की गणना के लिए आवश्यक (अक्सर coreutils पैकेज द्वारा प्रदान किया जाता है)zsh: बिल्ड स्क्रिप्ट के लिए आवश्यकcreate-release.zsh स्क्रिप्ट का उपयोग करके निर्माण करें$ rm -rf release && ./scripts/create-release.zsh
यदि सफल होता है, तो यह release पर एक निर्देशिका संरचना उत्पन्न करेगा जो रिलीज़ आर्टिफैक्ट्स से भरी होगी।
कमांड-लाइन प्रोग्राम release/bin/noseyparker पर होगा।
noseyparker बाइनरी को बिना तर्कों के चलाने से शीर्ष-स्तरीय सहायता प्रिंट होती है और बाहर निकल जाता है।
आप noseyparker COMMAND -h चलाकर किसी विशेष कमांड के लिए संक्षिप्त सहायता प्राप्त कर सकते हैं।
help कमांड या लंबे-रूप --help विकल्प के साथ अधिक विस्तृत सहायता उपलब्ध है।
पूर्व-निर्मित रिलीज़ में मैनपेज भी शामिल हैं जो कमांड-लाइन सहायता को एक ही स्थान पर एकत्रित करते हैं। ये मैनपेज मार्कडाउन प्रारूप में परिवर्तित होकर रिपॉजिटरी में यहाँ भी शामिल हैं।
यदि आपके पास कोई प्रश्न है जिसका उत्तर इस दस्तावेज़ीकरण द्वारा नहीं दिया गया है, तो कृपया चर्चा शुरू करें।
डेटास्टोर एक विशेष निर्देशिका है जिसका उपयोग Nosey Parker अपने निष्कर्षों को रिकॉर्ड करने और अपनी आंतरिक स्थिति बनाए रखने के लिए करता है।
यदि आवश्यक हो तो scan कमांड द्वारा डेटास्टोर अंतर्निहित रूप से बनाया जाएगा।
प्रत्येक स्कैन किए गए इनपुट को ब्लॉब कहा जाता है। प्रत्येक ब्लॉब का एक अद्वितीय ब्लॉब ID होता है, जो एक SHA-1 डाइजेस्ट है जिसकी गणना उसी तरह की जाती है जैसे git करता है।
प्रत्येक ब्लॉब से जुड़े एक या अधिक प्रोवेनेंस प्रविष्टियाँ होती हैं। प्रोवेनेंस प्रविष्टि मेटाडेटा है जो बताता है कि इनपुट कैसे खोजा गया, जैसे फाइलसिस्टम पर एक फ़ाइल या Git रिपॉजिटरी इतिहास में एक फ़ाइल।
Nosey Parker एक नियम-आधारित प्रणाली है जो रेगुलर एक्सप्रेशन का उपयोग करती है।
प्रत्येक नियम में कम से कम एक कैप्चर ग्रुप के साथ एक एकल पैटर्न होता है जो आसपास के संदर्भ से मैच सामग्री को अलग करता है।
आप noseyparker rules list के साथ उपलब्ध नियमों को सूचीबद्ध कर सकते हैं।
नियमों का एक संग्रह रूलसेट में व्यवस्थित होता है।
Nosey Parker के डिफ़ॉल्ट रूलसेट में ऐसे नियम शामिल हैं जो उन चीजों का पता लगाते हैं जो रहस्य प्रतीत होते हैं।
अन्य रूलसेट उपलब्ध हैं; आप उन्हें noseyparker rules list. से सूचीबद्ध कर सकते हैं।
जब कोई नियम का पैटर्न किसी इनपुट से मेल खाता है, तो यह एक मैच उत्पन्न करता है। एक मैच को विशिष्ट रूप से एक नियम, ब्लॉब ID, प्रारंभ बाइट ऑफ़सेट और अंत बाइट ऑफ़सेट द्वारा परिभाषित किया जाता है; इन फ़ील्ड का उपयोग एक अद्वितीय मैच पहचानकर्ता की गणना करने के लिए किया जाता है।
एक ही नियम और कैप्चर ग्रुप साझा करने वाले मैच एक निष्कर्ष में संयुक्त होते हैं। दूसरे शब्दों में, एक निष्कर्ष मैचों का एक समूह है। यह Nosey Parker की शीर्ष-स्तरीय रिपोर्टिंग इकाई है।
Docker इमेज का उपयोग करते समय, निम्नलिखित कमांड में noseyparker को एक Docker आह्वान से बदलें जो एक माउंटेड वॉल्यूम का उपयोग करता है:
docker run -v "$PWD":/scan ghcr.io/praetorian-inc/noseyparker:latest <ARGS>
Docker कंटेनर /scan को अपनी कार्यशील निर्देशिका के रूप में चलाता है, इसलिए कंटेनर में $PWD को /scan पर माउंट करने से टैब पूर्णता और आपके कमांड-लाइन आह्वान में सापेक्ष पथ काम करेंगे।

Nosey Parker में फ़ाइलों, निर्देशिकाओं और Git रिपॉजिटरी के पूरे इतिहास को स्कैन करने के लिए मूल समर्थन है।
उदाहरण के लिए, यदि आपके पास स्थानीय रूप से cpython.git पर CPython का Git क्लोन है, तो आप इसे scan कमांड से स्कैन कर सकते हैं।
Nosey Parker cpython.np पर एक नया डेटास्टोर बनाएगा और अपने निष्कर्षों को वहाँ सहेजेगा।
(नाम cpython.np अनिवार्य नहीं है, और जो भी आप चाहें हो सकता है।)
$ noseyparker scan -d cpython.np cpython.git
Scanned 19.19 GiB from 335,849 blobs in 17 seconds (1.11 GiB/s); 2,178/2,178 new matches