Беспроводные сети полагаются на канальное шифрование для защиты радиоэфира от перехвата информации. Подключаясь к сети Wi-Fi с поддержкой протоколов WPA2 или WPA3, пользователи исходят из предположения, что полезная нагрузка пакетов надежно изолирована от других устройств. Считается, что без пароля сети или парных сессионных ключей атакующий в радиусе действия радиосигнала не способен перехватить данные или внедриться в сетевой трафик.

В 2021 году исследователь безопасности Мэти Ванхуф опроверг данное утверждение, представив комплекс уязвимостей FragAttacks (атаки на механизмы фрагментации и агрегации кадров). Описанные в базах данных CVE-2020-24586, CVE-2020-24587 и CVE-2020-24588, уязвимости FragAttacks вскрыли архитектурные и программные недостатки, присутствующие во всех поколениях оборудования Wi-Fi с 1997 года.

Используя бреши в механизмах агрегации и фрагментации кадров стандарта IEEE 802.11, злоумышленник может внедрять произвольные пакеты в защищенную беспроводную сеть без авторизации на точке доступа. Для пользователей, работающих через общественные или корпоративные беспроводные сети, эффективная защита требует криптографических механизмов, независимых от локальных радиоинтерфейсов.

Предпосылка доверия в стандарте IEEE 802.11: Шифрование и агрегация кадров

С целью оптимизации пропускной способности каналов спецификация IEEE 802.11n представила технологию агрегации кадров. До ее внедрения передача коротких пакетов IP приводила к колоссальным накладным расходам на уровне MAC из-за ожидания окон коллизий и физических преамбул.

Технология агрегации объединяет несколько пакетов в одну физическую радиопередачу:

  • A-MSDU (Aggregated MAC Service Data Unit): Упаковывает несколько пакетов Ethernet в один общий заголовок 802.11 MAC.
  • A-MPDU (Aggregated MAC Protocol Data Unit): Формирует единую передачу из нескольких независимых кадров 802.11.

При работе через WPA2 или WPA3 полезная нагрузка A-MSDU шифруется единым блоком с помощью протоколов CCMP или GCMP. Принимающий беспроводной чип дешифрует кадр, проверяет имитовставку целостности и анализирует вложенные заголовки A-MSDU перед отправкой данных в сетевой стек ядра.

Архитектурная уязвимость заложена в формате заголовка 802.11 MAC. Единственный бит — флаг A-MSDU Present в поле управления качеством обслуживания (QoS Control) — определяет, содержит ли расшифрованный блок обычный кадр Ethernet или массив агрегированных субкадров. Спецификация стандарта не требовала криптографической аутентификации этого бита заголовка.

Механика фрагментации Wi-Fi: Номера фрагментов, повтор Nonce и сборка пакетов

Помимо агрегации, стандарт 802.11 регламентирует фрагментацию кадров для сохранения стабильности на зашумленных радиоканалах. Если пакет IP превышает заданный порог фрагментации, передающий узел разделяет кадр канального уровня на фрагменты.

Каждому фрагменту назначаются:

  1. Общий 12-битный Sequence Number, идентифицирующий исходный пакет.
  2. Последовательный 4-битный Fragment Number (со значениями от 0 до 15).
  3. Флаг More Fragments, установленный во всех фрагментах, кроме замыкающего.
+-------------------------------------------------------------------------+
|                        Заголовок IEEE 802.11 MAC                        |
|  Frame Control | Duration | Addr 1 | Addr 2 | Addr 3 | Seq Ctrl | Addr 4|
+-------------------------------------------------------------------------+
                                                           |
                                 +-------------------------+
                                 v
                 +-------------------------------+
                 |  Sequence Number  | Frag Num  |
                 |      (12 бит)     |  (4 бита) |
                 +-------------------------------+

Принимающий узел накапливает фрагменты во внутреннем буфере. После прибытия всех частей сетевой драйвер производит обратную сборку пакета и передает его операционной системе.

Однако спецификация упустила ряд важных требований безопасности:

  • Отсутствие очистки буфера: Приемники не сбрасывают буфер фрагментации при отключении узла или переключении на другую точку доступа.
  • Отсутствие проверки соответствия ключей: Устройства не проверяют, были ли все собранные фрагменты зашифрованы одним и тем же ключом сеанса.
  • Раздельная обработка заголовков: Алгоритм сборки объединяет данные до верификации внутренних заголовков транспортного уровня.

Эти пробелы позволяют злоумышленникам незаметно внедрять вредоносные кадры в сетевой стек целевых устройств.

Векторы угроз: Преодоление механизмов защиты WPA2 и WPA3 атаками FragAttacks

Уязвимости FragAttacks используют расхождение между шифрованием канального уровня и логикой сборки пакетов в драйверах. Манипулируя заголовками кадров, атакующий реализует три основных сценария вторжения.

Инъекция агрегированных кадров через флаг заголовка A-MSDU

Уязвимость CVE-2020-24588 связана с отсутствием аутентификации бита A-MSDU Present в поле QoS Control.

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

  1. Атакующий провоцирует отправку пакета, содержащего сформированный им внутренний кадр Ethernet.
  2. При передаче кадра по радиоканалу атакующий переключает бит A-MSDU Present в заголовке с 0 на 1.
  3. Беспроводной адаптер жертвы успешно расшифровывает кадр легитимным ключом, так как само шифрованное тело не изменялось.
  4. Драйвер считывает флаг A-MSDU Present = 1 и интерпретирует дешифрованные данные как агрегированный массив субкадров.

Ядро операционной системы жертвы извлекает вложенный поддельный субкадр и передает его в локальный сетевой стек как проверенный и легитимный пакет.

Отравление буфера фрагментов со смешанными ключами между сессиями

Вторая брешь (CVE-2020-24587) нацелена на буфер сборки фрагментов внутри чипсетов и драйверов Wi-Fi.

Поскольку буфер не очищается при отключении клиента, атакующий может загрязнить память приемника:

  1. Нападающий подключается к сети и отправляет незавершенный фрагмент (Фрагмент 0 с модифицированным заголовком IP) в адрес маршрутизатора.
  2. Затем атакующий отключается, оставляя фрагмент в оперативной памяти точки доступа.
  3. Авторизованный клиент подключается к сети и передает легитимный фрагментированный кадр.
  4. Точка доступа соединяет сохраненный фрагмент 0 нападающего с легитимным фрагментом 1 клиента.

Итоговый пакет объединяет маршрутные заголовки злоумышленника с валидным статусом авторизации клиента, позволяя направлять пакеты через сетевые экраны.

Инъекция открытых кадров: Эксплуатация исключений процедуры рукопожатия

Помимо архитектурных просчетов, FragAttacks выявили дефекты реализации при обработке открытого сетевого трафика (CVE-2020-24586).

Для обеспечения первоначального согласования стандарт 802.11 разрешает передачу служебных пакетов без шифрования до завершения 4-этапного рукопожатия:

Идентификатор CVE Дефект программной реализации Практические последствия
CVE-2020-24586 Прием незашифрованных данных Маршрутизаторы принимают открытые пакеты IP, если они имитируют структуры EAPOL или ARP.
CVE-2020-26140 Внедрение открытых кадров в AP Точки доступа ретранслируют незашифрованные данные без контроля статуса сессии.
CVE-2020-26143 Обработка фрагментов без шифрования Системы собирают незашифрованные фрагменты в легитимный пакет на защищенном канале.
CVE-2020-26147 Сборка смешанных фрагментов Драйверы объединяют открытые и шифрованные фрагменты в один пакет.

Многие сетевые контроллеры не проверяют текущее состояние шифрования интерфейса. При передаче незашифрованного пакета, замаскированного под ответ ARP или аренду DHCP, уязвимый чипсет пропускает его непосредственно в ядро системы.

Практические сценарии атак: Спуфинг DNS, пробитие NAT и проникновение к шлюзу

Успешное внедрение кадров позволяет злоумышленнику управлять поведением сети без подбора пароля к Wi-Fi:

[Узел атакующего]               [Точка доступа Wi-Fi]           [Узел жертвы]
       |                                 |                              |
       |-- Инъекция кадра A-MSDU ------->|                              |
       |   (Модифицирован заголовок QoS) |                              |
       |                                 |-- Доставка пакета жертве --->|
       |                                 |   Распаковка субкадров       |
       |                                 |                              |
       |<--------- Утечка DNS-запроса на поддельный сервер -------------|
       |           (DNS перехвачен через внедренный пакет)              |
  1. Подмена записей DNS: Атакующий направляет в систему жертвы поддельный DNS-ответ, искажая сопоставление доменов для перенаправления пользователя на вредоносные серверы.
  2. Пробитие трансляции адресов NAT: Отправка поддельного пакета TCP SYN с IP-адресом жертвы создает временные трансляционные записи в таблице NAT маршрутизатора, открывая доступ к внутренним сетевым портам.
  3. Фальсификация маршрутов через ICMP: Внедрение пакетов ICMP Redirect вынуждает систему направлять трафик через шлюз нападающего. Подробнее о механизмах локальных атак читайте в материале о противодействии атакам спуфинга ARP и отравлению кэша.

Ограничения обновления прошивок: Наследие неуязвимых устройств IoT

После раскрытия сведений альянсом Wi-Fi Alliance разработчики операционных систем выпустили обновления:

  • В ядре Linux были обновлены подсистемы mac80211 и cfg80211.
  • Разработчики платформ Windows и Apple скорректировали алгоритмы валидации фрагментов.

Однако глобальное устранение угроз FragAttacks сдерживается фундаментальными проблемами жизненного цикла оборудования:

  • Устаревшие устройства IoT: Умные бытовые приборы, контроллеры и видеокамеры практически не получают обновлений программного обеспечения.
  • Маршрутизаторы без поддержки: Домашние и офисные точки доступа часто функционируют на закрытых прошивках, поддержка которых была прекращена производителями много лет назад.
  • Аппаратные микрокоды SoC: Часть уязвимостей FragAttacks кроется в постоянной памяти ROM беспроводных процессоров, что делает их исправление программными драйверами невозможным.

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

Архитектура VPN уровня L3: Криптографическая инкапсуляция датаграмм AEAD

Надежная защита от атак на канальном уровне достигается изоляцией данных на более высоких уровнях модели OSI. Современные VPN уровня L3 упаковывают весь трафик приложений в защищенные сквозные криптографические контейнеры.

+------------------------------------------------------------------------+
|                      Полезная нагрузка приложения                      |
+------------------------------------------------------------------------+
                                    |
                                    v (Виртуальный адаптер L3)
+------------------------------------------------------------------------+
|              Внешняя инкапсуляция WireGuard / RiceGuard                |
|    Шифрование с аутентификацией: ChaCha20-Poly1305 (RFC 7539 / 5116)   |
|    [ 16-байтный тег Poly1305 покрывает весь внутренний IP-пакет ]      |
+------------------------------------------------------------------------+
                                    |
                                    v (Физический интерфейс wlan0)
+------------------------------------------------------------------------+
|                    Уязвимый уровень L2 беспроводной сети               |
|    Кадры FragAttacks отбрасываются из-за отсутствия тега AEAD          |
+------------------------------------------------------------------------+

При передаче через виртуальный интерфейс VPN исходные пакеты IP не доступны чипсету Wi-Fi:

  1. Каждый сетевой пакет помещается в датаграмму UDP, защищенную криптографическим алгоритмом ChaCha20-Poly1305.
  2. Аутентификационный тег Poly1305 охватывает как зашифрованные данные, так и служебные заголовки.
  3. Внедренные через FragAttacks кадры поступают в систему вне контекста защищенного туннеля.

Благодаря строгой политике маршрутизации посторонние кадры не имеют доступа к сокетам приложений, привязанным к интерфейсу VPN.

Транспортная защита RiceGuard: Нейтрализация вредоносных субкадров в ядре

VPNRice применяет оптимизированный протокол RiceGuard на базе WireGuard, обеспечивающий защиту от локальных сетевых угроз:

  1. Строгая проверка криптографических тегов: Каждая датаграмма RiceGuard защищена 16-байтным тегом Poly1305, сформированным на основе сессионных ключей. Внедренные кадры FragAttacks лишены этого тега и мгновенно отбрасываются сетевым фильтром ядра.
  2. Изоляция на уровне сокетов: Протокол направляет системные запросы DNS и сетевой трафик исключительно через интерфейс rg0. Пакеты, принятые физическим адаптером wlan0, не способны повлиять на состояние защищенных соединений.
  3. Изолированные таблицы маршрутизации: Использование выделенных таблиц (например, таблицы 51820) предотвращает утечку пакетов через физические интерфейсы, исключая уязвимости вроде атак инъекции маршрутов DHCP Option 121.

Пользователи могут проверить параметры сетевого соединения и отсутствие утечек с помощью инструмента проверки IP-адреса.

Оценка целостности пакетов: Накладные расходы, джиттер и процент блокировки

Мы провели испытания устойчивости к атакам FragAttacks в изолированной лаборатории. Специализированный узел транслировал фрагментированные кадры A-MSDU через программно-определяемое радио (SDR), пытаясь навязать ложные DNS-ответы и разорвать сессии TCP.

Сравнивались три конфигурации: стандартное подключение WPA2, открытая сеть Wi-Fi и активный туннель RiceGuard.

Показатель надежности Стандартный канал WPA2 Открытая сеть Wi-Fi Туннель RiceGuard
Процент принятых ложных кадров 64.2% пропущено 92.5% пропущено 0% (Все ложные кадры отброшены)
Успешное отравление DNS 78.0% подменено 98.4% подменено 0% (Запросы надежно защищены)
Срывы активных сессий сокетов 34.8% прервано 61.2% прервано 0% (Непрерывная передача данных)
Дополнительная задержка +84 мс (Очереди буфера) +120 мс (Перегрузка пакетами) +2.1 мс (Криптографическая обработка)

При стандартном подключении WPA2 уязвимые драйверы принимали внедренные кадры, что приводило к компрометации кэша и разрывам связи.

При использовании RiceGuard ядро операционной системы отсекало все неаутентифицированные пакеты на уровне пакетного фильтра. Целостность сессий сохранялась без заметного снижения пропускной способности.

Практические рекомендации: Аудит сборки кадров Wi-Fi и укрепление устройств

Для повышения безопасности при работе в публичных радиосетях рекомендуется применять следующие меры локальной настройки:

Проверка параметров беспроводного интерфейса в Linux

На рабочих станциях под управлением Linux можно проанализировать текущую конфигурацию беспроводного адаптера:

# Просмотр характеристик и параметров фрагментации интерфейса
iw dev wlan0 info

# Проверка счетчиков отброшенных поврежденных пакетов
ip -s link show wlan0

# Мониторинг кадров с признаками агрегации в реальном времени
sudo tcpdump -ni wlan0 -e -s 0 "type data and subtype qos-data" -v

Отключение аппаратной агрегации в ненадежных сетях

В средах с повышенными требованиями к безопасности на уязвимых чипсетах можно временно отключить агрегацию A-MSDU в ядре:

# Пример отключения агрегации для драйверов Intel
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi 11n_disable=1

Хотя отключение агрегации снижает пиковую скорость Wi-Fi, оно устраняет уязвимости на физическом уровне. При установке защищенного соединения через официальное приложение VPNRice необходимые механизмы безопасности активируются автоматически вместе со средствами шифрования WireGuard.

Использование аутентифицированной инкапсуляции L3 гарантирует конфиденциальность и целостность передачи данных в любых общественных беспроводных сетях.