Novel Attack Against Virtually All VPN Apps Neuters Their Entire Purpose (arstechnica.com) 114
Researchers have discovered a new attack that can force VPN applications to route traffic outside the encrypted tunnel, thereby exposing the user's traffic to potential snooping or manipulation. This vulnerability, named TunnelVision, is found in almost all VPNs on non-Linux and non-Android systems. It's believe that the vulnerability "may have been possible since 2002 and may already have been discovered and used in the wild since then," reports Ars Technica. From the report: The effect of TunnelVision is "the victim's traffic is now decloaked and being routed through the attacker directly," a video demonstration explained. "The attacker can read, drop or modify the leaked traffic and the victim maintains their connection to both the VPN and the Internet." The attack works by manipulating the DHCP server that allocates IP addresses to devices trying to connect to the local network. A setting known as option 121 allows the DHCP server to override default routing rules that send VPN traffic through a local IP address that initiates the encrypted tunnel. By using option 121 to route VPN traffic through the DHCP server, the attack diverts the data to the DHCP server itself. [...]
The attack can most effectively be carried out by a person who has administrative control over the network the target is connecting to. In that scenario, the attacker configures the DHCP server to use option 121. It's also possible for people who can connect to the network as an unprivileged user to perform the attack by setting up their own rogue DHCP server. The attack allows some or all traffic to be routed through the unencrypted tunnel. In either case, the VPN application will report that all data is being sent through the protected connection. Any traffic that's diverted away from this tunnel will not be encrypted by the VPN and the Internet IP address viewable by the remote user will belong to the network the VPN user is connected to, rather than one designated by the VPN app.
Interestingly, Android is the only operating system that fully immunizes VPN apps from the attack because it doesn't implement option 121. For all other OSes, there are no complete fixes. When apps run on Linux there's a setting that minimizes the effects, but even then TunnelVision can be used to exploit a side channel that can be used to de-anonymize destination traffic and perform targeted denial-of-service attacks. Network firewalls can also be configured to deny inbound and outbound traffic to and from the physical interface. This remedy is problematic for two reasons: (1) a VPN user connecting to an untrusted network has no ability to control the firewall and (2) it opens the same side channel present with the Linux mitigation. The most effective fixes are to run the VPN inside of a virtual machine whose network adapter isn't in bridged mode or to connect the VPN to the Internet through the Wi-Fi network of a cellular device. You can learn more about the research here.
The attack can most effectively be carried out by a person who has administrative control over the network the target is connecting to. In that scenario, the attacker configures the DHCP server to use option 121. It's also possible for people who can connect to the network as an unprivileged user to perform the attack by setting up their own rogue DHCP server. The attack allows some or all traffic to be routed through the unencrypted tunnel. In either case, the VPN application will report that all data is being sent through the protected connection. Any traffic that's diverted away from this tunnel will not be encrypted by the VPN and the Internet IP address viewable by the remote user will belong to the network the VPN user is connected to, rather than one designated by the VPN app.
Interestingly, Android is the only operating system that fully immunizes VPN apps from the attack because it doesn't implement option 121. For all other OSes, there are no complete fixes. When apps run on Linux there's a setting that minimizes the effects, but even then TunnelVision can be used to exploit a side channel that can be used to de-anonymize destination traffic and perform targeted denial-of-service attacks. Network firewalls can also be configured to deny inbound and outbound traffic to and from the physical interface. This remedy is problematic for two reasons: (1) a VPN user connecting to an untrusted network has no ability to control the firewall and (2) it opens the same side channel present with the Linux mitigation. The most effective fixes are to run the VPN inside of a virtual machine whose network adapter isn't in bridged mode or to connect the VPN to the Internet through the Wi-Fi network of a cellular device. You can learn more about the research here.
Um... (Score:5, Insightful)
If you can already set up a rogue DHCP server on my network that can hand out an address to a VPN client before my own, my network is already lost.
Re:Um... (Score:5, Insightful)
If you can already set up a rogue DHCP server on my network that can hand out an address to a VPN client before my own, my network is already lost.
This is true, but I suspect many folks who normally would VPN in public spaces like coffee shops or hotels will now be thinking twice and/or causing additional headaches for their IT department.
Re: (Score:2)
but I suspect many folks who normally would VPN in public spaces like coffee shops or hotels will now be thinking twice
What I say is plug a hardware mini-router GL-MT300N-V2 in to your laptops instead of connecting the laptop directly to the Public WiFi.
The mini-router serves the DHCP to your laptop, and you choose which WiFi network to connect to.
Basically, a Mini-router acts as a Condom shielding the laptop from the rest of the Local network, which a VPN alone does not entirely do.
Thus at no point can se
Re: (Score:2)
Maybe route -n; route del ? I usually do route -n after connecting to the vpn. Also get ip from dhcp, then configure static ip with the given ip after that etc.
Re: (Score:2)
Re:Um... (Score:5, Interesting)
don't need to be rogue and act as an actual DHCP - you just need to send DHCP messages....
not hard to craft a DHCP FORCERENEW message with modified routes that looks authentic.... hop on a network, start updating clients, watch traffic and then drop off
Re:Um... (Score:5, Interesting)
Many of today's "vulnerabilities" are just generation derp discovering how things are supposed to work without understanding any of it and cooking up a media hype in hopes of being awarded the contract to "fix" the "problem" by a bunch of other idiots. (The C-Level kind.)
Hold on to your old equipment folks, you'll need it again when the hysteria finally ends. After they've managed to break everything else.....
Consider public WiFi (Score:5, Informative)
People often recommend using VPNs to protect traffic when using public WiFi networks, etc. The hypothetical attack would be a malicious public WiFi network using a DHCP server that sets static routes for the IP addresses of servers they want to intercept traffic to. The static routes described in DHCP take precedence over the default route for the VPN.
For example, suppose I want to intercept traffic to Slashdot:
Re:Consider public WiFi (Score:5, Informative)
Your VPN creates a default route leading to its virtual interface to send all IP traffic across the tunnel, but the static routes configured via DHCP take precedence
This is one possibility, but your VPN app does not Have to work this way. You can also write the VPN app to periodically scan the routing tables and Suspend the network connection with an Alert Popup displayed if a New route is detected that was not present when the VPN connection started.
You can have the VPN app so that when it first connects, It will install a more-specific route for every IP address covered by a route entry the DHCP client installed.
A /32 entry in the table with a metric of 1 can't be overridden by the DHCP client. If you are scanning the table every 5 seconds, then your adversary can't pull a whole browser session off the VPN, And the user will be notified about the local attack.
On linux you can create IP RULE entries that indicate which routing table to use, then create rules that say Every destination IP address except for your Router IP, and your VPN Endpoint IP use a different routing table ID, which you leave empty except for the one default route pointing to your VPN's virtual interface.
Re: (Score:2)
Re: (Score:2)
Yes, I realise Cisco VPN software does that on Windows. However, on Linux and macOS it can't completely take over routing. It adds a high-priority route to send all traffic (besides the 127.0.0.0/8 loopback subnet) over the VPN. On Linux or macOS, a user who can sudo can still change the routing table afterwards.
But that aside, VPN software gen
Re: (Score:3)
Re: (Score:2)
But that's the point, people use a VPN when connecting to a network they already don't trust (eg public wifi).
Re: (Score:2)
But that's the point, people use a VPN when connecting to a network they already don't trust (eg public wifi).
I'm not connecting to the public wifi. I only use it to deliver the message. This attack seems to disable VPN by breaking into the site that I'm connecting to. Not the public wifi near to me, but the final receiver.
Re: (Score:2)
And with this, whatever the poor user is connecting to can also be lost.
Re: (Score:2)
One of the most common uses of VPNs is with other people's networks that you have no control over. Hotels/café WiFi, and of course the cellular network.
Not needing to trust the network is one of the main benefits.
30 years of the Internet and still no password (Score:2)
Is someone tip-toeing around the words "Microsoft Windows": To be fair, this defect can be enabled on Linux too.
This has some value has a 'Reset Config' command but who decided a reset command didn't require a password?
Re: (Score:2)
Re: (Score:2)
doesn't seem to add up to anything real (Score:3)
Publish or perish. We're seeing a lot of ado about nothing for the sake of writers and publishers filling empty space. This feels like a new type of bait and switch to have something to sell advertisers.
Re: doesn't seem to add up to anything real (Score:5, Informative)
Re: (Score:2)
The kinds of attacks th
Re: doesn't seem to add up to anything real (Score:4, Informative)
A proper VPN wouldn't be affected by this. Why? Because a proper VPN validates the server identity, and has pre-shared secrets on both ends of the connection.
You don't seem to understand the problem either. This VPN isn't connecting to a remote server. This is literally a network level attack on routes that your VPN explicitly says it will *not* encrypt. If I run a VPN tunnel I still want to be able to access my local printer, for that I need non-encrypted routes. Nearly all VPN apps offer this, regardless of how "proper" they may be. It's a fundamental network option for managing encrypted tunnels. Worse still when it's done on a port / application level with split tunnels.
The "proper" VPN app has nothing to validate here.
Re: (Score:3)
Now if the guys at Wikipedia don't watch out, someone with access to the wikipedia network could tell my computer and every other computer "www.wikipedia.org is on your local network", just like "office printer". So traffic to this site goes directly and not through the VPN. If I'm sitting at Starbucks with a totally unsecured network, doesn't matter.
Re: (Score:2)
You are describing the situation with Mullvad, except that Mullvad takes the opposite approach: your address is the one which its server has, and consequently you will not be able to access anything on the LAN as long as you are connected to Mullvad.
Unless you explicitly give a specified application the ability to connect from the base system. Which, for the sake of security, though at the cost of a little convenience, you should not do.
This is why Mullvad, when it considered this exploit back in last Aug
Re: (Score:2)
Except it's not the guys at Wikipedia that can cause this redirect, it's the guy running a rogue DHCP server on the local network, possibly even a hostile network admin, that gets to say "The next hop for the IP address of Wikipedia is still [default gateway]. Ignore the VPN." This would result in wikipedia traffic staying outside the VPN tunnel and just being routed like normal. They also could have said the next-hop is [transparent-proxy] which would allow them to see all the traffic with one less layer o
Re: (Score:2)
Mullvad as a for instance will block printing to a LAN printer when connected to the LAN.
There is an option to specify particular apps which will be allowed to bypass the VPN.
Re: (Score:2)
Yes blocking some of the fundamental functionality of a VPN will do it. I'm calling out the OP for claiming that "proper VPNs" are safe. There's nothing "proper" about a VPN that disables some functionality that is standard as part of VPNs, such as the ability to route non encrypted traffic to a local network. It's a no true Scotsman fallacy, except that they aren't saying the true Scotsman wears a kilt and plays bagpipes, but rather that *THAT* isn't the true Scotsman and the true Scotsman is the one dress
Re: doesn't seem to add up to anything real (Score:2)
How does that break the TLS at wikipedia?
Re: (Score:2)
How does that break the TLS at wikipedia?
That's what you call "defense in depth". https and VPN are completely independent. If you wanted to use https over VPN, you get https without VPN instead and the hacker still has a huge problem. If you wanted to use http over VPN, you get http without VPN, and everything is in the clear.
You could even send encrypted data (data that you encrypted yourself) over http through VPN, so you get encrypted data, sent in the clear. The hacker still needs to decrypt your data.
If there is other encryption that
Re: doesn't seem to add up to anything real (Score:2)
And how would they know 'I' was making the requests?
Re: (Score:3)
It does not: TLS happens at a higher layer that isn't affected by routing or tunneling. The attacker can't break that with this attack, but they will be able to capture the TLS encrypted data (which they wouldn't, or would be harder, with a VPN), and any more importantly any unencrypted data (including, notably, most DNS requests). And if they *do* have a TLS-breaking attack (like a stolen certificate), they will then be able to MITM it, which they wouldn't if the VPN was working properly (not without also
Re: doesn't seem to add up to anything real (Score:2)
So, how would that be impacted by a static DNS, like 8.8.8.8?
Re: (Score:2)
Oh crap! I have several windows boxes (Score:2)
But even on those I boot to Linux if I need to do something shady over a VPN.
Can VPN clients detect this? (Score:2)
Is it possible for a VPN client on Windows to detect that this has happened and warn the user?
Re: (Score:2)
Probably yes, if they use packet capture. If not, then the detection could be done with a separate utility. Such an utility will require administrator access on your computer, of course.
Re: (Score:2)
The VPN client doesn't need to capture any packets, it just needs to look for a dodgy routing table. In the threat case, the VPN client is already injecting a default route, so it must have access to the routing table already.
Re: (Score:2)
It's not certain that the Windows APIs used for examining the routing table will be able to detect the DHCP injection. It might well be transparent. At first glance, MS documentation is not clear about that, so probably an experiment is needed.
OTOH, a sniffer looking for the specific malicious DHCP option in the incoming traffic is a surefire way to detect the problem.
Re: (Score:2)
What's not clear about GetIpForwardTable2() putting MIB_IPPROTO_NETMGMT into the source Protocol field of the MIB row, or NlroDHCP in the Origin field?
Re: (Score:2)
HTTPS (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
HTTPS still leaks the site name unless you're using ESNI which is not widely used yet.
Re: (Score:2)
Paired with a poisoned DNS server and a shady SSL cert, you can MIM sites with still having the client think things are good.
Trying to process this logically.... (Score:2)
Re: (Score:2)
Re:Trying to process this logically.... (Score:4)
The software which is on your machine and changes the routing table is called a DHCP client and you installed it. It adds routes when it receives them from a DHCP server in an option 121. Note that I wrote "a DHCP server", not "the DHCP server".
Re: Trying to process this logically.... (Score:2)
Weird things tend to happen when you have multiple DHCP servers. Like traffic being randomly split between them.
I tried to use my own DHCP server to make up for Comcast's passport implementation. It didn't work. I put the thing in bridge mode, and built a pfSense router. It's too bad, because the XB8 had a very decent WiFi AP. But that gets disabled in bridge mode obviously.
The obvious solution is to use TLS for DHCP. /s
Re: (Score:2)
Re: Trying to process this logically.... (Score:2)
Re: (Score:2)
Re: Trying to process this logically.... (Score:2)
Re: (Score:2)
I am not a c
Re: (Score:2)
Doesn't matter what the routing table says, the VPN software is only going to send encrypted data. You can't tell the routing table "only send unencrypted data".
That's not right.
Here's a vendor support feature from Cisco that results in encrypted VPN traffic for some subnet destinations and clear text traffic going over your normal connection for other subnets:
https://www.google.com/search?... [google.com]
Split tunnel support on *nix just used native /sbin/route commands to achieve that.
I manually do this myself on nearly all my VPN connections. I limit them so that only the destinations I want go over the VPN. Even if the VPN sets up a default route to push all traffic over th
Re: Trying to process this logically.... (Score:3)
Microsoft did not design DHCP.
https://www.isc.org/dhcphistory/
Of limited use then the VPN is really private (Score:2)
The researchers assume that the VPN is used to hide which sites are accessed on the internet. For this purpose the attack will work.
It will not work if you are using the VPN to access hosts that are not accessible from the internet since the attacker has no way to inject the rerouted traffic into the VPN. E.g., if you use VPN to access your IMAP server at home, the attacker can try to pose as that IMAP server and might learn you password, but it won't be able to present your inbox.
Re: Of limited use then the VPN is really private (Score:2)
Hopefully you would be using IMAPS in this case and the credentials would not be snoopable.
If you were using plaintext on the internet, you were already compromised.
What the security hole allows for is privacy violations, such as a TLA learning which web sites you visit. Or foreign government tracking political opponents. And so on.
Re: (Score:2)
It will not work if you are using the VPN to access hosts that are not accessible from the internet since the attacker has no way to inject the rerouted traffic into the VPN.
Absolutely true. If your company has its own VPN server and allows you get on their network through VPN, that means you can get on their network through _their_ VPN server. This attack makes your computer try to get to your company's network without using the company's VPN server, and that will just not work.
So what will happen that you and your hundred colleagues working from home can't get on the company network and call IT to figure out what's wrong, and hopefully they can find out what happens and fi
Re: (Score:2)
I would point out that it also compromises some network topology information like which internal IPs are hosting services based on what specific host IPs your computer is trying to send traffic to. That traffic will get sent to an untrusted device which can still record the destination IP and ports from the packet.
Re: (Score:2)
Is that description correct? (Score:2)
So that allows an attacker to watch my traffic with www.amazon.com if they manage to get into amazon's server. Or my traffic with www
Re: (Score:2)
Re: (Score:2)
They don't need to get into amazon's servers though. They just need to have a rogue DHCP server on your local network that manages to respond first (or to control the actual DHCP server on a malicious network). With that they can redirect your Amazon traffic so it never goes through your VPN tunnel at all, and instead gets sent straight to a transparent-proxy to packet capture it for later offline attack. This attack both bypasses the VPN and guarantees a compromised device gets to be between you and the si
Re: Is that description correct? (Score:2)
Re: (Score:2)
Yeah, except it's not the hotel's DHCP server that would need to be attacked -- it would have to be the place where your VPN tunnel terminates. The VPN server, in most implementations, hands out IP address (and other configuration data) via DHCP. The theory is that if the DHCP server is hijacked within your company's network that hosts the VPN server, that they could have some traffic (like www.amazon.com) NOT go through the VPN. This would also then require somebody on the untrusted network (your hotel
Re: (Score:2)
Re: (Score:2)
watch the video; they are not attacking the address assignment on the VPN side, they are attacking the hotel/coffeeshop side.
The entire attack comes down to
1) VPNs that explicitly allow split tunnel (I assume a lot of those consumer vpns probably do so they don't break IPP, home DLNA etc)
2) VPN clients that are to dumb to know how to clean up anything but the default gateway etc
3) abusing routing precedence, traffic headed to the most specific route.
Yes what the VPN daemon should do obviously is:
get the def
Re: (Score:2)
Whitelist DHCP options (Score:2)
It's a good point and most people would be happier with a DHCP client that only pulls address, mask, and gateway.
It might make a secure default but would break some valid configs out there.
Interestingly most of my stuff is static again in the devops era and with security in mind so DHCP is mostly for guest and IoT here at this point. We need to be able to cold-up without dependencies like DHCP. The guest network is the only wifi without a 63-bit PSK so it's also useful for new device onboarding.
Title may be overstating it a bit (Score:2)
"Novel Attack Against Virtually All VPN Apps Neuters Their Entire Purpose"
VPNs aren't just used for anonymity, they're also used for gaining access to privileged content and/or devices, such as accessing work stuff when you're offsite (I believe this was the original use case for a VPN). Much/Most of that traffic should still not be in cleartext, even if it gets forced outside the VPN.
Re: (Score:2)
Re: (Score:2)
Right, but as I said - the title makes a rather ludicrous claim. But that's what bloggers do.
Re: (Score:2)
DHCP is spooky (Score:2)
Long assumed VPN clients had the good sense to prefer their own routes over OS installed ones. Still a bit skeptical as I've been on networks with overlapping networks and the VPN nets always seem to take precedence. 'll have to experiment.
Regardless DHCP is insane as it also enables systems to be totally owned even when turned off thanks to baked in management malware.
Re: (Score:2)
Don't some VPNs block non-VPN traffic? (Score:2)
Don't some VPN softwares block all non-VPN traffic to the non-VPN interface while they are active? I swear I've used one like this before.
Re: (Score:2)
Yes, Mullvad does (among others).
Re: (Score:2)
Re: (Score:2)
It seems like you could do it with any decent firewall easily enough. Certainly on any of the popular Unixlikes it would be reasonably trivial.
Re: (Score:2)
Re: Don't some VPNs block non-VPN traffic? (Score:2)
Re: (Score:2)
law of diminishing security (Score:2)
The degree of security is inversely proportional to an exponential function of complexity.
Found on "non-Linux" systems (Score:2)
Well, that probably means Windows and maybe OS-X. Anybody trusting especially Windows to keep them safe is already a fool, VPN or not. Hence this story is not very relevant.
So Android is not vulnerable (Score:2)
Re: (Score:2)
Re: (Score:3)
Windows 1.0 is one of the most secure systems EVER. A very limited set of applications, plus no network support at all... It's hundred times more secure than OpenBSD. The only thing that approaches this level of security is probably Microsoft BOB.
About stability... this is an entirely different conversation.
Re: Time to play hard ball (Score:2)
You could still get DOS and Windows viruses from floppy disks sent in the mail. Also, they had this thing called a modem. It didn't give you internet access early on. But you could still download software very slowly at 300 or 1200 bps from a BBS. Or the Minitel, with a serial cable. The mail was usually faster, though, to get one's virus fix.
Re: (Score:2)
You can't get Ultrix to access the modern Internet, so I win.
But why not?
AFAIK, late Ultrix versions are BSD 4.2/4.3 hybrids. This means that their IPv4 stack is compatible with modern Internet. Therefore, many things should be able to run - FTP, SMTP mail, Gopher, even some old-style Web sites.
Re: (Score:2)
The Internet officially uses IPv6 since 2017, IPv4 will only get you on the legacy internet.
Re: (Score:3, Insightful)
Hellow, fellow visitor from a parallel universe!
Re: (Score:2)
Re: An easy solution, kids (Score:2)
That's not going to fly if you are using a public network such as hotel Wifi.
You could however share your Android phone's data connection with your other devices.
Re: (Score:2)
Re: Every single vpn is fuuucked (Score:2)
No. It just needs to be an attacker running a DHCP server on the same WAN you are connecting to.
Re: (Score:3)
Very few enterprise VPN servers use DHCP servers on the network (Cisco, Juniper, F5, PaloAlto, etc.) -- but rather use their own DHCP pools that they manage internally to hand out addresses and scopes. I believe Microsoft's uses the DHCP server from Active Directory, but I can't think of any of the larger VPN concentrators that do. This attack seems to be extremely nuanced.
By the way, there is a LOT of security professionals that still setup their VPN's so they only transport traffic that is destine to th
Re: Every single vpn is fuuucked (Score:2)
The issue is with obtaining an IP and routes before the VPN even comes into play, when the client first connects to the WAN. I would guess that most public Wifi networks rely on DHCP.
Of course, you could setup the AP with client device isolation, and that would probably be enough to prevent rogue DCHP servers from affecting other clients.
Re: (Score:2)
Very few enterprise VPN servers use DHCP servers on the network (Cisco, Juniper, F5, PaloAlto, etc.) -- but rather use their own DHCP pools that they manage internally to hand out addresses and scopes.
I think you're confused. First, the computer gets an IP address via a local DHCP server. Then it uses the internet connection associated with that IP address to connect to a VPN server. Then it gets a *second* address from the VPN server. It uses the second address to communicate with the Internet at large and continues to use the first to talk to the VPN server.
The issue is that the first DHCP server can also set static routes. Except for the default route, not all VPN clients clear these static routes fro