Источник https://xss.pro
Автор evdo
Рисунок 1 — Фокусировка радиосигнала в направлении клиентского устройства.
Рисунок 2 — Базовый принцип работы технологии.
Формирование луча использует антенные решетки для динамического изменения диаграммы направленности, которая может изменяться на покадровой основе. Широковещательный трафик при этом передаётся всенаправленно для сохранения зоны покрытия.
Математически способность направлять энергию между устройствами - формирователем луча и принимающим луч - представлена управляющей матрицей, которая в стандарте IEEE 802.11 обозначается буквой V. Принимающий луч рассчитывает матрицу V и сжимает ее, чтобы она могла быть представлена кадром меньшего объема и, таким образом, занимала меньше эфирного времени. Сжатие матрицы формирования луча достигается за счет использования матричных операций для отправки репрезентативного набора значений, которые могут быть использованы для восстановления матрицы, вместо отправки самой исходной матрицы.
Для расчета матрицы V согласно стандарту IEEE 802.11 принимающий луч выполняет следующую процедуру:
1. После получения кадра NDP от формирователя луча каждая поднесущая OFDM обрабатывается независимо в своей собственной матрице, которая описывает производительность поднесущей между каждым элементом передающей антенны и каждым элементом приемной антенны. Содержимое матрицы основано на принятой мощности и фазовых сдвигах между каждой парой антенн.
2. Матрица преобразуется операцией матричного умножения, называемой вращением Гивенса, которая зависит от амплитудных и фазовых параметров, называемых «углами». Амплитудные углы (ϕ) управляют соотношением мощностей между антеннами, фазовые углы (ψ) определяют сдвиг фазы сигнала. Вместо передачи полной матрицы, принимающий луч рассчитывает углы на основе матричного вращения. Стандарт IEEE 802.11 определяет порядок, в котором эти углы передаются, чтобы формирователь луча мог получить и обработать соответствующую последовательность бит. Рассчитав углы, принимающий луч собирает их в сжатую форму и возвращает их формирователю луча. Углы Гивенса вычисляются для каждой поднесущей, но передаются группами (например, 4 поднесущие в IEEE 802.11ac или Resource Units в IEEE 802.11ax).
3. Формирователь луча получает набор углов Гивенса, восстанавливает матрицу и использует ее для формирования луча.
В однопользовательском режиме (SU-MIMO) матрица V создаётся для одного устройства.
В многопользовательском режиме (MU-MIMO, в IEEE 802.11ax) формирователь луча собирает матрицы от нескольких устройств и создаёт единую управляющую матрицу P, которая координирует передачу данных для всех клиентов одновременно.
При передаче матрицы V ее размер определяется тремя основными факторами.
Во-первых, более широкие каналы имеют больше поднесущих OFDM, матрица должна обеспечивать их полное описание.
Во-вторых, чем больше количество попарных комбинаций передающих и приемных антенн, тем больше будет матрица.
Наконец, стандарт IEEE 802.11 допускает два различных представления значений углов, чтобы устройства могли использовать более высокое разрешение и избегать межпользовательских помех (при необходимости).
В стандарте IEEE 802.11ax дополнительно реализована поддержка группировки поднесущих (Resource Units, RU). Матрица обратной связи в этом случае рассчитывается не для всех поднесущих OFDM, а для выделенных RU, что снижает нагрузку.
Также реализована дифференциальная обратная связь для экономии ресурсов (описание см. далее).
3. Процедуры зондирования канала
Зондирование канала — это процесс, в котором формирователь луча и принимающий луч обмениваются информацией, чтобы определить оптимальный способ направления сигнала. Это позволяет использовать частотные каналы с наилучшей производительностью и избегать слабых путей распространения сигнала.
3.1 Зондирование канала для однопользовательского формирования луча (SU-MIMO)
Зондирование канала в режиме SU-MIMO включает три основных этапа:
1. Кадр анонса нулевого пакета данных (NDP Announcement frame)
Формирователь луча отправляет управляющий кадр анонса нулевого пакета данных (NDP Announcement frame), который сообщает принимающему устройству о начале зондирования.
Структура кадра представлена на Рисунке 3.
При формировании луча в режиме однопользовательского MIMO кадр NDP Announcement содержит размер матрицы обратной связи, указывая количество ее столбцов.
Рисунок 3 — Структура кадра NDP Announcement (однопользовательский режим).
Рисунок 4 — Формат кадра NDP.
Рисунок 5 — Формат кадра VHT/HE Compressed Beamforming.
3.2 Зондирование канала для многопользовательского формирования луча (MU-MIMO)
Для поддержки многопользовательского формирования луча (MU-MIMO), в стандарте используется расширенная версия процедуры зондирования канала.
Как показано на Рисунке 6, процедура многопользовательского зондирования требует ответа от всех устройств, принимающих лучи.
Каждое устройство вносит информацию в матрицу обратной связи, и устройство-формирователь луча использует несколько матриц обратной связи для создания единой управляющей матрицы.
Рисунок 6 - Процедура многопользовательского зондирования канала.
Рисунок 7 — Структура кадра NDP Announcement (многопользовательский режим).
Рисунок 8 — Структура кадра Compressed Beamforming Action.
Этот кадр довольно прост, как видно на Рисунке 9: по сути, это однобайтовое поле запросов на повторную передачу. Каждый бит в поле битовой карты обратной связи (Feedback Bitmap field) запрашивает повторную передачу одного сегмента обратной связи.
Рисунок 9 — Структура кадра Beamforming Report Poll.
4. Применение фазовых сдвигов (phi): для каждой поднесущей применяется диагональная матрица фаз, которая изменяет фазу строк V, обеспечивая правильное выравнивание сигналов. Фазовые сдвиги берутся из первых строк angles (индексы 0 до ii−1).
5. После применения всех phi и psi, матрица V становится унитарной матрицей, соответствующей декодированным данным обратной связи. Унитарность проверяется в режиме отладки (аргумент --debug), чтобы убедиться в корректности:
Рисунок 10 – Оригинальный кадр VHT Compressed Beamforming.
Рисунок 11 – Оригинальный кадр HE Compressed Beamforming.
Рисунок 12 – Начало атаки.
Рисунок 13 – Выполнение атаки в режиме отладки (фрагмент).
Как отмечено ранее, излучение поддельных пакетов реализовано с увеличением значения поля SN на единицу, модификацией значений SNR и матрицы обратной связи. Убедимся в действительном излучении таких кадров при помощи Wireshark (см. Рисунки 14 и 15).
Также на сетевом интерфейсе зафиксируем обмен кадрами типа NDP Announcement между атакуемыми устройствами (Рисунок 16).
Если таких кадров не обнаружено, то это означает, что в оборудовании используется собственный алгоритм beamforming, который не следует стандартам 802.11ac или 802.11ax.
В таком случае вместо кадров NDP для оценки канала могут использоваться обычные данные (например, кадры типа Data или Management других типов). Интерпретация и модификация информации BFI в этих условиях нестандартные и требуют отдельного исследования.
Рисунок 14 – Поддельный кадр VHT Compressed Beamforming.
Рисунок 15 – Поддельный кадр HE Compressed Beamforming.
Рисунок 16 – Кадр типа NDP Announcement.
В ходе работы подробно рассмотрена технология формирования лучей (beamforming) стандартов IEEE 802.11ac/ax, а также проведен анализ ее безопасности.
Выявлены уязвимости, связанные с отсутствием шифрования и аутентификации кадров зондирования, а также предсказуемой структурой матриц обратной связи.
Эти недостатки позволяют проводить атаки типа MitM, DoS, перехват данных и манипуляцию энергопотреблением устройств.
Для эксплуатации уязвимости типа DoS предложен метод подделки матрицы обратной связи, реализованный на языке C++.
Разработан алгоритм атаки и описаны основные этапы его реализации.
Экспериментальная проверка подтвердила возможность проведения атаки на всех устройствах тестового стенда, за исключением устройств вендора Cudy, использующих проприетарные методы формирования лучей и особенности настройки.
Подделка кадров обратной связи демонстрирует возможность практической эксплуатации уязвимости даже в сетях с режимом защиты WPA3.
Автор evdo
Пример эксплуатации уязвимости технологии beamforming стандартов IEEE 802.11ac/ax.
1. Введение
Формирование диаграммы направленности (beamforming) — это технология, которая позволяет увеличить производительность беспроводных сетей, фокусируя радиосигнал в направлении клиентского устройства.
В отличие от традиционных всенаправленных антенн, которые излучают сигнал равномерно во всех направлениях, beamforming позволяет направить энергию сигнала в конкретную точку, что повышает соотношение сигнал/шум (SNR) и, как следствие, скорость передачи данных (Рисунок 1).
Формирование диаграммы направленности (beamforming) — это технология, которая позволяет увеличить производительность беспроводных сетей, фокусируя радиосигнал в направлении клиентского устройства.
В отличие от традиционных всенаправленных антенн, которые излучают сигнал равномерно во всех направлениях, beamforming позволяет направить энергию сигнала в конкретную точку, что повышает соотношение сигнал/шум (SNR) и, как следствие, скорость передачи данных (Рисунок 1).
Рисунок 1 — Фокусировка радиосигнала в направлении клиентского устройства.
В точках доступа (AP) стандартов IEEE 802.11 a/b/g использовались всенаправленные антенны, которые излучали сигнал во всех направлениях. Это позволяло охватить большую площадь, но приводило к неэффективному использованию мощности и создавало помехи для других устройств.
Реализация технологии beamforming в стандарте IEEE 802.11n требовала, чтобы все участники информационного обмена поддерживали взаимно согласованные функции формирования лучей из доступного набора опций. Вместе с тем очень немногие производители реализовали одинаковые решения, кросс-вендорная совместимость в данном аспекте практически отсутствовала.
В этой связи при разработке стандарта IEEE 802.11ac (Wi-Fi 5) реализовано упрощение до одного технического метода - использования явного формирования диаграммы направленности (explicit beamforming) способом, называемом зондированием с использованием нулевого пакета данных (NDP).
В стандарте IEEE 802.11ax (Wi-Fi 6) технология beamforming получила дальнейшее развитие. Реализация явного формирования диаграммы направленности сохранена, однако процедура зондирования канала модифицирована для поддержки группировки поднесущих (Resource Units) и восходящего MU-MIMO. Введены новые форматы кадров HE Compressed Beamforming и HE NDP, а ёмкость многопользовательской передачи увеличена до 8 клиентов. Для фильтрации помех от чужих сетей и планирования активности устройств для энергоэффективности реализованы методы BSS Coloring и TWT (Target Wake Time).
2. Принцип работы и терминология
Стандартом IEEE 802.11 определены термины для отправителя и получателя сформированных лучом кадров.
Любое устройство, которое формирует направленный радиосигнал, называется формирователем луча (beamformer), а приемник такого радиосигнала — принимающим луч (beamformee). Эти роли могут меняться: точка доступа может быть как beamformer, так и beamformee, в зависимости от направления передачи.
Будем использовать эту терминологию в дальнейшем.
Реализация технологии beamforming в стандарте IEEE 802.11n требовала, чтобы все участники информационного обмена поддерживали взаимно согласованные функции формирования лучей из доступного набора опций. Вместе с тем очень немногие производители реализовали одинаковые решения, кросс-вендорная совместимость в данном аспекте практически отсутствовала.
В этой связи при разработке стандарта IEEE 802.11ac (Wi-Fi 5) реализовано упрощение до одного технического метода - использования явного формирования диаграммы направленности (explicit beamforming) способом, называемом зондированием с использованием нулевого пакета данных (NDP).
В стандарте IEEE 802.11ax (Wi-Fi 6) технология beamforming получила дальнейшее развитие. Реализация явного формирования диаграммы направленности сохранена, однако процедура зондирования канала модифицирована для поддержки группировки поднесущих (Resource Units) и восходящего MU-MIMO. Введены новые форматы кадров HE Compressed Beamforming и HE NDP, а ёмкость многопользовательской передачи увеличена до 8 клиентов. Для фильтрации помех от чужих сетей и планирования активности устройств для энергоэффективности реализованы методы BSS Coloring и TWT (Target Wake Time).
2. Принцип работы и терминология
Стандартом IEEE 802.11 определены термины для отправителя и получателя сформированных лучом кадров.
Любое устройство, которое формирует направленный радиосигнал, называется формирователем луча (beamformer), а приемник такого радиосигнала — принимающим луч (beamformee). Эти роли могут меняться: точка доступа может быть как beamformer, так и beamformee, в зависимости от направления передачи.
Будем использовать эту терминологию в дальнейшем.
Рисунок 2 — Базовый принцип работы технологии.
Формирование луча использует антенные решетки для динамического изменения диаграммы направленности, которая может изменяться на покадровой основе. Широковещательный трафик при этом передаётся всенаправленно для сохранения зоны покрытия.
Математически способность направлять энергию между устройствами - формирователем луча и принимающим луч - представлена управляющей матрицей, которая в стандарте IEEE 802.11 обозначается буквой V. Принимающий луч рассчитывает матрицу V и сжимает ее, чтобы она могла быть представлена кадром меньшего объема и, таким образом, занимала меньше эфирного времени. Сжатие матрицы формирования луча достигается за счет использования матричных операций для отправки репрезентативного набора значений, которые могут быть использованы для восстановления матрицы, вместо отправки самой исходной матрицы.
Для расчета матрицы V согласно стандарту IEEE 802.11 принимающий луч выполняет следующую процедуру:
1. После получения кадра NDP от формирователя луча каждая поднесущая OFDM обрабатывается независимо в своей собственной матрице, которая описывает производительность поднесущей между каждым элементом передающей антенны и каждым элементом приемной антенны. Содержимое матрицы основано на принятой мощности и фазовых сдвигах между каждой парой антенн.
2. Матрица преобразуется операцией матричного умножения, называемой вращением Гивенса, которая зависит от амплитудных и фазовых параметров, называемых «углами». Амплитудные углы (ϕ) управляют соотношением мощностей между антеннами, фазовые углы (ψ) определяют сдвиг фазы сигнала. Вместо передачи полной матрицы, принимающий луч рассчитывает углы на основе матричного вращения. Стандарт IEEE 802.11 определяет порядок, в котором эти углы передаются, чтобы формирователь луча мог получить и обработать соответствующую последовательность бит. Рассчитав углы, принимающий луч собирает их в сжатую форму и возвращает их формирователю луча. Углы Гивенса вычисляются для каждой поднесущей, но передаются группами (например, 4 поднесущие в IEEE 802.11ac или Resource Units в IEEE 802.11ax).
3. Формирователь луча получает набор углов Гивенса, восстанавливает матрицу и использует ее для формирования луча.
В однопользовательском режиме (SU-MIMO) матрица V создаётся для одного устройства.
В многопользовательском режиме (MU-MIMO, в IEEE 802.11ax) формирователь луча собирает матрицы от нескольких устройств и создаёт единую управляющую матрицу P, которая координирует передачу данных для всех клиентов одновременно.
При передаче матрицы V ее размер определяется тремя основными факторами.
Во-первых, более широкие каналы имеют больше поднесущих OFDM, матрица должна обеспечивать их полное описание.
Во-вторых, чем больше количество попарных комбинаций передающих и приемных антенн, тем больше будет матрица.
Наконец, стандарт IEEE 802.11 допускает два различных представления значений углов, чтобы устройства могли использовать более высокое разрешение и избегать межпользовательских помех (при необходимости).
В стандарте IEEE 802.11ax дополнительно реализована поддержка группировки поднесущих (Resource Units, RU). Матрица обратной связи в этом случае рассчитывается не для всех поднесущих OFDM, а для выделенных RU, что снижает нагрузку.
Также реализована дифференциальная обратная связь для экономии ресурсов (описание см. далее).
3. Процедуры зондирования канала
Зондирование канала — это процесс, в котором формирователь луча и принимающий луч обмениваются информацией, чтобы определить оптимальный способ направления сигнала. Это позволяет использовать частотные каналы с наилучшей производительностью и избегать слабых путей распространения сигнала.
3.1 Зондирование канала для однопользовательского формирования луча (SU-MIMO)
Зондирование канала в режиме SU-MIMO включает три основных этапа:
1. Кадр анонса нулевого пакета данных (NDP Announcement frame)
Формирователь луча отправляет управляющий кадр анонса нулевого пакета данных (NDP Announcement frame), который сообщает принимающему устройству о начале зондирования.
Структура кадра представлена на Рисунке 3.
При формировании луча в режиме однопользовательского MIMO кадр NDP Announcement содержит размер матрицы обратной связи, указывая количество ее столбцов.
Рисунок 3 — Структура кадра NDP Announcement (однопользовательский режим).
Основное назначение кадра NDP Announcement — трансляция информационного поля (STA Info) для предполагаемого устройства, принимающего луч.
Поле STA Info имеет длину два байта и состоит из трех полей:
1. AID12 (12 младших значащих битов идентификатора ассоциации предполагаемого устройства, принимающего луч).
При ассоциации с точкой доступа IEEE 802.11 клиентским устройствам присваивается идентификатор ассоциации. Младшие 12 значащих битов идентификатора ассоциации принимающего луч включаются в это поле. Когда клиентское устройство действует как формирователь луча, это поле устанавливается в 0, потому что точка доступа не имеет идентификатора ассоциации.
2. Feedback Type (Тип обратной связи)
В однопользовательском кадре анонса NDP это поле всегда равно 0.
3. Индекс Nc
Этот индекс описывает количество столбцов в матрице обратной связи, по одному столбцу на каждый пространственный поток. Будучи трехбитовым полем, оно может принимать восемь значений, что соответствует восьми потокам, поддерживаемым IEEE 802.11ac.
Поле устанавливается в значение «количество пространственных потоков минус один».
2. Кадр нулевого пакета данных (NDP frame)
Формирователь луча отправляет NDP — тестовый кадр без данных уровня MAC, содержащий обучающие символы (VHT-LTF в IEEE 802.11ac, HE-LTF в IEEE 802.11ax). Зондирование канала осуществляется путем анализа принятых обучающих символов в заголовке PLCP.
Структура кадра представлена на Рисунке 4.
Поле STA Info имеет длину два байта и состоит из трех полей:
1. AID12 (12 младших значащих битов идентификатора ассоциации предполагаемого устройства, принимающего луч).
При ассоциации с точкой доступа IEEE 802.11 клиентским устройствам присваивается идентификатор ассоциации. Младшие 12 значащих битов идентификатора ассоциации принимающего луч включаются в это поле. Когда клиентское устройство действует как формирователь луча, это поле устанавливается в 0, потому что точка доступа не имеет идентификатора ассоциации.
2. Feedback Type (Тип обратной связи)
В однопользовательском кадре анонса NDP это поле всегда равно 0.
3. Индекс Nc
Этот индекс описывает количество столбцов в матрице обратной связи, по одному столбцу на каждый пространственный поток. Будучи трехбитовым полем, оно может принимать восемь значений, что соответствует восьми потокам, поддерживаемым IEEE 802.11ac.
Поле устанавливается в значение «количество пространственных потоков минус один».
2. Кадр нулевого пакета данных (NDP frame)
Формирователь луча отправляет NDP — тестовый кадр без данных уровня MAC, содержащий обучающие символы (VHT-LTF в IEEE 802.11ac, HE-LTF в IEEE 802.11ax). Зондирование канала осуществляется путем анализа принятых обучающих символов в заголовке PLCP.
Структура кадра представлена на Рисунке 4.
Рисунок 4 — Формат кадра NDP.
Внутри NDP имеется одно обучающее поле VHT (VHT-LTF) для каждого пространственного потока, используемого при передаче, в том числе с формированием луча.
В IEEE 802.11ax вместо кадра NDP используется кадр HE NDP с улучшенными обучающими полями HE-LTF.
Поля HE-LTF поддерживают два режима:
3. Compressed Beamforming Action
Принимающий луч отправляет сжатую матрицу V, содержащую информацию о состоянии канала.
В IEEE 802.11ac используется кадр VHT Compressed Beamforming, в IEEE 802.11ax — кадр HE Compressed Beamforming с поддержкой до 12 потоков и дифференциальной обратной связи (передача изменений SNR вместо полных данных).
Поле MIMO Control описывает параметры матрицы: её размер, ширину канала, группировку поднесущих и тип обратной связи (см. Рисунок 5):
1. Размер матрицы обратной связи (6 бит)
Поля Индекс Nc и Индекс Nr описывают размер матрицы обратной связи с точки зрения количества столбцов и количества строк.
2. Ширина канала (2 бита)
Размер матрицы обратной связи также зависит от размера базового канала. Более широкие каналы требуют больших матриц обратной связи, потому что необходимо измерять большее количество отдельных несущих.
3. Группировка (2 бита)
Когда части матрицы формирования луча повторяются, принимающий луч может группировать несколько пространственных потоков вместе, чтобы уменьшить размер передаваемой матрицы.
4. Кодовая книга (Codebook, 1 бит)
Матрица формирования луча используется для описания фазовых сдвигов, требуемых каждым элементом антенны.
Информация об этих углах передается в виде последовательности битов; получателю управляющей матрицы необходимо знать, где и как разделить битовое поле на отдельные элементы матрицы - это поле используется для описания представления данных.
5. Тип обратной связи (1 бит)
В однопользовательском MIMO тип обратной связи - "однопользовательский".
6. Управление потоком (10 бит)
Поля «Оставшиеся сегменты обратной связи» и «Первый сегмент обратной связи» используются вместе с токеном диалога зондирования для сопоставления ответа от принимающего луч с запросом формирователя луча.
В очень больших матрицах с широкой полосой пропускания и большим количеством пространственных потоков матрица будет довольно большой и, следовательно, может потребоваться отправка формирователю луча в несколько этапов.
В IEEE 802.11ax вместо кадра NDP используется кадр HE NDP с улучшенными обучающими полями HE-LTF.
Поля HE-LTF поддерживают два режима:
- режим 4×(Long LTF) для каналов шириной ≤ 80 МГц, подходит для низкого SNR (< 20 dB).
- режим 2×(Short LTF) для каналов 160 МГц, сокращает служебные данные.
3. Compressed Beamforming Action
Принимающий луч отправляет сжатую матрицу V, содержащую информацию о состоянии канала.
В IEEE 802.11ac используется кадр VHT Compressed Beamforming, в IEEE 802.11ax — кадр HE Compressed Beamforming с поддержкой до 12 потоков и дифференциальной обратной связи (передача изменений SNR вместо полных данных).
Поле MIMO Control описывает параметры матрицы: её размер, ширину канала, группировку поднесущих и тип обратной связи (см. Рисунок 5):
1. Размер матрицы обратной связи (6 бит)
Поля Индекс Nc и Индекс Nr описывают размер матрицы обратной связи с точки зрения количества столбцов и количества строк.
2. Ширина канала (2 бита)
Размер матрицы обратной связи также зависит от размера базового канала. Более широкие каналы требуют больших матриц обратной связи, потому что необходимо измерять большее количество отдельных несущих.
3. Группировка (2 бита)
Когда части матрицы формирования луча повторяются, принимающий луч может группировать несколько пространственных потоков вместе, чтобы уменьшить размер передаваемой матрицы.
4. Кодовая книга (Codebook, 1 бит)
Матрица формирования луча используется для описания фазовых сдвигов, требуемых каждым элементом антенны.
Информация об этих углах передается в виде последовательности битов; получателю управляющей матрицы необходимо знать, где и как разделить битовое поле на отдельные элементы матрицы - это поле используется для описания представления данных.
5. Тип обратной связи (1 бит)
В однопользовательском MIMO тип обратной связи - "однопользовательский".
6. Управление потоком (10 бит)
Поля «Оставшиеся сегменты обратной связи» и «Первый сегмент обратной связи» используются вместе с токеном диалога зондирования для сопоставления ответа от принимающего луч с запросом формирователя луча.
В очень больших матрицах с широкой полосой пропускания и большим количеством пространственных потоков матрица будет довольно большой и, следовательно, может потребоваться отправка формирователю луча в несколько этапов.
Рисунок 5 — Формат кадра VHT/HE Compressed Beamforming.
В стандарте IEEE 802.11ax размерность матрицы обратной связи увеличена до 12 пространственных потоков (против 8 в IEEE 802.11ac), введено поле Feedback Type (2 бита), определяющее тип обратной связи для RU: полную и дифференциальную.
При дифференциальном типе обратной связи передаются не абсолютные значения SNR, а их изменение относительно предыдущего измерения.
Также добавлено 2-битное поле "Doppler Feedback" для движущихся устройств в целях компенсации искажений сигнала при перемещении клиента относительно точки доступа (оценка сдвига частот, включается в матрицу V).При дифференциальном типе обратной связи передаются не абсолютные значения SNR, а их изменение относительно предыдущего измерения.
3.2 Зондирование канала для многопользовательского формирования луча (MU-MIMO)
Для поддержки многопользовательского формирования луча (MU-MIMO), в стандарте используется расширенная версия процедуры зондирования канала.
Как показано на Рисунке 6, процедура многопользовательского зондирования требует ответа от всех устройств, принимающих лучи.
Каждое устройство вносит информацию в матрицу обратной связи, и устройство-формирователь луча использует несколько матриц обратной связи для создания единой управляющей матрицы.
Рисунок 6 - Процедура многопользовательского зондирования канала.
Процедура зондирования начинается точно так же, как и в однопользовательском случае, с отправки кадра NDP Announcement и самого NDP, которые инициируют начало калибровки.
Однако для получения матрицы обратной связи от каждого принимающего луч устройства в процедуре многопользовательского зондирования реализован дополнительный кадр - кадр опроса отчета о формировании луча (Beamforming Report Poll frame), чтобы гарантировать сбор ответов от всех принимающих луч устройств (см. Рисунок 6).
Зондирование канала в режиме MU-MIMO включает четыре основных этапа:
1. Кадр NDP Announcement
Формат кадра NDP Announcement в многопользовательском случае аналогичен однопользовательскому, но с одним важным изменением. Как показано на Рисунке 7, многопользовательский кадр NDP Announcement включает несколько записей информации о станции (Station Information records), по одной для каждого принимающего луч устройства. В полях информации о станции кадр Announcement NDP также используется для запроса многопользовательской обратной связи. NDP Announcement отправляется сразу нескольким устройствам и имеет в поле Destination Address широковещательный адрес.
Однако для получения матрицы обратной связи от каждого принимающего луч устройства в процедуре многопользовательского зондирования реализован дополнительный кадр - кадр опроса отчета о формировании луча (Beamforming Report Poll frame), чтобы гарантировать сбор ответов от всех принимающих луч устройств (см. Рисунок 6).
Зондирование канала в режиме MU-MIMO включает четыре основных этапа:
1. Кадр NDP Announcement
Формат кадра NDP Announcement в многопользовательском случае аналогичен однопользовательскому, но с одним важным изменением. Как показано на Рисунке 7, многопользовательский кадр NDP Announcement включает несколько записей информации о станции (Station Information records), по одной для каждого принимающего луч устройства. В полях информации о станции кадр Announcement NDP также используется для запроса многопользовательской обратной связи. NDP Announcement отправляется сразу нескольким устройствам и имеет в поле Destination Address широковещательный адрес.
Рисунок 7 — Структура кадра NDP Announcement (многопользовательский режим).
2. Кадр NDP
После передачи кадра NDP Announcement формирователь луча передает кадр пакета нулевых данных (Null Data Packet frame) в формате, показанном на Рисунке 4. Каждое устройство может использовать полученные обучающие кадры нулевых данных для расчета своей матрицы обратной связи.
3. Кадр Compressed Beamforming Action
Многопользовательский формат кадра Compressed Beamforming Action включает дополнительное поле отчета об эксклюзивном многопользовательском формировании луча (Multi-User Exclusive Beamforming Report field) в конце кадра.
Это поле содержит различия в соотношении сигнал/шум между поднесущими и необходимо для обновления управляющей матрицы при наличии нескольких получателей. Оба поля отчета, показанные на Рисунке 8, обозначены как переменные, поскольку их размер зависит от количества пространственных потоков, а также от полосы пропускания канала.
После передачи кадра NDP Announcement формирователь луча передает кадр пакета нулевых данных (Null Data Packet frame) в формате, показанном на Рисунке 4. Каждое устройство может использовать полученные обучающие кадры нулевых данных для расчета своей матрицы обратной связи.
3. Кадр Compressed Beamforming Action
Многопользовательский формат кадра Compressed Beamforming Action включает дополнительное поле отчета об эксклюзивном многопользовательском формировании луча (Multi-User Exclusive Beamforming Report field) в конце кадра.
Это поле содержит различия в соотношении сигнал/шум между поднесущими и необходимо для обновления управляющей матрицы при наличии нескольких получателей. Оба поля отчета, показанные на Рисунке 8, обозначены как переменные, поскольку их размер зависит от количества пространственных потоков, а также от полосы пропускания канала.
Рисунок 8 — Структура кадра Compressed Beamforming Action.
4. Кадр Beamforming Report Poll
Формирователь луча запрашивает матрицы обратной связи у каждого устройства с помощью управляющего кадра Beamforming Report Poll.Этот кадр довольно прост, как видно на Рисунке 9: по сути, это однобайтовое поле запросов на повторную передачу. Каждый бит в поле битовой карты обратной связи (Feedback Bitmap field) запрашивает повторную передачу одного сегмента обратной связи.
Рисунок 9 — Структура кадра Beamforming Report Poll.
Для восходящего MU-MIMO (UL MU-MIMO) точка доступа инициирует зондирование групповым кадром Trigger Frame (TF). Каждый клиент отвечает кадром HE Compressed Beamforming frame, содержащим матрицу обратной связи для своего RU. При этом для снижения интерференции применяется BSS Coloring — фокусировка луча только на устройствах с совпадающим цветом 6-битной меткой BSS. Например, при значении метки 010101 устройства с цветом 101010 будут считаться чужими и игнорироваться.
Для снижения энергопотребления реализована технология TWT (Target Wake Time, IEEE 802.11ax (Clause 27.4)), которая синхронизирует периоды активности клиентских устройств и превращает процедуру формирования лучей из точечной технологии в систему управления ресурсами сети.
4. Уязвимость технологии beamforming и ее эксплуатация
Технология формирования диаграммы направленности (beamforming) в стандартах IEEE 802.11ac (Wi-Fi 5) и 802.11ax (Wi-Fi 6) повышает производительность беспроводных сетей, но её сигнальные процедуры и структура кадров формируют уязвимости.
Отсутствие шифрования и аутентификации кадров зондирования (NDP) и матриц обратной связи, а также предсказуемая структура этих кадров делает их уязвимыми для атак. Тесты с открытым ПО (например, aircrack-ng, wireshark) подтверждают возможность перехвата кадров и анализа их структуры.
Ниже приведены основные уязвимости технологии beamforming.
1. Атаки на зондирование NDP.
Кадры NDP Announcement и NDP (Null Data Packet) передаются в открытом виде без шифрования, что позволяет злоумышленнику подделать их или вмешаться в процесс зондирования канала (см. IEEE 802.11ax, Clause 26.3).
Атакующий может использовать атаку типа "человек посередине" (MitM), подделывая NDP-кадры, чтобы исказить матрицу обратной связи (V). Это приводит к неверному формированию луча, снижению производительности или перенаправлению сигнала на устройство атакующего.
2. Перехват данных матрицы обратной связи.
Сжатая матрица V, содержащая углы Гивенса (амплитудные и фазовые параметры), передаётся в кадре Compressed Beamforming Action и может быть перехвачена, если канал не зашифрован.
Анализ матрицы V позволяет атакующему определить параметры канала, такие как мощность сигнала и фазовые сдвиги, что может быть использовано для:
Атакующий может отправить ложные кадры Compressed Beamforming Action, содержащие некорректные данные матрицы V, что нарушает работу формирователя луча.
Ложные матрицы перегружают формирователь луча, вызывая:
Технология Target Wake Time (TWT, IEEE 802.11ax, Clause 27.4) синхронизирует активность устройств для экономии энергии, но уязвима к подделке TWT-кадров.
Атакующий может отправлять ложные TWT-кадры, заставляя устройства чаще "просыпаться", что увеличивает энергопотребление, особенно в IoT-устройствах с ограниченным питанием.
Реализуем подделку матрицы обратной связи технологии beamforming стандартов IEEE 802.11ac/ax с целью проведения DoS-атаки.
Для разработки соответствующего программного обеспечения используем язык программирования C++.
4.1 Алгоритм атаки
1. Подготовительный этап.
Парсинг аргументов командной строки.
Переключение сетевого интерфейса на заданный частотный канал.
Создание сессии захвата кадров с использованием библиотеки «lipcap» с использованием фильтра для перехвата кадров типа «management» от указанных MAC-адресов устройств.
В связи с тем, что библиотека «libpcap» не обеспечивает определения кадров интересующего типа напрямую, используем логику от обратного:
Для снижения энергопотребления реализована технология TWT (Target Wake Time, IEEE 802.11ax (Clause 27.4)), которая синхронизирует периоды активности клиентских устройств и превращает процедуру формирования лучей из точечной технологии в систему управления ресурсами сети.
4. Уязвимость технологии beamforming и ее эксплуатация
Технология формирования диаграммы направленности (beamforming) в стандартах IEEE 802.11ac (Wi-Fi 5) и 802.11ax (Wi-Fi 6) повышает производительность беспроводных сетей, но её сигнальные процедуры и структура кадров формируют уязвимости.
Отсутствие шифрования и аутентификации кадров зондирования (NDP) и матриц обратной связи, а также предсказуемая структура этих кадров делает их уязвимыми для атак. Тесты с открытым ПО (например, aircrack-ng, wireshark) подтверждают возможность перехвата кадров и анализа их структуры.
Ниже приведены основные уязвимости технологии beamforming.
1. Атаки на зондирование NDP.
Кадры NDP Announcement и NDP (Null Data Packet) передаются в открытом виде без шифрования, что позволяет злоумышленнику подделать их или вмешаться в процесс зондирования канала (см. IEEE 802.11ax, Clause 26.3).
Атакующий может использовать атаку типа "человек посередине" (MitM), подделывая NDP-кадры, чтобы исказить матрицу обратной связи (V). Это приводит к неверному формированию луча, снижению производительности или перенаправлению сигнала на устройство атакующего.
2. Перехват данных матрицы обратной связи.
Сжатая матрица V, содержащая углы Гивенса (амплитудные и фазовые параметры), передаётся в кадре Compressed Beamforming Action и может быть перехвачена, если канал не зашифрован.
Анализ матрицы V позволяет атакующему определить параметры канала, такие как мощность сигнала и фазовые сдвиги, что может быть использовано для:
- определения местоположения устройств (например, через триангуляцию) и топологии сети;
- подготовки к следующей атаке.
Атакующий может отправить ложные кадры Compressed Beamforming Action, содержащие некорректные данные матрицы V, что нарушает работу формирователя луча.
Ложные матрицы перегружают формирователь луча, вызывая:
- снижение пропускной способности сети из-за неправильного направления сигнала;
- отказ в обслуживании (DoS) для легитимных клиентов.
- нарушить баланс мощности между клиентами, снижая производительность сети;
- вызвать межпользовательские помехи, особенно в сетях с высокой плотностью устройств;
- в восходящем MU-MIMO - исказить агрегацию данных в матрице Q, что помешает точке доступа принимать параллельные передачи.
Технология Target Wake Time (TWT, IEEE 802.11ax, Clause 27.4) синхронизирует активность устройств для экономии энергии, но уязвима к подделке TWT-кадров.
Атакующий может отправлять ложные TWT-кадры, заставляя устройства чаще "просыпаться", что увеличивает энергопотребление, особенно в IoT-устройствах с ограниченным питанием.
Реализуем подделку матрицы обратной связи технологии beamforming стандартов IEEE 802.11ac/ax с целью проведения DoS-атаки.
Для разработки соответствующего программного обеспечения используем язык программирования C++.
4.1 Алгоритм атаки
1. Подготовительный этап.
Парсинг аргументов командной строки.
Переключение сетевого интерфейса на заданный частотный канал.
Создание сессии захвата кадров с использованием библиотеки «lipcap» с использованием фильтра для перехвата кадров типа «management» от указанных MAC-адресов устройств.
В связи с тем, что библиотека «libpcap» не обеспечивает определения кадров интересующего типа напрямую, используем логику от обратного:
std::string filter_exp = "(type mgt and not (subtype assoc-req or subtype assoc-resp or subtype reassoc-req or ""subtype reassoc-resp or subtype probe-req or subtype probe-resp or subtype beacon or ""subtype atim or subtype disassoc or subtype auth or subtype deauth) and ("; for (size_t i = 0; i < cfg.target_addrs.size(); ++i) { filter_exp += "wlan addr2 " + cfg.target_addrs[i]; if (i < cfg.target_addrs.size() - 1) { filter_exp += " or "; }}filter_exp += "))";2. Захват и фильтрация кадров.
Циклическое получение кадров в реальном времени. Исключение из обработки ранее инжектированных кадров, уже содержащих модифицированную информацию BFI (Beamforming Feedback Information, данные обратной связи).
3. Анализ кадров.
Извлечение конфигурации MIMO:
Декодирование данных обратной связи:
Восстановление матрицы V поэтапно можно описать следующим образом:
1. Для каждой поднесущей создаётся унитарная матрица V размером Nr×Nc с помощью QR-разложения случайной матрицы. Это начальное состояние соответствует ортонормированным направлениям beamforming.
Циклическое получение кадров в реальном времени. Исключение из обработки ранее инжектированных кадров, уже содержащих модифицированную информацию BFI (Beamforming Feedback Information, данные обратной связи).
3. Анализ кадров.
Извлечение конфигурации MIMO:
- определение типа кадра (VHT или HE) по полю категории и действия;
- извлечение из поля управления MIMO следующих параметров: количество антенн, потоков, ширина канала, размер группы поднесущих;
- рассчет количества поднесущих и объема данных обратной связи.
Декодирование данных обратной связи:
- извлечение квантованных углов (phi и psi) из битового потока;
- восстановление матрицы V размером Nr × Nc (где Nr — число антенн, Nc — число потоков) для каждой поднесущей на основе углов и математических преобразований согласно процедурам стандартов IEEE 802.11ac/ax. Матрица V является унитарной (VᴴV = I) и описывает оптимальные направления для формирования луча (beamforming) для целевого клиента, идентифицированного по MAC-адресу.
Восстановление матрицы V поэтапно можно описать следующим образом:
1. Для каждой поднесущей создаётся унитарная матрица V размером Nr×Nc с помощью QR-разложения случайной матрицы. Это начальное состояние соответствует ортонормированным направлениям beamforming.
C++:
for (int kk = 0; kk < total_subcarriers; ++kk) {
Eigen::Matrix<std::complex<float>, Eigen::Dynamic, Eigen::Dynamic> V_kk(rows, cols);
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
V_kk(i, j) = std::complex<float>(dist(gen), dist(gen));
}
}
Eigen::HouseholderQR<Eigen::MatrixXcf> qr(V_kk);
V_kk = qr.householderQ() * Eigen::MatrixXcf::Identity(rows, cols);
V_mats[kk] = V_kk;
if (cfg.debug_enabled) {
float orthogonality = (V_kk.adjoint() * V_kk - Eigen::MatrixXcf::Identity(cols, cols)).norm();
print_log(DEBUG, "Поднесущая " + std::to_string(kk) + " Начальная ортогональность V (||V^H V - I||): " + std::to_string(orthogonality), cfg.debug_enabled);
}
}
2. Из битового потока извлекаются углы phi и psi, нормализованные на [0,π] и [0,π/2] соответственно. Углы сохраняются в матрице angles в порядке: сначала все phi, затем все psi.
C++:
for (int kk = 0; kk < total_subcarriers; ++kk) {
int angcnt = 0;
for (int ii = rows - 1; ii >= std::max(rows - cols, 1); --ii) {
for (int jj = 0; jj < ii; ++jj) {
// Считывание phi
if (bitflow.pos + cfg.phi_bits <= bitflow.bits.size()) {
angles(angcnt, kk) = (2 * bitflow.read_bits(cfg.phi_bits) + 1) * M_PI / phi_range;
} else {
angles(angcnt, kk) = 0;
// Предупреждение о недостатке битов
}
angcnt++;
}
for (int jj = 0; jj < ii; ++jj) {
// Считывание psi
if (bitflow.pos + cfg.psi_bits <= bitflow.bits.size()) {
angles(angcnt, kk) = (2 * bitflow.read_bits(cfg.psi_bits) + 1) * M_PI / (2 * psi_range);
} else {
angles(angcnt, kk) = 0;
// Предупреждение о недостатке битов
}
angcnt++;
}
}
}
3. Для каждой поднесущей и пары индексов (ii,jj), матрица V умножается на матрицу поворота Gt, которая изменяет ориентацию векторов в пространстве антенн. Порядок индексов ii (от rows−1 до max(rows−cols,1)) и jj (от 0 до ii−1) соответствует структуре углов в стандарте.
C++:
for (int ii = rows - 1; ii >= std::max(rows - cols, 1); --ii) {
for (int jj = 0; jj < ii; ++jj) {
for (int kk = 0; kk < total_subcarriers; ++kk) {
float psi = angles(angle_idx + jj, kk);
Gt.setIdentity();
Gt(ii, ii) = std::cos(psi);
Gt(ii, jj) = -std::sin(psi);
Gt(jj, ii) = std::sin(psi);
Gt(jj, jj) = std::cos(psi);
V_mats[kk] = Gt * V_mats[kk];
}
angle_idx++;
}
// Применение фазовых сдвигов
}
4. Применение фазовых сдвигов (phi): для каждой поднесущей применяется диагональная матрица фаз, которая изменяет фазу строк V, обеспечивая правильное выравнивание сигналов. Фазовые сдвиги берутся из первых строк angles (индексы 0 до ii−1).
C++:
for (int kk = 0; kk < total_subcarriers; ++kk) {
D_tmp = D;
for (int jj = 0; jj < ii; ++jj) {
float phi = angles(jj, kk);
D_tmp[jj] = std::exp(IMAG_UNIT * phi);
}
V_mats[kk] = D_tmp.asDiagonal() * V_mats[kk];
}
5. После применения всех phi и psi, матрица V становится унитарной матрицей, соответствующей декодированным данным обратной связи. Унитарность проверяется в режиме отладки (аргумент --debug), чтобы убедиться в корректности:
C++:
// Проверка финальной унитарности
if (cfg.debug_enabled) {
for (int kk = 0; kk < total_subcarriers; ++kk) {
float unitarity_error = (V_mats[kk].adjoint() * V_mats[kk] - Eigen::MatrixXcf::Identity(cols, cols)).norm();
print_log(DEBUG, "Поднесущая " + std::to_string(kk) + " Финальная унитарность V (||V^H V - I||): " + std::to_string(unitarity_error), cfg.debug_enabled);
}
}
4. Модификация данных.
Имитация ухудшения сигнала за счет перезаписи в кадре значений SNR на фиксированную величину в сторону уменьшения.
Модификация матрицы обратной связи.
Для каждой поднесущей в системе IEEE 802.11ac/ax (VHT или HE кадры), определенной на основе ширины канала и размера группы поднесущих:
1. Вычисляется нулевое пространство матрицы Vᴴ (размером Nc×Nr), определяемое как {x∣Vᴴx = 0}. Это пространство находится с помощью сингулярного разложения (SVD) Vᴴ, где правые сингулярные векторы, соответствующие нулевым сингулярным значениям, образуют базис нулевого пространства.
В коде это соответствует следующим строкам:
2. Генерируется матрица прекодирования W размером Nr×Nc, которая подавляет сигнал в направлении целевого клиента. Первый столбец W выбирается из нулевого пространства Vᴴ и нормируется, обеспечивая VᴴW
, 0) = 0. Второй столбец вычисляется через дополнительное SVD матрицы VᴴP, где P - проекция, ортогональная первому столбцу, чтобы обеспечить унитарность W (WᴴW = I). Если нулевое пространство отсутствует (Nr = Nc), матрица W генерируется как случайная ортонормированная матрица с помощью QR-разложения.
В случае, когда целевое устройство имеет Nr=3 антенны и передает Nc = 2 потока, матрица V, содержащая правые сингулярные векторы канальной матрицы H (из разложения H = UΣVᴴ), имеет размер Nr×Nc, то есть 3×2. Ее сопряженно-эрмитова матрица Vᴴ имеет размер Nc×Nr, то есть 2×3.
Размерность правого нулевого пространства матрицы Vᴴ определяется как Nr - rank(Vᴴ). Поскольку V — унитарная матрица (VᴴV = I) с полным рангом rank (V) = Nc = 2, то rank (Vᴴ) = 2. Таким образом, размерность нулевого пространства равна 3 - 2 = 1, то есть оно одномерно и содержит один линейно независимый вектор (с точностью до масштабирования).
Для полного подавления двух потоков оба столбца матрицы прекодирования W должны лежать в нулевом пространстве Vᴴ, чтобы VᴴW = 0. Однако, поскольку нулевое пространство одномерно, в нем невозможно найти два ортогональных вектора, которые требуются для унитарной матрицы W (где столбцы ортогональны и нормированы). Таким образом, математическое ограничение делает одновременное подавление двух потоков невозможным в данной конфигурации.
В этой связи для нарушения связи реализуем попеременную помеху для каждого из потоков.
Для этого реализуем выбор:
- одного столбца матрицы W, чтобы он лежал в нулевом пространстве:
- другого столбца - как случайного унитарного вектора (v_other):
Определение состояния нулевого пространства и выбор v_other:
Если
Иначе
В случае, когда целевое устройство имеет конфигурацию MIMO с Nr=2 антеннами и Nc=2 потоками матрица Vᴴ (размером 2×2) имеет полный ранг rank(Vᴴ) = 2, и размерность ее нулевого пространства равна: Nr - rank(Vᴴ) = 2 - 2 = 0.
Таким образом, нулевое пространство тривиально (Null (Vᴴ) = {0}), и невозможно найти ненулевые векторы, ортогональные столбцам матрицы V.
Это означает, что нельзя сформировать матрицу прекодирования W, которая полностью подавляет сигнал в направлении клиента (удовлетворяет условию VᴴW = 0), сохраняя унитарность W.
В этом случае для ухудшения сигнала для целевого клиента (идентифицированного по MAC-адресу) генерируется случайная унитарная матрица W размером 2×2.
Это достигается путем создания случайной матрицы
Такая матрица не лежит в нулевом пространстве Vᴴ, поэтому полное подавление сигнала невозможно, но направления передачи изменяются, что может снизить качество сигнала для клиента.
Дополнительно для изменения степени искажения матрицы формирования луча V предусмотрим коэффициент «scale» (аргумент командной строки).
Указанный коэффициент принимает значения в диапазоне [0.0, 1.0]:
3. Углы (phi, psi) для W квантуются согласно битам, заданным в конфигурации, и записываются в выходной битовой поток, заменяя исходные данные обратной связи.
Это позволяет точке доступа использовать W вместо V, минимизируя сигнал в направлении целевого клиента.
5. Инжектирование модифицированных кадров.
Создание нового кадра:
4.2 Экспериментальная проверка атаки
Для работы разработанного программного обеспечения со стороны атакующего требуется ОС Linux (протестирован на Linux Mint 22.1) и сетевая Wi-Fi карта, которая поддерживает работу в режиме мониторинга («monitor mode»).
Для экспериментальной проверки используем тестовый стенд, состоящий из следующего оборудования:
– точка доступа TP-Link AX73 (версия прошивки 1.0.1);
– точка доступа Huawei WS7100 (версия прошивки 2.0.15);
– точка доступа Xiaomi AX3200 (версия прошивки 1.0.5 RB01);
– точка доступа Cudy TR3000 (версия прошивки 2.4.7);
– точка доступа Cudy WR6500 (версия прошивки 2.3.0);
– клиентские устройства iPhone 11 (iOs 18.5), Samsung Galaxy S22 (Android 15), OnePlus 13s (Android 15), Honor V8 Pro (Magic OS 8.1);
– Wi-Fi адаптер для инжекции кадров EDUP AX3000.
Увеличим значение MTU сетевого адаптера для обеспечения инжекции кадров соответсвующего размера:
Установим библиотеку eigen3 в систему и скомпилируем код проекта (прилагается):
Команда для запуска атаки:
В качестве аргументов для запуска определены следующие:
{interface} — имя сетевого интерфейса в режиме мониторинга;
{channel} — номер частотного канала;
{mac1},{mac2},{mac3},{mac4} — mac-адрес целевого устройства, BFI которого подлежит модификации (до четырех устройств одновременно);
{scale} – значение коэффициента «scale»;
--debug – вывод отладочной информации.
Инициируем обмен данными на всех клиентских устройствах, например, посредством запуска стриминговых сервисов потокового видео, зафиксируем mac-адреса устройств.
На сетевом интерфейсе при помощи Wireshark зафиксируем появление оригинальных кадров IEEE 802.11ac типа VHT Compressed Beamforming (см. Рисунок 10) или кадров IEEE 802.11ax типа HE Compressed Beamforming (см. Рисунок 11) согласно используемым клиентскими устройствами стандартам.
Имитация ухудшения сигнала за счет перезаписи в кадре значений SNR на фиксированную величину в сторону уменьшения.
Модификация матрицы обратной связи.
Для каждой поднесущей в системе IEEE 802.11ac/ax (VHT или HE кадры), определенной на основе ширины канала и размера группы поднесущих:
1. Вычисляется нулевое пространство матрицы Vᴴ (размером Nc×Nr), определяемое как {x∣Vᴴx = 0}. Это пространство находится с помощью сингулярного разложения (SVD) Vᴴ, где правые сингулярные векторы, соответствующие нулевым сингулярным значениям, образуют базис нулевого пространства.
В коде это соответствует следующим строкам:
Eigen::JacobiSVD<Eigen::MatrixXcf> svd(V_mats[kk].adjoint(), Eigen::ComputeFullU | Eigen::ComputeFullV);— выполняется SVD матрицы Vᴴ, где V_mats[kk].adjoint() - это конъюгированно-транспонированная матрица V, представляющая Vᴴ.int null_dim = rows - cols;— размерность нулевого пространства определяется как разница между количеством антенн (Nt) и количеством потоков (Nc).Eigen::MatrixXcf W_null = svd.matrixV().rightCols(null_dim);— извлекаются правые сингулярные векторы, соответствующие нулевым сингулярным значениям, которые образуют базис нулевого пространства.2. Генерируется матрица прекодирования W размером Nr×Nc, которая подавляет сигнал в направлении целевого клиента. Первый столбец W выбирается из нулевого пространства Vᴴ и нормируется, обеспечивая VᴴW
В случае, когда целевое устройство имеет Nr=3 антенны и передает Nc = 2 потока, матрица V, содержащая правые сингулярные векторы канальной матрицы H (из разложения H = UΣVᴴ), имеет размер Nr×Nc, то есть 3×2. Ее сопряженно-эрмитова матрица Vᴴ имеет размер Nc×Nr, то есть 2×3.
Размерность правого нулевого пространства матрицы Vᴴ определяется как Nr - rank(Vᴴ). Поскольку V — унитарная матрица (VᴴV = I) с полным рангом rank (V) = Nc = 2, то rank (Vᴴ) = 2. Таким образом, размерность нулевого пространства равна 3 - 2 = 1, то есть оно одномерно и содержит один линейно независимый вектор (с точностью до масштабирования).
Для полного подавления двух потоков оба столбца матрицы прекодирования W должны лежать в нулевом пространстве Vᴴ, чтобы VᴴW = 0. Однако, поскольку нулевое пространство одномерно, в нем невозможно найти два ортогональных вектора, которые требуются для унитарной матрицы W (где столбцы ортогональны и нормированы). Таким образом, математическое ограничение делает одновременное подавление двух потоков невозможным в данной конфигурации.
В этой связи для нарушения связи реализуем попеременную помеху для каждого из потоков.
Для этого реализуем выбор:
- одного столбца матрицы W, чтобы он лежал в нулевом пространстве:
W_temp.col(ortho_col) = W_null.col(0).normalized();(ortho_col чередуется между 0 и 1 для каждого кадра, что реализует попеременную помеху).- другого столбца - как случайного унитарного вектора (v_other):
Eigen::MatrixXcf P = Eigen::MatrixXcf::Identity(rows, rows) - W_temp.col(ortho_col) * W_temp.col(ortho_col).adjoint();— создается матрица проекции P, ортогональная первому столбцу, для обеспечения унитарности W;Eigen::MatrixXcf VHP = V_mats[kk].adjoint() * P;— вычисляется матрица VᴴP для дополнительного SVD;Eigen::JacobiSVD<Eigen::MatrixXcf> svd_vhp(VHP, Eigen::ComputeFullV);— выполняется SVD матрицы VᴴP.Определение состояния нулевого пространства и выбор v_other:
Если
vhp_null_dim > 0, то v_other = svd_vhp.matrixV().rightCols(vhp_null_dim).col(0).normalized();, что выбирает вектор из нулевого пространства VᴴP.Иначе
v_other = svd_vhp.matrixV().col(svd_vhp.singularValues().size() - 1).normalized();,выбирая вектор с наименьшим сингулярным значением.W_temp.col(1 - ortho_col) = v_other;— второй столбец устанавливается равным v_other.В случае, когда целевое устройство имеет конфигурацию MIMO с Nr=2 антеннами и Nc=2 потоками матрица Vᴴ (размером 2×2) имеет полный ранг rank(Vᴴ) = 2, и размерность ее нулевого пространства равна: Nr - rank(Vᴴ) = 2 - 2 = 0.
Таким образом, нулевое пространство тривиально (Null (Vᴴ) = {0}), и невозможно найти ненулевые векторы, ортогональные столбцам матрицы V.
Это означает, что нельзя сформировать матрицу прекодирования W, которая полностью подавляет сигнал в направлении клиента (удовлетворяет условию VᴴW = 0), сохраняя унитарность W.
В этом случае для ухудшения сигнала для целевого клиента (идентифицированного по MAC-адресу) генерируется случайная унитарная матрица W размером 2×2.
Это достигается путем создания случайной матрицы
W_mats[kk] = Eigen::MatrixXcf::Random(rows, cols)и применения QR-разложения для получения ортонормированных столбцов (WᴴW = I):Eigen::HouseholderQR<Eigen::MatrixXcf> qr(W_mats[kk]);— выполняется QR-разложение;Eigen::MatrixXcf Q = Eigen::MatrixXcf::Identity(rows, cols);— создается единичная матрица для применения QR;qr.householderQ().applyThisOnTheLeft(Q);— применяется преобразование Хаусхолдера для получения ортонормированной матрицы;W_mats[kk] = Q;— результат присваивается W_mats[kk].Такая матрица не лежит в нулевом пространстве Vᴴ, поэтому полное подавление сигнала невозможно, но направления передачи изменяются, что может снизить качество сигнала для клиента.
Дополнительно для изменения степени искажения матрицы формирования луча V предусмотрим коэффициент «scale» (аргумент командной строки).
Указанный коэффициент принимает значения в диапазоне [0.0, 1.0]:
- «0.0» соответвует полному сохранению исходной матрицы V без искажений;
- «1.0» - максимальное применение модифицированной матрицы W в отношении матрицы V в процессе геодезической интерполяции
geodesic_interpolate(W_mats[kk], V_mats[kk], cfg.scale_factor);.
3. Углы (phi, psi) для W квантуются согласно битам, заданным в конфигурации, и записываются в выходной битовой поток, заменяя исходные данные обратной связи.
Это позволяет точке доступа использовать W вместо V, минимизируя сигнал в направлении целевого клиента.
5. Инжектирование модифицированных кадров.
Создание нового кадра:
- использование структуры оригинального кадра;
- увеличение значений полей Sounding Dialog Token и Sequence Number на единицу для имитации легитимного кадра от атакуемого устройства и исключения обоработки ранее инжектированных кадров по п.2;
- добавление модифицированных данных SNR и BFI.
4.2 Экспериментальная проверка атаки
Для работы разработанного программного обеспечения со стороны атакующего требуется ОС Linux (протестирован на Linux Mint 22.1) и сетевая Wi-Fi карта, которая поддерживает работу в режиме мониторинга («monitor mode»).
Для экспериментальной проверки используем тестовый стенд, состоящий из следующего оборудования:
– точка доступа TP-Link AX73 (версия прошивки 1.0.1);
– точка доступа Huawei WS7100 (версия прошивки 2.0.15);
– точка доступа Xiaomi AX3200 (версия прошивки 1.0.5 RB01);
– точка доступа Cudy TR3000 (версия прошивки 2.4.7);
– точка доступа Cudy WR6500 (версия прошивки 2.3.0);
– клиентские устройства iPhone 11 (iOs 18.5), Samsung Galaxy S22 (Android 15), OnePlus 13s (Android 15), Honor V8 Pro (Magic OS 8.1);
– Wi-Fi адаптер для инжекции кадров EDUP AX3000.
Увеличим значение MTU сетевого адаптера для обеспечения инжекции кадров соответсвующего размера:
sudo ip link set dev wlan0 mtu 2000Установим библиотеку eigen3 в систему и скомпилируем код проекта (прилагается):
sudo apt-get install libeigen3-devg++ -std=c++17 -O3 -o bfi_injector_export bfi_injector_export.cpp -lpcap -lz -I/usr/include/eigen3Команда для запуска атаки:
sudo ./bfi_injector_export -i {interface} -c {channel} -m {mac1},{mac2},{mac3},{mac4} --scale {scale} --debugВ качестве аргументов для запуска определены следующие:
{interface} — имя сетевого интерфейса в режиме мониторинга;
{channel} — номер частотного канала;
{mac1},{mac2},{mac3},{mac4} — mac-адрес целевого устройства, BFI которого подлежит модификации (до четырех устройств одновременно);
{scale} – значение коэффициента «scale»;
--debug – вывод отладочной информации.
Инициируем обмен данными на всех клиентских устройствах, например, посредством запуска стриминговых сервисов потокового видео, зафиксируем mac-адреса устройств.
На сетевом интерфейсе при помощи Wireshark зафиксируем появление оригинальных кадров IEEE 802.11ac типа VHT Compressed Beamforming (см. Рисунок 10) или кадров IEEE 802.11ax типа HE Compressed Beamforming (см. Рисунок 11) согласно используемым клиентскими устройствами стандартам.
Рисунок 10 – Оригинальный кадр VHT Compressed Beamforming.
Рисунок 11 – Оригинальный кадр HE Compressed Beamforming.
Запустим атаку с начальным значением коэффициента “scale” равным 0.5 и определим сообщаемое устройствами значение SNR в консоли.
Увеличивая коэффициент и регулируя таким образом помеху, зафиксируем снижение значения SNR на 10dB и более (см. Рисунок 12). Проверим полученные результаты через интерфейс точки доступа, обслуживающей устройства или самих устройств.
В случае, если влияние помехи несущественно, повторно запустим атаку с флагом --debug для проверки параметров работы кода на всех этапах его работы (см. Рисунок 13).
Увеличивая коэффициент и регулируя таким образом помеху, зафиксируем снижение значения SNR на 10dB и более (см. Рисунок 12). Проверим полученные результаты через интерфейс точки доступа, обслуживающей устройства или самих устройств.
В случае, если влияние помехи несущественно, повторно запустим атаку с флагом --debug для проверки параметров работы кода на всех этапах его работы (см. Рисунок 13).
Рисунок 12 – Начало атаки.
Рисунок 13 – Выполнение атаки в режиме отладки (фрагмент).
Как отмечено ранее, излучение поддельных пакетов реализовано с увеличением значения поля SN на единицу, модификацией значений SNR и матрицы обратной связи. Убедимся в действительном излучении таких кадров при помощи Wireshark (см. Рисунки 14 и 15).
Также на сетевом интерфейсе зафиксируем обмен кадрами типа NDP Announcement между атакуемыми устройствами (Рисунок 16).
Если таких кадров не обнаружено, то это означает, что в оборудовании используется собственный алгоритм beamforming, который не следует стандартам 802.11ac или 802.11ax.
В таком случае вместо кадров NDP для оценки канала могут использоваться обычные данные (например, кадры типа Data или Management других типов). Интерпретация и модификация информации BFI в этих условиях нестандартные и требуют отдельного исследования.
Рисунок 14 – Поддельный кадр VHT Compressed Beamforming.
Рисунок 15 – Поддельный кадр HE Compressed Beamforming.
Рисунок 16 – Кадр типа NDP Announcement.
В результате экспериментов установлено следующее.
1. После обработки нескольких десятков поддельных кадров от клиентких устройств точки доступа TP-Link AX73, Huawei WS7100 и Xiaomi AX3200 изменяют ориентацию лучей в пространстве: соотношение SNR для устройств снижается на величину от 7 до 10 dB, что приводит к принудительному назначению низкоскоростных схем кодирования со стороны AP. Устройства остаются ассоциированными с AP, но более не способными обеспечить высокоскоростную передачу данных независимо от используемой ширины канала (до 160 МГц).
Атака повторялась несколько раз, после ее прекращения клиентские устройства возвращались в свое нормальное состояние.
2. В точках доступа вендора Cudy реализован проприетарный алгоритм beamforming, который активируется только при определенных настройках беспроводного интерфейса. Например, при выборе стандарта 802.11ac и ширине полосы 40 МГц, формирование лучей не функционально.
При взаимодействии с этими AP клиентские устройства отправляют пустные данные BFI.
3. Атака сохраняет актуальность при активном режиме шифрования WPA3 с включенной защитой кадров MPF (режим “Required”). Согласно стандарту, данные обмена BFI в данном режиме подлежат защите.
Вместе с тем данный функционал производителями AP не реализован.
1. После обработки нескольких десятков поддельных кадров от клиентких устройств точки доступа TP-Link AX73, Huawei WS7100 и Xiaomi AX3200 изменяют ориентацию лучей в пространстве: соотношение SNR для устройств снижается на величину от 7 до 10 dB, что приводит к принудительному назначению низкоскоростных схем кодирования со стороны AP. Устройства остаются ассоциированными с AP, но более не способными обеспечить высокоскоростную передачу данных независимо от используемой ширины канала (до 160 МГц).
Атака повторялась несколько раз, после ее прекращения клиентские устройства возвращались в свое нормальное состояние.
2. В точках доступа вендора Cudy реализован проприетарный алгоритм beamforming, который активируется только при определенных настройках беспроводного интерфейса. Например, при выборе стандарта 802.11ac и ширине полосы 40 МГц, формирование лучей не функционально.
При взаимодействии с этими AP клиентские устройства отправляют пустные данные BFI.
3. Атака сохраняет актуальность при активном режиме шифрования WPA3 с включенной защитой кадров MPF (режим “Required”). Согласно стандарту, данные обмена BFI в данном режиме подлежат защите.
Вместе с тем данный функционал производителями AP не реализован.
ЗАКЛЮЧЕНИЕ
В ходе работы подробно рассмотрена технология формирования лучей (beamforming) стандартов IEEE 802.11ac/ax, а также проведен анализ ее безопасности.
Выявлены уязвимости, связанные с отсутствием шифрования и аутентификации кадров зондирования, а также предсказуемой структурой матриц обратной связи.
Эти недостатки позволяют проводить атаки типа MitM, DoS, перехват данных и манипуляцию энергопотреблением устройств.
Для эксплуатации уязвимости типа DoS предложен метод подделки матрицы обратной связи, реализованный на языке C++.
Разработан алгоритм атаки и описаны основные этапы его реализации.
Экспериментальная проверка подтвердила возможность проведения атаки на всех устройствах тестового стенда, за исключением устройств вендора Cudy, использующих проприетарные методы формирования лучей и особенности настройки.
Подделка кадров обратной связи демонстрирует возможность практической эксплуатации уязвимости даже в сетях с режимом защиты WPA3.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
[1] IEEE Std 802.11ac-2013, "IEEE Standard for Information Technology - Telecommunications and Information Exchange Between Systems - Local and Metropolitan Area Networks - Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications - Amendment 4: Enhancements for Very High Throughput for Operation in Bands Below 6 GHz," IEEE, Dec. 2013.
[2] IEEE Std 802.11ax-2021, "IEEE Standard for Information Technology - Telecommunications and Information Exchange Between Systems - Local and Metropolitan Area Networks - Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications - Amendment 1: Enhancements for High Efficiency WLAN," IEEE, Feb. 2021.
[3] IEEE Std 802.11w-2009, "IEEE Standard for Information Technology - Telecommunications and Information Exchange Between Systems - Local and Metropolitan Area Networks - Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications - Amendment 4: Protected Management Frames," IEEE, Sep. 2009.
[4] Matthew S. Gast. "802.11ac: A Survival Guide". ISBN: 978-1-449-34314-9.
Использованы графические материалы.
[5] Bartłomiej Filipek. "C++17 In Detail: Learn the Exciting Features of The New C++ Standard!". ISBN: 978-1-798-83406-0.
[6] Marc Gregoire. "Professional C++, 5th Edition". ISBN: 978-1-119-69554-7.
[2] IEEE Std 802.11ax-2021, "IEEE Standard for Information Technology - Telecommunications and Information Exchange Between Systems - Local and Metropolitan Area Networks - Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications - Amendment 1: Enhancements for High Efficiency WLAN," IEEE, Feb. 2021.
[3] IEEE Std 802.11w-2009, "IEEE Standard for Information Technology - Telecommunications and Information Exchange Between Systems - Local and Metropolitan Area Networks - Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications - Amendment 4: Protected Management Frames," IEEE, Sep. 2009.
[4] Matthew S. Gast. "802.11ac: A Survival Guide". ISBN: 978-1-449-34314-9.
Использованы графические материалы.
[5] Bartłomiej Filipek. "C++17 In Detail: Learn the Exciting Features of The New C++ Standard!". ISBN: 978-1-798-83406-0.
[6] Marc Gregoire. "Professional C++, 5th Edition". ISBN: 978-1-119-69554-7.