
MacStealer: обход клиентской изоляции Wi-Fi
Этот репозиторий содержит MacStealer. Он позволяет тестировать сети Wi-Fi на наличие обходов клиентской изоляции (CVE-2022-47522). Наша атака может перехватывать (похищать) трафик, направленный другим клиентам на уровне MAC, даже если клиентам запрещено взаимодействовать друг с другом. Эта уязвимость затрагивает сети Wi-Fi с недобросовестными инсайдерами, где наша атака может обойти клиентскую изоляцию, которую иногда также называют изоляцией точки доступа (AP isolation). Атаку также можно использовать для обхода динамической проверки ARP (DAI), и, вероятно, её можно использовать для обхода других методов, предотвращающих атаки клиентов друг на друга. Атака также известна как security context override attack; см. раздел 5 нашей статьи на USENIX Security '23 (репозиторий).
Конкретные примеры сетей, которые могут быть затронуты:
Корпоративные сети, где пользователи могут не доверять друг другу и где для предотвращения атак пользователей друг на друга применяются такие методы, как клиентская изоляция или проверка ARP. Например, корпоративные сети с учётными записями и для гостей, и для сотрудников, такие сети, как eduroam и govroam, и т. д.
Публичные хотспоты, защищённые с помощью Passpoint (ранее Hotspot 2.0). Это хотспоты, к которым можно подключаться автоматически и безопасно. Например, они могут незаметно выполнять аутентификацию с использованием SIM-карты вашего телефона.
Домашние сети WPA2 или WPA3 с включённой клиентской изоляцией. Сюда входят сети с отдельным SSID для гостей или для небезопасных (IoT) устройств. Сюда также входят сети, где для дополнительной изоляции устройств используется несколько паролей — такой подход также известен как Multi-PSK, Identity PSK, per-station PSK, или EasyPSK. Дополнительную информацию см. в обсуждении модели угроз.
Публичные хотспоты на основе WPA3 SAE-PK. Это хотспоты, защищённые общим публичным паролем, но при этом злоумышленник не может злоупотребить этим общеизвестным паролем.
Отметим, что наша атака не позволяет обходить VLAN. Иными словами, по результатам текущих экспериментов, наша атака не может быть использована для атаки на устройство в другом VLAN.
Также доступен репозиторий с другими результатами нашей работы на USENIX Security '23.
Основная идея атаки заключается в том, что способ аутентификации клиентов не связан с тем, как пакеты маршрутизируются к нужному клиенту Wi-Fi. А именно, аутентификация выполняется на основе паролей, имён пользователей, 802.1X-идентификаторов и/или сертификатов, но после подключения клиента маршрутизация пакетов выполняется на основе MAC-адресов. Недобросовестный инсайдер может злоупотребить этим для перехвата данных, направленных клиенту Wi-Fi: отключив жертву и затем подключившись под MAC-адресом жертвы (используя учётные данные злоумышленника). Любые пакеты, которые всё ещё находились в пути к жертве, например данные веб-сайта, который жертва ещё загружала, теперь вместо неё получит злоумышленник.
Если быть точнее, атака состоит из трёх шагов:
Побуждение жертвы запросить данные: Сначала злоумышленник ждёт, пока жертва (клиент)
установит соединение Wi-Fi с уязвимой точкой доступа (AP). Предполагается, что затем жертва
отправит запрос к серверу в Интернете. Например, жертва может отправить
HTTP-запрос к (незашифрованному) веб-сайту example.com. Цель злоумышленника —
перехватить ответ, который отправит веб-сайт.
Подключение под MAC-адресом жертвы: После того как жертва запросила данные, например
отправив пакет HTTP-запроса, злоумышленник принудительно отключит жертву от сети
до того, как ответ поступит на уязвимую точку доступа.
В нашем примере это означает, что жертва будет отключена до того, как ответ от
example.com поступит на точку доступа. После отключения жертвы злоумышленник подделывает
MAC-адрес жертвы и подключается к сети, используя собственные учётные данные.
Это означает, что злоумышленник является недобросовестным инсайдером, который может подключиться к сети
со своими учётными данными, например используя собственные имя пользователя и пароль в
корпоративной сети Wi-Fi.
Перехват ответа: После того как злоумышленник подключился под MAC-адресом жертвы,
точка доступа свяжет вновь сгенерированные ключи шифрования злоумышленника с MAC-адресом жертвы.
В результате, когда ответ от сервера поступит в сеть Wi-Fi, или вообще любой входящий трафик,
направленный жертве, маршрутизатор перешлёт эти входящие пакеты на MAC-адрес жертвы.
В нашем примере это означает, что маршрутизатор перешлёт ответ от example.com
на MAC-адрес жертвы. Однако этот MAC-адрес теперь использует злоумышленник. Это означает, что
точка доступа зашифрует ответ, используя ключи злоумышленника. Иными словами, злоумышленник
теперь получит любой ожидающий трафик, который всё ещё находится в пути к жертве.
Отметим, что перехваченный трафик может быть защищён шифрованием более высокого уровня, таким как TLS и HTTPS. Тем не менее, даже если используется шифрование более высокого уровня, наша атака всё равно раскрывает IP-адрес, с которым взаимодействует жертва. Это, в свою очередь, раскрывает веб-сайты, которые посещает жертва, а это само по себе может быть чувствительной информацией.
По умолчанию атака не перехватывает трафик, отправляемый жертвой, а может перехватывать только трафик, отправляемый жертве. Однако злоумышленник может предпринять последующие атаки, чтобы также перехватывать трафик, отправляемый жертвой. В частности, перехватив DNS-ответ, предназначенный жертве, злоумышленник может подменить DNS-ответ и перехватывать весь IP-трафик — как направленный жертве, так и отправляемый ею.
Выполнять описанную выше атаку имеет смысл только тогда, когда в целевой сети включена клиентская изоляция. В противном случае, если клиентская изоляция отключена, недобросовестный инсайдер может просто напрямую атаковать других клиентов с помощью таких методов, как подделка ARP (ARP spoofing) (см. тесты клиентской изоляции).
Атака идентична для корпоративных сетей WPA1, WPA2 и WPA3. Это связано с тем, что атака не эксплуатирует никаких криптографических свойств Wi-Fi, а вместо этого злоупотребляет тем, как сеть определяет, какому клиенту должны быть отправлены (то есть маршрутизированы) пакеты.
Дополнительные подробности об атаке см. в разделе 5 (security context override attack) нашей статьи Framing Frames: Bypassing Wi-Fi Encryption by Manipulating Transmit Queues.