
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 es una herramienta de análisis de privacidad que permite a cualquier persona realizar sus propias investigaciones de privacidad. Ya sea un novato curioso o un investigador más avanzado, Solitude hace que el proceso de evaluar la privacidad del usuario dentro de una aplicación sea accesible para todos.
Antes de instalar Solitude, debe tenerse en cuenta que Solitude debe ejecutarse en una red privada y confiable. La forma en que está construida actualmente la interfaz de la aplicación web de Solitude asume que los usuarios ejecutarán la herramienta en una red privada y confiable.
Si estás usando Solitude para probar aplicaciones móviles (¡esperamos que sí!) entonces debe quedar claro que si usas un dispositivo sin jailbreak, es posible que no puedas capturar todo el tráfico HTTP si la aplicación o los SDK de terceros integrados en la app usan fijación de certificados. La fijación de certificados es un mecanismo de seguridad que garantiza que el servidor con el que se comunica la aplicación es el que esta espera. Las aplicaciones y los SDK suelen usar fijación de certificados para proteger sus apps en caso de que una autoridad de certificación se vea comprometida y un atacante emita certificados maliciosos, lo que podría permitir al atacante observar o modificar el tráfico TLS entre la app y los servidores de la aplicación. Solitude no admite evasiones de la fijación de certificados. Esto lo dejamos a los usuarios de Solitude. Dicho esto, no recomendamos nunca jamás hacer jailbreak o root a tu propio dispositivo móvil personal. Si te interesa usar un teléfono con jailbreak o root, debes usar un dispositivo de prueba con datos de prueba para probar aplicaciones.
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 aquí la contraseña predeterminada y consulta las instrucciones a continuación para modificar las configuraciones de la base de datos)
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 aquí la contraseña predeterminada y consulta las instrucciones a continuación para modificar las configuraciones de la base de datos)
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.pyPara cambiar la contraseña predeterminada de la base de datos, edita el archivo .env con la contraseña que elijas.
Configura cualquier dato que quieras rastrear en el archivo myrules.json. Si se encuentra una coincidencia en cualquier tráfico HTTP emitido desde la aplicación web o la aplicación móvil, los datos configurados se mostrarán en la interfaz web junto con el dominio con el que se están compartiendo dichos datos.
Solitude ejecuta un servidor OpenVPN dentro de un contenedor docker que luego reenvía todo el tráfico HTTP a un proxy de intercepción HTTP (mitmproxy) mediante una función que hace uso de la API de complementos (add-on) de mitmproxy.
Solitude utiliza reglas Yara para buscar en todo el tráfico HTTP que atraviesa la herramienta. Las reglas Yara, aunque son relativamente fáciles de escribir, pueden resultar tediosas, por lo que Solitude hace parte del trabajo pesado por ti. En el archivo myrules.json, define un par clave-valor con el tipo de datos que deseas buscar. Hay algunos ejemplos proporcionados en myrules.json, pero siéntete libre de añadir tus propios datos. La clave debe ser el tipo de datos que estás buscando, como "Mi número de teléfono". Esta clave se usa para la salida generada cuando se encuentra una coincidencia. El valor debe ser el dato exacto que deseas hacer coincidir. Ten en cuenta los diferentes formatos de datos, por lo que podría ser necesario crear más entradas para cada dato. Por ejemplo, un número de teléfono o una fecha de cumpleaños pueden tener múltiples formatos: 03-03-1991 o March, 3rd 1991. Si quieres añadir nuevas reglas en el archivo JSON, Solitude generará reglas Yara por ti cada vez que inicies el proxy.
Ejemplo: "phoneNumber": "555-555-5555", "Address": "123 Sutter Street, San Francisco 94105"
* decodificación recursiva base64 y url (las solicitudes que están codificadas, por ejemplo base64>url>base64, pueden decodificarse y buscarse)
* soporte para protobuf (decodifica la primera capa de cualquier solicitud protobuf)
* Busca MD5, SHA1, SHA256 de todos los datos definidos en myrules.json
* Búsquedas integradas mediante expresiones regulares de GPS, dirección IP interna y dirección MAC