Al ruim zeven jaar wordt beloofd dat iedereen IPv6 gaat krijgen. Bij KPN is dat sinds vorig jaar in een kleine stroomversnelling terecht gekomen, bij Ziggo liggen ze al jaren te slapen. Hier leg ik uit waarom IPv6 digitale gelegenheidsdieven kan ontmoedigen...

hetlab logo
Henk van de Kamer

 

In de vorige aflevering vertelde ik over een Synology DS720+ NAS die hier tijdelijk stond. Voor een test moest ik iemand via het internet toegang geven. Wie zelf producten van Synology gebruikt, zal meteen aan hun QuickConnect-oplossing denken. Persoonlijk vertrouw ik dat soort automatismen via derden niet. Terecht, bleek in een later onderzoek (lees hoe deze truc werkt in hetlab.tk/embedded/synology-quickconnect-uitzoeken).

324 Het Lab screenshot quickconnect 2Werking NAT
Omdat er te weinig IPv4-adressen zijn - daar komen we straks op terug - is NAT (Network Address Translation) bedacht. Je interne netwerk krijgt daarbij meestal een serie IPv4-adressen toegewezen die op het internet niet gerouteerd worden. Je router lost dat probleem op door in uitgaande pakketjes het interne IPv4-adres te vervangen door de externe. Daardoor kunnen meerdere apparaten die laatste als het ware hergebruiken.Om pakketjes naar bijvoorbeeld een webserver te kunnen versturen, kiest je computer een willekeurige poort die nog niet voor iets anders wordt gebruikt. Elke computer heeft 65.536 poorten, dus keuze genoeg. Desondanks is er een kans dat twee computers dezelfde keuze maken. Op dat moment gaat je router ook dit poortnummer aanpassen en in een boekhouding bijhouden, met zoiets als:

 Intern IPv4                      Interne poort       Externe poort     
 192.168.2.145       3333   3333
 192.168.2.161       3333  3334


De webserver die het pakketje van de eerste ontvangt, stuurt het antwoord terug naar poort 3333. Je router ziet in de tabel dat de poort niet veranderd hoeft te worden en stuurt het dus door naar de computer met IPv4-adres 192.168.2.145 en poort 3333. De webserver die het pakketje van de tweede ontvangt, stuurt het antwoord terug naar poort 3334 en je router past deze nu aan naar 3333 om het door te sturen. Met behulp van een Zwitsers zakmes voor netwerken kon ik na twee dagen experimenteren deze vertaalslag in werking zien (zie hetlab.tk/obelix/udp-hole-punching-2).

Firewall?
De Synology DSM gebruikt poort 5000 (http) en 5001 (https) om in te loggen op hun DSM-omgeving. Stel dat ik voor de genoemde test mijn externe IPv4-adres doorgeef. In principe kan de andere partij dan pakketjes versturen naar één van beide poorten. Deze komen aan op de ExperiaBox (de router alhier), maar aangezien beide poorten niet in de NAT-tabel staan, kunnen ze niet worden doorgestuurd naar het interne IPv4-adres van de Synology.
Sommige mensen noemen het niet werken in bovenstaand voorbeeld een firewall. Onzin! Dat inkomende verbindingen niet automatisch werken, komt door de manier waarop NAT geïmplementeerd is. Omdat uitgaande verbindingen geen probleem zijn, zou Synology gewoon pakketjes vanaf, zeg, poort 5000 naar buiten kunnen sturen. De ExperiaBox plaatst dan het interne IPv4-adres en deze poort – eventueel vertaald – in de tabel. Waardoor pakketjes nu opeens wel afgeleverd kunnen worden. Dat werkt, zoals ik in een later berichtje (vervang de 2 door een 3 in genoemde link hierboven) in mijn labjournaal laat zien. Een firewall kan dit soort verkeer expliciet blokkeren of toestaan: ergo NAT is geen firewall...
Dit openen van een poort noemen we op zijn Engels hole punching. Het is tevens één van de drie trucs die Synology in zijn QuickConnect-toepassing gebruikt. Veel meer software maakt dankbaar gebruik van het feit dat NAT geen firewall is. Waaronder malware!

Port forwarding
De normale manier, zonder stiekem gedoe, om een apparaat op het interne netwerk via het internet bereikbaar te maken heet port forwarding. Je opent daarbij een van de genoemde poorten in je router door zelf een permanente vertaalslag in de NAT-tabel toe te voegen.
Zelf heb ik meerdere malen op deze manier een eigen server toegankelijk gemaakt. Bedenk echter dat zo’n machine in feite permanent aan het internet hangt en dus ook alle rotzooi die kwaadwillenden veroorzaken, over zich heen krijgt. Eigen server betekent dat ik het zelf heb ingericht en dus goed de risico’s kan inschatten. Een Synology is op dit punt een zwarte doos. Ik beweer niet dat deze producten onveilig zijn, maar je bent wel afhankelijk van een partij die je niet kunt dwingen om iets nu voor je op te lossen.

324 Het Lab screenshot chinese cookies
Synology QuickConnect via China?

Scannen
Mogelijk protesteren nu een aantal lezers met het argument dat de genoemde poorten niet standaard zijn. Tja, dat is behoorlijk naïef denken. Iedereen met een Synology kent deze poorten, dus ook digitale dieven. Zij zullen het complete internet afspeuren naar jouw virtuele waardevolle spullen.
Mogelijk roep je nu dat dit zoeken veel tijd kost. Er zijn tenslotte 2 tot de macht 32 oftewel ruim 4 miljard IPv4-adressen. Stel dat we deze met een normale Linux-computer en een glasvezelverbinding willen scannen of poort 5000 toevallig openstaat. Noteer nu je gok. Het antwoord is op zijn hoogst 70 minuten. Je gelooft mij niet? Regelmatig richt ik SSH-servers in en deze worden meestal binnen die genoemde tijd ontdekt waarna een compleet woordenboek als wachtwoord voor het root-account wordt uitgeprobeerd. Dat root tegenwoordig standaard niet meer met een wachtwoord mag inloggen, is algemene kennis die dit soort script kiddies nog niet hebben ontdekt.
De genoemde computer, voor een paar honderd euro te koop, kan tussen de één en tien miljoen poorten per seconde (!) scannen. Als we ons richten op poort 5000, zijn dat het genoemde aantal IPv4-adressen. Met de laagste waarde kom ik dan op 4.295 seconden, oftewel 72 minuten. Omdat een aantal reeksen niet gerouteerd worden, is het in de praktijk minder. En met die tien miljoen duurt het slechts zeven minuten. Kortom: het argument van niet-standaardpoorten is nu hopelijk ook bij jou in de prullenbak beland.

IPv6
Met andere woorden: port forwarding via IPv4 is riskant, zeker voor wie niet snapt hoe gevaarlijk het internet is geworden. Om die reden vind ik alle trucs die bijvoorbeeld Synology en andere fabrikanten uithalen om het jou gemakkelijk te maken, zeer discutabel. Zoals gezegd zitten in deze trucs dingen verstopt die zelfs mij verrasten. Bijvoorbeeld dat iedereen die QuickConnect gebruikt, standaard een tussenscherm krijgt met de mededeling waar Chinezen zich aan moeten houden. Wat hebben wij daar als Nederlander mee te maken? Op dit moment lekt er volgens mij geen informatie naar China, maar een ongeluk zit meestal in een klein hoekje.
De enige oplossing is dus een bewuste keuze. Maar niet via IPv4. Nu zouden de lezers van deze rubriek moeten weten dat KPN en Ziggo al sinds 2015 beloven dat we ook thuis IPv6 krijgen. Midden vorig jaar was ik aan de beurt, maar de teller bij KPN staat momenteel op 68 procent en bij Ziggo op slechts 32 procent van alle aansluitingen. Wie bij Ziggo zit, mag blij zijn als ze voor 2035 eindelijk eens IPv6 krijgen.

Killer applicatie
Vaak wordt beweerd dat IPv6 pas snel uitgerold wordt met de komst van een killer applicatie die alleen via deze nieuwe adressen bereikbaar is. Onzin! Producten als die van bijvoorbeeld
Synology willen veel mensen juist via het internet beschikbaar maken. Dat dit niet zonder gevaren is, kunnen we ze meestal niet uitleggen.
Het grootste gevaar zit hem echter in dat scannen. Met IPv6 krijgt iedereen minimaal een /64 netwerk. Er zijn dan 2 tot de macht 128 – oftewel 340 sextiljoen – IPv6-adressen. Je krijgt dus het aantal IPv4-adressen in het kwadraat! Diezelfde Linux-computer moet dan ergens tussen de 50 duizend en een half miljoen jaar aanstaan om jou te vinden. Tegen die tijd is het geheel al lang tot stof vergaan. Zei ik niet minimaal? Inderdaad, de afspraak is dat iedereen 65.536 van die /64 netwerken krijgt. Zodat je ook een gescheiden netwerk voor bijvoorbeeld al die IoT-apparaten kunt maken.

Tot slot
Laat ik duidelijk zijn dat ik geen voorstander ben om alles permanent aan het internet te hangen. Zeker niet met het huidige kennisniveau van de meeste gebruikers en de stupide manier van fabrikanten om liever geen beveiligingsupdates uit te rollen of apparaten kunstmatig te verouderen. Maar als we dit met zijn allen toch willen, is IPv6 vele malen veiliger als digitale dieven actief aan het zoeken zijn. Wat betreft alle andere ellende maakt het weinig verschil. Ik stel dus voor dat je KPN en Ziggo massaal deze aflevering gaat mailen en eisen dat ook jij IPv6 krijgt.