Уязвимост в протокола RADIUS, позволяваща манипулиране на отговора при удостоверяване

Група изследователи от няколко американски университета и компании Cloudflare и Microsoft разработи нова техника на атака на протокола RADIUS, използван от операторите на телекоми, облачни услуги и VPN доставчици за удостоверяване, авторизация и изчисляване на употребата на потребителите. Атаката, получила кодово име Blast-RADIUS, предоставя възможност за фалшифициране на отговора на RADIUS сървъра по време на удостоверяването и организиране на свързването на подателя без знание на паролата за достъп.

За експлоатация на уязвимостта (CVE-2024-3596) атакуващият трябва да има възможност за перехващане на транзитния трафик и извършване на пълноценна MITM атака, позволяваща да чете, перехваща, блокира и изменя входящите и изходящите транзитни UDP пакети, изпращани от точките на достъп за заявки за удостоверяване на клиенти (Access-Request) и връщани от RADIUS сървъра с потвърждение или отказ на операцията. Перехващайки заявката за удостоверяване, атакуващият може да изпрати фалшив отговор, указвайки в този отговор различен тип резултат (например, Access-Accept вместо Access-Reject). Атакуващият също така потенциално може да перехване отговора Access-Challenge, използван при двуфакторно удостоверяване, и да го замени с отговор Access-Accept, за да заобиколи преминаването през допълнителния етап на проверка.

Уязвимост в протокола RADIUS, позволяваща манипулиране на отговора при удостоверяване

Атаката е основана на факта, че протоколът RADIUS използва UDP като транспорт и проверява целостта на предаваните съобщения с помощта на алгоритъма MD5. За проверка на съобщенията, предавани между сървър достъпа и RADIUS сървъра, се прилага секретен ключ, известен на точката на достъп и RADIUS сървъра, но неизвестен на атакуващия. В отговор на заявката за удостоверяване RADIUS сървърът генерира MD5 хеш, с помощта на който сървърът за достъп може да се увери, че съобщението е изпратено от упълномощен сървър. MD5 хешът обхваща случайна стойност, идентификатор на заявката, връщаните атрибути и секретния ключ, изпратени в заявката.

Атакувачът по време на MITM атака може да прихване предаденото в заявката идентификатор и случайна стойност, както и да предскаже кода на операцията, размера и атрибутите. Задачата се свежда до формулирането на коректен верификационен хеш, който да съответства на променения резултат от операцията и да премине проверката чрез хеширане с използване на секретен ключ. Алгоритъмът MD5 не е устойчив на подбиране на колизии, което позволява на атакувача, манипулирайки с незначителното допълнително запълване, да подбере комбинация от данни с необходимите параметри, MD5 хешът на която ще съвпада с MD5 хеша на оригиналния отговор, и да изпрати фалшив отговор с код за успешно преминаване на аутентификация (Access-Accept) вместо съобщение с информация за грешка.

Уязвимост в протокола RADIUS, позволяваща манипулиране на отговора при удостоверяване

Тъй като при обработка на пакети със заявка за достъп (Access-Request) не се прилага аутентификация и проверка на целостта, по време на атаката в оригиналната заявка от сървър достъп атакувачът може да добави допълнителен атрибут «Proxy-State», който ще бъде отразен от RADIUS сървъра в отговора си. Съдържанието на «Proxy-State» се подбира с оглед на колизията, така че стойността на проверъчния MD5 хеш в реалните и фалшивите отговори ще бъде идентична. При провеждане на експеримент търсенето на колизия в MD5 за извършване на атака отне 3-6 минути, което е повече от типичния таймаут от 30-60 секунди, но времето за търсене на колизия може да бъде съкратено чрез използване на по-мощно оборудване, привлекателност на GPU и паралелизиране на операциите.

Като основна мярка за защита от уязвимостта се предлага използването на протокола EAP (Extensible Authentication Protocol, RFC 3579), в който за допълнителна верификация на съобщенията се използва атрибутът Message-Authenticator. За защита от атаката също така могат да се използват разширения на протокола (RadSec), включващи предаване на RADIUS съобщения през криптирани канали на база TLS или DTLS. Освен това, може да се намали до минимум стойността на таймаутите за получаване на отговор и да се блокират отговори с атрибут Proxy-State. Предаването на RADIUS съобщения над TCP усложнява атаката, но не изключва нейното провеждане.

Кодът за извършване на атаката все още не е публикуван в отворен достъп, но проектът hashclash е получил актуализации, които подобряват откриването на колизии в MD5, като отчитат спецификата на атаката. В RADIUS сървъра FreeRADIUS проблемът е отстранен в версиите 3.0.27 и 3.2.5 чрез активирането на задължителното използване на атрибута Message-Authenticator и добавянето на настройка за ограничаване на обработката на пакети с атрибута Proxy-State.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster