VPN tunelen bidez egindako TCP konexioak bahitzea ahalbidetzen duen ahultasuna

Argitaratu Eraso teknika bat (CVE-2019-14899), paketeak VPN tunelen bidez bideratzen diren TCP konexioetan faltsutzea, aldatzea edo txertatzea ahalbidetzen duena. Arazoak eragina du Linux, FreeBSD, OpenBSD, Android, macOS, iOS eta Unix antzeko beste sistema batzuk. Linux rp_filter (alderantzizko bidea iragaztea) mekanismoa onartzen du IPv4rako, eta "Strict" moduan gaituta dagoenean arazo hau neutralizatzen du.

Metodoak paketeen ordezkapena ahalbidetzen du enkriptatutako tunel baten barruan igarotzen diren TCP konexioen mailan, baina ez du zifratze-geruza gehigarriak erabiltzen dituzten konexioetan zirikatzea onartzen (adibidez, TLS, HTTPS, SSH). VPNan erabiltzen diren enkriptazio-algoritmoek ez dute axola, faltsututako paketeak kanpoko interfazetik datoz eta kernelak VPN interfazetik pakete gisa prozesatzen ditu. Erasoaren helburu seguruena zifratu gabeko HTTP konexioak oztopatzea da, baina ez baztertuta eta eraso bat erabiliz DNS erantzunak manipulatzeko.

Paketeen faltsutzea arrakastatsua dela frogatu da erabiliz sortutako tuneletan OpenVPN, WireGuard IKEv2/IPSec.Tor ez da arazo honen aurrean sentikorra, SOCKS erabiltzen baitu trafikoa birbidaltzeko eta loopback interfazearekin lotzeko. IPv4-rentzat, erasoa posible da rp_filter "Loose" moduan ezarrita badago (sysctl net.ipv4.conf.all.rp_filter = 2). Hasieran, sistema gehienek "Strict" modua erabiltzen zuten, baina honekin hasita... systemd 240, joan den abenduan kaleratua, modu lehenetsia "Loose" izatera aldatu zen eta aldaketa hau banaketa askoren ezarpen lehenetsietan islatu zen. Linux.

rp_filter mekanismoa aplikatuta paketeen bideen egiaztapen gehigarrirako, iturburu-helbideen spoofing saihesteko. 0 moduan ezartzen denean, ez da iturburu-helbideen egiaztapenik egiten eta edozein pakete sareko interfazeen artean birbidali daiteke murrizketarik gabe. 1. Modu "Zorrotzak" kanpotik datorren pakete bakoitza bideratze-taularekin betetzen dela egiaztatzea barne hartzen du, eta paketea jaso den sare-interfazea erantzuna emateko bide optimoarekin lotuta ez badago, paketea baztertu egiten da. 2. "Solte" moduak egiaztapena lasaitzen du karga-orekatzaileak edo bideratze asimetrikoak noiz funtziona dezan
Erantzun-bideak sarrerako paketea iritsi den sareko interfaze batetik igaro daiteke.

Loose moduan, sarrerako pakete bat bideratze-taularekin egiaztatzen da, baina baliozkotzat jotzen da iturburu-helbidea eskuragarri dagoen edozein sare-interfazeren bidez eskura daitekeela. Proposatutako erasoa erasotzaileak VPN interfazeari dagokion iturri-helbide faltsu batekin bidali dezakeen pakete bat bidal dezakeela oinarritzen da, eta pakete hori kanpoko sareko interfazearen bidez eta ez VPN bidez sisteman sartuko den arren, rp_filter "Loose" modua horrelako pakete bat ez da baztertuko.

Eraso bat egiteko, erabiltzaileak sarera sartzeko atebidea kontrolatu behar du erasotzaileak (adibidez, MITM erakunde baten bidez, biktima erasotzaileak kontrolatutako haririk gabeko sarbide-puntu batera konektatzen denean, edo bidez. bideratzaileen hacking). Erabiltzaile bat sarera konektatuta dagoen atebidea kontrolatuz, erasotzaile batek VPN sareko interfazearen testuinguruan hautemango diren pakete faltsuak bidal ditzake, baina erantzunak tuneletik bideratuko dira.

VPN interfazearen IP helbidea ordezkatzen den fikziozko pakete korronte bat sortuz, bezeroak ezarritako konexioan eragiteko saiakerak egiten dira, baina pakete horien eragina erlazionatutako trafiko-fluxu enkriptatuaren analisi pasiboaren bidez soilik ikus daiteke. tunelaren ustiapenarekin. Eraso bat egiteko, VPN zerbitzariak esleitutako tunel-sare-interfazearen IP helbidea ezagutu behar duzu, eta, gainera, ostalari jakin baterako konexio bat aktibo dagoela zehaztu behar duzu tunelaren bidez.

VPNaren sare birtualaren interfazearen IP helbidea zehazteko, SYN-ACK paketeak bidaltzen zaizkio biktima sistemari, helbide birtual sorta osoa sekuentzialki zeharkatuz (lehenik eta behin, VPNan lehenespenez erabiltzen diren helbideak bilatzen dira, adibidez...). OpenVPN 10.8.0.0/24 azpisarea erabiltzen da). Helbidearen existentzia RST bandera duen erantzuna jasotzean oinarrituta epaitu daiteke.

Era berean, gune jakin baterako konexio baten presentzia eta bezeroaren aldean dagoen ataka-zenbakia zehazten dira - ataka-zenbakiak ordenatuta, SYN pakete bat bidaltzen zaio erabiltzaileari, iturburu-helbide gisa, non IP-a. gunearen ordezkoa da, eta helmuga helbidea IP VPN birtual bat da. Zerbitzariaren ataka aurreikus daiteke (80 HTTPrako), eta bezeroaren aldean dagoen ataka-zenbakia indar gordinaren bidez kalkula daiteke, zenbaki ezberdinetarako ACK erantzunen intentsitatearen aldaketa RST-rekin paketerik ez egotearekin batera aztertuz. bandera.

Fase honetan, erasotzaileak konexioaren lau elementuak ezagutzen ditu (iturburuko IP helbideak/ataka eta helmugako IP helbidea/ataka), baina biktima-sistemak onartuko duen fikziozko pakete bat sortzeko, erasotzaileak TCP sekuentzia zehaztu behar du eta aitorpen zenbakiak (seq eta ack) - konexioak. Parametro horiek zehazteko, erasotzaileak etengabe bidaltzen ditu RST pakete faltsuak, sekuentzia-zenbaki desberdinak probatuz, ACK erantzun-pakete bat detektatu arte, eta horren etorrerak adierazten du zenbakia TCP leihoan sartzen dela.

Erasotzaileak detekzioaren zuzentasuna egiaztatzen du zenbaki bereko paketeak bidaliz eta sartzen diren ACK erantzunak behatuz, eta ondoren uneko sekuentziaren sekuentzia-zenbaki zehatza zehazten du. Zeregina zailtzen da erantzunak tunel enkriptatu baten barruan bidaltzen direlako, eta haien presentzia atzemandako trafiko-jarioan zeharka bakarrik azter daitekeelako. Bezeroak VPN zerbitzariari zuzendutako ACK pakete bat bidali duen ala ez zehazten da erantzun enkriptatuen tamainaren eta latentziaren arabera, eta horiek pakete faltsuen bidalketarekin korrelatzen dira. Adibidez, adibidez... OpenVPN 79 tamainako pakete enkriptatu batek ACK baieztapena duela zehaztasunez epaitzeko aukera ematen digu.

Erasoen babesa sistema eragilearen nukleoan arazoa blokeatzeko aldi baterako metodo gisa gehitu arte gomendagarria "preroute" kateko pakete-iragazkia erabiliz, blokeatu tunelaren IP helbide birtuala helmuga helbide gisa zehaztutako paketeen igarotzea.

iptables -t raw -I PREROUTING! -i wg0 -d 10.182.12.8 -m addrtype ! --src-type LOCAL -j DROP

edo nftableetarako

nft gehitu taula ip raw
nft add chain ip raw prerouting '{ mota iragazkia hook prerouting lehentasuna 0; }'
nft add rule ip raw prerouting 'iifname != "wg0" ip daddr 10.182.12.8 fib saddr type != drop local'

IPv4 helbideak dituzten tunelak erabiltzean zeure burua babesteko, ezarri rp_filter "Zorrotza" moduan ("sysctl net.ipv4.conf.all.rp_filter = 1"). VPN aldean, sekuentzia-zenbakiak hautemateko metodoa blokeatu egin daiteke enkriptatutako paketeei betegarri gehigarria gehituz, pakete guztiak tamaina berekoak izan daitezen.

Iturria: opennet.ru

Erosi hosting fidagarria DDoS babesa duten guneetarako, VPS VDS zerbitzariak 🔥 Erosi webguneentzako ostatu fidagarria DDoS babesarekin, VPS VDS zerbitzariak | ProHoster