Защита беспроводной сети: WIPS. Часть 1: Mojo AirTight

Доброго времени суток жителям Хабра. Можно подумать, что беспроводные системы обнаружения вторжений — это стоящие по периметру покрытия беспроводной сети зенитки и непрерывно вращающиеся тарелки радаров…

-iw7qyxfffviaz6ugs2tylttpeo.jpeg

Ан нет, в суровой реальности всё несколько прозаичнее. Этим постом хочу поделиться нашим опытом работы с двумя решениями 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, и их ждет та же участь. Вот такая вот кровная месть.

Первоначальная настройка


Подробнее остановлюсь на процессе установки и настройки системы.
После развертывания образа в среде виртуализации получаем следующий вид консоли:

acrdv7cm9hrlzckcyrfds5fclfo.png

Следует обратить внимание, что лицензия данного продукта привязана к его MAC-адресу. Поскольку MAC-адрес виртуальной машины может изменяться при её миграции по среде виртуализации, рекомендую назначить вручную. Если адрес изменится, то лицензия «слетит» и придется либо просить вендора перевыпустить лицензию на новый MAC, либо вернуть старый MAC и перезагрузиться.

Вводим дефолтные логин/пароль config/config и запускаем визард первоначальной инициализации. Во время инициализации нам предложат следующее:

rj5j918rgl_cz2v4dbbhzsfpze0.png

Во время первоначальной инициализации важно указать рабочий NTP и DNS сервера. Если этого не сделать, то может не запуститься веб-интерфейс и дальнейшая настройка системы будет невозможна, потребуется перенастройка этих параметров через консоль и перезагрузка. Также необходимо указать DNS-Suffix. Этот параметр нужен для того, чтобы корректно отработал механизм автообнаружения сервера точками доступа. Он должен совпадать на сервере Mojo, на DNS-сервере и на каждой точке доступа.

Далее следуем в веб-интерфейс и «вводим» файл лицензии. Для получения файла лицензии (после покупки, разумеется) необходимо связаться с производителем и предоставить ему MAC-адрес сервера. Триального и грейс-периодов у системы нет.

rptahmalpz-_h-doqcwzgvapowk.png

После этого у нас есть готовая к настройке система…, но в ней не хватает самого важного — точек доступа. С точками доступа есть отдельный нюанс: единовременно точка доступа может находиться только в одном из 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 требует последовательного выполнения трех этапов.

  1. Настройка политики разрешенных SSID. На данном этапе мы создаем для каждого легитимного SSID профиль, в котором указываем имя SSID, его параметры (шифрование, метод аутентификации и т.п.). Настройка осуществляется в меню Configuration>WIPS>Authorized WLAN policy>. После создания всех профилей SSID необходимо активировать их для каждой локации в соответствии с тем, какие SSID могут присутствовать в конкретной локации. Настройки политик для каждой локации осуществляются после нажатия на ссылку «Click here to enable editing and customize the policy». По умолчанию политики наследуются от корневой локации.
  2. Настройка политик IPS.

    l34ywkoptn_edrx5lisvbxco9qu.png
    0ck7kjugvjksgb-4lhrf0jhoo80.png
    t5v5pyz7t0qpkkyfvjtjasv7vaq.png
    6y6czzdr90pquf1o0hbvjdedzha.png
    zmdw4eugjasvs6wh3qj-b_yyjt8.png

    Тут все довольно просто — проставить галочки рядом с интересующим функционалом и собственно все.

  3. Включить IPS. До включения система работает как WIDS — все видит, но не вмешивается.

    1mk-by47bvvn5rpvlfd9jhi7unu.png

Одна галочка отделяет нас от начала предотвращения согласно настроенным политикам.
Подробно описывать как осуществляется противодействие злоумышленнику не считаю необходимым, т.к. это можно прочитать в документации вендора или, скажем:
вот тут.

Интеграция с существующим Wi-Fi


Одним из преимуществ данной системы является возможность интеграции со сторонним Wi-Fi контроллером. Таким образом можно разнести функционал — Wi-Fi раздает одно устройство (и админит его 1 человек), а следит за ним — другое (и соответственно это может быть зоной ответственности другого человека).

anjz0xazcpqooyf5gq5ubez5ybq.png

Поддерживается интеграция с 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 — обведена черным цветом на скриншоте (в данном примере я просто добавил соседскую точку доступа в чёрный список и все её клиенты автоматически стали «злыми»).

klpexmelbyqsiapyfdgamjyimp0.png

После этих несложных манипуляций получим синенький квадратик на карте (если все правильно настроили и откалибровали).

pqr4bhvjyaam454ywkbwk5dmsro.png

На скриншоте пример позиционирования, когда система качественно откалибрована.

Мини-послесловие


В целом решение неплохо себя показало и больше особых проблем (кроме описанных по тексту) я не встретил. Однако необходимость ставить отдельные точки под передачу данных и отдельные под WIPS кажется мне несколько странной, т.к. большая часть конкурирующих решений умеет совмещать данный функционал в одной точке (с ухудшением радиуса покрытия, но все-таки совмещать). Да и чтобы позиционирование работало, как в примере, требуется очень точно составить схему, спланировать размещение сенсоров и поплясать с бубном. Однако все тесты по обнаружению тестовых нарушителей, лишних точек, подключенных к проводной сети, и предотвращению подключения клиентов к беспроводным сетям в целом (главное не эксперементировать с блокировкой на начальстве — обижается) были успешны. Не очень хорошо работает противодействие DoS — с глушилкой частот сенсорные справляются, и обнаружение помогает в поисках лишь ограниченно, т.к. начинает глючить. А при противодействии стандартным атакам вида connection flood, forced disconnectionи т.п. деградация пропускной способности сети все равно заметная. Но найти источник все-таки становится проще.

С is for Cisco.

Продолжение следует.

Артем Бобриков, инженер-проектировщик по информационной безопасности «Инфосистемы Джет»

© Habrahabr.ru