Открита е уязвимост, която позволява отвличане на VPN връзки

Рязка рана на Linux VNP

Преди няколко дни беше пуснат техника на атака (CVE-2019-14899), който Позволява ви да замените, промените или замените пакети на TCP връзки, препратени през VPN тунели. Проблемът Той засяга Linux, FreeBSD, OpenBSD, Android, macOS, iOS и други подобни на Unix системи.

Методът позволява заместване на пакети на ниво TCP връзки които преминават вътре в криптирания тунел, но не позволява връзка в връзки, използващи допълнителни слоеве за криптиране (например TLS, HTTPS, SSH). Алгоритмите за криптиране, използвани във VPN, нямат значение, тъй като фалшивите пакети идват от външния интерфейс, но ядрото ги обработва като пакети от VPN интерфейса.

Най-вероятната цел на атаката е да се намесва в некриптирани HTTP връзки, но използването на атаката за манипулиране на DNS отговори не е изключено.

Доказана е успешна подмяна на пакета за създадени тунели с OpenVPN, WireGuard и IKEv2 / IPSec.Tor. Той не е засегнат от проблема, тъй като използва SOCKS за пренасочване на трафик и се присъединява към интерфейса за обратна връзка.

За IPv4 е възможна атака, ако rp_filter бъде поставен в свободен режим. Механизмът rp_filter се използва за допълнителна проверка на пакетни маршрути, за да се избегне фалшифициране на адреса на източника.

  • Когато е зададено на 0, адресът на източника не се проверява и всички пакети могат да бъдат пренасочвани между мрежовите интерфейси без ограничения.
  • Режим 1 "Строг" включва проверка, че всеки пакет, пристигащ отвън, отговаря на таблицата за маршрутизиране и ако мрежовият интерфейс, през който е получен пакетът, не е свързан с оптималния път за доставка на отговор, пакетът се изхвърля.
  • Режим 2 „Loose“ изглажда теста, за да позволи работа при използване на балансьори на натоварване или асиметрично маршрутизиране, при което пътят на отговора може да не минава през мрежовия интерфейс, през който е пристигнал входящият пакет.

В режим "Loose" се проверява дали входящият пакет отговаря на таблицата за маршрутизиране, но се счита за валидно, ако адресът на източника може да бъде достъпен чрез всеки наличен мрежов интерфейс.

За да извършите атака:

Първи шлюзът, през който влиза потребителят, трябва да се контролира към мрежата (например чрез организацията MITM, когато жертвата се свърже с безжична точка за достъп, контролирана от нападателя или чрез хакнат рутер).

Чрез контролиране на вратата връзка, чрез която потребителят е свързан към мрежата, нападателят може да изпраща фиктивни пакети Те ще се възприемат в контекста на VPN мрежовия интерфейс, но отговорите ще се изпращат през тунела.

При генериране на фиктивен поток от пакети, в който IP адресът на VPN интерфейса се заменя, прави се опит да се повлияе на връзката, установена от клиентаe, но влиянието на тези пакети може да се наблюдава само чрез пасивен анализ на криптирания поток на трафика, свързан с работата на тунела.

За да извършите атака, трябва да разберете IP адреса на тунелния мрежов интерфейс, зададен от VPN сървъра и също така да определи, че връзката към конкретен хост в момента е активна през тунела.

За да се определи IP на VPN интерфейса на виртуалната мрежа, пакетите се изпращат към пакетите SYN-ACK на системата на жертвата, последователно подреждане на целия диапазон от виртуални адреси.

По същия начин се определя наличието на връзка към конкретен сайт и номера на порта на клиентската страна: подреждайки номерата на порта на потребителя, се изпраща SYN пакет като адрес на източника, в който IP адресът на сайта е заместен, а адресът на местоназначението е виртуален VPN IP.

Портът на сървъра може да бъде предвиден (80 за HTTP), а номерът на порта на клиентската страна може да се изчисли чрез груба сила, анализирайки за различни числа промяната в интензивността на отговорите на ACK в комбинация с липсата на пакет с RST флага.

На този етап нападателят познава четирите елемента на връзката (източник IP адрес / порт и IP адрес / порт на дестинация), но за генериране на фиктивен пакет, който системата жертва ще приеме, нападателят трябва да определи последователността и номерата за разпознаване (sq и ack) TCP-връзки.

Решение.

И накрая за защита при използване на тунели с IPv4 адреси, достатъчно е да се установи rp_filter в режим "Строг"

sysctl net.ipv4.conf.all.rp_filter = 1

От страна на VPN методът за определяне на поредния номер може да бъде блокиран чрез добавяне на допълнителни подложки към криптираните пакети, което прави размера на всички пакети еднакъв.


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Изображение на резервоар на Фернандо Тлатилолпа каза той

    Отличен принос за сигурността, особено в тези времена, когато атаките за сигурност са се увеличили. Благодаря и поздрави.