Уязвимост в протокола 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