Защита беспроводной сети: WIPS. Часть 1: Mojo AirTight
Доброго времени суток жителям Хабра. Можно подумать, что беспроводные системы обнаружения вторжений — это стоящие по периметру покрытия беспроводной сети зенитки и непрерывно вращающиеся тарелки радаров…
Ан нет, в суровой реальности всё несколько прозаичнее. Этим постом хочу поделиться нашим опытом работы с двумя решениями WIPS (Wireless Intrusion Prevention System). В первой части расскажу, что такое WIPS вообще и зачем он нужен, а также дам краткий обзор ключевых возможностей продукта Mojo AirTight и описание требуемых настроек. Во второй части планирую рассмотреть аналогичное решение от Cisco.
Лирическое отступление
Думаю, каждый сетевой инженер за свою жизнь сталкивался с понятием IPS/IDS. В современных реалиях каждый уважающий себя межсетевой экран предлагает данную функциональность. Производители оборудования громко стучат себя кулаком в грудь и меряются «независимыми» результатами экспертиз — чей NGFW лучше ловит различных зловредов. Не составляет проблемы найти хорошую статью с рекомендациями по настройке данного класса оборудования.
К сожалению, с WIPS все не так радужно: толкового материала (особенно на русском языке) немного и в основном это маркетинговые брошюры, а не описания настроек. Документация вендора, конечно, помогает, но зачастую ответы на интересующие вопросы находятся в разных источниках и чтобы догадаться, где искать, требуется знать половину ответа на вопрос.
Поработав с различными решениями данного класса, я решил написать свой более технический гайд и поделиться им с миром.
Моя статья не претендует на полноту охвата функционала описанных далее решений и не является истиной в последней инстанции. Используйте опыт «аффтара» на свой страх и риск.
Что такое WIPS и зачем он нужен?
WIPS — это система, которая осуществляет мониторинг окружающего радиоэфира с помощью сенсоров (обычно ими являются те же самые точки доступа, что и раздают Wi-Fi), анализирует полученную информацию об источниках радиосигнала, их взаимодействиях и аномальных (необычных) активностях и предотвращает действия, противоречащие настроенной политике предотвращения вторжений.
Разные системы WIPS применяют различные алгоритмы выявления «нарушителей» и механизмы предотвращения их деятельности. Однако, несмотря на отличия в методиках, перечень угроз, с которыми каждая система пытается бороться, примерно одинаков (как показывает мой личный опыт, не всегда заявленный функционал оказывается на 100% эффективен).
- RogueAP — зловредная точка доступа, которая полностью или частично копирует «вид» настоящей (то же название SSID или с небольшими отличиями) и предназначена для реализации атаки MiTM и/или компрометации учетных данных неосторожного пользователя.
- Ad-hoc — режим работы, в котором устройство, подключенное к LAN, раздает Wi-Fi окружающим и, как следствие, предоставляет доступ в LAN.
- DoS — атака на отказ в обслуживании. В реалиях беспроводных сетей это по большей части флуд сообщениями деаутентификации пользователей или захламление радиоэфира бесполезными сообщениями (шумом) с целью ухудшения качества работы сети.
- MAC-Spoofing — подделка адреса отправителя сообщений с целью выдать себя за клиента/AP.
- BruteForce — подбор пароля Wi-Fi путем полного перебора/атаки по словарю.
- Атаки на известные уязвимости протоколов шифрования и авторизации — уязвимости WEP, WPA, WPS и т.п.
Теперь конкретика.
Mojo AirTight
Общее описание
Mojo AirTight от компании Mojo Networks — первая система, с которой мне довелось работать. Это комплексное решение по предоставлению беспроводного доступа и организации WIPS.
Система имеет традиционную архитектуру: точки доступа и Wi-Fi-контроллер + система управления WIPS. Предоставляется также облачный вариант контроллера, но не думаю, что данная опция пользуется спросом в нашей стране.
Точки доступа могут применяться в 3-х режимах:
- AP — обычная точка доступа
- Sensor — точка доступа в режиме WIPS/WIDS
- Network Detector — точка доступа, осуществляющая сканирование проводных сегментов.
Mojo AirTight Wireless Intrusion Prevention System (WIPS) — виртуалка, совмещает в себе функционал контроллера беспроводной сети и WIPS, лицензируется по количеству подключенных точек (в любом режиме). Отдельная лицензия на функционал WIPS не требуется.
Принцип работы
Принцип работы Mojo AirTight WIPS довольно прост — все обнаруженные пользователи и точки доступа классифицируются по 5 категориям: Authorized, Misconfigured, External, Unknown, Rogue.
Authorized — доверенные точки доступа и клиенты, подключенные к ним.
Misconfigured — точки доступа, которые являются доверенными, но настроены некорректно относительно политики IPS.
External — точки доступа и клиенты, подключенные к ним, которые не являются ни доверенными, ни зловредными. Wi-Fi соседей, в общем.
Unknown — точки доступа и клиенты, подключенные к ним, которые еще не прошли классификацию или для классификации которых недостаточно информации.
Rogue — зловредные точки доступа и клиенты, подключенные к ним.
Классификация осуществляется автоматически, но в случае неверной классификации администратор системы может вручную присвоить любую категорию (кроме Misconfigured).
Соответственно авторизованными считаются точки доступа, непосредственно подключенные к серверу управления Mojo; точки доступа, подключенные к другому контроллеру, с которым интегрирована система (о возможностях интеграции расскажу чуть позже); точки, не подключенные к Mojo, но настройки которых соответствуют политике безопасности IPS.
Misconfigured — точки, настройки которых не соответствуют политике WIPS (например, точка использует WPA, а политика WIPS требует только WPA2-Personal). Могут быть подключены к серверу управления Mojo или к другому контроллеру Wi-Fi, с которым интегрирована система.
Зловредными (rogue) считаются точки доступа, подключенные к проводной сети, мониторящейся средствами Mojo, но не являющиеся авторизованными (случай, когда кто-то воткнул в сеть лишнюю точку доступа, которая не обслуживается корпоративным контроллером беспроводки). Также в список зловредных попадают точки, передающие корпоративные SSID (но не являющиеся авторизованными по критериям, описанным выше) и SSID, находящиеся в черном списке.
Ну, а все остальные точки классифицируются как внешние.
По результатам классификации к точкам и пользователям применяются действия, описанные в политике WIPS. Политика предполагает беспрепятственное взаимодействие Authorized объектов, остальные категории можно ограничивать. Рекомендуется запретить взаимодействие c Rogue и Misconfigured объектами, но не применять никаких ограничений к объектам группы External.
Следует помнить, что система крайне «злопамятна». Если точка или пользователь однажды были проклассифицированы как rogue, то таковыми они и останутся до того момента, пока администратор их не «оправдает». Поэтому возможна следующая ситуация: соседи по бизнес-центру случайно воткнули свою точку доступа не в тот коммутатор в коммутационном помещении. Спустя некоторое время они поняли свою оплошность и исправили ошибку, но Mojo уже нашел и проклассифицировал их точку. И начал применять к ней действия, определенные политикой — например, глушить попытки подключения к ним пользователей. После этого Mojo переклассифицирует остальные видимые точки с такими же параметрами (тот же SSID, та же модель точек и т.п.), принадлежащие соседскому Wi-Fi, и их ждет та же участь. Вот такая вот кровная месть.
Первоначальная настройка
Подробнее остановлюсь на процессе установки и настройки системы.
После развертывания образа в среде виртуализации получаем следующий вид консоли:
Следует обратить внимание, что лицензия данного продукта привязана к его MAC-адресу. Поскольку MAC-адрес виртуальной машины может изменяться при её миграции по среде виртуализации, рекомендую назначить вручную. Если адрес изменится, то лицензия «слетит» и придется либо просить вендора перевыпустить лицензию на новый MAC, либо вернуть старый MAC и перезагрузиться.
Вводим дефолтные логин/пароль config/config и запускаем визард первоначальной инициализации. Во время инициализации нам предложат следующее:
Во время первоначальной инициализации важно указать рабочий NTP и DNS сервера. Если этого не сделать, то может не запуститься веб-интерфейс и дальнейшая настройка системы будет невозможна, потребуется перенастройка этих параметров через консоль и перезагрузка. Также необходимо указать DNS-Suffix. Этот параметр нужен для того, чтобы корректно отработал механизм автообнаружения сервера точками доступа. Он должен совпадать на сервере Mojo, на DNS-сервере и на каждой точке доступа.
Далее следуем в веб-интерфейс и «вводим» файл лицензии. Для получения файла лицензии (после покупки, разумеется) необходимо связаться с производителем и предоставить ему MAC-адрес сервера. Триального и грейс-периодов у системы нет.
После этого у нас есть готовая к настройке система…, но в ней не хватает самого важного — точек доступа. С точками доступа есть отдельный нюанс: единовременно точка доступа может находиться только в одном из 3-х режимов (AP, Sensor, Network Detector).
Главный подвох заключается в том, что одновременно передавать информацию и сканировать эфир, предотвращать вторжения точка не может. Так что для работы WIPS требуется планировать размещение отдельных точек, выполняющих только данную задачу.
Чтобы точки доступа автоматически подключились к серверу Mojo, WIPS требуется, чтобы они получили IP-адрес, адрес DNS-сервера и DNS-Suffix по DHCP. Также на DNS-сервере должна присутствовать запись для имени «wifi-security-server», указывающая на сервер Mojo. В принципе каждую точку можно настроить руками, но это не наш метод.
При работе через межсетевые экраны необходимо проследить, чтобы описанные ниже взаимодействия были разрешены.
Tcp/21 | FTP — передача файлов может использоваться для загрузки |
Tcp/22 | SSH |
Tcp/25 | Интеграция с SMTP — используется для отправки оповещений |
Tcp/80 | Загрузка обновлений ОС точками доступа в сервера WIPS |
Tcp/443 | Админский GUI |
Tcp/1035 | Взаимодействие между серверами WIPS, работающими в кластере |
Tcp/3851 | Взаимодействие с AirTight Mobile — endpoint-клиент от Mojo Networks |
Tcp/3852 | Open VPN при использовании Cloud Integration Point (CIP) |
Tcp/4433 | Используется при аутентификации клиентов по сертификатам/смарт-картам |
Tcp/5432 | Взаимодействие между PostgreSQL базами кластера серверов WIPS |
Tcp/2002 | Порт, используемый для траблшутинга (packet capture). На этом порту точка доступа ожидает команды от сервера на инициацию сессии сбора трафика |
Udp/23 | NTP — синхронизация времени (взаимодействуют и точки, и сервер) |
Udp/161 | SNMP (прием сообщений) — требуется для интеграции со сторонними контроллерами (например Сisco WLC) |
Udp/162 | SNMP — (отправка сообщений) — требуется для интеграции со сторонними контроллерами (например, Cisco WLC) |
Udp/389 | LDAP — интеграция с LDAP для аутентификации пользователей |
Udp/694 | Heartbeat между серверами кластера WIPS |
Udp/514 | Syslog — интеграция с внешними SIEM |
Udp/1194 | Open VPN между серверами в кластере |
Udp/1812 | Radius — аутентификация пользователей через radius-сервер |
Udp/3851 | Обмен информацией с точками доступа по протоколу SpectraTalk |
По умолчанию точки подключаются к системе в режиме «AP». После этого их можно переключить в требующийся режим. Также возможно настроить профиль устройств, который будет автоматически переключать в требуемый режим все подключаемые AP.
Но, как водится, есть один нюанс: если точка долго не может найти контроллер, то она от огорчения впадает в летаргический сон и лечит эту проблему только перезагрузка после предварительной настройки файрвола/маршрутизации/DNS.
Точки в режиме network detector необходимо настраивать вручную через SSH/консольное подключение. Смысл этого режима в том, что точка по транку подключается ко всем VLAN ЛВС и ищет в ней признаки проводного подключения неавторизованных точек доступа. Если находит –начинает спуфить их MAC-адрес и всячески мешать их жизни. Такое поведение устройства может вызывать неудовольствие коммутаторов так что их тоже рекомендуется предварительно настроить. Сама по себе настройка network detector довольно проста: необходимо изменить режим работы, настроить транк (указать перечень VLAN), настроить параметры сети для каждого VLAN (задать IP-адрес и маску сети), указать, через какой VLAN стучаться на сервер Mojo и по какому адресу.
Собственно, этап начальной настройки системы завершен, когда сервер управления и точки доступа увидели друг друга. Я не буду останавливаться подробно на настройке Wi-Fi средствами Mojo — данный процесс ничем не отличается от настройки беспроводной сети на оборудовании любого другого вендора. Далее я расскажу о настройке сервисов, необходимых для работы WIPS, и самого WIPS в частности.
Настройка локаций
Далее необходимо настроить «карту» сети. Для этого нужно настроить «топологию»: создать специальные сущности — «здания» и «этажи» (ни в коем случае не используйте кириллицу — система ее не поддерживает). Для каждого «этажа» — загрузить план помещения и отметить расположение всех сенсоров и легитимных точек доступа.
Создание элементов топологии осуществляется в меню Locations>>Add Location. Загрузка карты — Locations>>Building X> Floor Y>Add layout. При загрузке карты требуется указать длину и ширину помещения и выбрать единицы измерения. К сожалению, карта — это просто рисунок (в формате jpg) без возможности указать на нем какие-либо объекты (например, стены).
Добавление сенсора/точки доступа на план осуществляется в меню: Locations>>Building X>Floor Y>Show device list. Из появившегося списка устройств сенсор/точку необходимо «перетащить» на место размещения на карте.
Карта должна быть максимально точной, как и размещение на ней сенсоров и точек доступа. Это требуется для корректной работы механизма позиционирования (подробности ниже).
Настройка IPS
Настройка IPS требует последовательного выполнения трех этапов.
- Настройка политики разрешенных SSID. На данном этапе мы создаем для каждого легитимного SSID профиль, в котором указываем имя SSID, его параметры (шифрование, метод аутентификации и т.п.). Настройка осуществляется в меню Configuration>WIPS>Authorized WLAN policy>
. После создания всех профилей SSID необходимо активировать их для каждой локации в соответствии с тем, какие SSID могут присутствовать в конкретной локации. Настройки политик для каждой локации осуществляются после нажатия на ссылку «Click here to enable editing and customize the policy». По умолчанию политики наследуются от корневой локации. - Настройка политик IPS.
Тут все довольно просто — проставить галочки рядом с интересующим функционалом и собственно все.
- Включить IPS. До включения система работает как WIDS — все видит, но не вмешивается.
Одна галочка отделяет нас от начала предотвращения согласно настроенным политикам.
Подробно описывать как осуществляется противодействие злоумышленнику не считаю необходимым, т.к. это можно прочитать в документации вендора или, скажем:
вот тут.
Интеграция с существующим Wi-Fi
Одним из преимуществ данной системы является возможность интеграции со сторонним Wi-Fi контроллером. Таким образом можно разнести функционал — Wi-Fi раздает одно устройство (и админит его 1 человек), а следит за ним — другое (и соответственно это может быть зоной ответственности другого человека).
Поддерживается интеграция с Cisco WLC, Aruba Mobility Controllers и HP MSM Controller. Взаимодействие осуществляется по SNMP. Тут ничего настраивать особо не нужно — необходимо указать IP-адрес с контроллера, выбрать версию SNMP, указать название комьюнити, учетные данные (в случае SNMPv3) и отметить галочками, какие параметры мы хотим получить от контроллера. Для WIPS в принципе достаточно только информации о AP и клиентах, но можно пометить галочкой и информацию о точках, которые видит каждая точка доступа, обслуживаемая контроллером, с которым мы настраиваем взаимодействие. Это может пригодиться в следующей ситуации — допустим контроллер, с которым мы интегрируемся, обслуживает одновременно несколько зданий. В здании «А» у нас есть свои сенсоры Mojo — они сами все видят, и помощь от AP им не нужна;, а вот в здании «Б» сенсоров у нас нет, и тогда мы можем получить информацию об участниках радиоэфира от контроллера. Конечно, заставить работать «на подавление» точки, управляемые контроллером, система не сможет, а вот проклассифицировать увиденные таким образом — вполне. И если в здании «Б» мы проклассифицируем данным способом rogue точку, то система сгенерирует Alarm и администратор сможет увидеть это в интерфейсе и принять меры. Не автоматически, конечно, но хоть как-то.
В целом это все по настройке интеграции. Еще раз уточню: чтобы точки, полученные от стороннего контроллера Wi-Fi, стали авторизованными, необходимо произвести настройку IPS, как я писал выше. Если этого не сделать, то они станут misconfigured.
Правда, данный механизм не всегда работает корректно. Например, мне пришлось столкнуться с багом, из-за которого все точки Сisco 1600, полученные от WLC, почему-то не добавлялись автоматически в авторизованные да и вообще отображались как несколько отдельных точек (по количеству SSID). Пришлось классифицировать их руками, чтобы избежать проблем с WIPS.
Позиционирование объектов
Одной из самых интересных фич данной системы является позиционирование объектов Wi-Fi сети. Теоретически настройка данного механизма не требуется и он работает из коробки. На практике — чтобы все было красиво, как в приведенном ниже примере, необходима очень тщательная настройка карты и калибровка сенсоров. Калибровка представляет собой построение системой графика триангуляции объектов и определения расстояния до них. Система демонстрирует фактический и ожидаемый графики, и в идеале они должны совпадать. Но, учитывая наличие стен и других генерирующих помехи объектов, хорошим результатом для точного позиционирования является 70% соответствия графиков. Все сводится к оптимальному расположению точек в помещении и правильной настройке карты (нюансов тут, конечно, море). Есть и другие особенности — во-первых, система получает инфу от точек доступа, управляемых сторонним Wi-Fi контроллером через определенные промежутки времени, и если использовать для позиционирования движущегося объекта данную информацию, то при сопоставлении текущих данных от сенсоров с данными от точки доступа пятиминутной давности позиция будет «слегка» неточной. Во-вторых, при создании карты помещения нет возможности указать объекты, ухудшающие прохождения сигнала. Например, электрощитовая, расположенная на этаже, может существенно исказить картину.
Как это работает?
Например, в сети появился злостный нарушитель и нам необходимо его найти.
Переходим во вкладку Monitoring>Security, находим интересующего нас клиента и выбираем опцию Locate — обведена черным цветом на скриншоте (в данном примере я просто добавил соседскую точку доступа в чёрный список и все её клиенты автоматически стали «злыми»).
После этих несложных манипуляций получим синенький квадратик на карте (если все правильно настроили и откалибровали).
На скриншоте пример позиционирования, когда система качественно откалибрована.
Мини-послесловие
В целом решение неплохо себя показало и больше особых проблем (кроме описанных по тексту) я не встретил. Однако необходимость ставить отдельные точки под передачу данных и отдельные под WIPS кажется мне несколько странной, т.к. большая часть конкурирующих решений умеет совмещать данный функционал в одной точке (с ухудшением радиуса покрытия, но все-таки совмещать). Да и чтобы позиционирование работало, как в примере, требуется очень точно составить схему, спланировать размещение сенсоров и поплясать с бубном. Однако все тесты по обнаружению тестовых нарушителей, лишних точек, подключенных к проводной сети, и предотвращению подключения клиентов к беспроводным сетям в целом (главное не эксперементировать с блокировкой на начальстве — обижается) были успешны. Не очень хорошо работает противодействие DoS — с глушилкой частот сенсорные справляются, и обнаружение помогает в поисках лишь ограниченно, т.к. начинает глючить. А при противодействии стандартным атакам вида connection flood, forced disconnectionи т.п. деградация пропускной способности сети все равно заметная. Но найти источник все-таки становится проще.
С is for Cisco.
Продолжение следует.
Артем Бобриков, инженер-проектировщик по информационной безопасности «Инфосистемы Джет»