Nuglaanta u oggolaanaysa isku xirka TCP ee lagu sameeyay tunnel-ka VPN in la afduubo

La daabacay farsamada weerarka (CVE-2019-14899) taas oo u oggolaanaysa baakadaha in la miiro, wax laga beddelo, ama lagu beddelo isku xirka TCP ee loo gudbiyo tunnel-ka VPN. Dhibaatadu waxay saamaysaa Linux, FreeBSD, OpenBSD, Android, macOS, iOS iyo nidaamyada kale ee Unix la mid ah. Linux waxay taageertaa habka rp_filter (kala shaandhaynta dariiqa gadaale) ee IPV4, iyada oo ku shid habka "Aadag" waxay ka takhalusaysaa dhibaatadan.

Habkani waxa uu ogolaanayaa in baakidh lagu beddelo heerka xidhiidhka TCP ee dhex mara tunnel sir ah, laakiin ma ogola in la isku xidho xidhiidhada isticmaala lakabyo sireed oo dheeraad ah (tusaale, TLS, HTTPS, SSH). Algorithms-ka sirta ah ee loo isticmaalo VPN dhib ma laha, maadaama baakidhyada xabagta leh ay ka yimaaddaan interface-ka dibadda oo ay kernel-ku u habeeyaan baakidh ahaan VPN interface. Bartilmaameedka ugu badan ee weerarku waa in la farageliyo isku xirka HTTP aan qarsoodi ahayn, laakiin aan laga saarin iyo adeegsiga weerar si loo maamulo jawaabaha DNS.

Xirmooyinka baakadka ee guusha leh ayaa lagu soo bandhigay tunnel-ka la sameeyay iyadoo la adeegsanayo OpenVPN, WireGuard iyo IKEv2/IPSec Tor uma nugleyso dhibaatada, maadaama ay isticmaasho SOCKS si ay u gudbiso taraafikada waxayna ku xiran tahay interface loopback ah. IPV4, weerar ayaa suurtagal ah haddii rp_filter loo dhigo qaabka "Loose" (sysctl net.ipv4.conf.all.rp_filter = 2). Markii hore, nidaamyada intooda badani waxay isticmaaleen qaabka "Strict", laakiin laga bilaabo systemd 240, oo la sii daayay bishii Disembar ee la soo dhaafay, qaabka hawlgalka caadiga ah ayaa loo beddelay "Loose" isbeddelkan wuxuu ka muuqday goobaha caadiga ah ee qaybinta Linux badan.

habka rp_filter codsatay xaqiijinta dheeraadka ah ee waddooyinka baakadaha si looga hortago xajinta ciwaanka isha. Marka lagu dhigo 0, ma jiro jeegag ciwaanka isha oo la samaynayo baakidh kastana waxa loo gudbin karaa inta u dhaxaysa is-dhexgalka shabakada iyada oo aan la xaddidin. Habka 1 "Aadag" waxaa ka mid ah hubinta baakidh kasta oo ka imanaya dibadda si loogu hoggaansamo miiska dajinta, iyo haddii isku-xirka shabakadda ee xirmada lagu helay uusan la xiriirin dariiqa gaarsiinta jawaabta ugu wanaagsan, markaas xirmada waa la tuuray. Habka 2 "Dabacsan" waxay dejinaysaa jeegga si loogu oggolaado miisaan-dheelayaasha culeyska ama dariiqa asymmetrical inay shaqeeyaan marka
Dariiqa jawaab celinta waxa laga yaabaa in ay soo marto is-dhexgal shabakadeed oo aan ahayn kan ay soo mareen baakadda soo socota.

Qaabka dabacsan, baakadda soo socota ayaa laga eegaa miiska dajinta, laakiin waxaa loo arkaa mid ansax ah haddii ciwaanka isha laga heli karo shabakad kasta oo la heli karo. Weerarka la soo jeediyay wuxuu ku saleysan yahay xaqiiqda ah in weeraryahanku soo diri karo xirmo leh ciwaanka isha ee u dhigma VPN interface, iyo in kasta oo xaqiiqda ah in xirmadani ay geli doonto nidaamka iyada oo loo marayo interface-ka shabakadda dibadda oo aan la marin VPN, gudaha rp_filter "Loose" qaabka baakadda noocan oo kale ah lama tuurayo.

Si loo fuliyo weerar, weeraryahanku waa inuu xakameeyaa albaabka uu isticmaaluhu ka galo shabakadda (tusaale, iyada oo loo marayo hay'adda MITM, marka dhibbanuhu ku xidho barta gelitaanka wireless-ka ee uu gacanta ku hayo weerarka, ama iyada oo loo sii marayo jabsiga router). Xakamaynta albaabka laga soo galo isticmaalaha uu ku xiran yahay shabakada, weeraryahanku wuxuu soo diri karaa baakado been abuur ah oo laga dareemi doono macnaha guud ee shabakada VPN, laakiin jawaabaha waxaa lagu marin doonaa tunnelka.

Iyada oo la abuurayo qulqulka baakadaha khayaaliga ah kaas oo ciwaanka IP-ga ee interface VPN la beddelay, isku dayo ayaa la sameeyaa si loo saameeyo xidhiidhka uu aasaasay macmiilku, laakiin saamaynta xidhmooyinkan waxaa lagu arki karaa oo keliya iyada oo loo marayo falanqaynta qarsoon ee socodka taraafikada qarsoon ee la xidhiidha. iyadoo la adeegsanayo tunnelka. Si aad weerar u qaaddo, waxaad u baahan tahay inaad ogaato ciwaanka IP-ga ee isku xirka tunnel-ka ee uu u qoondeeyay server-ka VPN, iyo sidoo kale go'aamiso in xiriirka martigaliye gaar ah uu hadda ka dhex jiro tunnel-ka.

Si loo go'aamiyo IP-ga isku xirka shabakadda VPN, xirmooyinka SYN-ACK waxaa loo diraa nidaamka dhibbanaha, iyagoo si isdaba joog ah u tiriya dhammaan cinwaannada farsamada (marka hore, ciwaannada loo adeegsado VPN waxaa lagu tiriyaa si caadi ah, tusaale ahaan, OpenVPN). waxay isticmaashaa 10.8.0.0/24 subnet). Jiritaanka ciwaanka waxaa lagu qiimeyn karaa iyadoo lagu salaynayo helida jawaabta oo wadata calanka RST.

Si la mid ah, joogitaanka isku xirka goob gaar ah iyo lambarka dekedda ee dhinaca macmiilka ayaa lagu go'aamiyaa - iyadoo la kala saarayo lambarrada dekedda, xirmo SYN ah ayaa loo diraa isticmaalaha, sida cinwaanka isha, kaas oo IP-ga ee goobta waa la bedelay, iyo ciwaanka loo socdaa waa IP VPN ah oo toos ah. Dekadda server-ka waa la saadaalin karaa (80 ee HTTP), lambarka dekedda ee dhinaca macmiilka waxaa lagu xisaabin karaa xoog xoog leh, oo lagu falanqeeyo tirooyin kala duwan isbeddelka xoojinta jawaabaha ACK oo ay weheliso maqnaanshaha xirmo leh RST calanka.

Marxaladdan, weerarku wuxuu yaqaanaa dhammaan afarta walxood ee isku xirka (Isha IP-yada / dekedda iyo cinwaanka IP-ga / dekedda), laakiin si loo abuuro xirmo khayaali ah oo nidaamka dhibbanuhu aqbali doono, weeraryahanku waa inuu go'aamiyaa isku xigxiga TCP iyo nambarada qirashada (seq iyo ack) - isku xirka. Si loo go'aamiyo xuduudahaas, weeraryahanku wuxuu si joogto ah u soo diraa xirmo RST been abuur ah, isagoo isku dayaya tirooyinka isku xigxiga ee kala duwan, ilaa uu ogaado xirmada jawaabta ACK, imaatinka kaas oo tilmaamaya in nambarku ku dhaco daaqada TCP.

Marka xigta, weeraryahanku wuxuu caddeeyaa saxnaanta qeexitaanka isagoo soo diraya baakidhyo isku mid ah isla markaana eegaya imaatinka jawaabaha ACK, ka dib markaa wuxuu dooranayaa tirada saxda ah ee isku xigxiga hadda. Hawshu way adag tahay xaqiiqda ah in jawaabaha loo diro tunnel qarsoodi ah iyo joogitaankooda qulqulka taraafigga ee la xiray kaliya waxaa lagu falanqeyn karaa iyadoo la adeegsanayo habab aan toos ahayn. Haddii macmiilku u soo diro xidhmada ACK ciwaanka VPN-ka waxa la go'aamiyaa iyadoo lagu salaynayo cabbirka iyo daahitaanka jawaabaha sirta ah, kuwaas oo xidhiidh la leh dirida baakidhyada xabo. Tusaale ahaan, OpenVPN, cabbirka baakadka sir ah ee 79 wuxuu kuu ogolaanayaa inaad si sax ah u xukunto in ACK uu ku jiro gudaha.

Ilaa inta ilaalinta weerarka lagu daro kernel-ka nidaamka qalliinka si ay u noqoto hab ku meel gaar ah oo dhibka looga hortago waxaa lagu talinayaa Adigoo isticmaalaya filter baakidh ee silsiladda β€œpreroute”, xannibi marinka baakadaha kaas oo ciwaanka IP-ga ee tunnel-ka lagu tilmaamay inuu yahay ciwaanka loo socdo.

iptables -t raw -I PROOUTING ! -i wg0 -d 10.182.12.8 -m addrtype ! --src-nooca LOCAL -j DEJINTA

ama loogu talagalay nftables

nft ku dar miiska ip ceeriin
nft ku dar silsilad ip ceyriin prerouting '{nooca filtarka shaandhada horudhaca mudnaanta 0; }
nft add rule ip raw prerouting 'iifname!= "wg0" ip daddr 10.182.12.8 fib saddr type != local drop'

Si aad naftaada u ilaaliso markaad isticmaalayso tunnelyada ciwaanka IPv4, kaliya u dhig rp_filter qaabka "Strict" ("sysctl net.ipv4.conf.all.rp_filter = 1"). Dhanka VPN, habka lagu go'aaminayo lambarka isku xigxiga waa la xannibi karaa iyadoo lagu darayo suufka baakadaha sirta ah, taasoo ka dhigaysa dhammaan baakadaha isku cabbir.

Source: opennet.ru

Add a comment