Исследователи безопасности обнаружили уязвимость в протоколе RADIUS, являющемся основой современной сетевой инфраструктуры. Недостаток позволяет злоумышленнику получить доступ к сетевым устройствам и службам без необходимости подбирать пароли. Ошибка получила название Blast-RADIUS.
Blast-RADIUS позволяет проводить MiTM-атаку, подделывая допустимые сообщения о принятии протокола в ответ на неудачные запросы аутентификации. В результате атакующий может получить доступ к сетевым устройствам и службам без необходимости угадывать пароли или общие секреты. Важно отметить, что сами учетные данные пользователя при этом не становятся известны злоумышленнику.
Уязвимость затрагивает все реализации RADIUS, использующие методы аутентификации, отличные от EAP, через протокол UDP. Это означает, что все организации, использующие RADIUS для управления доступом к сетевым ресурсам, находятся под угрозой. В число таких организаций входят крупные корпоративные сети, интернет-провайдеры и телекоммуникационные компании.
Протокол RADIUS, разработанный в 1991 году для эпохи dial-up интернета, до сих пор остаётся стандартным протоколом аутентификации, используемым для удалённого доступа к сетевым устройствам. RADIUS поддерживается практически всеми коммутаторами, маршрутизаторами, точками доступа и концентраторами VPN, продаваемыми за последние 20 лет.
В протоколе NAS-сервер проверяет учетные данные пользователя с помощью запросов к центральному серверу. Клиент и сервер RADIUS используют общий секрет для обмена данными. Сервер отвечает сообщением о принятии (Access-Accept) или отклонении (Access-Reject) запроса. Запросы и ответы могут содержать различные параметры, включая имя пользователя и пароль.
Основная причина уязвимости кроется в том, что протокол RADIUS разрабатывался до появления современных криптографических стандартов и обычно не зашифрован и не аутентифицирован должным образом. Протокол пытается аутентифицировать ответы сервера, используя хэш-функцию MD5 и фиксированный общий секрет между клиентом и сервером.
Атакующий запускает Access-Request с неверными учетными данными от законного клиента RADIUS (1), а затем выполняет MiTM-атаку (2) и вычисляет коллизию хэша MD5 (3), чтобы внедрить вредоносный атрибут Proxy-State в запрос (4). Коллизия хэша позволяет злоумышленнику превратить сгенерированный сервером Response Authenticator из законного ответа Access-Reject (5) в ответ Access-Accept (6), чтобы пройти аутентификацию или авторизацию со стороны клиента RADIUS (7).
Атака Blast-RADIUS использует новую уязвимость протокола, сочетая её с коллизионной атакой MD5 chosen-prefix и рядом новых улучшений скорости и пространства. Атакующий вводит вредоносный атрибут Proxy-State в запрос клиента, что гарантирует его возврат сервером в ответе. Механизм позволяет злоумышленнику сделать так, чтобы значения Response Authenticator в допустимом ответе и поддельном ответе совпадали. В результате NAS предоставляет доступ к сетевым устройствам и услугам без необходимости угадывать пароли или секреты.
Атака основана на уязвимости MD5, которая позволяет вычислять коллизиихэшей. Злоумышленник использует случайные строки так, чтобы хэши MD5 для этих строк совпадали. Затем атакующий добавляет строки к запросу клиента, и сервер возвращает их в ответе.
Администраторам сетей, использующих RADIUS, настоятельно рекомендуется проверить наличие исправлений у своих поставщиков и следовать рекомендациям по настройке RADIUS. На текущий момент конечные пользователи не могут предпринять самостоятельных шагов для защиты.
Также разработчикам и поставщикам рекомендуется обязать клиентов и серверы всегда отправлять и требовать атрибуты Message-Authenticator для всех запросов и ответов. Для ответов Access-Accept или Access-Reject следует включать Message-Authenticator в качестве первого атрибута. Исправления с указанными смягчениями, были внедрены всеми известными реализациями RADIUS.
Долгосрочное смягчение заключается в использовании RADIUS внутри зашифрованного и аутентифицированного канала, который предлагает современные криптографические гарантии безопасности. Например, IETF начал работу по стандартизации RADIUS через (D)TLS .