
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 в его текущем виде предполагает, что пользователи будут запускать инструмент в частной доверенной сети.
Если вы используете Solitude для тестирования мобильных приложений (на что мы надеемся!), то должно быть понятно, что при использовании устройства без джейлбрейка вы можете не перехватить весь HTTP-трафик, если приложение или сторонние SDK, встроенные в приложение, используют закрепление сертификатов. Закрепление сертификатов — это механизм безопасности, который гарантирует, что сервер, с которым общается приложение, является тем, с которым оно и ожидает взаимодействовать. Приложения и SDK часто используют закрепление сертификатов для защиты своих приложений на случай, если центр сертификации будет скомпрометирован и злоумышленник выпустит вредоносные сертификаты, что может позволить ему наблюдать или изменять TLS-трафик между приложением и серверами приложения. Solitude не поддерживает обход закрепления сертификатов. Мы оставляем это на усмотрение пользователей Solitude. При этом мы никогда-никогда не рекомендуем выполнять джейлбрейк или рутинг вашего личного мобильного устройства. Если вы заинтересованы в использовании джейлбрейкнутого или рутированного телефона, используйте тестовое устройство с тестовыми данными для тестирования приложений.
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. Если совпадение
будет найдено в любом HTTP-трафике, исходящем от веб-приложения или мобильного приложения, настроенные данные будут отображены в веб-интерфейсе вместе с доменом, с которым эти данные передаются.
Solitude запускает OpenVPN-сервер внутри docker-контейнера, который затем перенаправляет весь HTTP-трафик на HTTP-перехватывающий прокси (mitmproxy) через функцию, использующую API аддонов 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-запроса)
* Поиск MD5, SHA1, SHA256 для всех данных, определённых в myrules.json
* Встроенные регулярные выражения для поиска GPS-координат, внутренних IP-адресов и MAC-адресов