Показать сообщение отдельно

Wi-Fi все обо всем. RADIUS.
  #2  
Старый 17.09.2007, 16:15
Elvis000
Moderator - Level 7
Регистрация: 23.04.2007
Сообщений: 646
Провел на форуме:
4901399

Репутация: 1035


По умолчанию Wi-Fi все обо всем. RADIUS.

В данном разделе форума были описаны, более менее подробно, многие протоколы беспроводной связи, методы их защиты, но о протоколе реально усложняющем жизнь вардрайверу (ведь, как известно, невзламываемых ключей не бывает, дело лишь во времени, требуемом для их вычисления) упомянуто лишь вскользь. В различных источниках о нем упоминается как о протоколе в других как о сервере. Итак:

RADIUS (англ. Remote Authentication in Dial-In User Service) — протокол AAA (authentication, authorization и accounting), разработанный для передачи сведений между программами-сервисами (NAS, Network Access Server) и системой биллинга.

Протокол RADIUS реализован во многих сетевых средах, требующих высокого уровня защиты при условии поддержки сетевого доступа для удаленных пользователей. Он представляет собой полностью открытый протокол, поставляемый в формате исходного текста, который можно изменить для того, чтобы он мог работать с любой доступной в настоящий момент системой защиты. Широкую популярность RADIUS обеспечивает возможность добавлять новые пары "атрибут/значение" в дополнение к тем, которые описаны в документе RFC 2865. Протокол RADIUS имеет атрибут поставщика (атрибут 26), позволяющий поставщику осуществлять поддержку своих собственных расширенных наборов атрибутов, включающих нестандартные атрибуты. Вследствие использования пар "атрибут/значение" конкретных поставщиков могут возникать трудности при интеграции серверных продуктов защиты RADIUS в другие системы защиты. Серверы защиты RADIUS и соответствующие клиенты должны игнорировать нестандартные пары "атрибут/значение", созданные конкретными поставщиками.

Cisco осуществляет поддержку клиентов RADIUS посредством набора серверов сетевого доступа, маршрутизаторов, коммутаторов Ethernet, брандмауэров PIX, концентраторов VPN 3000 и CiscoSecure ACS.

(с) Wiki.

RADIUS - самостоятельно решает, пустить пользователя в сеть или нет. К чести некоторых производителей беспроводного доступа (например, D-Link и U.S. Robotics, Cisco), возможность авторизации и аутентификации пользователя на сервере RADIUS с помощью 802.1х предусмотрена даже в достаточно старых устройствах стандарта 802.11b.

В настоящее время есть несколько популярных реализаций RADIUS-серверов: FreeRadius, GNU Radius, Cistron Radius, Radiator Radius, Microsoft IAS, Advanced Radius. Некоторые из них - коммерческие продукты, некоторые - доступны для бесплатного использования с соблюдением соответствующих лицензионных требований.

Что следует в данном случае понимать под терминами "авторизация", "аутентификация" и "аккаунтинг"? Аутентификация - процесс определения тождественности пользователя, в наиболее общем виде - посредством имени ("логина") и пароля. Авторизация - определение сетевых сервисов, доступных конкретному пользователю, и сервисов, к которым доступ запрещен. Наконец, аккаунтинг - журналирование использования сетевых ресурсов и сервисов.

В общем случае алгоритм привязки RADIUS-сервера к беспроводной сети может быть таков:
1. Сетевой администратор дает команду RADIUS-серверу завести новую учетную карточку пользователя с занесением в нее имени пользователя, под которым он будет проходить аутентификацию, и его пароля.
2. Внесенный в базу RADIUS-сервера пользователь с помощью беспроводной связи подключается к точке доступа, чтобы проверить электронную почту.
3. Точка доступа запрашивает у пользователя его имя и пароль.
4. Точка доступа связывается с RADIUS-сервером и дает запрос на аутентификацию пользователя.
5. RADIUS-сервер находит валидные имя пользователя и пароль, дает добро на новую сессию и заводит в журнале соответствующую запись о начале новой сессии.
6. Точка доступа предоставляет пользователю возможность работать с теми сервисами, которые ему предписаны (это и есть авторизация).
7. По окончании сессии, которая может быть прервана либо самим пользователем, либо RADIUS-сервером (например, истек "нарезанный" по регламенту промежуток времени работы), RADIUS-сервер делает в журнале запись об окончании сеанса.

Как видим, процедура достаточно строгая, но в тоже время логически верная - хотя и относится лишь к управлению доступом.

(с) Евгений Патий, IT News

На данный момент известно достаточно большое количество уязвимостей данного протокола, наиболее опасные и их описание, выбранные мной с www.securitylab.ru приведены ниже:

- Переполнение буфера обнаружено в FreeRADIUS в rlm_smb модуле. Удаленный пользователь может выполнить произвольный код с root привилегиями.
Удаленный пользователь может представить чрезмерно длинный User-Password параметр, длинее 128 байт, чтобы вызвать переполнение стекового буфера. Уязвимость расположена в функции SMB_Logon_Server() в 'src/modules/rlm_smb/smblib.c' файле.

- Уязвимость обнаружена в Ethereal в обработке атрибутов RADIUS пакетов. Удаленный пользователь может аварийно завершить работу Ethereal процесса.
Удаленный пользователь может послать специально сформированный пакет, чтобы аварийно завершить работу приложения. Уязвимость расположена в функции dissect_attribute_value_pairs() в 'packet-radius.c' файле. Уязвимость может использоваться для выполнения произвольного кода.

- Уязвимость аутентификации обнаружена в OpenBSD login_radius(8) RADIUS. Удаленный пользователь может в некоторых случаях обойти аутентификацию.
Удаленный пользователь способный подменить ответы от RADIUS сервера к целевому OpenBSD серверу, может успешно аутентифицироваться на целевом сервере.
Удаленный пользователь может запросить аутентификацию и затем подделать ответ RADIUS сервер с правильным ACCEPT пакетом, полученным с произвольного RADIUS сервера. Уязвимы только системы, которые используют RADIUS аутентификацию в '/etc/login.conf'.

- Обнаружено переполнение буфера в YardRadius. Удаленный атакующий может выполнить произвольный код на уязвимой системе.
Удаленный атакующий может переполнить стек при обработке функции process_menu() и выполнить произвольный код на уязвимой системе.
Также существует переполнение буфера в функции calc_acctreq().

- Обнаруженные уязвимости позволяют удаленному пользователю произвести SQL-инъекцию и выполнить произвольный код на целевой системе.
1. Уязвимость в функции radius_xlat() позволяет удаленному пользователю выполнить произвольные SQL команды в базе данных приложения.
2. Переполнение буфера обнаружено в функции sql_escape_func(). Удаленный пользователь может выполнить произвольный код на целевой системе с привилегиями уязвимой службы.

На практике мне не удалось реализовать ни одного указанного выше способа, так как из-за отсутствия времени не углублялся в исследование данного протокола, а на основной работе море свободного времени, но нет субъекта исследования, тоесть в досягаемости нет ни одной сети работающей на RADIUSе.

В настоящее время на смену RADIUSу разрабатывается новый протокол DIAMETER, который должен заменить RADIUS, оставшись обратно совместимым с ним.

Последний раз редактировалось Elvis000; 17.09.2007 в 16:17..
 
Ответить с цитированием