A couple of weeks ago, Russian companies received a guideline document explaining how they can detect the presence of a VPN on a device. If a VPN is detected, they are required to fully restrict access to Russian platforms.
In this post, I will cover only 2 major android problems and 1 small iOS problem.
Android
tun0 NetworkInterface
All network interfaces are accessible to all apps on Android. U may say: “I am smart, i’ve installed VPN into separate profile/private space/shelter, so apps from main profile can’t see it”.
Yes, but.
U can try it right now with your VPN app! Install any terminal emulator into profile/private space that is not intended for vpn usage. Enable VPN in other profile and run this command:
curl --interface tun0 ipinfo.io/ip
tun0 here is just common network interface that is present only if VPN is enabled.
You will see your VPN address. No matter where VPN or terminal installed, you can always access all network interfaces.
I tested it with proton VPN on a pixel with GOS. Proton was open in private space, terminal in admin profile and second profile. I always saw proton IP.
Now imagine that your country fight against VPN and every app developed in your country legally obligated to run this command couple times a day, collect logs and send them to government. Oh, wait. You don’t need to imagine.
Russian apps can curl different IP checkers, foreign one, Russian one, use difderent network interfaces (wlan0), compare ip’s, do it multiple times a day, collect results of all such checks.
They can just ping Russian sites and YouTube (which is blocked) and check difference. So many possibilities.
Second phone or web app fix this problem.
Installed apps list
This is simple, any app can access all installed apps in your profile. Russian apps can just collect list of all VPN apps and then compare it against apps on your phone.
You’ve probably noticed that if you’ve ever set up local DNS filtering that runs a local VPN and lets you choose which apps the filtering applies to.
Private space or second profile fix this problem.
iOS
VPN flag
There not much info about iOS right now, but it has flag VPN_IS_ENABLED or something like that and every APP can see it.
This is enough for Russian apps and they can just not open.
They can’t see your VPN ip address as far as we understand.
Web app fix this problem.