Ny vulnerability izay mamela ny fifandraisana TCP vita amin'ny alàlan'ny tonelina VPN ho voasambotra

MIVOAKA teknika fanafihana (CVE-2019-14899) izay mamela ny fonosana hosoloina, ovaina, na soloina amin'ny fifandraisana TCP alefa amin'ny alàlan'ny tonelina VPN. Ny olana dia misy fiantraikany amin'ny Linux, FreeBSD, OpenBSD, Android, macOS, iOS ary rafitra hafa mitovy amin'ny Unix. Linux dia manohana ny rafitra rp_filter (fanivanana lalana mivadika) ho an'ny IPv4, ny fampandehanana azy amin'ny fomba "Strict" dia manala an'io olana io.

Ny fomba dia mamela ny fanoloana fonosana amin'ny haavon'ny fifandraisana TCP mandalo ao anatin'ny tonelina misy miafina, fa tsy mamela ny fifamatorana amin'ny fifandraisana mampiasa sosona fanafenana fanampiny (ohatra, TLS, HTTPS, SSH). Tsy maninona ny algorithm encryption ampiasaina amin'ny VPN, satria avy amin'ny interface ivelany ny fonosana voasoloky ary karakarain'ny kernel ho fonosana avy amin'ny interface VPN. Ny mety ho lasibatry ny fanafihana dia ny hanelingelina ny fifandraisana HTTP tsy misy miafina, fa tsy voahilika ary mampiasa fanafihana hanodinana ny valin'ny DNS.

Naseho ho an'ny tonelina noforonina tamin'ny OpenVPN, WireGuard ary IKEv2/IPSec ny fanodikodinana fonosana nahomby. Tsy iharan'ny olana ny Tor, satria mampiasa SOCKS izy mba handefasana fifamoivoizana ary mifamatotra amin'ny interface loopback. Ho an'ny IPv4, azo atao ny fanafihana raha apetraka amin'ny fomba “Loose” ny rp_filter (sysctl net.ipv4.conf.all.rp_filter = 2). Tamin'ny voalohany, ny ankamaroan'ny rafitra dia nampiasa ny fomba "Strict", fa manomboka amin'ny systemd 240, navoaka tamin'ny volana desambra lasa teo, novana ho "Loose" ny fomba fiasan'ny default ary hita taratra tamin'ny firafitry ny fizarana Linux maro izany fiovana izany.

rp_sivana mekanika Applied ho an'ny fanamarinana fanampiny ny lalan'ny fonosana mba hisorohana ny fanambakana adiresy loharano. Rehefa apetraka amin'ny 0, dia tsy misy fanamarinana ny adiresin'ny loharano atao ary ny fonosana rehetra dia azo alefa eo anelanelan'ny fifandraisana amin'ny tambajotra tsy misy fameperana. Ny fomba 1 "Hentitra" dia ahitana ny fanamarinana ny fonosana tsirairay avy any ivelany amin'ny fanarahana ny latabatra fitetezana, ary raha tsy misy ifandraisany amin'ny zotra fandefasana valiny tsara indrindra ny fifandraisana amin'ny tambajotra izay nandraisana ny fonosana, dia ariana ny fonosana. Ny fomba 2 "Loose" dia mampitony ny fisavana mba ahafahan'ny mpandrindra entana na zotra asymmetrika miasa rehefa
Ny lalan'ny famaliana dia mety handalo amin'ny seha-pifandraisana ankoatry ny iray izay nahatongavan'ilay fonosana ho avy.

Amin'ny fomba Loose, misy fonosana miditra dia voamarika eo amin'ny latabatra fampitaovana, saingy heverina ho manan-kery raha azo tratrarina amin'ny alàlan'ny interface misy tambajotra misy ny adiresy loharano. Ny fanafihana natolotra dia mifototra amin'ny hoe ny mpanafika dia afaka mandefa fonosana miaraka amin'ny adiresy loharano voasokajy mifanaraka amin'ny interface VPN, ary na dia eo aza ny zava-misy fa ity fonosana ity dia hiditra ao amin'ny rafitra amin'ny alàlan'ny serasera ivelany fa tsy amin'ny VPN, amin'ny rp_filter "Loose" mode ny fonosana toy izany dia tsy hariana.

Mba hanaovana fanafihana, ny mpanafika dia tsy maintsy mifehy ny vavahady idiran'ny mpampiasa amin'ny tambajotra (ohatra, amin'ny alalan'ny fikambanana MITM, rehefa mifandray amin'ny teboka fidirana tsy misy tariby fehezin'ny mpanafika, na amin'ny alàlan'ny hacking ny router). Amin'ny alàlan'ny fifehezana ny vavahadin'ny mpampiasa iray mifandray amin'ny tambajotra, ny mpanafika dia afaka mandefa fonosana sandoka izay ho hita ao anatin'ny tontolon'ny fifandraisana amin'ny tambajotra VPN, fa ny valiny dia halefa amin'ny tonelina.

Amin'ny alàlan'ny famoronana packet foronina izay manolo ny adiresy IP an'ny interface VPN, dia misy ny ezaka atao mba hisy fiantraikany amin'ny fifandraisana napetraky ny mpanjifa, fa ny fiantraikan'ireo fonosana ireo dia tsy azo jerena afa-tsy amin'ny alàlan'ny famakafakana passive momba ny fikorianan'ny fifamoivoizana mifandray. miaraka amin'ny fiasan'ny tonelina. Mba hanaovana fanafihana dia mila mitady ny adiresy IP an'ny tambajotran'ny tonelina notendren'ny mpizara VPN ianao, ary mamaritra ihany koa fa misy fifandraisana amin'ny mpampiantrano manokana amin'izao fotoana izao amin'ny alàlan'ny tonelina.

Mba hamaritana ny IP an'ny tambajotra virtoaly VPN, ny fonosana SYN-ACK dia alefa any amin'ny rafitry ny niharam-boina, izay manisa ny isan'ny adiresy virtoaly manontolo (voalohany indrindra, ny adiresy ampiasaina amin'ny VPN dia voatanisa amin'ny alàlan'ny default, ohatra, OpenVPN mampiasa ny subnet 10.8.0.0/24). Ny fisian'ny adiresy dia azo tsaraina amin'ny fandraisana ny valinteny miaraka amin'ny saina RST.

Toy izany koa, ny fisian'ny fifandraisana amin'ny tranonkala iray sy ny laharan'ny seranan-tsambo eo amin'ny lafiny mpanjifa dia voafaritra - amin'ny alàlan'ny fanasokajiana ny laharan'ny seranan-tsambo, ny fonosana SYN dia alefa amin'ny mpampiasa, ho toy ny adiresy loharano, izay misy ny tranokala. Ny IP dia soloina, ary ny adiresy alehany dia virtoaly IP VPN. Ny seranan-tsambo dia azo vinavinaina (80 ho an'ny HTTP), ary ny laharan'ny seranan-tsambo eo amin'ny lafiny mpanjifa dia azo kajy amin'ny herin'ny herisetra, famakafakana ho an'ny isa samihafa ny fiovan'ny hamafin'ny valin'ny ACK miaraka amin'ny tsy fisian'ny fonosana miaraka amin'ny RST saina.

Amin'ity dingana ity, ny mpanafika dia mahafantatra ny singa efatra amin'ny fifandraisana (loharano adiresy IP / seranan-tsambo ary adiresy IP / seranan-tsambo), fa mba hamoronana fonosana noforonina izay eken'ny rafitra niharam-boina dia tsy maintsy mamaritra ny filaharan'ny TCP ny mpanafika ary laharana fanekena (seq sy ack) - fifandraisana. Mba hamaritana ireo mari-pamantarana ireo, ny mpanafika dia mandefa fonosana RST sandoka tsy tapaka, manandrana isa maromaro, mandra-pahitany fonosana valin'ny ACK, ny fahatongavan'izy ireo dia manondro fa ao anatin'ny varavarankely TCP ilay isa.

Manaraka izany, ny mpanafika dia manazava ny fahamarinan'ny famaritana amin'ny alàlan'ny fandefasana fonosana miaraka amin'ny isa mitovy ary mijery ny fahatongavan'ny valin'ny ACK, ary avy eo dia mifidy ny isa marina amin'ny filaharana ankehitriny. Sarotra ny asa noho ny hoe alefa ao anaty tonelina misy miafina ny valiny ary ny fisian'izy ireo ao amin'ny reniranon'ny fifamoivoizana voasakana ihany no azo anadihadiana amin'ny fampiasana fomba ankolaka. Raha misy mpanjifa mandefa fonosana ACK alefa any amin'ny mpizara VPN dia voafaritra amin'ny habeny sy ny faharetan'ny valin-kafatra voarakotra, izay mifandray amin'ny fandefasana fonosana voasokajy. Ohatra, ho an'ny OpenVPN, ny haben'ny fonosana miafina 79 dia ahafahanao mitsara marina fa misy ACK ao anatiny.

Mandra-panampiana ny fiarovana ny fanafihana amin'ny kernel rafitra miasa ho fomba vonjimaika hanakanana ny olana soso-kevitra amin'ny fampiasana sivana packet ao amin'ny rojo "preroute", sakanana ny fandalovan'ny fonosana izay manondro ny adiresy IP virtoaly amin'ny tonelina ho ny adiresin'ny alehany.

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

na ho an'ny nftables

nft add table ip raw
nft add chain ip raw prerouting ‘{ type filter hook prerouting priority 0; }'
nft add rule ip raw prerouting ‘iifname != “wg0” ip daddr 10.182.12.8 fib saddr type != local drop’

Mba hiarovana ny tenanao rehefa mampiasa tonelina misy adiresy IPv4, apetraho fotsiny ny rp_filter amin'ny fomba “Henjana” (“sysctl net.ipv4.conf.all.rp_filter = 1”). Eo amin'ny lafiny VPN, azo sakanana ny fomba fisavana ny laharan'ny filaharana amin'ny alalan'ny fampidirana padding fanampiny amin'ireo fonosana miafina, ka mitovy habe ny fonosana rehetra.

Source: opennet.ru

Add a comment