{"id":13449402,"url":"https://github.com/eth0izzle/Needl","last_synced_at":"2025-03-22T22:33:01.307Z","repository":{"id":37493203,"uuid":"73755262","full_name":"eth0izzle/Needl","owner":"eth0izzle","description":"Take back your privacy. Lose yourself in the haystack.","archived":false,"fork":false,"pushed_at":"2025-02-28T15:45:39.000Z","size":9861,"stargazers_count":565,"open_issues_count":15,"forks_count":52,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-03-21T02:28:16.398Z","etag":null,"topics":["privacy","python"],"latest_commit_sha":null,"homepage":"https://www.darkport.co.uk","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eth0izzle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-11-14T23:11:18.000Z","updated_at":"2025-03-18T20:29:51.000Z","dependencies_parsed_at":"2022-08-08T20:30:40.684Z","dependency_job_id":null,"html_url":"https://github.com/eth0izzle/Needl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eth0izzle%2FNeedl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eth0izzle%2FNeedl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eth0izzle%2FNeedl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eth0izzle%2FNeedl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eth0izzle","download_url":"https://codeload.github.com/eth0izzle/Needl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245029177,"owners_count":20549658,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["privacy","python"],"created_at":"2024-07-31T06:00:37.121Z","updated_at":"2025-03-22T22:33:01.290Z","avatar_url":"https://github.com/eth0izzle.png","language":"Python","readme":"# 🚨 Needl is no longer maintained. If you need support or consultation for your privacy endeavours, drop me an e-mail paul@darkport.co.uk 🚨\n\n# Needl\n\n**Take back your privacy. Lose yourself in the haystack.**\n\nYour ISP is most likely tracking your browsing habits and selling them to marketing agencies (albeit anonymised). Or worse, making your browsing history available to law enforcement at the hint of a Subpoena. **Needl** will generate random Internet traffic in an attempt to conceal your legitimate traffic, essentially making your data the **Needl**e in the haystack and thus harder to find. The goal is to make it harder for your ISP, government, etc to track your browsing history and habits.\n\nIt's not perfect. But it's a start. Have an idea? [Get involved](CONTRIBUTING.md)!\n\n![Demo](https://pbs.twimg.com/media/CxeQsH5XAAAp_vN.jpg:large)\n\nImplemented modules:\n\n- **Google**: generates a random search string, searches Google and clicks on a random result.\n- **Alexa**: visits a website from the Alexa Top 1 Million list. (**warning**: contains a lot of porn websites)\n- **Twitter**: generates a popular English name and visits their profile; performs random keyword searches\n- **DNS**: produces random DNS queries from the Alexa Top 1 Million list.\n- **Spotify**: random searches for Spotify artists\n\nModule ideas:\n\n- **WhatsApp**\n- **Facebook Messenger**\n\n## Installation\n\nNeedl should work pretty much any Linux system with Python 3.0+ installed.\n\n1. `cd /opt`\n2. `git clone https://github.com/eth0izzle/needl.git`\n3. `pip3 install -r requirements.txt`\n4. Download [ChromeDriver](https://sites.google.com/a/chromium.org/chromedriver/downloads) for your platform (requires Chrome) and place in ./data.\n5. `python3 needl.py`\n\n## Usage\n\nNeedl runs as a daemon and will happily sit in the background chomping away 24/7, 365. Each module (task) has scheduled actions, for example random DNS queries will happen every 1 to 3 minutes. You can configure the intervals within `./data/settings.yaml`.\n\n    usage: needl.py [-h] [--datadir DATADIR] [-d] [-v] [--logfile LOGFILE]\n                    [--pidfile PIDFILE]\n    \n    Take back your privacy. Lose yourself in the haystack.\n    \n    optional arguments:\n      -h, --help         show this help message and exit\n      --datadir DATADIR  Data directory\n      -d, --daemon       Run as a deamon\n      -v, --verbose      Increase logging\n      --logfile LOGFILE  Log to this file. Default is stdout.\n      --pidfile PIDFILE  Save process PID to this file. Default is /tmp/needl.pid.\n                         Only valid when running as a daemon.\n\n## F.A.Qs\n\n1. **Why not just use a VPN/Tor?**\nAnd you should! Needl does not protect your legitimate traffic in any way. It simply generates more.\n\n2. **By using Needl will my legitimate traffic be hidden/protected/safe?**\nNo. This isn't the goal of Needl. It's purpose is to generate more traffic to make it *harder* to identify your legitimate traffic. There's no evidence to suggest this actually works - it's a proof of concept.\n\n3. **Can [insert service here] differentiate between Needl and my legitimate requests?**\nIn theory, yes. [insert service here] can track you with Cookies, Session data or *algorithms*. Needl will tackle this in the future.\n\n4. **Where are your tests?!?**\nSubmit a pull request. _Please_.\n\n## Contributing\n\nCheck out the [issue tracker](https://github.com/eth0izzle/needl/issues) and see what tickles your fancy.\n\n1. Fork it, baby!\n2. Create your feature branch: `git checkout -b my-new-feature`\n3. Commit your changes: `git commit -am 'Add some feature'`\n4. Push to the branch: `git push origin my-new-feature`\n5. Submit a pull request\n\n## License\n\nMIT. See LICENSE\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feth0izzle%2FNeedl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feth0izzle%2FNeedl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feth0izzle%2FNeedl/lists"}