Мэти Ванхофом (Mathy Vanhoef), автор атаки KRACK на беспроводные сети, раскрыл сведения о 12 уязвимостях, затрагивающих различные беспроводные устройства. Выявленные проблемы представлены под кодовым именем FragAttacks и охватывают практически все находящиеся в обиходе беспроводные платы и точки доступа – из протестированных 75 устройств, каждое было подвержено как минимум одному из предложенных методов атаки.
Проблемы разделены на две категории: 3 уязвимости выявлены непосредственно в стандартах Wi-Fi и охватывают все устройства, поддерживающие актуальные стандарты IEEE 802.11 (проблемы прослеживаются с 1997 года). 9 уязвимостей касаются ошибок и недоработок в конкретных реализациях беспроводных стеков. Основную опасность представляет вторая категория, так как организация атак на недоработки стандартов требует наличия специфичных настроек или выполнения жертвой определённых действий. Все уязвимости проявляются независимо от использования протоколов для обеспечения безопасности Wi-Fi, в том числе при использовании WPA3.
Большинство выявленных методов атак позволяют злоумышленнику осуществить подстановку L2-кадров в защищённой сети, что даёт возможность вклинится в трафик жертвы. В качестве наиболее реалистичного сценария атак упоминается подмена ответов DNS для направления пользователя на хост атакующего. Также приводится пример использования уязвимостей для обхода транслятора адресов на беспроводном маршрутизаторе и организации прямого доступа к устройству в локальной сети или игнорирования ограничений межсетевого экрана. Вторая часть уязвимостей, которая связанна с обработкой фрагментированных кадров, даёт возможность извлечь данные о трафике в беспроводной сети и перехватить данные пользователя, передаваемые без использования шифрования.
Исследователем подготовлена демонстрация, показывающая как можно использовать уязвимости для перехвата пароля, переданного при обращении к сайту по протоколу HTTP без шифрования, и использования умной розетки, управляемой через Wi-Fi, в форме плацдарма для продолжения атаки на необновлённые устройства в локальной сети, имеющие неисправленные уязвимости (в частности удалось получить контроль над компьютером с Windows 7).
Для эксплуатации уязвимостей атакующий должен находится в пределах досягаемости целевого беспроводной сети, чтобы отправить жертве специально оформленный набор кадров. Проблема затрагивает как клиентские устройства и беспроводные карты, так и точки доступа и Wi-Fi маршрутизаторы. В общем виде в качестве обходных мер защиты достаточно использования HTTPS в сочетании с шифрованием DNS-трафика при помощи DNS over TLS или DNS over HTTPS. Для защиты также подходит применение VPN.
Наиболее опасными называются четыре уязвимости в реализациях беспроводных устройств, позволяющие тривиальными методами добиться подстановки своих незашифрвоанных кадров в сети, в которой применяется шифрование.
- Уязвимости CVE-2020-26140 и CVE-2020-26143 допускают подстановку кадров на некоторых точках доступа и беспроводных картах в Linux, Windows и FreeBSD.
- Уязвимость VE-2020-26145 допускает обработку широковещательных незашифрвоанных фрагментов как полноценных кадров в macOS, iOS и FreeBSD и NetBSD.
- Уязвимость CVE-2020-26144 допускает обработку незашифрованных пересобранных кадров A-MSDU с EtherType EAPOL в Huawei Y6, Nexus 5X, FreeBSD и LANCOM AP.
Другие уязвимости в реализациях в основном связаны с проблемами, возникающими при обработке фрагментированных кадров:
- CVE-2020-26139: перенаправление кадров с флагом EAPOL, отправленных неаутентифицированным отправителем (затрагивает 2/4 проверенных точек доступа, а также решения на базе NetBSD и FreeBSD).
- CVE-2020-26146: допускает пересборку (reassembling) зашифрованных фрагментов с непоследовательно следующими номерами последовательности.
- CVE-2020-26147: допускает пересборку смешанных шифрованных и нешифрованных фрагментов.
- CVE-2020-26142: позволяет обрабатывать фргментированные кадры как полные кадры (затрагивает OpenBSD и беспроводной модуль ESP12-F).
- CVE-2020-26141: отсутствует проверка TKIP MIC для фрагментированных кадров.
Проблемы в спецификациях:
- CVE-2020-24588 – атака на агрегированные кадры (флаг “is aggregated” не защищён и может быть заменён атакующим в кадрах A-MSDU в WPA, WPA2, WPA3 и WEP). В качестве примера применения атаки упоминается перенаправление пользователя на вредоносный DNS-сервер или обход NAT.
- CVE-2020-245870 – атака на смешивание ключей (допускается пересборка фрагметов, зашифрованных с использованием разных ключей в WPA, WPA2, WPA3 и WEP). Атака позволяет определить данные, отправленные клиентом, например, определить содержимое Cookie при обращении по HTTP.
- CVE-2020-24586 – атака на кэш фрагментов (стандарты, охватывающие WPA, WPA2, WPA3 и WEP, не требуют удаление уже осевших в кэше фрагментов после нового подключения к сети). Позволяет определить данные, отправленные клиентом, и осуществить подстановку своих данных.
Для тестирования степени подверженности проблемам своих устройств подготовлен специальный инструментарий и готовый Live-образ для создания загрузочного USB-накопителя. В Linux проблемы проявляются в беспроводном сетке mac80211, в отдельных беспроводных драйверах и в прошивках, загружаемых на беспроводные платы. Для устранения уязвимостей предложен набор патчей, охватывающих стек mac80211 и драйверы ath10k/ath11k. Для некоторых устройств, таких как беспроводные карты Intel, дополнительно требуется установка обновления прошивки.
Тесты типовых устройств:
Тесты беспроводных карт в Linux и Windows:
Тесты беспроводных карт во FreeBSD и NetBSD:
Производители были уведомлены о проблемах ещё 9 месяцев назад. Столь длительный период эмбарго объясняется скоординированной подготовкой обновлений и задержками при подготовке организациями ICASI и Wi-Fi Alliance изменений спецификаций. Изначально планировалось раскрыть сведения 9 марта, но сопоставив риски было решено отложить публикацию ещё на два месяца для того, чтобы дать больше времени на подготовку патчей с учётом нетривиальности вносимых изменений и трудностей, возникающих из-за пандемии COVID-19.
Примечательно, что несмотря на эмбарго компания Microsoft в мартовском обновлении Windows досрочно устранила некоторые уязвимости. Раскрытие информации было отложено за неделю до изначально намеченного срока и компания Microsoft не успела или не захотела вносить изменения в готовое для публикации обновление, чем создала угрозу для пользователей других систем, так как злоумышленники могли получить информацию об уязвимостях через проведение обратного инжиниринга содержимого обновлений.