
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 لاختبار تطبيقات الأجهزة المحمولة (نأمل أنك تفعل ذلك!) فيجب أن يكون واضحًا أنه إذا كنت تستخدم جهازًا غير مكسور الحماية (غير Jailbroken) فقد لا تتمكن من التقاط جميع حركة مرور HTTP إذا كان التطبيق أو حزم SDK التابعة لجهات خارجية المدمجة في التطبيق تستخدم تثبيت الشهادة. تثبيت الشهادة هو آلية أمان تضمن أن الخادم الذي يتواصل معه التطبيق هو الخادم المتوقع. غالبًا ما تستخدم التطبيقات وحزم SDK تثبيت الشهادة لحماية تطبيقاتها في حالة تعرض مرجع مصدق (CA) للاختراق وإصدار شهادات ضارة من قبل مهاجم، مما قد يسمح للمهاجم بمراقبة أو تعديل حركة مرور TLS من التطبيق إلى خوادم التطبيق. لا يدعم Solitude تجاوز تثبيت الشهادة. نترك هذا الأمر لمستخدمي Solitude. ومع ذلك، فإننا لا نوصي أبدًا أبدًا بكسر الحماية (Jailbreaking) أو عمل روت (Rooting) لجهازك المحمول الشخصي. إذا كنت مهتمًا باستخدام هاتف مكسور الحماية أو تم عمل روت له، فيجب عليك استخدام جهاز اختبار يحتوي على بيانات اختبار لاختبار التطبيقات.
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 داخل حاوية docker، والذي يقوم بعد ذلك بتوجيه جميع حركة مرور HTTP إلى وكيل اعتراض HTTP (mitmproxy) من خلال ميزة تستخدم واجهة برمجة تطبيقات الإضافات (add-on API) في mitmproxy.
يستخدم Solitude قواعد Yara للبحث في جميع حركة مرور HTTP التي تمررها عبر الأداة. قواعد Yara على الرغم من سهولة كتابتها نسبيًا إلا أنها قد تكون مملة، لذا يقوم Solitude ببعض العمل الشاق نيابة عنك. في ملف myrules.json، عرّف زوج مفتاح وقيمة لنوع البيانات الذي تريد البحث عنه. توجد بعض الأمثلة مقدمة في ملف myrules.json، لكن لا تتردد في إضافة بياناتك الخاصة. يجب أن يكون المفتاح هو نوع البيانات التي تبحث عنها مثل "رقم هاتفي". يُستخدم هذا المفتاح للمخرجات التي يتم إنشاؤها عند العثور على تطابق. يجب أن تكون القيمة هي البيانات الدقيقة التي تريد مطابقتها. ضع في الاعتبار تنسيقات البيانات المختلفة، لذلك قد يكون من الضروري إنشاء إدخالات متعددة لكل جزء من البيانات. على سبيل المثال، قد يكون لرقم الهاتف أو تاريخ الميلاد تنسيقات متعددة. 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)
* يبحث عن MD5 وSHA1 وSHA256 لجميع البيانات المعرفة في myrules.json
* عمليات بحث مدمجة بتعبيرات نمطية (Regex) لعناوين GPS وعناوين IP الداخلية وعناوين Mac