https://github.com/nccgroup/solitude Skip to content Sign up Sign up * Why GitHub? Features - + Mobile - + Actions - + Codespaces - + Packages - + Security - + Code review - + Project management - + Integrations - + GitHub Sponsors - + Customer stories- * Team * Enterprise * Explore + Explore GitHub - Learn and contribute + Topics - + Collections - + Trending - + Learning Lab - + Open source guides - Connect with others + The ReadME Project - + Events - + Community forum - + GitHub Education - + GitHub Stars program - * Marketplace * Pricing Plans - + Compare plans - + Contact Sales - + Education - [ ] [search-key] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up Sign up {{ message }} nccgroup / Solitude * Notifications * Star 39 * Fork 3 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. research.nccgroup.com/2021/03/17/ tool-release-solitude-a-privacy-analysis-tool/ AGPL-3.0 License 39 stars 3 forks Star Notifications * Code * Issues 0 * Pull requests 0 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights main Switch branches/tags [ ] Branches Tags Nothing to show {{ refName }} default View all branches Nothing to show {{ refName }} default View all tags 1 branch 0 tags Go to file Code Clone HTTPS GitHub CLI [https://github.com/n] Use Git or checkout with SVN using the web URL. [gh repo clone nccgro] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Go back Launching Xcode If nothing happens, download Xcode and try again. Go back Launching Visual Studio If nothing happens, download the GitHub extension for Visual Studio and try again. Go back Latest commit @fjord66 fjord66 Merge pull request #1 from nccgroup/master ... 4d04813 Jan 9, 2021 Merge pull request #1 from nccgroup/master Master 4d04813 Git stats * 4 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time bin solitude release Jan 9, 2021 configs solitude release Jan 9, 2021 solitudeCode solitude release Jan 9, 2021 static solitude release Jan 9, 2021 templates solitude release Jan 9, 2021 vpnconfig solitude release Jan 9, 2021 .env solitude release Jan 9, 2021 .gitignore solitude release Jan 9, 2021 Dockerfile.development solitude release Jan 9, 2021 Dockerfile.production solitude release Jan 9, 2021 LICENSE Create LICENSE Dec 24, 2020 README.md solitude release Jan 9, 2021 docker-compose-dev.yml solitude release Jan 9, 2021 docker-compose-prod.yml solitude release Jan 9, 2021 requirements.txt solitude release Jan 9, 2021 run.py solitude release Jan 9, 2021 solitude.py solitude release Jan 9, 2021 solitudeWeb.py solitude release Jan 9, 2021 View code README.md Solitude 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. Install for Mac OS X 1. git clone https://github.com/nccgroup/Solitude 2. Install Docker 3. docker-compose -f docker-compose.prod.yml build 4. docker-compose -f docker-compse.prod.yml up 5. Browse to http://localhost:5000 and follow the instructions to start the VPN server and configure your mobile device with a VPN profile and mitm proxy certificate. Install locally (without docker-compose) on Mac OS X 1. Install Docker 2. brew install mysql 3. Run the mysql docker container: (do this first before installing Solitude as it takes a minute for the container to start) docker run -p 3306:3306 -d --name mysql -e MYSQL_ROOT_PASSWORD= solitude mysql (change the default password here and see instructions below to change database configs) 4. git clone https://github.com/nccgroup/Solitude 5. cd Solitude && python3 -m venv venv 6. source venv/bin/activate 7. pip3 install -r requirements.txt 8. python3 run.py 9. Browse to http://localhost:5000 and configure browser to proxy all HTTP traffic through localhost:8080 Install for Linux 1. Install Docker and Docker-compose 2. docker-compose -f docker-compose.prod.yml build 3. docker-compose -f docker-compse.prod.yml up 4. Browse to http://localhost:5000 and follow the instructions to start the VPN server and configure your mobile device with a VPN profile and mitm proxy certificate. Install locally (without docker-compose) on Linux 1. Install Docker 2. Run the mysql docker container (do this first before installing Solitude as it takes a minute for the container to start) docker run -p 3306:3306 -d --name mysql -e MYSQL_ROOT_PASSWORD= solitude mysql (change the default password here and see instructions below to change database configs) 3. git clone https://github.com/nccgroup/Solitude 4. cd Solitude && python3 -m venv venv 5. source venv/bin/activate 6. sudo apt-get install libmysqlclient-dev 7. pip3 install -r requirements.txt 8. python3 run.py 9. Browse to http://localhost:5000 and configure browser to proxy all HTTP traffic through localhost:8080 Database Config To change the default database password. Edit the .env file to the password of your choosing. Configure Solitude! Configure any of the data you want traced in the myrules.json file. If a match is found in any HTTP traffic being emitted from the web application or mobile app the configured data will be displayed in the web interface and the domain that the data with whom that data is being shared with. How does Solitude work? Solitude runs an OpenVPN server inside of a docker container which then fowards all HTTP traffic to a an HTTP interecpting proxy (mitmproxy) through a feature that makes use of the add-on API in mitmproxy. How does Solitude searching work? Solitude makes use of Yara rules to search through all the HTTP traffic that you proxy through the tool. Yara rules while relatively easy to write can be tedious so solitude does some of the heavy lifting for you. In the myrules.json file, define a key and value you pair of the type of data you would like to search for. There are some examples provided in the myrules.json but feel free to add your own data. The key should be the type of data you are searching for such as "My phone number". This key is used for the output generated when a match is found. The value should be the exact data you would like to match. Take into account different data formats so creating more entry for each piece of data might be necessary. For example a phone number or birthday might have multiple formats. 03-03-1991 or March, 3rd 1991. If you want to add new rules in the JSON file Solitude will generate Yara rules for you each time you start the proxy. Example: "phoneNumber": "555-555-5555", "Address": "123 Sutter Street, San Francisco 94105" Solitude Features * base64 and url recursive decoding (requests that are encoded say base64>url>base64 can be decoded and searched through) * protobuf support (decodes the first layer of any protobuf request) * Searches for MD5, SHA1, SHA256 of all data defined in myrules.json * Built-in GPS, internal IP Address and Mac Address regular expression searches Acknowledgements * Decoders modified from Phorcys recursive decoders: https:// github.com/PiRanhaLysis/Phorcys * Protobuf from BlackBoxProtobuf Thanks Ryan! : https://github.com/ nccgroup/blackboxprotobuf * Theme from Start Bootstrap - SB Admin: https://github.com/ startbootstrap/startbootstrap-sb-admin * VPN Config scripts from Sid Adukia. Thanks Sid! About 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. research.nccgroup.com/2021/03/17/ tool-release-solitude-a-privacy-analysis-tool/ Resources Readme License AGPL-3.0 License Releases No releases published Packages 0 No packages published Languages * CSS 55.1% * Python 31.9% * HTML 7.3% * JavaScript 3.8% * Shell 1.3% * YARA 0.6% * (c) 2021 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.