
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 ist ein Datenschutz-Analyse-Tool, das es jedem ermöglicht, eigene Datenschutzuntersuchungen durchzuführen. Ob neugieriger Anfänger oder fortgeschrittener Forscher – Solitude macht den Prozess der Bewertung der Privatsphäre von Nutzern innerhalb einer App für alle zugänglich.
Vor der Installation von Solitude sollte beachtet werden, dass Solitude in einem privaten, vertrauenswürdigen Netzwerk ausgeführt werden sollte. Die Benutzeroberfläche der Solitude-Web-App ist derzeit unter der Annahme aufgebaut, dass Benutzer das Tool in einem privaten, vertrauenswürdigen Netzwerk ausführen.
Wenn Sie Solitude zum Testen mobiler Apps verwenden (wir hoffen, Sie tun das!), dann sollte klar sein, dass Sie bei einem nicht gejailbreakten Gerät möglicherweise nicht den gesamten HTTP-Verkehr erfassen können, wenn die Anwendung oder in die App eingebettete SDKs von Drittanbietern Zertifikat-Pinning verwenden. Zertifikat-Pinning ist ein Sicherheitsmechanismus, der sicherstellt, dass der Server, mit dem die App kommuniziert, derjenige ist, den sie erwartet. Apps und SDKs verwenden häufig Zertifikat-Pinning, um ihre Apps für den Fall zu schützen, dass eine Zertifizierungsstelle kompromittiert wird und ein Angreifer bösartige Zertifikate ausstellt, was einem Angreifer ermöglichen könnte, den TLS-Verkehr von der App zu den App-Servern zu beobachten oder zu verändern. Solitude unterstützt keine Umgehung des Zertifikat-Pinnings. Das überlassen wir den Benutzern von Solitude. Abgesehen davon empfehlen wir niemals, niemals, Ihr persönliches Mobilgerät zu jailbreaken oder zu rooten. Wenn Sie daran interessiert sind, ein gejailbreaktes oder gerootetes Telefon zu verwenden, sollten Sie ein Testgerät mit Testdaten zum Testen von Apps verwenden.
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 (ändern Sie hier das Standardpasswort; Anweisungen zum Ändern der Datenbankkonfigurationen finden Sie weiter unten.)
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 (ändern Sie hier das Standardpasswort; Anweisungen zum Ändern der Datenbankkonfigurationen finden Sie weiter unten.)
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.pyUm das Standard-Datenbankkennwort zu ändern, bearbeiten Sie die .env-Datei und tragen Sie das Kennwort Ihrer Wahl ein.
Konfigurieren Sie alle Daten, die Sie nachverfolgen möchten, in der myrules.json-Datei. Wenn eine Übereinstimmung in HTTP-Verkehr gefunden wird, der von der Webanwendung oder mobilen App ausgeht, werden die konfigurierten Daten in der Webschnittstelle sowie die Domain angezeigt, mit der die Daten geteilt werden.
Solitude führt einen OpenVPN-Server in einem Docker-Container aus, der dann den gesamten HTTP-Verkehr über eine Funktion, die die Add-on-API in mitmproxy nutzt, an einen HTTP-Intercepting-Proxy (mitmproxy) weiterleitet.
Solitude verwendet Yara-Regeln, um den gesamten HTTP-Verkehr zu durchsuchen, den Sie über das Tool als Proxy leiten. Yara-Regeln sind zwar relativ einfach zu schreiben, können aber mühsam sein; daher übernimmt Solitude einen Teil der Arbeit für Sie. Definieren Sie in der myrules.json-Datei ein Schlüssel-Wert-Paar für die Art von Daten, nach denen Sie suchen möchten. In der myrules.json sind einige Beispiele enthalten, aber Sie können gerne eigene Daten hinzufügen. Der Schlüssel sollte die Art der Daten sein, nach denen Sie suchen, z. B. „Meine Telefonnummer“. Dieser Schlüssel wird für die Ausgabe verwendet, die bei einer Übereinstimmung erzeugt wird. Der Wert sollte die genauen Daten sein, die Sie abgleichen möchten. Beachten Sie unterschiedliche Datenformate; daher kann es notwendig sein, mehrere Einträge für jedes Datenelement anzulegen. Beispielsweise kann eine Telefonnummer oder ein Geburtsdatum mehrere Formate haben: 03-03-1991 oder 3. März 1991. Wenn Sie neue Regeln in der JSON-Datei hinzufügen möchten, generiert Solitude bei jedem Start des Proxys Yara-Regeln für Sie.
Beispiel: "phoneNumber": "555-555-5555", "Address": "123 Sutter Street, San Francisco 94105"
* base64 and url recursive decoding (requests that are encoded say base64>url>base64 can be decoded and searched through)
* protobuf support (decodes the first layer of any protobuf request)
* Searches for MD5, SHA1, SHA256 of all data defined in myrules.json
* Built-in GPS, internal IP Address and Mac Address regular expression searches