Néhány nappal ezelőtt kiadták támadási technika (CVE-2019-14899), amely Lehetővé teszi a VPN-alagutakon keresztül továbbított TCP-kapcsolatok csomagjainak cseréjét, cseréjét vagy cseréjét. A probléma Hatással van a Linuxra, a FreeBSD-re, az OpenBSD-re, az Androidra, a macOS-ra, az iOS-ra és más Unix-szerű rendszerekre.
A módszer lehetővé teszi a csomagok helyettesítését a TCP-kapcsolatok szintjén amelyek áthaladnak a titkosított alagútban, de nem engedélyezi a kapcsolatot a további titkosítási rétegeket használó kapcsolatokban (például TLS, HTTPS, SSH). A VPN-ekben használt titkosítási algoritmusok nem számítanak, mivel a hamis csomagok a külső interfészről származnak, de a kern csomagként dolgozza fel őket a VPN-felületről.
A támadás legvalószínűbb célja a titkosítatlan HTTP-kapcsolatok megzavarása, de nincs kizárva a támadás felhasználása a DNS-válaszok kezelésére.
A sikeres csomagcsere bebizonyosodott létrehozott alagutakhoz az OpenVPN, a WireGuard és az IKEv2 / IPSec.Tor segítségével. A probléma nem érinti, mivel a SOCKS segítségével továbbítja a forgalmat, és csatlakozik a visszacsatoló felülethez.
IPv4 esetén támadás lehetséges, ha az rp_filter Laza módba kerül. Az rp_filter mechanizmust a csomag útvonalainak további ellenőrzésére használják, hogy elkerüljék a forrás cím meghamisítását.
- Ha 0-ra van állítva, a forráscím nem lesz ellenőrizve, és minden csomag korlátozások nélkül átirányítható a hálózati interfészek között.
- Az 1. mód "Szigorú" magában foglalja annak ellenőrzését, hogy minden kívülről érkező csomag megfelel-e az útválasztási táblának, és ha a hálózati interfész, amelyen keresztül a csomagot fogadták, nincs csatlakoztatva az optimális válasz kézbesítési útvonalhoz, a csomagot elvetik.
- A "Loose" 2. mód simítja a tesztet, hogy lehetővé tegye a műveletet terheléselosztók vagy aszimmetrikus útválasztás használata esetén, ahol a válaszút nem biztos, hogy azon a hálózati interfészen megy keresztül, amelyen a bejövő csomag megérkezett.
"Laza" módban ellenőrizzük, hogy a bejövő csomag megfelel-e az útválasztási táblának, de érvényesnek tekinthető, ha a forráscím bármely elérhető hálózati interfészen keresztül elérhető.
Támadás végrehajtása:
Első vezérelni kell azt az átjárót, amelyen keresztül a felhasználó belép a hálózathoz (például az MITM szervezeten keresztül, amikor az áldozat csatlakozik a támadó által irányított vezeték nélküli hozzáférési ponthoz vagy egy feltört útválasztón keresztül).
Az ajtó irányításával link, amelyen keresztül a felhasználó csatlakozik a hálózathoz, a támadó próbacsomagokat küldhet A VPN hálózati interfész összefüggésében fogják észlelni őket, de a válaszokat az alagúton keresztül küldik el.
Amikor egy dummy csomagfolyamot hoz létre, amelyben a VPN-interfész IP-címe kicserélődik, megpróbálják befolyásolni az ügyfél által létrehozott kapcsolatotEzeknek a csomagoknak a hatása csak az alagút működéséhez kapcsolódó titkosított forgalom áramlásának passzív elemzésével figyelhető meg.
Támadás végrehajtására meg kell találnia a VPN-kiszolgáló által hozzárendelt alagút hálózati interfész IP-címét és azt is meg kell határoznia, hogy az alagúton keresztül aktív-e a kapcsolat egy adott állomással.
Az IP meghatározása a virtuális hálózat VPN-interfészének csomagokat küld az áldozat rendszerének SYN-ACK csomagjaihoz, a virtuális címek teljes tartományának egymás utáni rendezése.
Hasonlóképpen meghatározzuk egy adott helyhez való kapcsolódás jelenlétét és a kliens oldalon a portszám: a portszámok megrendelése a felhasználó számára, egy SYN csomagot küldünk forráscímként, amelyben a hely IP helyettesítve van, és a cél cím virtuális VPN IP.
A kiszolgáló portja megjósolható (80 a HTTP esetén), és a kliens oldalon a portszám durva erővel kiszámítható, különböző számokhoz elemezve az ACK válaszok intenzitásának változását kombinálva az RST jelzővel ellátott csomag hiányával.
Ebben a szakaszban a támadó ismeri a kapcsolat négy elemét (forrás IP-cím / port és cél-IP-cím / port), de egy álcsomag előállításához, amelyet az áldozat rendszere elfogad, a támadónak meg kell határoznia a sorozatot és az felismerési számokat (seq és ack) TCP-kapcsolatok.
Megoldás.
Végül a védelemért, ha IPv4-címmel rendelkező alagutakat használunk, elég megállapítani rp_filter "Szigorú" módban
sysctl net.ipv4.conf.all.rp_filter = 1
A VPN oldalon a sorozatszám meghatározásának módja blokkolható azzal, hogy extra kitöltést ad a titkosított csomagokhoz, így az összes csomag mérete megegyezik.
Kiváló biztonsági hozzájárulás, különösen ezekben az időkben, amikor a biztonsági támadások fokozódtak. Köszönettel és üdvözlettel.