главное в кибербезопасности Читать в канале
Технологии 2 ноября 2026 2 мин

MPTCP: как работает и как обнаружить в сети

Linux MPTCP реализовал уязвимость CVE-2026-98432

В реализации протокола MPTCP (Multipath TCP) в ядре Linux обнаружена уязвимость CVE-2026-98432. Протокол MPTCP использует опцию TCP, представленную в 2020 году. Уязвимость затрагивает работу с этой опцией.

Multipath TCP разделяет соединения между разными IP-адресами

Традиционный протокол TCP устанавливает соединения между клиентом и сервером. Он предполагает, что IP-адреса хостов не меняются на протяжении всего соединения. Такая модель не подходит для современных архитектур, где мобильные устройства могут переключаться между Wi-Fi и сотовой сетью. Потеря TCP-соединения при смене сети нарушает работу приложений. MPTCP решает эту проблему, позволяя разделять соединения и передавать их между разными IP-адресами. Это также помогает серверам эффективнее использовать высокоскоростные каналы связи, преодолевая ограничения размера окна и диапазона номеров последовательности одного TCP-соединения. В настоящее время наиболее распространенной реализацией MPTCP является та, что используется в iOS и iPadOS. Apple применяет MPTCP для сервисов Siri и Apple Music, устанавливая IPv4-соединения с диапазоном адресов 17.0.0.0/8. Существуют две версии протокола: v0 и v1.

MPTCP использует несколько опций TCP. Опция MPTCP (0x1e, 30) содержит байт с информацией о подтипе и версии. Подтип MP_CAPABLE (0) сигнализирует о поддержке MPTCP. Обе стороны должны использовать эту опцию во время установления TCP-соединения. Каждый MP_CAPABLE также включает 8-байтовый ключ для идентификации и аутентификации подсессий. Подтип MP_JOIN (1) позволяет присоединить второе TCP-соединение к существующему. Инициатором может быть клиент или сервер. Соединения обычно используют одинаковые порты, что упрощает прохождение через файрволы. DSS (Data Sequence Signal, 2) синхронизирует номера последовательности отдельных TCP-соединений с общим номером последовательности MPTCP-соединения. Опции ADD_ADDR/REMOVE_ADDR (3, 4) информируют о добавлении или удалении дополнительных IP-адресов или портов для использования в рамках MPTCP.

Обнаружение MPTCP требует анализа опций TCP

Для обнаружения MPTCP в сети необходимо искать опцию TCP с кодом 30. Инструмент Wireshark предоставляет фильтр "mptcp" для поиска таких пакетов. Утилита tcpdump позволяет косвенно идентифицировать MPTCP-трафик по увеличенной длине TCP-заголовка, особенно в SYN-пакетах. Например, можно использовать фильтр 'tcp[12]>0xd0'. Система обнаружения вторжений Suricata может анализировать опции TCP с помощью ключевого слова "tcp.hdr". Пакеты MP_CAPABLE версии 0 или 1 имеют длину 20 байт и начинаются с байтов |1e 14 00| или |1e 14 01| соответственно. Инструмент Snort не имеет прямого функционала для фильтрации MPTCP-трафика по опциям TCP. Система Zeek по умолчанию не регистрирует опции TCP, но позволяет настроить события tcp_option и tcp_options для логирования MPTCP-соединений при обнаружении опции с кодом 30.

Коротко в карточках

MPTCP: как работает и как обнаружить в сети — карточка 1 из 2MPTCP: как работает и как обнаружить в сети — карточка 2 из 2

Опубликовано в канале 2 ноября, 21:39

Каждый материал сайта выходит в канале в тот же момент.