
Solitude è uno strumento di analisi della privacy che consente a chiunque di condurre le proprie indagini sulla privacy. Che tu sia un curioso principiante o un ricercatore più avanzato, Solitude rende il processo di valutazione della privacy degli utenti all'interno di un'app accessibile a tutti.
Solitude è uno strumento di analisi della privacy che consente a chiunque di condurre le proprie indagini sulla privacy. Che tu sia un curioso principiante o un ricercatore più avanzato, Solitude rende accessibile a tutti il processo di valutazione della privacy degli utenti all'interno di un'app.
Prima di installare Solitude, va notato che Solitude dovrebbe essere eseguito su una rete privata e affidabile. Il modo in cui è attualmente costruita l'interfaccia web di Solitude si basa sul presupposto che gli utenti eseguano lo strumento su una rete privata e affidabile.
Se stai utilizzando Solitude per testare app mobili (speriamo di sì!), dovrebbe essere chiaro che, se stai utilizzando un dispositivo non jailbroken, potresti non essere in grado di catturare tutto il traffico HTTP se l'applicazione o gli SDK di terze parti incorporati nell'app utilizzano il certificate pinning. Il certificate pinning è un meccanismo di sicurezza che garantisce che il server con cui l'app comunica sia quello atteso. Spesso le app e gli SDK utilizzano il certificate pinning per proteggere le loro app nel caso in cui un'autorità di certificazione venga compromessa e un attaccante emetta certificati dannosi, consentendo potenzialmente all'attaccante di osservare o modificare il traffico TLS tra l'app e i server dell'app. Solitude non supporta il bypass del certificate pinning. Lasciamo questo compito agli utenti di Solitude. Detto questo, non mai e poi mai raccomandiamo di fare jailbreak o root del proprio dispositivo mobile personale. Se sei interessato a utilizzare un telefono jailbroken o con root, dovresti usare un dispositivo di test con dati di test per testare le app.
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 (cambia qui la password predefinita e consulta le istruzioni seguenti per modificare le configurazioni del database)
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 (cambia qui la password predefinita e consulta le istruzioni seguenti per modificare le configurazioni del database)
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.pyPer cambiare la password predefinita del database, modifica il file .env con la password che preferisci.
Configura nel file myrules.json tutti i dati che vuoi tracciare. Se viene trovata una corrispondenza in qualsiasi traffico HTTP emesso dall'applicazione web o dall'app mobile, i dati configurati verranno visualizzati nell'interfaccia web insieme al dominio con cui tali dati vengono condivisi.
Solitude esegue un server OpenVPN all'interno di un container docker che inoltra tutto il traffico HTTP a un proxy di intercettazione HTTP (mitmproxy) tramite una funzionalità che utilizza l'API add-on di mitmproxy.
Solitude utilizza regole Yara per cercare in tutto il traffico HTTP che inoltri attraverso lo strumento.
Le regole Yara, sebbene relativamente facili da scrivere, possono essere noiose, quindi Solitude fa parte del lavoro pesante per te.
Nel file myrules.json, definisci una coppia chiave-valore per il tipo di dati che desideri cercare. Nel file myrules.json sono forniti alcuni esempi, ma sentiti libero di aggiungere i tuoi dati. La chiave dovrebbe essere il tipo di dati che stai cercando, ad esempio "Il mio numero di telefono".
Questa chiave viene utilizzata per l'output generato quando viene trovata una corrispondenza. Il valore dovrebbe essere il dato esatto che desideri far corrispondere. Tieni conto dei diversi formati dei dati, quindi potrebbe essere necessario creare più voci per ogni dato. Ad esempio, un numero di telefono o una data di nascita potrebbero avere più formati.
03-03-1991 o March, 3rd 1991. Se desideri aggiungere nuove regole nel file JSON, Solitude genererà regole Yara per te ogni volta che avvii il proxy.
Esempio: "phoneNumber": "555-555-5555", "Address": "123 Sutter Street, San Francisco 94105"
* decodifica ricorsiva base64 e url (le richieste codificate, ad esempio base64>url>base64, possono essere decodificate e cercate)
* supporto protobuf (decodifica il primo strato di qualsiasi richiesta protobuf)
* cerca MD5, SHA1, SHA256 di tutti i dati definiti in myrules.json
* ricerca integrata tramite espressioni regolari per GPS, indirizzo IP interno e indirizzo MAC