
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がcertficate pinningを使用している場合に、すべてのHTTPトラフィックをキャプチャできない可能性があることを明確にしておくべきです。証明書ピンニングは、アプリが通信しているサーバーが期待どおりのサーバーであることを保証するセキュリティメカニズムです。アプリや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ファイルで追跡したいデータを設定します。Webアプリケーションまたはモバイルアプリから送信されるHTTPトラフィックに一致が見つかった場合、設定したデータと、そのデータが共有されているドメインがWebインターフェースに表示されます。
Solitudeはdockerコンテナ内でOpenVPNサーバーを実行し、mitmproxyのアドオンAPIを利用する機能を通じて、すべてのHTTPトラフィックをHTTPインターセプトプロキシ(mitmproxy)に転送します。
SolitudeはYaraルールを使用して、ツールをプロキシ経由するすべてのHTTPトラフィックを検索します。
Yaraルールは比較的書きやすいものの、退屈な作業になることがあるため、Solitudeがその労力の一部を肩代わりします。
myrules.jsonファイルで、検索したいデータの種類のキーと値のペアを定義します。myrules.jsonにはいくつかの例が用意されていますが、独自のデータを自由に追加してください。キーは、「My phone number」など、検索しているデータの種類を示すものにしてください。
このキーは、一致が見つかったときに生成される出力に使用されます。値は、一致させたい正確なデータにしてください。データ形式が異なる場合があるため、データごとに複数のエントリを作成する必要があるかもしれません。たとえば、電話番号や誕生日には複数の形式がある場合があります。
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アドレスの正規表現検索を内蔵