
Solitude is a privacy analysis tool that enables anyone to conduct their own privacy investigations. Whether a curious novice or a more advanced researcher, Solitude makes the process of evaluating user privacy within an app accessible for everyone.
Solitude एक गोपनीयता विश्लेषण उपकरण है जो किसी को भी अपनी स्वयं की गोपनीयता जाँच करने में सक्षम बनाता है। चाहे आप एक जिज्ञासु नौसिखिया हों या एक अधिक उन्नत शोधकर्ता, Solitude किसी ऐप के भीतर उपयोगकर्ता गोपनीयता का मूल्यांकन करने की प्रक्रिया को सभी के लिए सुलभ बनाता है।
Solitude स्थापित करने से पहले यह ध्यान दिया जाना चाहिए कि Solitude को एक निजी नेटवर्क पर चलाया जाना चाहिए जो विश्वसनीय हो। Solitude वेब ऐप इंटरफ़ेस जिस तरह से वर्तमान में निर्मित है वह इस धारणा पर आधारित है कि उपयोगकर्ता उपकरण को एक निजी विश्वसनीय नेटवर्क पर चलाएंगे।
यदि आप मोबाइल ऐप्स के परीक्षण के लिए Solitude का उपयोग कर रहे हैं (हमें उम्मीद है कि आप कर रहे हैं!) तो यह स्पष्ट होना चाहिए कि यदि आप एक गैर-जेलब्रोकन डिवाइस का उपयोग कर रहे हैं तो हो सकता है कि आप सभी HTTP ट्रैफ़िक को कैप्चर न कर पाएं यदि एप्लिकेशन या ऐप में एम्बेड किए गए तृतीय-पक्ष SDK सर्टिफिकेट पिनिंग का उपयोग करते हैं। सर्टिफिकेट पिनिंग एक सुरक्षा तंत्र है जो यह सुनिश्चित करता है कि ऐप जिस सर्वर के साथ संचार कर रहा है वह वही है जिसकी वह अपेक्षा करता है। ऐप्स और SDK अक्सर सर्टिफिकेट पिनिंग का उपयोग करते हैं ताकि उनके ऐप्स को उस स्थिति में सुरक्षित किया जा सके जब कोई प्रमाणपत्र प्राधिकरण (certificate authority) समझौता हो जाता है और हमलावर द्वारा दुर्भावनापूर्ण प्रमाणपत्र जारी किए जाते हैं जो हमलावर को ऐप से ऐप सर्वर तक TLS ट्रैफ़िक को देखने या संशोधित करने की अनुमति दे सकते हैं। Solitude सर्टिफिकेट पिनिंग बायपास का समर्थन नहीं करता है। हम इसे Solitude के उपयोगकर्ताओं पर छोड़ देते हैं। यह कहने के साथ ही हम कभी भी अपने व्यक्तिगत मोबाइल डिवाइस को जेलब्रोक या रूट करने की अनुशंसा नहीं करते हैं। यदि आप जेलब्रोकन या रूटेड फोन का उपयोग करने में रुचि रखते हैं तो आपको ऐप्स का परीक्षण करने के लिए टेस्ट डेटा वाले एक परीक्षण डिवाइस का उपयोग करना चाहिए।
git clone https://github.com/nccgroup/Solitudedocker-compose -f docker-compose-prod.yml builddocker-compose -f docker-compose-prod.yml upbrew install mysqldocker run -p 3306:3306 -d --name mysql -e MYSQL_ROOT_PASSWORD=solitude mysql (यहां डिफ़ॉल्ट पासवर्ड बदलें और डेटाबेस कॉन्फ़िगरेशन बदलने के लिए नीचे दिए गए निर्देश देखें)
git clone https://github.com/nccgroup/Solitudecd Solitude && python3 -m venv venvsource venv/bin/activatepip3 install -r requirements.txtpython3 run.pydocker-compose -f docker-compose-prod.yml builddocker-compose -f docker-compose-prod.yml updocker run -p 3306:3306 -d --name mysql -e MYSQL_ROOT_PASSWORD=solitude mysql (यहां डिफ़ॉल्ट पासवर्ड बदलें और डेटाबेस कॉन्फ़िगरेशन बदलने के लिए नीचे दिए गए निर्देश देखें)
git clone https://github.com/nccgroup/Solitudecd Solitude && python3 -m venv venvsource venv/bin/activatesudo apt-get install libmysqlclient-devpip3 install -r requirements.txtpython3 run.pyडिफ़ॉल्ट डेटाबेस पासवर्ड बदलने के लिए। .env फ़ाइल को अपनी पसंद के पासवर्ड में संपादित करें।
myrules.json फ़ाइल में आप जिस भी डेटा को ट्रेस करना चाहते हैं उसे कॉन्फ़िगर करें। यदि वेब एप्लिकेशन या मोबाइल ऐप से निकलने वाले किसी भी HTTP ट्रैफ़िक में मैच
पाया जाता है तो कॉन्फ़िगर किया गया डेटा वेब इंटरफ़ेस में प्रदर्शित किया जाएगा और साथ ही वह डोमेन भी जिसके साथ डेटा साझा किया जा रहा है।
Solitude एक डॉकर कंटेनर के अंदर एक OpenVPN सर्वर चलाता है जो फिर सभी HTTP ट्रैफ़िक को एक HTTP इंटरसेप्टिंग प्रॉक्सी (mitmproxy) तक फॉरवर्ड करता है, जो mitmproxy में ऐड-ऑन API का उपयोग करने वाली एक सुविधा के माध्यम से होता है।
Solitude उन सभी HTTP ट्रैफ़िक को खोजने के लिए Yara नियमों का उपयोग करता है जिन्हें आप उपकरण के माध्यम से प्रॉक्सी करते हैं।
Yara नियम लिखना अपेक्षाकृत आसान होते हुए भी कष्टदायक हो सकते हैं, इसलिए Solitude आपके लिए कुछ भारी-भरकम काम खुद कर लेता है।
myrules.json फ़ाइल में, उस डेटा के प्रकार की एक key-value जोड़ी परिभाषित करें जिसे आप खोजना चाहते हैं। कुछ उदाहरण
myrules.json में दिए गए हैं लेकिन बेझिझक अपना स्वयं का डेटा जोड़ें। key आपके द्वारा खोजे जा रहे डेटा का प्रकार होना चाहिए जैसे "मेरा फ़ोन नंबर"।
इस key का उपयोग मैच मिलने पर उत्पन्न आउटपुट के लिए किया जाता है। value वह सटीक डेटा होना चाहिए जिसे आप मैच करना चाहते हैं।
विभिन्न डेटा प्रारूपों को ध्यान में रखें, इसलिए प्रत्येक डेटा के लिए अधिक प्रविष्टियाँ बनाना आवश्यक हो सकता है। उदाहरण के लिए एक फ़ोन नंबर या जन्मदिन के कई प्रारूप हो सकते हैं।
03-03-1991 या March, 3rd 1991. यदि आप JSON फ़ाइल में नए नियम जोड़ना चाहते हैं
तो हर बार प्रॉक्सी शुरू करने पर Solitude आपके लिए Yara नियम उत्पन्न करेगा।
उदाहरण: "phoneNumber": "555-555-5555", "Address": "123 Sutter Street, San Francisco 94105"
* base64 और url पुनरावर्ती डिकोडिंग (जो अनुरोध एन्कोडेड हैं जैसे base64>url>base64 उन्हें डिकोड करके खोजा जा सकता है)
* protobuf समर्थन (किसी भी protobuf अनुरोध की पहली परत को डिकोड करता है)
* myrules.json में परिभाषित सभी डेटा के MD5, SHA1, SHA256 की खोज करता है
* अंतर्निहित GPS, आंतरिक IP पता और Mac पता रेगुलर एक्सप्रेशन खोजें