KRACK (CVE)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 21:05, 16 июня 2019.
KRACK
KRACK-logo-small.png
CVE identifier(s) 2017-13077
Date discovered 13 July 2017 года; 3 years ago (2017-07-13)
Date patched 10 October 2017 года; 2 years ago (2017-10-10)
Discoverer Мэти Ванхоф (Mathy Vanhoef)
Website cve.mitre.org

KRACK (англ. Key Reinstallation Attack — Атака с переустановкой ключа) — атака повторного воспроизведения на Wi-Fi сеть с шифрованием WPA2. Атаки на основе обнаруженных критических уязвимостей в WPA2, получившие обобщенное название KRACK (Key Reinstallation Attacks), используют уязвимости в самом стандарте Wi-Fi, а не в отдельных продуктах или решениях, поэтому угрозе подверженная любая реализация WPA2. Другими словами, любое современное устройство, поддерживающее Wi-Fi, является уязвимым к атакам KRACK, независимо от производителя или того, какой операционной системой оно управляется: Android, iOS, macOS, Linux, Windows, OpenBSD и другие.

Краткое описание атаки

Исследователями была обнаружена возможность при установлении соединения между точкой доступа и клиентом проводить манипуляции с трафиком согласования (также часто называемым «рукопожатием» от англ. handshake) для стандарта WPA2 (Wi-Fi Protected Access II), а также более старой версии стандарта WPA. Они смогли добиться повторного использования параметра nonce и сессионного (сеансового) ключа в результате инициации процедуры переустановки ключа шифрования со стороны атакуемого клиента или точки доступа (в некоторых случаях).

Таким образом, злоумышленник при реализации атаки посредника (Man in the middle) между точкой доступа и клиентом (как показано на рисунке 1), нарушив порядок приема или повторной отправки сообщений, может получить возможность частично манипулировать синхронизацией и передачей сообщений в протоколах WPA2 Four-way, Group Key, Fast Basic Service Set (BSS) Transition, PeerKey, Tunneled Direct-Link Setup (TDLS) PeerKey (TPK), а также Wireless Network Management (WNM) Sleep Mode. В зависимости от используемого протокола шифрования данных (WPA-TKIP, AES-CCMP или GCMP) и некоторых ситуационных факторов, эффектом от этих манипуляций будет переустановка ранее уже используемых сессионных ключей, а также перегрузка счетчиков nonces и replay. Как результат, повторное использование ключей облегчает злоумышленникам дешифрование и инжект (инъекцию) пакетов, перехват TCP-соединения (TCP connection hijacking), добавление вредоносного кода в HTTP-контент или повторное вещание unicast-, broadcast- и multicast-кадров.

Подробное описание атаки

Основная атака KRACK направлена против четырехэтапного рукопожатия протокола WPA2. Оно выполняется тогда, когда клиент хочет присоединиться к защищенной сети Wi-Fi, и используется для подтверждения того, что и клиент, и точка доступа имеют правильные учетные данные. Также четырехэтапное рукопожатие служит для утверждения нового сгенерированного ключа шифрования, который будет использоваться для шифрования всего последующего трафика. Современные Wi-Fi устройства снабжены системой защиты WPA2, которая, в свою очередь, основана на технологии четырехэтапного рукопожатия принятой в стандарте 802.11i. Основная концепция четырехэтапного рукопожатия заключается в том, что при подключении к Wi-Fi сети новый клиент с помощью четырех сообщений организует ключи шифрования с передающим устройством. При получении третьего сообщения клиент устанавливает полученные ключи, как активные ключи шифрования, после чего отправляет завершающий, четвёртый, пакет точке доступа, чтобы исключить потерю третьего пакета из-за помех и т.п. В случае получения четвертого пакета точкой доступа, работа продолжается в стандартном режиме, а при его отсутствии, точка доступа отправляет третий пакет заново. При получении третьего пакета повторно клиент сбрасывает счётчики и начинает кодировать сообщение заново. Именно этот этап, с повторной отправкой ключа, позволяет злоумышленнику декодировать сообщение, а в зависимости от используемого протокола, так же получить возможность перехватывать куки, пароли, воспроизводить, расшифровывать или создавать пакеты.[Источник 1]

Рисунок 1 – Принцип атаки

Когда переустанавливают ключ шифрования, связанные с ним параметры, такие как инкрементный номер передаваемого пакета (nonce) и номер принимаемого пакета (replay counter) сбрасываются к своим изначальным значениям. Обнаруженная уязвимость позволяет активному злоумышленнику, который задерживает или блокирует обмен пакетами между клиентом и точкой доступа, вмешиваться в общение между точкой доступа и клиентом. Он может с помощью повторного транслирования криптографических сообщений рукопожатия обмануть устройство-жертву и спровоцировать переустановку уже ранее использованного ключа. Таким образом, следующий ключевой поток будет идентичен предыдущему ключевому потоку, так как те же самые значения параметра nonce (то есть значения счетчика) используются в паре с тем же самым ключом шифрования, который уже ранее использовался. Как только это произойдет, злоумышленник с небольшим усилием сможет расшифровать трафик (к примеру, эта задача становится тривиальной, если повторно используемый ключевой поток осуществляет передачу известного злоумышленнику контента), и таким образом получить доступ к персональной информации, которая передается через Wi-Fi-сеть. Собственно, атакующий сможет расшифровать далеко не все передаваемые пакеты, но, так как отныне такая возможность стала реальностью, лучше исходить из предположения, что любой передаваемый пакет может быть дешифрован злоумышленником.[Источник 2]

Подобный принцип осуществления защищенного соединения (четырехэтапное рукопожатие) определяется текущей версией набора стандартов беспроводной связи IEEE 802.11, является обязательным при сертификации Wi-Fi-устройств и решений и, соответственно, используется всеми современными защищенными Wi-Fi-сетями. Это означает, что все защищенные WiFi-сети в мире уязвимы (с определенной вариативностью) к атакам KRACK. Так, например, атака работает против персональных и корпоративных сетей Wi-Fi, против старого стандарта WPA и современного WPA2, и даже против сетей, которые построены на использовании только защищенного стандарта шифрования ключей AES.

Ключ шифрования устанавливается после получения клиентом сообщения 3 четырехэтапного рукопожатия. По сути, чтобы гарантировать безопасность соединения, ключ необходимо устанавливать и использовать только один раз. К сожалению, протоколом WPA2 это не гарантируется. Так как при передаче по беспроводной сети сообщение может быть потеряно или искажено, точка доступа может повторно несколько раз передавать сообщение 3, если она не получила соответствующего подтверждения от клиента. Клиент, в свою очередь, может несколько раз получать сообщение 3 четырехэтапного рукопожатия, каждый раз переустанавливая один и тот же ключ шифрования, а также обнуляя параметры nonce и replay counter, используемые протоколом шифрования. Собирая и ретранслируя сообщения четырехэтапного рукопожатия, атакующий может добиться использования того же ключа шифрования несколько раз. Используя подобную технику, можно также манипулировать рукопожатиями протоколов Group Key, Fast Basic Service Set (BSS) Transition, PeerKey, Tunneled Direct-Link Setup (TDLS) PeerKey (TPK), а также кадрами Wireless Network Management (WNM) Sleep Mode. [Источник 3]

Последствия взлома

Возможность дешифрования пакетов может использоваться для дешифрования пакетов TCP SYN. Это позволит атакующему получить порядковые номера TCP-соединения и захватить TCP-сеанс. В результате у злоумышленников появилась возможность осуществлять на Wi-Fi-сети, защищенные с помощью WPA2, наиболее распространенные атаки против открытых беспроводных сетей: добавление вредоносных модулей в HTTP-соединения. К примеру, это может быть вставка вредоносного программного обеспечения в HTTP-данные, которые получает жертва с просмотренных ею веб-сайтов. Стоит также отметить, что атака KRACK не способна определить пароль, каким защищена Wi-Fi-сеть. Также эта уязвимость не сможет как-либо помочь определить (полностью или даже частично) новый ключ шифрования (в том числе и выдать себя за точку доступа или клиента для получения нового сессионного ключа), который будет установлен во время следующего незаблокированного сеанса четырехэтапного рукопожатия. Таким образом, речь идет не о взломе протокола безопасности WPA2, чей процесс четырехэтапного рукопожатия остается надежно защищенным при условии ограничения на установление ключа шифрования одним разом, а о уязвимости, которая может быть нивелирована для конкретного устройства или решения с помощью обратно совместимого обновления. [Источник 4]

Исправление уязвимости

Первый этап - внедрение в протокол конфиденциальности данных проверки, установлен ли уже используемый сетью ключ. Если это так, то отменяется сброс связанных с этим счётчиков и перезапись ключа. Это предотвратит возможность атаки, по крайней мере, если злоумышленник не использует для перестановки старый ключ, перед повторной установкой текущего. А также, при использовании данных мер защиты, важно, чтобы счётчик повторных запросов рукопожатий с ключом только увеличивался. Иначе злоумышленник может попытаться использовать старое сообщение, чтобы жертва временно установила старый ключ, впоследствии переустановив актуальный. Второй этап – убедиться, что конкретный ключ установлен лишь единожды за время сессии рукопожатия в сущность, реализующую протокол конфиденциальности данных. [Источник 5]

Когда клиент получает повторно переданное сообщение 3, он должен ответить, но не переустанавливать ключ сеанса. Это можно сделать, добавив логическую переменную. Она инициализируется в состоянии false и установить значение true при создании нового PTK в PTK-START. Если значение переменной true при вводе PTK-DONE, то PTK установлен, а переменной присваивается значение false. Если значение переменной false при вводе PTK-DONE, установка PTK пропускается.

Для полной защищенности от атаки KRACK достаточно установить обновления на все устройства, входящие в Wi-Fi-сеть (как точки доступа, так и клиентов) по мере появления соответствующих обновлений у производителей для конкретных решений. Обратите внимание, что обновление прошивки точки доступа не всегда может гарантировать безопасность подключенных к ней клиентских устройств без соответствующего патча, если об этом прямо не сказано в описании к обновлению прошивки точки доступа. Другими словами, внимательно читайте, от каких атак вас защитит свежее обновление прошивки, а от каких нет. И, конечно же, старайтесь устанавливать соответствующее обновление сразу, как только оно появится у вашего производителя.

Замена пароля никак не повлияет на эффективность атаки KRACK. Использование VPN и HTTPS, отказ от использования стандарта |IEEE 802.11r усложнит задачу атакующему, но полностью обезопасить вас не сможет. Поэтому подобные шаги ни в коем случае не должны восприниматься как решение проблемы, а могут быть лишь временной мерой, пока вы полностью не обеспечите безопасность своей Wi-Fi-сети.

Патчи

В таблице представлены патчи для разных устройств, которые устраняют возможность атаки KRACK. [Источник 6]

Система Версия Пропатчено
Android Все Android 2017-11-06 уровень патча безопасности
Chrome OS Все Стабильный канал 62.0.3202.74
iOS iOS 11 iOS 11.1 для iPhone >=7, iOS 11.2 для всех iOS устройств под iOS 11. iOS версии ранее 11 не были уязвимы
macOS High Sierra 10.13 macOS 10.13.1
macOS Sierra 10.12 Обновление безопасности 2017—001 Sierra
Windows 7 KB4041681 или KB4041678
Windows 8.1 KB4041693 или KB4041687
Windows 10 KB4042895
Windows Server 2016 KB4041691

Источники

  1. Взлом WPA2 с помощью уязвимости KRACK: в опасности все WiFi сети // NetworkGuru.ru. [2015 - 2019]. Дата обновления: 20.05.2019. URL: https://networkguru.ru/vzlom-wpa2-s-pomoshchiu-uiazvimosti-krack/ (дата обращения: 20.05.2019).
  2. АТАКА С ПЕРЕУСТАНОВКОЙ КЛЮЧА KRACK // Academia.edu. [2019]. Дата обновления: 19.05.2019. URL: https://www.academia.edu/37007981/%D0%90%D0%A2%D0%90%D0%9A%D0%90_%D0%A1_%D0%9F%D0%95%D0%A0%D0%95%D0%A3%D0%A1%D0%A2%D0%90%D0%9D%D0%9E%D0%92%D0%9A%D0%9E%D0%99_%D0%9A%D0%9B%D0%AE%D0%A7%D0%90_KRACK_ (дата обращения: 19.05.2019).
  3. KRACK (Key Reinstallation Attack) // Hanwha-Techwin. [2019]. Дата обновления: 20.05.2019. URL: https://www.hanwha-security.com/data/tutorial/attrbt/1518156212666.pdf (дата обращения: 20.05.2019).
  4. Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2 // papers.mathyvanhoef.com. [2019]. Дата обновления: 20.05.2019. URL: https://papers.mathyvanhoef.com/ccs2017.pdf (дата обращения: 20.05.2019).
  5. Breaking WPA2 by forcing nonce reuse // Key Reinstallation Attacks. [2019]. Дата обновления: 20.05.2019. URL: https://www.krackattacks.com/ (дата обращения: 20.05.2019).
  6. Атака с переустановкой ключа // Википедия. [2019]. Дата обновления: 27.05.2019. URL: https://ru.wikipedia.org/wiki/%D0%90%D1%82%D0%B0%D0%BA%D0%B0_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9_%D0%BA%D0%BB%D1%8E%D1%87%D0%B0 (дата обращения: 27.05.2019).