Обнаружена уязвимость, позволяющая перехватывать 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» проверяется соответствие входящего пакета таблице маршрутизации., но считается действительным, если к исходному адресу можно получить доступ через любой доступный сетевой интерфейс.

Чтобы провести атаку:

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

Управляя дверью ссылка, по которой пользователь подключается к сети, злоумышленник может отправлять фиктивные пакеты Они будут восприниматься в контексте сетевого интерфейса VPN, но ответы будут отправляться через туннель.

При создании фиктивного потока пакетов, в котором заменен IP-адрес интерфейса VPN, предпринимается попытка повлиять на соединение, установленное клиентомe, но влияние этих пакетов можно наблюдать только путем пассивного анализа зашифрованного потока трафика, связанного с работой туннеля.

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

Чтобы определить IP VPN-интерфейса виртуальной сети, пакеты отправляются в пакеты SYN-ACK системы жертвы, последовательное упорядочивание всего диапазона виртуальных адресов.

Аналогично определяется наличие связи с конкретным сайтом. и номер порта на стороне клиента: заказывая номера портов пользователю, SYN-пакет отправляется в качестве исходного адреса, в котором подставляется IP-адрес сайта, а адрес назначения - виртуальный IP-адрес VPN.

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

На этом этапе злоумышленник знает четыре элемента соединения. (исходный IP-адрес / порт и целевой IP-адрес / порт), но для генерации фиктивного пакета, который система-жертва примет, злоумышленник должен определить порядковые номера и номера распознавания (seq и ack) TCP-соединения.

Решение.

Наконец, для защиты при использовании туннелей с адресами IPv4, достаточно установить rp_filter в "строгом" режиме

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

На стороне VPN метод определения порядкового номера может быть заблокирован путем добавления дополнительного заполнения к зашифрованным пакетам, что делает размер всех пакетов одинаковым.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

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

  1.   Фернандо Тлатилолпа сказал

    Превосходный вклад в обеспечение безопасности, особенно в наше время, когда количество атак на безопасность возросло. Спасибо и привет.