tarnish
tarnish एक स्थैतिक-विश्लेषण उपकरण है जो शोधकर्ताओं को Chrome एक्सटेंशन की सुरक्षा समीक्षाओं में सहायता करता है। यह अधिकांश नियमित कार्यों को स्वचालित करता है और आपको संभावित सुरक्षा कमज़ोरियों की शीघ्र पहचान करने में मदद करता है। यह उपकरण एक शोध ब्लॉग पोस्ट के साथ आता है जिसे यहाँ पाया जा सकता है। यदि आप इसे सेट करने की परेशानी में नहीं पड़ना चाहते हैं तो आप उपकरण का उपयोग https://thehackerblog.com/tarnish/ पर कर सकते हैं।

अपरिष्कृत सूचना और नोट्स
यह ध्यान दिया जाना चाहिए कि यह एक अपरिष्कृत रिलीज़ है। यह वही स्रोत है जो https://thehackerblog.com/tarnish/ पर तैनात है। भविष्य में मैं इसे साफ़ करके अधिक चलाने योग्य बना सकता हूँ, लेकिन अभी मेरे पास समय नहीं है।
इसे सेट करने के लिए आपको यह समझना होगा कि कैसे:
- S3 बकेट को कॉन्फ़िगर करें
- (यदि स्वचालित स्केलिंग का उपयोग कर रहे हैं) ElasticBeanstalk सेट करें
docker-compose का उपयोग करें
- redis सेट करें
सेटअप कई डिज़ाइन लक्ष्यों के कारण थोड़ा जटिल है:
- Chrome एक्सटेंशन के विरुद्ध प्रभावी रूप से स्थैतिक विश्लेषण करना
- अधिक उदाहरणों के साथ बढ़े हुए कार्यभार के लिए स्वचालित रूप से स्केल अप और स्केल डाउन करना
- बहुत कम बजट पर काम करना (इसलिए Spot Instances के साथ ElasticBeanstalk का उपयोग)
इसे सेट करने का प्रयास करने वाले किसी व्यक्ति की सहायता के लिए कुछ त्वरित नोट्स:
tarnish एक्सटेंशन के विश्लेषण के लिए Python Celery का उपयोग करता है।
- Python Celery कॉन्फ़िगरेशन ब्रोकर के रूप में redis का उपयोग करता है (इसे बनाना होगा)।
- एक्सटेंशन विश्लेषण कार्यों को संसाधित करने वाले वर्कर AWS ElasticBeanstalk spot instances पर चलते हैं। जो लोग इससे अपरिचित हैं, उनके लिए spot instances मूल रूप से अप्रयुक्त कंप्यूटिंग पर बोली लगाना है। यह सेवा को बहुत सस्ते में चलाने की अनुमति देता है।
- वर्कर को संचालित करने के लिए कम से कम एक AWS
t2.medium इंस्टेंस आवश्यक है।
tarnish फ्रंटएंड केवल स्थैतिक फ़ाइलों का एक सेट है जिसे स्थैतिक वेब होस्ट-कॉन्फ़िगर्ड S3 बकेट पर अपलोड किया जाता है।
पर्यावरण चर कॉन्फ़िगरेशन के लिए docker-compose.yaml.example देखें। आदर्श रूप से आप ./start.sh चलाएंगे और चीजों को चालू करने के लिए स्थैतिक फ्रंटएंड पर नेविगेट करेंगे। आप स्थैतिक साइट के लिए S3 का उपयोग कर सकते हैं या बस एक सरल स्थैतिक वेबसर्वर जैसे python -m SimpleHTTPServer (आपको मूल मेल सुनिश्चित करने के लिए JavaScript फ़ाइलों को संशोधित करना होगा, आदि) का उपयोग कर सकते हैं।
विशेषताएँ
किसी भी दिए गए Chrome वेबस्टोर लिंक से Chrome एक्सटेंशन खींचता है।
manifest.json दर्शक: एक्सटेंशन के मेनिफेस्ट का JSON-सुंदरित संस्करण प्रदर्शित करता है।
- फिंगरप्रिंट विश्लेषण:
web_accessible_resources का पता लगाना और Chrome एक्सटेंशन फिंगरप्रिंटिंग JavaScript का स्वचालित निर्माण।
- संभावित क्लिकजैकिंग विश्लेषण:
web_accessible_resources निर्देश सेट किए गए एक्सटेंशन HTML पृष्ठों का पता लगाना। ये पृष्ठों के उद्देश्य के आधार पर क्लिकजैकिंग के लिए संभावित रूप से कमज़ोर होते हैं।
- अनुमति चेतावनी दर्शक: सभी Chrome अनुमति प्रॉम्प्ट चेतावनियों की सूची दिखाता है जो उपयोगकर्ता द्वारा एक्सटेंशन स्थापित करने का प्रयास करने पर प्रदर्शित होंगी।
- खतरनाक फ़ंक्शन: खतरनाक फ़ंक्शनों का स्थान दिखाता है जिनका एक हमलावर द्वारा संभावित रूप से शोषण किया जा सकता है (जैसे innerHTML, chrome.tabs.executeScript जैसे फ़ंक्शन)।
- प्रवेश बिंदु: दिखाता है कि एक्सटेंशन उपयोगकर्ता/बाहरी इनपुट कहाँ लेता है। यह एक्सटेंशन की सतह क्षेत्र को समझने और दुर्भावनापूर्ण रूप से तैयार किए गए डेटा को एक्सटेंशन में भेजने के संभावित बिंदुओं को देखने के लिए उपयोगी है।
- खतरनाक फ़ंक्शन और प्रवेश बिंदु दोनों स्कैनर में उनके उत्पन्न अलर्ट के लिए निम्नलिखित हैं:
- प्रासंगिक कोड स्निपेट और पंक्ति जिसने अलर्ट उत्पन्न किया।
- समस्या का विवरण।
- कोड वाली पूर्ण स्रोत फ़ाइल देखने के लिए "फ़ाइल देखें" बटन।
- अलर्ट के लिए फ़ाइल का पथ।
- अलर्ट की गई फ़ाइल का पूर्ण Chrome एक्सटेंशन URI।
- फ़ाइल का प्रकार, जैसे बैकग्राउंड पृष्ठ स्क्रिप्ट, कंटेंट स्क्रिप्ट, ब्राउज़र एक्शन, आदि।
- यदि कमज़ोर पंक्ति किसी JavaScript फ़ाइल में है, तो उन सभी पृष्ठों के पथ जहाँ इसे शामिल किया गया है, साथ ही इन पृष्ठों का प्रकार और
web_accessible_resource स्थिति।
- सामग्री सुरक्षा नीति (CSP) विश्लेषक और बायपास जाँचकर्ता: यह आपके एक्सटेंशन की CSP में कमज़ोरियों को इंगित करेगा और साथ ही आपके CSP को बायपास करने के संभावित तरीकों को भी उजागर करेगा (जैसे व्हाइटलिस्टेड CDN, आदि के कारण)।
- ज्ञात कमज़ोर लाइब्रेरीज़: यह किसी भी ज्ञात-कमज़ोर JavaScript लाइब्रेरी के उपयोग की जाँच करने के लिए Retire.js का उपयोग करता है।
- एक्सटेंशन और स्वरूपित संस्करण डाउनलोड करें।
- मूल एक्सटेंशन डाउनलोड करें।
- एक्सटेंशन का एक सुंदरित संस्करण डाउनलोड करें (स्वचालित रूप से सुंदरित HTML और JavaScript)।