TunnelCrack срещу TunnelVision: какво всъщност чупи всяко от двете
TunnelCrack и TunnelVision злоупотребяват с различни изключения в маршрутизацията: прегледайте изключението за локална мрежа, маршрута до сървъра и опция 121 на DHCP за всяка версия на клиента.
Две изследователски имена се използват взаимозаменяемо за всеки VPN трафик, който напуска тунела, а механизмите зад тях не са еднакви. TunnelCrack описва две семейства изключения в маршрутизацията; TunnelVision описва маршрут, подаден по DHCP на крайното устройство. Никое от двете не чупи криптирането и никое не ви казва какво прави конкретна версия на клиента днес. Пет проверки отделят механизмите от заглавието.
Първа стъпка: назовете механизма, който преглеждате
Разкритието TunnelCrack от август 2023 година описва две семейства атаки. При локалната мрежа трафикът, който клиентът смята за принадлежащ на локалната мрежа, получава изключение за локален достъп и напуска тунела. При адреса на сървъра маршрутът, който клиентът трябва да използва, за да стигне до самия VPN сървър, е извън тунела, и противник, който контролира този адрес, може да се възползва от изключението.
TunnelVision е отделен доклад за безкласови статични маршрути, подавани по DHCP. Злонамерен DHCP сървър може да даде на крайното устройство маршрути, които променят пътя на трафика, включително пътя към VPN сървъра. Докладът признава по-ранна работа върху свързани ефекти на маршрутизацията, което напомня, че основният механизъм е по-стар от името.
| Case | Exception it abuses |
|---|---|
| TunnelCrack local network | Traffic classified as local bypasses the tunnel |
| TunnelCrack server address | The route to the VPN server sits outside the tunnel |
| TunnelVision | DHCP option 121 installs routes that redirect traffic |
Дръжте имената привързани към техните механизми. Прилагането на поправка за едното, защото другото е в новините, е начинът, по който прегледът създава движение без покритие.
Втора стъпка: погледнете изключението за локален достъп
Повечето клиенти освобождават трафика на локалната мрежа, за да работят принтерите, предаването на екран и споделянето на файлове, докато тунелът е включен. Това изключение е политическо решение с цена за сигурността: противник в същата мрежа може да се представи за локален хост и трафикът, който го достига, никога не е влизал в тунела.
Питайте дали внедреният профил изобщо се нуждае от изключението. Отдалечена работна сила, която никога не използва локално откриване, често може да го изключи, а останалите локални услуги могат да се достигнат по документиран път. Когато изключението е нужно, посочете кои дестинации покрива, вместо да го описвате като локален трафик.
Проверката е въпрос на конфигурация, не на прихващане на пакети. Прочетете настройката на профила и документацията на клиента за версията, която внедрявате, защото стойността по подразбиране се различава между продуктите и между версиите на един и същ продукт. Запишете отговора до профила, за да не се налага следващият преглеждащ да го извежда от поведението. Изключение, което никой не е документирал, е изключение, което никой не преглежда.
Трета стъпка: погледнете как се научава адресът на сървъра
Клиентът трябва да достигне VPN сървъра преди да съществува какъвто и да е тунел, затова тази дестинация по замисъл се маршрутизира извън тунела. Ако адресът се научава от име, стъпката на разрешаване е част от пътя на доверие и противник, който може да отговори на тази заявка, може да насочи клиента към хост, който контролира.
Заковаването на адреса, използването на проверен сертификат с правилното име и отказът да се падне към непроверен сървър — всичко това намалява излагането. Никое от тях не премахва нуждата да се достигне сървърът извън тунела; те променят кой може да отговаря за този адрес.
resolvectl query vpn.lab.example
ip route get 198.51.100.24
ip rule show
Търсенето на маршрут показва интерфейса, който клиентът би използвал за адреса на сървъра, което е изключението в конкретна форма. Ако това търсене върне интерфейса на тунела, клиентът не може дори да установи тунела, така че външен маршрут се очаква и въпросът е само как се избира неговата дестинация.
Четвърта стъпка: погледнете маршрутите, подавани по DHCP
Безкласовите статични маршрути позволяват на DHCP сървъра да раздава записи в таблицата за маршрутизация и крайното устройство обикновено ги приема, без да пита. В мрежа, където противник може да отговори на DHCP по-бързо от законния сървър, тези записи могат да пренасочат трафик, който потребителят смята за вътре в тунела.
Сравнете маршрутите на крайното устройство с маршрутите, които очаквате. Маршрут по подразбиране или широк префикс, сочещ към локалния шлюз, докато тунелът е включен, е признакът, който си струва разследване, и той е видим без никакъв атакуващ трафик.
ip route show table all
ip route get 203.0.113.55
nmcli -g ipv4.ignore-auto-routes con show "Wired connection 1"
Последната настройка е контролът от страна на крайното устройство, който много клиенти и платформи предлагат в някаква форма: игнориране на маршрутите, подадени от мрежата. Изключването на автоматичното приемане на маршрути е компромис, защото изключва и законното разделено маршрутизиране от корпоративен DHCP сървър, затова го решавайте по клас мрежа, а не глобално.
Пета стъпка: отделете съобщението от текущата версия
Публикуваната атака описва поведение, наблюдавано при определени версии на клиента в определен момент. Тя не доказва, че лаптопът пред вас е засегнат, и не доказва, че е поправен. И двете твърдения изискват действителния номер на версията и актуалното съобщение на доставчика.
Запишете версията на клиента, платформата, настройките на профила, които управляват изключенията по-горе, и датата, на която сте проверили. Този запис остарява честно, а бележка, че VPN е бил кърпен срещу TunnelCrack, не остарява честно. Препрочитайте го при всяко обновяване на клиента, защото стойност по подразбиране в профила може да се промени под версия, която не сте докосвали.
Когато наистина проверявате, използвайте одобрен план срещу собственото си крайно устройство и безвредна дестинация. Възпроизвеждането на атаката срещу други потребители в споделена мрежа не е тест, а изключването на проверката на партньора или шифроването на приложението, за да улесните наблюдение, премахва защитата, която сте се опитвали да измерите.
Накрая, дръжте в картината защитата на ниво приложение. Изключение в маршрутизацията може да изложи трафик, който тунелът би пренесъл, а TLS в приложението все още защитава този трафик от край до край. Двата слоя се провалят независимо, затова свързан контролен канал не е доказателство, че всеки поток е поел по предвидения път.