
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.
O Solitude é uma ferramenta de análise de privacidade que permite que qualquer pessoa realize suas próprias investigações de privacidade. Seja um curioso iniciante ou um pesquisador mais avançado, o Solitude torna o processo de avaliação da privacidade do usuário dentro de um aplicativo acessível a todos.
Antes de instalar o Solitude, deve-se observar que o Solitude deve ser executado em uma rede privada confiável. A interface do aplicativo web do Solitude é atualmente construída sob a premissa de que os usuários executarão a ferramenta em uma rede privada confiável.
Se você estiver usando o Solitude para testar aplicativos móveis (esperamos que esteja!), lembre-se de que, se estiver usando um dispositivo sem jailbreak, talvez não consiga capturar todo o tráfego HTTP se o aplicativo ou os SDKs de terceiros incorporados ao aplicativo usarem fixação de certificado. A fixação de certificado é um mecanismo de segurança que garante que o servidor com o qual o aplicativo se comunica é exatamente aquele que ele espera. Aplicativos e SDKs frequentemente usam fixação de certificado para proteger seus aplicativos caso uma autoridade certificadora seja comprometida e certificados maliciosos sejam emitidos por um atacante, o que pode permitir que o atacante observe ou modifique o tráfego TLS do aplicativo para os servidores do aplicativo. O Solitude não oferece suporte a bypass de fixação de certificado. Deixamos isso a cargo dos usuários do Solitude. Dito isso, não recomendamos nunca nunca fazer jailbreak ou root em seu próprio dispositivo móvel pessoal. Se você estiver interessado em usar um telefone com jailbreak ou root, use um dispositivo de teste com dados de teste para testar aplicativos.
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 (altere a senha padrão aqui e veja as instruções abaixo para alterar as configurações do banco de dados)
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 (altere a senha padrão aqui e veja as instruções abaixo para alterar as configurações do banco de dados)
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 alterar a senha padrão do banco de dados, edite o arquivo .env com a senha de sua escolha.
Configure quaisquer dados que você queira rastrear no arquivo myrules.json. Se uma correspondência for encontrada em qualquer tráfego HTTP emitido pelo aplicativo web ou aplicativo móvel, os dados configurados serão exibidos na interface web, juntamente com o domínio com o qual esses dados estão sendo compartilhados.
O Solitude executa um servidor OpenVPN dentro de um contêiner docker, que então encaminha todo o tráfego HTTP para um proxy de interceptação HTTP (mitmproxy) por meio de um recurso que utiliza a API de complementos (add-on) do mitmproxy.
O Solitude utiliza regras Yara para pesquisar em todo o tráfego HTTP que você proxy através da ferramenta.
As regras Yara, embora relativamente fáceis de escrever, podem ser tediosas, então o Solitude faz parte do trabalho pesado para você.
No arquivo myrules.json, defina um par chave-valor com o tipo de dado que você deseja pesquisar. Há alguns exemplos fornecidos no myrules.json, mas sinta-se à vontade para adicionar seus próprios dados. A chave deve ser o tipo de dado que você está pesquisando, como "Meu número de telefone".
Essa chave é usada para a saída gerada quando uma correspondência é encontrada. O valor deve ser o dado exato que você deseja corresponder. Leve em consideração os diferentes formatos de dados, pois pode ser necessário criar mais entradas para cada dado. Por exemplo, um número de telefone ou aniversário pode ter vários formatos.
03-03-1991 ou 3 de março de 1991. Se você quiser adicionar novas regras no arquivo JSON,
o Solitude gerará regras Yara para você sempre que iniciar o proxy.
Exemplo: "phoneNumber": "555-555-5555", "Address": "123 Sutter Street, San Francisco 94105"
* decodificação recursiva de base64 e url (requisições codificadas, por exemplo, base64>url>base64, podem ser decodificadas e pesquisadas)
* suporte a protobuf (decodifica a primeira camada de qualquer requisição protobuf)
* Pesquisa por MD5, SHA1, SHA256 de todos os dados definidos em myrules.json
* Pesquisas integradas por expressões regulares de GPS, endereço IP interno e endereço MAC