Or, a tale about unexpected ways of revealing users of distributed anonymizer networks.
Users of anonymous networks and browsers are likely to use them to visit primarily blocked/protected sites. At the same time, not all of them expect that the fact of this visit will remain anonymous. If anonymity does not bother you, then the further contents of the article most likely will not interest you.
For the rest of the users, I ask you to follow the cat, where you can get acquainted with the abstract reasoning of a novice paranoid about how users of anonymous browsers can be exposed.
Statement
The author does not bear any responsibility for any attacks of paranoia that you may experience while reading this publication. Well, and for the reliability of the information contained in it.
Attack vectors
In our discussions, we will not go into the intricacies of the functioning of the listed networks and try to hack them. As you know, even in the most advanced means of protection, the bottleneck is the person. Therefore, we will talk about methods that bypass distributed protocols and exploit typical errors of users, settings, or the software itself.
By de-anonymization we will mean disclosing the user’s real IP address.
Fingerprinting
If a user uses the same browser to surf the regular and “anonymous” networks, then he can be easily identified through a fingerprint. The fingerprint is saved from an “anonymous” browser session, and then found in fingerprint databases that are stored by billions of Google, Facebook and other, including government, institutions in different countries..
There are many ways to take fingerprints, and they are all known, so I will not list them here. It is worth using a separate browser to surf the “closed” Internet. And, even there, it is advisable to erase the history after each use.
Ability to access a regular network
Suppose you use a separate browser to surf a “closed” network. But, if this browser retains the fundamental ability to access the regular Internet, bypassing the “secure network”, then a site from the onion/i2p domain can use this opportunity to de-anonymize you by sending a request where necessary. This can be done via HTTP, DNS, WebRTC, etc..
To avoid this, at a minimum, block this browser on your Firewall from all incoming and outgoing connections to all IPs except localhost and the port on which your anonymizing proxy is running.
You will not be able to do this if your anonymizer is built into the browser and works with it in the same process.
In addition, you need to somehow make sure that your browser, under no circumstances, will use the operating system API to resolve DNS names, etc...
You can check the latter by generating a request through the address bar while simultaneously viewing the traffic via wireshark or tcpdump.
Non-standard protocols
Well, besides http:// and https://, there are other protocols that may have their own holes. For example, file:// and smb://, with which you can try to force your browser/OS to send a request to the desired address.
All protocols except http:// https:// must be permanently disabled in the browser.
GPS coordinates/microphone/camera in browser
Obviously, but you can get burned very simply and stupidly.
Holes in the browser
This is a fairly obvious thing, but browsers are a sieve. They need to be updated regularly. But this won’t really save you either. Sooner or later a new hole will appear.
Browser plugins
Yes. Be careful with browser plugins. They may have vulnerabilities. They can see everything you do and, in some cases, can send data externally.
Antiviruses
Your antivirus can de-anonymize you. How?
A site in the onion/i2p domain will simply allow you to download a unique page/file. The browser will save it to disk. Your antivirus, before scanning your file for the "billion" existing viruses, may first look for a hash of this file in the antivirus company's database, or a distributed network connecting all users. Thus, you will be de-anonymized.
OS telemetry
Yes. Perhaps your OS has a built-in antivirus or telemetry tools that are also not above collecting and sending hashes of your files to the clouds".
How to be
I recommend using a virtual machine isolated from the network, which automatically stops when unexpected traffic (other than tor|i2p) is detected from its IP address.
Control must be external. Using another VM or, better yet, another physical host.
I recommend an approach based on three types of traffic from a virtual machine:
Green - only access to the I2P/TOR proxy running on ANOTHER virtual machine. The VM itself should fundamentally not be able to access the open Internet and know the user’s external IP.
Yellow - previously analyzed third-party traffic that was found to be acceptable. It must be completely blocked. Its “tolerance” means that we will not stop the VM when it is detected, but simply block it. These are, for example, Windows attempts to reach Windows Update or send telemetry.
(Just in case, I’ll clarify that the mention of Windows OS here as a guest is more of a joke than a recommendation.)
Red is everything else. Completely blocked. In addition, when detected, the VM is immediately stopped, and the recording of traffic (which is continuously maintained by monitoring tools) and the state of the VM is analyzed. Based on the results, the traffic is either recognized as “yellow” or its source/hole in the system is determined. In the latter case, if the traffic cannot be guaranteed to be recognized as “yellow”, I recommend rolling back the VM to “factory settings”. In general, I recommend reverting to factory settings after each use..
This VM should not be used for anything other than surfing secure networks. And, be careful with the license software keys, MAC addresses and hardware serial numbers that the OS of this VM sees. Because all this can be successfully leaked through a secure network without triggering automatic shutdown mechanisms for the VM. For this reason, I highly recommend not doing all this on real hardware..
Cameras/microphones within reach
Cameras are a fairly obvious thing. I hope no one will think of climbing closed sites on camera. About microphones on other devices - this is not entirely obvious, but.
When you type a message on a “secure” site, this site (or a script inserted there) can measure the intervals between keystrokes on the keyboard.
Interestingly, this information can be extracted even from a protected/encrypted TCP/HTTPS user session by measuring the intervals between IP packets.
A microphone (for example, in your cell phone) within reach can do the same thing. Based on this, you can create a special index which, by analogy with the service for determining the name of a musical composition playing in the background, can determine that it is you who are typing the message.
Disabling JS partially helps, but mouse clicks when navigating through pages do not disappear, so keep microphones away from your workplace.
P.S. Happy paranoia, comrades.!