“Wrong Way” lek laat echt IP-adres VPN gebruikers zien
Na de het Port Fail beveiligingsprobleem bij sommige VPN providers heeft Perfect Privacy een nieuw lek gevonden. Niet alleen VPN providers die port forwarding ondersteunen hebben dit probleem. Alle providers die het beveiligingsprobleem nog niet hebben aangepakt zijn kwetsbaar.
Wrong Way in het kort
Onder strikte omstandigheden worden packets die het echte IP-adres ontvangt beantwoord door de VPN interface. Hierdoor zijn het echte IP-adres en het IP-adres van de VPN service aan elkaar te linken. Bijvoorbeeld door hackers maar ook door copyrightinstanties zoals BREIN.
Omstandigheden waaronder het Wrong Way lek werkt
De VPN gebruiker heeft een directe verbinding (zonder NAT) met het internet of gebruikt een router die UPnP port forwarding ondersteund. Ook moet de gebruiker een applicatie gebruiken die communiceert via een port. Bijvoorbeeld file sharing applicaties zoals Bittorrent of chat clients als Skype.
Zo werkt een aanval via het Wrong Way lek
De aanvaller (crimineel, copyrightinstantie, overheid of de buurman) gebruikt een Bittorrent client, gaat in een torrent swarm en verzamelt alle IP-adressen en poorten die gebruikt worden. Dit is standaardprocedure van copyrightinstanties om down- en uploaders te traceren.
Daarna scant de aanvaller de hele routable IPV4 range door packets naar alle verzamelde poorten te sturen.
Alle clients in de torrent swarm ontvangen het inkomende packet van de aanvaller via het normale IP-adres maar beantwoorden dit via de VPN. Zo heeft de aanvaller niet alleen je echte IP-adres maar ook het adres van de VPN die je gebruikt.
Oplossing en maatredelen
Dit probleem is niet beperkt tot een bepaald besturingssysteem of VPN protocol. Gebruikers van alle VPN providers die dit probleem nog niet hebben opgelost zijn kwetsbaar.
De beste manier om misbruik te voorkomen is UPnP te deactiveren op je router. Hiermee voorkom je open poorten zelfs als ze door een applicatie geprobed worden.
Linux oplossing
sysctl net.ipv4.conf.*.rp_filter=1
Vervang “*” voor de netwerkinterface. Voorbeeld: Als de VPN “tun0” is en de internet interface “wlp3s0 ist” is de je command:
sysctl net.ipv4.conf.default.rp_filter=1
sysctl net.ipv4.conf.tun0.rp_filter=1
sysctl net.ipv4.conf.wlp3s0.rp_filter=1
Resultaat is dat packets die niet beantwoord worden via dezelfde netwerkinterface gedropt worden. Dezelfde regel moet ook toegevoegd worden voor IPV6:
ip6tables -t raw -A PREROUTING -m rpfilter --invert -j DROP
Mac OS X oplossing
De simpelste manier om de Wrong Way kwetsbaarheid in Mac OS X te vermijden is alle inkomende UDP packets te blokkeren behalve de packets afkomstige van een non-routable adres, het subnetwork van je internetprovider of het IP-adres van de VPN.
In dit voorbeeld is “utun1” de VPN interface. Vervang “IP-ADRES-VAN-VPN-SERVER” in dit voorbeeld door het echte IP-adres van de VPN server die je gebruikt. Deze waarden dien je te vervangen door je eigen VPN interface en IP van de VPN.
echo 'pass in quick proto udp from 10.0.0.0/8 to any
pass in quick proto udp from 192.168.0.0/16 to any
pass in quick proto udp from 172.16.0.0/12 to any
pass in quick proto udp from 169.254.0.0/16 to any
pass in quick proto udp from IP-ADRES-VAN-VPN-SERVER/32 to any
block in quick on ! utun1 proto udp to any' | sudo pfctl -Ef -
Windows oplossing
De rp_filter bestaat niet in Windows maar VPN providers die klanten een eigen VPN applicatie bieden kunnen een firewall rule inbouwen die dit lek dichten. Dit is een oplossing ingebouwd in de VPN applicatie zelf. Serverside verandert er dus niks.
Windows gebruikers die de de officiële OpenVPN applicatie gebruiken zijn kwetsbaar voor dit lek. Gebruik je de officiële OpenVPN applicatie voor Windows en is het niet mogelijk om UPnP uit te schakelen op je router? Dan is de makkelijkste oplossing op de OpenVPN plugin to block all incoming UDP packets via non-VPN interface te gebruiken.