
एलास्टिकसर्च पर आधारित स्थैतिक कोड विश्लेषण उपकरण

Bughound एक ओपन-सोर्स स्टैटिक कोड विश्लेषण उपकरण है जो आपके कोड का विश्लेषण करता है और परिणामों को Elasticsearch और Kibana में भेजता है ताकि आपको अपने कोड में संभावित कमजोरियों के बारे में उपयोगी जानकारी मिल सके।
Bughound का अपना Elasticsearch और Kibana Docker इमेज है जो डैशबोर्ड के साथ पूर्व-कॉन्फ़िगर किया गया है ताकि आपको निष्कर्षों का एक मजबूत विज़ुअलाइज़ेशन मिल सके।
आप विभिन्न प्रकार की कमजोरियों का पता लगा सकते हैं, जैसे:
Bughound फिलहाल PHP और JAVA कोड का विश्लेषण कर सकता है, और इसमें इन भाषाओं के लिए असुरक्षित फ़ंक्शनों का एक समूह शामिल है।
मैं समय के साथ और अधिक फ़ंक्शन/भाषा कवरेज जोड़ना सुनिश्चित करूँगा, लेकिन अभी के लिए मुख्य ध्यान परियोजना की स्थिरता पर ही है।
कृपया ध्यान दें कि Bughound के परिणाम 100% सटीक नहीं हैं, यह आपके विश्लेषण के दौरान संभावित कमजोरियों की पहचान करने में मदद करने के लिए बनाया गया है।
सबसे पहले, Bughound आपके प्रोजेक्ट की सभी फ़ाइलों की एक सूची बनाएगा, जो आपके द्वारा ऑडिट की जाने वाली फ़ाइलों के एक्सटेंशन पर आधारित होगी। फिर यह प्रत्येक फ़ाइल को पढ़ेगा और आपके प्रोजेक्ट की भाषा के लिए पूर्व-परिभाषित किसी भी असुरक्षित फ़ंक्शन को खोजने का प्रयास करेगा।
विश्लेषण चरण पूर्व-कॉन्फ़िगर किए गए regex और कुछ कस्टम टेक्स्ट मिलान पर निर्भर करता है ताकि संभावित कमजोरियों का पता लगाया जा सके। इसलिए, फिर से, आपको मैन्युअल विश्लेषण करने की आवश्यकता है ताकि आप जाँच सकें कि ये निष्कर्ष शोषण योग्य हैं या नहीं।
अंत में, यह परिणामों को Bughound Docker इमेज पर भेजेगा, जिसमें पूर्व-कॉन्फ़िगर किया गया Elasticsearch और Kibana है जिसमें आपके निष्कर्षों के लिए अनुकूलित डैशबोर्ड शामिल हैं।
डैशबोर्ड आपको निष्कर्षों के बारे में विवरण देंगे, जैसे:
इसके अलावा, Kibana का उपयोग करके, आप संभावित रूप से कमजोर कोड स्निपेट को देख पाएंगे ताकि आप अपना विश्लेषण और ट्रेसिंग चरण शुरू कर सकें और जाँच सकें कि यह शोषण योग्य है या नहीं।
बेशक, यदि आप चाहें तो अपने स्वयं के ELK स्टैक का उपयोग कर सकते हैं, और Bughound आपके लिए प्रारंभिक कॉन्फ़िगरेशन करेगा, लेकिन इस मामले में आपके पास पूर्व-कॉन्फ़िगर किए गए डैशबोर्ड नहीं होंगे।
आप Bughound कोड चलाने के लिए सभी आवश्यकताओं को निम्नलिखित कमांड का उपयोग करके स्थापित कर सकते हैं:
pip3 install -r requirements.txt
यह सुनिश्चित करेगा कि कोड के लिए सभी आवश्यकताएँ स्थापित हैं।
इसके अलावा, Bughound इमेज को चलाने के लिए आपको Docker स्थापित करना होगा, इसके बारे में अगले अनुभाग में और अधिक जानकारी है!
यदि आप अपने स्वयं के Elasticsearch और Kibana इंस्टेंस का उपयोग करना चाहते हैं, तो Docker स्थापना चरण को छोड़ दें
नवीनतम संस्करण प्राप्त करने के लिए निम्नलिखित कमांड का उपयोग करें:
git clone https://github.com/mhaskar/Bughound
और पिछले चरण में आवश्यकताओं को स्थापित करने के बाद, आप Bughound को निम्नलिखित कमांड से चला सकते हैं:
./bughound.py
आपको Bughound का मुख्य स्क्रीन दिखाई देगा।
┌─[askar@hackbook]─[/opt/bughound]
└──╼ $./bughound.py
.______ __ __ _______ __ __ ______ __ __ .__ __. _______
| _ \ | | | | / _____|| | | | / __ \ | | | | | \ | | | \
| |_) | | | | | | | __ | |__| | | | | | | | | | | \| | | .--. |
| _ < | | | | | | |_ | | __ | | | | | | | | | | . ` | | | | |
| |_) | | `--' | | |__| | | | | | | `--' | | `--' | | |\ | | '--' |
|______/ \______/ \______| |__| |__| \______/ \______/ |__| \__| |_______/
\ /
oVo
\___XXX___/
__XXXXX__
/__XXXXX__\
/ XXX \
V V1.0 बीटा
[+] उदाहरण: ./bughound3.py --path vulnerable_code/ --language php --extension .php --name testproject
उपयोग: bughound.py [-h] [--path PATH] [--git GIT] --language LANGUAGE
--extension EXTENSION --name NAME [--verbose [VERBOSE]]
bughound.py: त्रुटि: तर्क --language आवश्यक है
┌─[✗]─[askar@hackbook]─[/opt/bughound]
└──╼ $
Bughound Docker इमेज स्थापित करने के लिए, आप बस निम्नलिखित कर सकते हैं:
docker pull bughound/bughound
और यह इमेज का नवीनतम संस्करण खींचेगा और आपकी मशीन में सहेजेगा।
एक बार इमेज खींच लेने के बाद, हम इसे निम्नलिखित कमांड से चला सकते हैं:
docker run --name bughound -p5601:5601 -p 9200:9200 bughound/bughound
यह इमेज को bughound नामक एक नए कंटेनर में चलाएगा और पोर्ट को उजागर करेगा जो Bughound को Elasticsearch और Kibana के साथ आपके होस्ट से संवाद करने के लिए आवश्यक हैं।
इमेज का उपयोग करने के लिए आपको अधिकतम वर्चुअल मेमोरी बढ़ाने की आवश्यकता हो सकती है, इसलिए कृपया यह कमांड चलाना सुनिश्चित करें:
sysctl -w vm.max_map_count=262144
दो काम करने के बाद, अब आप Bughound का उपयोग करने के लिए तैयार हैं!
अपने कोड के विश्लेषण की प्रक्रिया शुरू करने के लिए, आपको Bughound.py फ़ाइल का उपयोग करना चाहिए, जिसमें कुछ विकल्प हैं। सहायता बैनर के माध्यम से इन विकल्पों को देखने के लिए, आप निम्नलिखित कमांड का उपयोग कर सकते हैं:
┌─[✗]─[askar@hackbook]─[/opt/bughound]
└──╼ $./bughound.py -h
.______ __ __ _______ __ __ ______ __ __ .__ __. _______
| _ \ | | | | / _____|| | | | / __ \ | | | | | \ | | | \
| |_) | | | | | | | __ | |__| | | | | | | | | | | \| | | .--. |
| _ < | | | | | | |_ | | __ | | | | | | | | | | . ` | | | | |
| |_) | | `--' | | |__| | | | | | | `--' | | `--' | | |\ | | '--' |
|______/ \______/ \______| |__| |__| \______/ \______/ |__| \__| |_______/
\ /
oVo
\___XXX___/
__XXXXX__
/__XXXXX__\
/ XXX \
V V1.0 बीटा
[+] उदाहरण: ./bughound3.py --path vulnerable_code/ --language php --extension .php --name testproject
उपयोग: bughound.py [-h] [--path PATH] [--git GIT] --language LANGUAGE
--extension EXTENSION --name NAME [--verbose [VERBOSE]]
वैकल्पिक तर्क:
-h, --help यह सहायता संदेश दिखाएं और बाहर निकलें
--path PATH स्रोत कोड का स्थानीय पथ
--git GIT गिट रिपॉजिटरी URL
--language LANGUAGE उपयोग की जाने वाली प्रोग्रामिंग भाषा
--extension EXTENSION
खोजने के लिए एक्सटेंशन
--name NAME उपयोग करने के लिए प्रोजेक्ट का नाम
--verbose [VERBOSE] डिबगिंग संदेश दिखाएं
┌─[askar@hackbook]─[/opt/bughound]
└──╼ $
उदाहरण के लिए, किसी स्थानीय PHP प्रोजेक्ट को स्कैन करने के लिए, आप निम्नलिखित कमांड का उपयोग कर सकते हैं:
./bughound.py --path /opt/dummyproject --language php --extension .php --name dummyproject
यह कमांड Elasticsearch इंडेक्स में "dummyproject" नामक एक नया प्रोजेक्ट बनाएगा, और स्थानीय पथ "/opt/dummyproject" में ".php" एक्सटेंशन वाली सभी स्थानीय फ़ाइलों को क्रॉल करेगा और परिणामों को Elasticsearch में भेजेगा।
इसके अलावा, आप --git स्विच का उपयोग करके गिट रिपॉजिटरी से एक दूरस्थ प्रोजेक्ट को खींच सकते हैं, जैसे:
./bughound.py --git https://github.com/DummyCode/DummyProject --language php --extension .php --name dummyproject
Bughound आपके लिए कोड को क्लोन करेगा और projects निर्देशिका में सहेजेगा, फिर इसे स्कैन करेगा।
यदि आप आधिकारिक Bughound Docker इमेज का उपयोग करने का निर्णय लेते हैं, तो आपको उपयोग के लिए तैयार कुछ डैशबोर्ड मिलेंगे जो आपके विश्लेषण में मदद करेंगे।
अब तक निम्नलिखित डैशबोर्ड उपलब्ध हैं:
ये डैशबोर्ड आपको कोड में पाए गए फ़ंक्शनों और कोड स्निपेट्स के बारे में आँकड़े देंगे ताकि आप अपनी विश्लेषण प्रक्रिया शुरू कर सकें।
Bughound के बारे में अधिक जानकारी के लिए निम्नलिखित लेख देखें:
यह प्रोजेक्ट GPL-3.0 लाइसेंस के तहत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें।