So-leòntachd a leigeas le ceanglaichean TCP a chaidh a dhèanamh tro thunailean VPN a bhith air an toirt thairis

Foillsichte innleachd ionnsaigh (CVE-2019-14899) a leigeas le pacaidean a bhith air an spùtadh, air an atharrachadh, no air an cur nan àite ann an ceanglaichean TCP air an cur air adhart tro thunailean VPN. Bidh an duilgheadas a’ toirt buaidh air Linux, FreeBSD, OpenBSD, Android, macOS, iOS agus siostaman eile coltach ri Unix. Tha Linux a’ toirt taic don uidheamachd rp_filter (sìoladh slighe cùil) airson IPv4, le tionndadh air ann am modh “Strict” a’ neodachadh na trioblaid seo.

Tha an dòigh a’ ceadachadh ionadachadh pacaid aig ìre cheanglaichean TCP a’ dol taobh a-staigh tunail crioptaichte, ach chan eil e a’ ceadachadh ceangal a-steach do cheanglaichean a chleachdas sreathan crioptachaidh a bharrachd (mar eisimpleir, TLS, HTTPS, SSH). Chan eil na h-algorithms crioptachaidh a thathas a’ cleachdadh anns an VPN gu diofar, leis gu bheil na pacaidean spoofed a’ tighinn bhon eadar-aghaidh taobh a-muigh agus air an giullachd leis an kernel mar phasganan bhon eadar-aghaidh VPN. Is e an targaid as coltaiche den ionnsaigh casg a chuir air ceanglaichean HTTP gun chrioptachadh, ach nach eil air an dùnadh a-mach agus a' cleachdadh ionnsaigh gus freagairtean DNS a làimhseachadh.

Chaidh spoofing pacaid soirbheachail a nochdadh airson tunailean a chaidh a chruthachadh a’ cleachdadh OpenVPN, WireGuard agus IKEv2/IPSec.Chan eil Tor buailteach don duilgheadas, leis gu bheil e a’ cleachdadh SOCKS gus trafaic a chuir air adhart agus tha e ceangailte ri eadar-aghaidh loopback. Airson IPv4, tha ionnsaigh comasach ma tha rp_filter air a shuidheachadh gu modh “Loose” (sysctl net.ipv4.conf.all.rp_filter = 2). An toiseach, chleachd a 'mhòr-chuid de shiostaman am modh "Strict", ach a' tòiseachadh bho 240 siostam, a chaidh fhoillseachadh san Dùbhlachd an-uiridh, chaidh am modh obrachaidh bunaiteach atharrachadh gu "Loose" agus bha an t-atharrachadh seo ri fhaicinn ann an roghainnean bunaiteach mòran de sgaoilidhean Linux.

inneal criathraidh rp_ buntainn airson dearbhadh a bharrachd air slighean pacaid gus casg a chuir air spoofing seòladh stòr. Nuair a thèid a shuidheachadh gu 0, cha tèid sgrùdadh seòladh stòr a dhèanamh agus faodar pacaid sam bith a chuir air adhart eadar eadar-aghaidh lìonra gun chuingealachaidhean. Tha modh 1 “Strict” a’ toirt a-steach a bhith a’ sgrùdadh gach pacaid a tha a’ tighinn bhon taobh a-muigh airson gèilleadh ris a’ chlàr seòlaidh, agus mura h-eil an eadar-aghaidh lìonra tron ​​an d’ fhuaireadh a’ phacaid co-cheangailte ris an t-slighe lìbhrigidh freagairt as fheàrr, thèid am pacaid a thoirt air falbh. Bidh modh 2 "Loose" a’ toirt fois don t-seic gus leigeil le luchd-cothromachaidh luchdan no slighean neo-chunbhalach obrachadh nuair
Faodaidh an t-slighe freagairt a dhol tro eadar-aghaidh lìonra a bharrachd air an fhear tron ​​​​ràinig am pasgan a bha a’ tighinn a-steach.

Ann am modh Loose, thèid pasgan a tha a’ tighinn a-steach a sgrùdadh mu choinneamh a’ chlàr seòlaidh, ach thathas den bheachd gu bheil e dligheach ma tha an seòladh stòr ruigsinneach tro eadar-aghaidh lìonra sam bith a tha ri fhaighinn. Tha an ionnsaigh a thathar a’ moladh stèidhichte air an fhìrinn gun urrainn don neach-ionnsaigh pasgan a chuir le seòladh stòr spoofed a fhreagras ris an eadar-aghaidh VPN, agus a dh’ aindeoin gun tèid am pacaid seo a-steach don t-siostam tron ​​​​eadar-aghaidh lìonra a-muigh agus chan ann tron ​​​​VPN, anns an rp_filter modh “Loose” cha tèid pacaid mar sin a thilgeil air falbh.

Gus ionnsaigh a dhèanamh, feumaidh an neach-ionnsaigh smachd a chumail air a’ gheata tro bheil an neach-cleachdaidh a’ faighinn a-steach don lìonra (mar eisimpleir, tro bhuidheann MITM, nuair a cheanglas an neach-fulang ri àite inntrigidh gun uèir fo smachd neach-ionnsaigh, no tro Luchdaich a-nuas hacking router). Le bhith a’ cumail smachd air a’ gheata tro bheil neach-cleachdaidh ceangailte ris an lìonra, faodaidh neach-ionnsaigh pacaidean meallta a chuir a thèid fhaicinn ann an co-theacsa eadar-aghaidh lìonra VPN, ach thèid na freagairtean a stiùireadh tron ​​​​tunail.

Le bhith a’ gineadh sruth de phasgan meallta anns a bheil seòladh IP an eadar-aghaidh VPN air a chuir na àite, thathas a’ feuchainn ri buaidh a thoirt air a’ cheangal a stèidhich an neach-dèiligidh, ach chan fhaicear buaidh nam pacaidean sin ach tro sgrùdadh fulangach air an t-sruth trafaic crioptaichte co-cheangailte. le obrachadh an tunail. Gus ionnsaigh a dhèanamh, feumaidh tu faighinn a-mach seòladh IP an eadar-aghaidh lìonra tunail a chaidh a shònrachadh leis an t-seirbheisiche VPN, agus cuideachd dearbhadh gu bheil ceangal ri òstair sònraichte gnìomhach tron ​​​​tunail an-dràsta.

Gus IP eadar-aghaidh lìonra brìgheil VPN a dhearbhadh, thèid pacaidean SYN-ACK a chuir chun t-siostam luchd-fulaing, ag àireamhachadh an raon iomlan de sheòlaidhean brìgheil (an toiseach, tha na seòlaidhean a thathas a’ cleachdadh anns an VPN air an àireamhachadh gu bunaiteach, mar eisimpleir, OpenVPN a’ cleachdadh an subnet 10.8.0.0/24). Faodar breithneachadh a dhèanamh air seòladh a bhith ann a rèir mar a gheibhear freagairt le bratach RST.

San aon dòigh, tha làthaireachd ceangal ri làrach sònraichte agus àireamh a ’phuirt air taobh an neach-dèiligidh air a dhearbhadh - le bhith a’ rèiteach tro àireamhan a ’phuirt, thèid pasgan SYN a chuir chun neach-cleachdaidh, mar an seòladh stòr, anns a bheil seòladh na làraich. Tha IP air a chuir na àite, agus tha an seòladh ceann-uidhe na IP VPN brìgheil. Faodar ro-innse a dhèanamh air port an fhrithealaiche (80 airson HTTP), agus faodar àireamh a’ phuirt air taobh an neach-dèiligidh a thomhas le feachd brùideil, a’ dèanamh anailis airson diofar àireamhan air an atharrachadh ann an dian fhreagairtean ACK an co-bhonn ri dìth pacaid leis an RST bratach.

Aig an ìre seo, tha fios aig an neach-ionnsaigh air na ceithir eileamaidean den cheangal (stòr seòlaidhean IP / port agus seòladh IP ceann-uidhe / port), ach gus pasgan meallta a ghineadh ris an gabh an siostam fulangach, feumaidh an neach-ionnsaigh an t-sreath TCP a dhearbhadh agus àireamhan aithneachaidh (seq agus ack) - ceanglaichean. Gus na paramadairean sin a dhearbhadh, bidh an neach-ionnsaigh an-còmhnaidh a ’cur phasganan RST meallta, a’ feuchainn diofar àireamhan sreath, gus an lorg e pasgan freagairt ACK, agus tha teachd a-steach a ’nochdadh gu bheil an àireamh a’ tuiteam taobh a-staigh uinneag TCP.

An ath rud, bidh an neach-ionnsaigh a ’soilleireachadh ceartachd a’ mhìneachaidh le bhith a ’cur phasgan leis an aon àireamh agus a’ cumail sùil air tighinn gu freagairtean ACK, agus às deidh sin bidh e a ’taghadh an dearbh àireamh den t-sreath gnàthach. Tha an obair iom-fhillte leis gu bheil freagairtean air an cur taobh a-staigh tunail crioptaichte agus chan urrainnear an làthaireachd anns an t-sruth trafaic eadar-ghlacte a sgrùdadh ach le bhith a’ cleachdadh dhòighean neo-dhìreach. Tha co-dhiù an cuir neach-dèiligidh pasgan ACK air a sheòladh chun t-seirbheisiche VPN air a dhearbhadh a rèir meud agus latency nam freagairtean crioptaichte, a tha co-cheangailte ri bhith a’ cur pacaidean spoofed. Mar eisimpleir, airson OpenVPN, leigidh pasgan crioptaichte de 79 leat breithneachadh ceart a dhèanamh gu bheil ACK a-staigh.

Gus an tèid dìon ionnsaigh a chur ri kernel an t-siostaim obrachaidh mar dhòigh sealach airson an duilgheadas a bhacadh air a mholadh a’ cleachdadh sìoltachan pacaid anns an t-sreath “preroute”, cuir casg air siubhal phasgan anns a bheil seòladh IP brìgheil an tunail air a shònrachadh mar sheòladh ceann-uidhe.

iptables -t amh -I PREROuting! -i wg0 -d 10.182.12.8 -m addrtype! --src-seòrsa IONADAIL -j DROP

no airson nftables

nft cuir clàr ip amh
nft cuir slabhraidh ip raw prerouting '{ seòrsa filter dubhan ro-làimh prìomhachas 0; }'
nft cuir riaghailt ip raw prerouting 'iifname! = "wg0" ip daddr 10.182.12.8 fib saddr seòrsa != drop ionadail'

Gus do dhìon fhèin nuair a bhios tu a’ cleachdadh tunailean le seòlaidhean IPv4, dìreach suidhich rp_filter gu modh “Strict” (“sysctl net.ipv4.conf.all.rp_filter = 1”). Air taobh VPN, faodar an dòigh lorg àireamh sreath a bhacadh le bhith a’ cur pleadhag a bharrachd ris na pacaidean crioptaichte, a’ dèanamh a h-uile pacaid den aon mheud.

Source: fosgailtenet.ru

Cuir beachd ann