Уразливості у технології захисту бездротових мереж WPA3 та в EAP-pwd

Меті Ванхофом (Mathy Vanhoef), автор атаки KRACK на бездротові мережі з WPA2, та Еяль Ронен (Eyal Ronen), співавтор деяких атак на TLS, розкрили відомості про шість уразливостей (CVE-2019-9494 - CVE-2019-9499) у технології захисту бездротових мереж WPA3, що дозволяють відтворити пароль підключення та отримати доступ до бездротової мережі без знання пароля. Вразливості об'єднані під кодовим ім'ям Dragonblood і дозволяють скомпрометувати метод узгодження з'єднань Dragonfly, що надає захист від підбору паролів у режимі offline. Крім WPA3 метод Dragonfly також застосовується для захисту від словникового підбору в протоколі EAP-pwd, що застосовується в Android, RADIUS-серверах та hostapd/wpa_supplicant.

У ході дослідження виявлено два основні типи архітектурних проблем WPA3. Обидва типи проблем, зрештою, можуть використовуватися для відтворення пароля доступу. Перший тип дозволяє здійснити відкат на ненадійні криптографічні методи (downgrade attack): засоби для забезпечення сумісності з WPA2 (транзитний режим, що допускає використання WPA2 і WPA3) дозволяють атакуючому змусити клієнта виконати застосовуване WPA2 чотириетапне узгодження під'єднань, що дозволяє паролів, які застосовуються до WPA2. Крім того, виявлено і можливість здійснення downgrade-атаки безпосередньо на метод узгодження сполук Dragonfly, що дозволяє відкотитися на менш захищені типи еліптичних кривих.

Другий тип проблем призводить до витоку по сторонніх каналах інформації про характеристики пароля і заснований на недоробках методу кодування пароля Dragonfly, які дозволяють за непрямими даними, таким як зміна затримок при виконанні операцій, відтворити вихідний пароль. Застосовуваний в Dragonfly алгоритм перетворення хешу в еліптичну криву (hash-to-curve) виявився схильний до атак через відстеження осідання інформації в процесорному кеші (cache attack), а алгоритм перетворення хешу в групу (hash-to-group) схильний до атак через вимірювання часу виконання операцій (timing attack).

Для здійснення атак через аналіз кешу атакуючий повинен мати можливість виконання непривілейованого коду на системі користувача, що підключається до бездротової мережі. Обидва методи дають можливість отримати інформацію, необхідну уточнення правильності вибору частин пароля у його підбору. Ефективність атаки досить висока і дозволяє підібрати 8-символьний пароль, що включає символи в нижньому регістрі, перехопивши всього 40 сеансів узгодження з'єднання (handshake) та витративши ресурси, еквівалентні оренді потужностей Amazon EC2 на 125 доларів.

На основі виявлених уразливостей запропоновано кілька сценаріїв атак:

  • Атака по відкату WPA2 з можливістю проведення словникового підбору. Якщо клієнт і точка доступу підтримують як WPA3, так і WPA2, атакуючий може розгорнути власну підставну точку доступу з тим же ім'ям мережі, яка підтримує тільки WPA2. У такій ситуації клієнт застосує властивий для WPA2 метод узгодження підключення, в процесі якого буде визначено неприпустимість подібного відкату, але зроблено це буде на стадії, коли повідомлення про погодження каналу надіслано і вся необхідна для словникової атаки інформація вже втекла. Схожий метод можна застосувати і для відкату на проблемні версії еліптичних кривих у SAE.

    Крім того, виявлено, що демон iwd, розвиваємо компанією Intel як альтернативу wpa_supplicant, і бездротовий стек Samsung Galaxy S10 схильні до downgrade-атаки навіть у мережах, що застосовують тільки WPA3 - якщо дані пристрої до цього з'єднувалися з WPA3-мережею, вони спробують з'єднатися з підставною мережею WPA2 з тим самим ім'ям.

  • Атака по стороннім каналам із вилученням відомостей із процесорного кеша. Алгоритм кодування паролів Dragonfly містить умовне розгалуження і атакуючий, маючи можливість виконати код в системі користувача бездротової мережі, може на основі аналізу поведінки кеша визначити який обраний з блоків вираження if-then-else. Отримана інформація може застосовуватися для виконання поступального підбору пароля, використовуючи методи, схожі на здійснення словникових offline-атак з підбору паролів WPA2. Для захисту пропонується перейти на використання операцій з постійним часом виконання, що не залежить від характеру даних, що обробляються;
  • Атака сторонніми каналами з оцінкою часу виконання операцій. У коді Dragonfly при кодуванні паролів застосовується кілька мультиплікативних груп (MODP) та змінна кількість ітерацій, кількість яких залежить від пароля та MAC-адреси точки доступу або клієнта. Видалений атакуючий може визначити, скільки ітерацій виконано в ході кодування пароля і використовувати їх як ознаку при поступальному підборі пароля.
  • Виклик відмови в обслуговуванні. Атакуючий може заблокувати роботу певних функцій точки доступу через вичерпання доступних ресуросів через надсилання великої кількості запитів узгодження каналу зв'язку. Для обходу передбаченого в WPA3 захисту від флуду достатньо відправлення запитів з фіктивних неповторних MAC-адрес.
  • Відкат на менш захищені криптографічні групи, що використовуються в процесі узгодження з'єднань WPA3. Наприклад, якщо клієнт підтримує еліптичні криві P-521 і P-256, і використовує P-521 як пріоритетний варіант, то атакуючий, незалежно від підтримки
    P-521 на стороні точки доступу може примусити клієнта до використання P-256. Атака здійснюється шляхом відсіювання деяких повідомлень у процесі погодження з'єднання та надсилання підроблених повідомлень з інформацією про відсутність підтримки певних типів еліптичних кривих.

Для перевірки пристроїв на наявність уразливостей підготовлено кілька скриптів з прикладами атак:

  • Dragonslayer – реалізація атак на EAP-pwd;
  • Dragondrain - утиліта для перевірки підвіщеності точок доступу вразливості у реалізації методу узгодження з'єднань SAE (Simultaneous Authentication of Equals), яку можна використовувати для ініціювання відмови в обслуговуванні;
  • Dragontime — скрипт для проведення атаки сторонніми каналами проти SAE, що враховує різницю в часі обробки операцій при використанні груп MODP 22, 23 і 24;
  • Dragonforce - утиліта для відновлення інформації (підбір пароля) на основі відомостей про різний час обробки операцій або визначення осідання даних у кеші.

Об'єднання Wi-Fi Alliance, що розвиває стандарти для бездротових мереж, оголосило, що проблема стосується обмеженої кількості ранніх реалізацій WPA3-Personal і може бути усунена через оновлення прошивки та ПЗ. Фактів застосування вразливостей для вчинення шкідливих дій поки що не зафіксовано. Для посилення захисту Wi-Fi Alliance додав до програми сертифікації бездротових пристроїв додаткові тести для перевірки коректності реалізацій, а також зв'язався із виробниками пристроїв для спільної координації усунення виявлених проблем. Патчі з усунення проблем вже випущені для hostap/wpa_supplicant. Оновлення пакетів доступні для Ubuntu. У Debian, RHEL, SUSE/openSUSE, Arch, Fedora та FreeBSD проблеми поки що залишаються невиправленими.

Джерело: opennet.ru

Додати коментар або відгук