Техника напада (CVE-2019-14899) која омогућава фалсификовање, модификовање или уметање пакета у TCP везе усмерене кроз VPN тунеле. Проблем утиче на Linux, ФриБСД, ОпенБСД, Android, macOS, iOS и други Unix-слични системи. Linux подржава механизам rp_filter (филтрирање обрнуте путање) за IPv4, који, када је омогућен у режиму „Strict“, неутралише овај проблем.
Метод дозвољава замену пакета на нивоу ТЦП веза које пролазе унутар шифрованог тунела, али не дозвољава углављивање у везе које користе додатне слојеве шифровања (на пример, ТЛС, ХТТПС, ССХ). Алгоритми шифровања који се користе у ВПН-у нису битни, пошто лажни пакети долазе са спољног интерфејса и кернел их обрађује као пакете из ВПН интерфејса. Највероватнији циљ напада је ометање нешифрованих ХТТП веза, али и коришћење напада за манипулисање ДНС одговорима.
Успешно фалсификовање пакета је демонстрирано за тунеле креиране коришћењем OpenVPN, WireGuard IKEv2/IPSec.Tor није подложан овом проблему, јер користи SOCKS за прослеђивање саобраћаја и повезивање са loopback интерфејсом. За IPv4, напад је могућ ако је rp_filter подешен на „Loose“ режим (sysctl net.ipv4.conf.all.rp_filter = 2). У почетку је већина система користила „Strict“ режим, али почевши од , објављеној прошлог децембра, подразумевани режим је промењен на „Loose“ и ова промена се одразила на подразумевана подешавања многих дистрибуција. Linux.
механизам рп_филтер за додатну верификацију путања пакета како би се спречило лажирање изворне адресе. Када је постављено на 0, не врши се провера изворне адресе и било који пакет се може прослеђивати између мрежних интерфејса без ограничења. Режим 1 „Строги“ укључује проверу сваког пакета који долази споља да ли је усклађен са табелом рутирања, и ако мрежни интерфејс преко којег је пакет примљен није повезан са оптималном рутом испоруке одговора, онда се пакет одбацује. Режим 2 „Лабаво“ опушта проверу како би омогућио балансирање оптерећења или асиметрично рутирање да функционишу када
Рута одговора може проћи кроз мрежни интерфејс који није онај кроз који је стигао долазни пакет.
У Лоосе режиму, долазни пакет се проверава у односу на табелу рутирања, али се сматра валидним ако је адреса извора доступна преко било ког доступног мрежног интерфејса. Предложени напад се заснива на чињеници да нападач може да пошаље пакет са лажном изворном адресом која одговара ВПН интерфејсу, и упркос чињеници да ће овај пакет ући у систем преко спољног мрежног интерфејса, а не преко ВПН-а, у рп_филтер “Лоосе” режим такав пакет неће бити одбачен.
Да би извршио напад, нападач мора да контролише гејтвеј преко којег корисник приступа мрежи (на пример, преко МИТМ организације, када се жртва повеже на бежичну приступну тачку коју контролише нападач, или преко ). Контролом гејтвеја преко којег је корисник повезан са мрежом, нападач може да пошаље лажне пакете који ће бити уочени у контексту ВПН мрежног интерфејса, али ће одговори бити преусмерени кроз тунел.
Генерисањем тока фиктивних пакета у којима је замењена ИП адреса ВПН интерфејса, покушава се утицати на конекцију коју успостави клијент, али се утицај ових пакета може посматрати само кроз пасивну анализу придруженог шифрованог тока саобраћаја. са радом тунела. Да бисте извршили напад, потребно је да сазнате ИП адресу мрежног интерфејса тунела коју је доделио ВПН сервер, као и да утврдите да је веза са одређеним хостом тренутно активна кроз тунел.
Да би се утврдила IP адреса виртуелног мрежног интерфејса VPN-а, SYN-ACK пакети се шаљу систему жртве, секвенцијално пролазећи кроз цео опсег виртуелних адреса (прво се претражују адресе које се подразумевано користе у VPN-у, на пример у OpenVPN Користи се подмрежа 10.8.0.0/24). Постојање адресе може се проценити на основу пријема одговора са RST заставицом.
На сличан начин се утврђује присуство везе са одређеним сајтом и број порта на страни клијента – сортирањем бројева портова кориснику се шаље СИН пакет, као изворна адреса, на којој се налази сајт. ИП је замењен, а одредишна адреса је виртуелни ИП ВПН. Порт сервера се може предвидети (80 за ХТТП), а број порта на страни клијента може се израчунати грубом силом, анализирајући за различите бројеве промену интензитета АЦК одговора у комбинацији са одсуством пакета са РСТ-ом. застава.
У овој фази, нападач познаје сва четири елемента везе (изворне ИП адресе/порт и одредишне ИП адресе/порт), али да би генерисао фиктивни пакет који ће систем жртве прихватити, нападач мора да одреди ТЦП секвенцу и бројеви потврде (сек и ацк) - везе. Да би одредио ове параметре, нападач непрекидно шаље лажне РСТ пакете, покушавајући различите бројеве секвенце, све док не открије АЦК пакет одговора, чији долазак указује да број спада у ТЦП прозор.
Нападач затим проверава исправност детекције слањем пакета са истим бројем и посматрањем долазних ACK одговора, након чега одређује тачан редни број тренутног низа. Задатак је компликован чињеницом да се одговори шаљу унутар шифрованог тунела, а њихово присуство у пресретнутом току саобраћаја може се анализирати само индиректно. Да ли је клијент послао ACK пакет адресиран на VPN сервер утврђује се на основу величине и латенције шифрованих одговора, што је у корелацији са слањем фалсификованих пакета. На пример, за OpenVPN Шифровани пакет величине 79 нам омогућава да тачно проценимо да ли садржи ACK потврду.
Док се заштита од напада не дода језгру оперативног система као привремени метод блокирања проблема користећи филтер за пакете у ланцу „пре-роуте“, блокирајте пролаз пакетима у којима је виртуелна ИП адреса тунела наведена као одредишна адреса.
иптаблес -т рав -И ПРЕРУТИРАЊЕ ! -и вг0 -д 10.182.12.8 -м аддртипе ! --срц-типе ЛОЦАЛ -ј ДРОП
или за нфтаблес
нфт адд табле ип рав
нфт адд цхаин ип рав прероутинг '{ типе филтер хоок прероутинг приорити 0; }'
нфт адд руле ип рав прероутинг 'иифнаме != "вг0" ип даддр 10.182.12.8 фиб саддр типе != лоцал дроп'
Да бисте се заштитили када користите тунеле са ИПв4 адресама, само подесите рп_филтер на „Строги“ режим („сисцтл нет.ипв4.цонф.алл.рп_филтер = 1“). На страни ВПН-а, метода детекције секвенцијалног броја може се блокирати додавањем додатног допуна шифрованим пакетима, чинећи да сви пакети буду исте величине.
Извор: опеннет.ру
