
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 Web 应用界面的当前构建方式,是基于用户会在受信任的私有网络上运行该工具的假设。
如果你使用 Solitude 测试移动应用(我们希望你是这样的!),那么 你应该清楚,如果你使用的是未越狱的设备,当应用或应用中嵌入的第三方 SDK 使用证书固定时,你可能无法 捕获全部 HTTP 流量。证书固定是一种安全 机制,用于确保应用所通信的服务器正是其预期的服务器。应用和 SDK 经常使用证书固定来保护 其应用,以防证书颁发机构被入侵,攻击者签发恶意 证书,从而使攻击者能够观察或修改 从应用到应用服务器之间的 TLS 流量。 Solitude 不支持绕过证书固定。我们将这一点交由 Solitude 的用户自行处理。话虽如此,我们绝不绝不建议 对您个人的移动设备进行越狱或 root。如果你有兴趣 使用已越狱或已 root 的手机,应使用装有测试 数据的测试设备来测试应用。
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 文件中配置您想要跟踪的任何数据。如果
在 Web 应用或移动应用发出的任何 HTTP 流量中发现匹配项,配置的数据将显示在 Web 界面中,同时显示与之共享该数据的域名。
Solitude 在 docker 容器内运行一个 OpenVPN 服务器,然后通过一个利用 mitmproxy 中 add-on API 的功能, 将所有 HTTP 流量转发到 HTTP 拦截代理(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 请求的第一层)
* 搜索 myrules.json 中定义的所有数据的 MD5、SHA1、SHA256
* 内置 GPS、内部 IP 地址和 Mac 地址正则表达式搜索