Описание
WIPS/WIDS - внутренний сервис точки доступа (ТД) по предотвращению и обнаружению вторжений в беспроводную сеть.
По своей сути этот механизм анализирует весь трафик в радио окружении ТД, делает вывод о наличии в сети угроз безопасности, оповещает о них администратора СУ и, при необходимости, предпринимает действия по подавлению этих угроз.
В текущем релизе ПО точки доступа (1.18.0) поддерживается следующий функционал:
- Детектирование DDoS атаки;
- Отслеживание перебора паролей;
- Отслеживание небезопасной конфигурации;
- Детектирование точек, имитирующих SSID;
- Детектирование точек, имитирующих MAC;
- Отключение клиентов от вражеских ТД;
- Отправка трапа о попытке несанкционированного доступа к ТД в СУ.
eltex-wids-service - вспомогательный сервис на серверной стороне, отвечающий за распространение белых/черных списков "вражеских" ТД между участниками WIPS/WIDS.
По умолчанию сервис WIDS не установлен. Для работы сервиса с ТД необходимо его установить следующими командами:
sudo apt update
sudo apt install eltex-wids-service
Лицензирование
Лицензия ограничивает настройку и мониторинг сервиса WIPS/WIDS в СУ.
В демо-лицензии EMS (лицензия по-умолчанию) доступна активация сервиса на 2-х ТД.
Количество доступных и использованных на сервере лицензий можно увидеть в GUI EMS в разделе Справка → Лицензии:
Либо непосредственно в самом файле лицензий /usr/lib/eltex-ems/conf/licence/licence.xml:
<group> <title>Wireless WIPSWIDS</title> <count>10</count> <typeList> <type>WiFi</type> </typeList> </group>
Если лицензия на WIPS/WIDS присутствует в списке, то в GUI EMS в меню "Wireless" будет доступна для настройки вкладка "WIDS manager":
А на вкладке "Доступ" точки доступа появятся соответствующие флаги активации сервиса.
Управление
Активация сервиса на точке доступа
В GUI EMS явно регулируется какой точке доступа отдать лицензию. Для этого в параметрах доступа точки есть две настройки :
- параметр "Вкл WIDS/WIPS сервис" - определяет точку доступа, которая будет использовать сервис. При установке флага, количество доступных устройств, которые могут использовать сервис WIDS/WIPS, уменьшится в лицензии на 1. По-умолчанию флаг снят - сервис WIPS/WIDS не доступен.
- параметр "Реальное применение WIDS/WIPS" - это не редактируемый флаг, он отражает смогла ли система активировать сервис или нет. Может получиться так, что в базе данных параметр "Вкл WIDS/WIPS сервис" выставлен для большего количества точек, чем фактически разрешено в лицензии, тогда для части точек этот флаг будет снят, хотя флаг активации выставлен.
Определить, что сервис успешно активирован, можно по нескольким признакам:
- на странице "Доступ" выставлено оба флага:
- "Вкл WIDS/WIPS сервис";
- "Реальное применение WIDS/WIPS".
- на вкладке "Конфигурация" появился новый раздел - "WIDS/WIPS"
Настройка сервиса на точке доступа и логика работы
Все точки доступа в эфире можно разделить на три группы:
- "не доверенные" ТД - точки, которые присутствуют в эфире, но о них более ничего не известно;
- "доверенные" ТД - точки, которые установлены и управляются оператором;
- "вражеские" ТД - точки, которые однозначно несут угрозу для остальных точек доступа в сети - это ТД, которые имитируют MAC-адрес или SSID исходной ТД.
Для однозначного выявления всех "не доверенных" ТД эфире, в Beacon пакет точек доступа, использующих сервис WIDS, добавляется динамически изменяющаяся зашифрованная подпись.
Расшифровать пакет могут лишь те точки, на которых настроен идентичный ключ Shared key в конфигурации сервиса.
Если подписи в пакете нет, либо при его декодировании получен не ожидаемый результат, точка доступа, от которой был получен пакет, будет считаться "не доверенной". Иначе "доверенной"
Если "не доверенная" точка доступа имеет MAC-адрес или SSID, совпадающий с текущими значениями на сканирующей ТД, то такая точка будет считаться "вражеской", о чем будет сообщено администратору СУ, посредством отправки с ТД соответствующего трапа в систему управления.
Для более гибкой работы сервиса, есть возможность явно указать список ТД, которые должны или не должны считаться "доверенными" ТД. Этот список распространяется между точками доступа вспомогательным сервисом eltex-wids-service.
Настройка конфигурации "WIDS/WIPS" для Fastpath-устройств (WEP/WOP-2ac/12ac)
Основная настройка сервиса происходит во вкладке "WIDS/WIPS" в меню "Конфигурация".
Имя параметра | Допустимые значения | Описание |
---|---|---|
WIDS Parameters | ||
Status | Full/Down/Key-only | Full - активировать работу сервиса отслеживания атак. Down - отключить сервис. Значение по-умолчанию. Key-only - активировать сервис, но отключить детектирование угроз. В режиме Key-only точка будет добавлять шифрованную подпись в Beacon для того, чтобы на встречных ТД попасть в список "доверенных" ТД, но сама детектировать угрозы не будет. Для настройки доступно лишь поле Shared key. |
Shared key | ASCII строка от 10 до 32 символов | Общий ключ, используемый для отслеживание доверенных точек доступа в радиоэфире. По-умолчанию значение не выставлено и активировать сервис нельзя, пока оно не будет установлено. |
WIDS list URL | ws://<ip>:<port>/MacLists | Путь до вспомогательного сервиса eltex-wids-service. Не обязательная настройка. |
WIDS MAC list | Имя списка мак адресов | Предоставляется возможность выбрать один из списков MAC-адресов, созданных в разделе "Wireless - WIDS Manager" Не обязательная настройка. |
Scan mode | Passive/Sentry/Home-only | Режим сканирования эфира. Passive - в этом режиме точка доступа через заданные промежутки времени (Passive scan interval) будет кратковременно (Passive scan duration) менять свой текущий канал (на котором идет работа с клиентами) на очередной канал из общего списка, для обнаружения других ТД в эфире. Качество услуги, предоставляемой клиенту, в момент сканирования не ухудшается. Значение по-умолчанию. Sentry - режим сканера - в данном режиме не предусмотрена работа точки доступа с клиентами. Точка постоянно сканирует весь список каналов и максимально быстро обнаруживает угрозы. Home-only - режим, при котором точка работает с клиентом и периодически сканирует эфир только на рабочем канале. Отличие от режима Passive заключается в том, что точка в момент сканирования не меняет канал. |
Passive scan interval, sec | 5..3600 | Период пассивного сканирования. Значение по-умолчанию: 20 сек. |
Passive scan duration, ms | 10..2000 | Длительность пассивного сканировании. Значение по-умолчанию: 100 мс. |
Home-only scan interval, sec | 5..3600 | Период сканирования в режиме Home-only. Значение по-умолчанию: 20 сек. |
Home-only scan duration, ms | 10..2000 | Длительность сканирования в режиме Home-only. Значение по-умолчанию: 100 мс. |
Prevention mode | None/Rogue/All | Режим подавления угроз. None - режим выключен. Значение по-умолчанию. Rogue - сканирующая ТД детектирует MAC-адреса клиентов, которые подключены к "вражеским" ТД, и отравляет DeAuth пакеты от имени "вражеской" ТД клиенту и от имени клиента "вражеской" ТД. All - в данном режиме форсированный DeAuth пакет отправляется не только клиентам, подключенным к "вражеским" ТД, а вообще всем, кто подключен к "не доверенной" ТД. |
Misconfigure detection | Off/On | Функционал, при включении которого точка доступа отправляет в систему управления трап при каждом изменении в настройках конфигурации, если итоговая конфигурация небезопасна. Значение по-умолчанию: off С критериями небезопасной конфигурации можно ознакомиться в статье - v1.23_Критерии небезопасной конфигурации |
DoS Detection Parameters | ||
Mode | Up/Down | Активирование функции детектирования DoS-атак. Значение по-умолчанию: down. DoS атака определяется превышением лимита управляющих фреймов разных типов в радиоэфире. Анализируются только фреймы, в которых destination mac совпадает с mac-адресом сканирующей ТД. (исключение Beacon) |
Interval, sec | 1..86400 | Интервал, в течение которого идет подсчет фреймов. Если за это время заданный лимит превышен, то будет сгенерирован SNMP-трап об обнаружении атаки. Значение по-умолчанию: 1 сек. |
DoS-trigger | 1..1000000000 | Параметр показывает, насколько должно измениться количество пакетов по сравнению с предыдущим периодом, чтобы был отправлен трап о DoS-атаке. Значение по-умолчанию: 250. |
... treshlold | 1..10000 | Пороговый лимит для каждого типа управляющего фрейма (Assoc, ReAssoc, DiAssoc, Auth, DeAuth, RTS, CTS, Prob, Beacon, BlockAck, BlockAckReq, Pspoll ) Значение по-умолчанию: 500. |
Bruteforce Detection Parameters | ||
Interval, sec | 0..86400 | Функция детектирования атаки перебора паролей. В течение указанного интервала считается количество неуспешных авторизаций пользователей на SSID с шифрованием (Personal и Enterprise) активных на сканирующей ТД. Если порог Threshold был превышен, в СУ отправляется трап об обнаружении атаки "перебор паролей". Значение по-умолчанию: 5 сек. При значении параметра Interval = 0, детектирование атаки "перебор паролей" будет отключено. |
Threshold | 1..10000 | Пороговый лимит количества неуспешных авторизаций. Значение по-умолчанию: 25. |
Enable MAC Blacklist | On/Off | При включении данной функции MAC-адреса клиентских устройств, замеченных за атакой "перебор паролей", будут добавлены в черный список на период времени Timeout. При попадании в "MAC Blacklist" устройство будет игнорироваться точкой доступа на период времени Timeout, в результате чего, клиент не сможет подключиться к сети. Значение по-умолчанию: off |
Timeout, sec | 1..86400 | Время хранения MAC-адреса клиентского устройства в черном списке. Значение по-умолчанию: 1800 сек |
Начиная с версии ПО точки доступа 1.18.0 появилась возможность отправки трапа о попытке несанкционированного доступа к ТД в СУ. Данный функционал (ap-security) включен на точке по-умолчанию и работает следующим образом:
Если в течение 180 секунд будет совершено 3 попытки входа в интерфейс управления ТД с неверными учетными данными (login/password) посредством telnet/ssh/web/consol, то ip-адрес устройства, с которого были совершены неудачные попытки входа, будет добавлен в черный список на 5 минут, а в СУ отправится предупреждающий трап.
Имя параметра | Допустимые значения | Описание |
---|---|---|
logon-snmp-retries | 0..127 | Количество неудачных попыток входа в интерфейс управления ТД, при достижении которых за интервал logon-snmp-interval, ip-адрес устройства будет добавлен в "черный список". Значение по умолчанию: 3 |
logon-snmp-interva, sec | 1..86400 | Интервал, в течение которого ведется подсчет неудачных попыток входа в интерфейс управления ТД. Значение по умолчанию: 180 сек |
logon-snmp-freeze-interval, sec | 0..600 | Время, в течение которого ip-адрес устройства, с которого была зафиксирована попытка входа в интерфейс управления ТД с неверными учетными данными, будет находиться в черном списке. Значение по умолчанию: 300 сек |
Редактировать и просматривать значения параметров, а также включать/выключать функционал отправки трапов о попытке несанкционированного входа в интерфейс управления ТД, можно только через CLI точки доступа.
Команда для вывода значений параметров: get ap-security Пример вывода команды: Property Value --------------------------------- logon-snmp-retries 3 logon-snmp-interval 180 logon-snmp-freeze-interval 300 Команда для изменения значения параметра: set ap-security <имя_параметра> <значение> Пример: set ap-security logon-snmp-interval 86400 Команда для выключения работы функционала: set ap-security logon-snmp-retries 0 Для сохранения внесенных изменений введите команду: save-running
Настройка конфигурации "WIDS/WIPS" для устройств ESDK (WEP/WOP-3ax)
Для возможности настройки сервиса на ТД необходимо включить "Вкл WIPS/WIDS сервис" на вкладке "Доступ" устройства.
После этого настройка сервиса станет доступна во вкладке "config" в меню "Управление". Если вкладка "config" в меню "Управление" открывалась до включения сервиса и раздел "Настройка WIDS" не отображается - необходимо нажать кнопку на вкладке "Управление".
Основная настройка сервиса происходит во вкладке "config" в меню "Управление".
Имя параметра | Допустимые значения | Описание |
---|---|---|
Настройка WIDS | ||
Включить WIDS | Вкл/Выкл | Включить/отключить сервис WIDS. Значение по-умолчанию: off |
Общий сетевой ключ | ASCII строка от 10 до 32 символов | Общий ключ, используемый для отслеживание доверенных точек доступа в радиоэфире. По-умолчанию значение не выставлено и активировать сервис нельзя, пока оно не будет установлено. |
Режим сканирования WIDS | none/passive/sentry | None - режим выключен. Значение по-умолчанию. Passive - в этом режиме точка доступа через заданные промежутки времени (Период пассивного сканирования) будет кратковременно (Продолжительность пассивного сканирования) менять свой текущий канал (на котором идет работа с клиентами) на очередной канал из общего списка, для обнаружения других ТД в эфире. Качество услуги, предоставляемой клиенту, в момент сканирования, практически не деградирует. Sentry - режим сканера - в данном режиме не предусмотрена работа точки доступа с клиентами. Точка доступа всё время сканирует весь список каналов и максимально быстро обнаруживает угрозы. |
Интерфейс сканирования WIDS | all/wlan0/wlan1 | all - оба интерфейса в диапазоне 2,4 ГГц и 5 ГГц. Значение по-умолчанию. wlan0 - интерфейс в диапазоне 2,4 ГГц. wlan1 - интерфейс в диапазоне 5 ГГц. |
Период пассивного сканирования, сек | 1..3600 | Период пассивного сканирования.Значение по-умолчанию: 20. |
Продолжительность сканирования канала для пассивного режима, мс | 10..2000 | Длительность пассивного сканировании. Значение по-умолчанию: 110. |
Продолжительность сканирования канала для активного режима, мс | 100..2000 | Длительность нахождения ТД на одном канале, для активного сканированиия. Значение по-умолчанию: 200. |
Режим подавления (WIPS) | none/rogue/all | None - режим выключен. Значение по-умолчанию. Rogue - сканирующая ТД детектирует MAC-адреса клиентов, которые подключены к "вражеским" ТД, и отравляет DeAuth пакеты от имени "вражеской" ТД клиенту и от имени клиента "вражеской" ТД. All - в данном режиме форсированный DeAuth пакет отправляется не только клиентам, подключенным к "вражеским" ТД, а вообще всем, кто подключен к "не доверенной" ТД. |
URL-адрес службы WIDS-service | ws://<IP>:<Port>/MacLists | Путь до вспомогательного сервиса eltex-wids-service. Не обязательная настройка. Обеспечивает работу с белыми/черными списками MAC |
Имя списка службы WIDS | Defaut_list | Предоставляется возможность выбрать один из списков MAC-адресов, созданных в разделе "Wireless - WIDS Manager" Не обязательная настройка. Значение по-умолчанию: Defaut_list |
Включить обнаружение небезопасной конфигурации | Вкл/Выкл | Функционал, при включении которого точка доступа отправляет в систему управления трап при каждом изменении в настройках конфигурации, если итоговая конфигурация по мнению функционала WIDS небезопасна. Значение по-умолчанию: off |
Bruteforce-detection | ||
Включить обнаружение атак "перебор пароля" | Вкл/Выкл | Включить/отключить функцию детектирования атаки перебора паролей. Значение по-умолчанию: off |
Порог количества неудачных попыток авторизаций | 1..10000 | Пороговый лимит количества неуспешных авторизаций. Значение по-умолчанию: 25. |
Интервал подсчёта неудачных попыток авторизаций, сек | 0..86400 | В течение указанного интервала считается количество неуспешных авторизаций пользователей на SSID с шифрованием (Personal и Enterprise) активных на сканирующей ТД. Если порог был превышен, в СУ отправляется трап об обнаружении атаки "перебор паролей". Значение по-умолчанию: 5 сек. При значении параметра равного 0, детектирование атаки "перебор паролей" будет отключено. |
Включить блокировку клиентов, уличенных в атаке | Вкл/Выкл | При включении данной функции MAC-адреса клиентских устройств, замеченных за атакой "перебор паролей", будут добавлены в черный список на период времени Timeout. При попадании в "MAC Blacklist" устройство будет игнорироваться точкой доступа на период времени Timeout, в результате чего, клиент не сможет подключиться к сети. Значение по-умолчанию: off |
Продолжительность блокировки клиентов, сек | 1..86400 | Время хранения MAC-адреса клиентского устройства в черном списке. Значение по-умолчанию: 1800 сек |
DoS-Detection | ||
Включить обнаружение атак "отказ в обслуживании" | Вкл/Выкл | Активирование функции детектирования DoS-атак. Значение по-умолчанию: off DoS атака определяется превышением лимита управляющих фреймов разных типов в радиоэфире. Анализируются только фреймы, в которых destination mac совпадает с mac-адресом сканирующей ТД. (исключение Beacon) |
Интервал подсчёта пакетов в радиоэфире, сек | 0..86400 | Интервал, в течение которого идет подсчет фреймов. Если за это время заданный лимит превышен, то будет сгенерирован SNMP-трап об обнаружении атаки. Значение по-умолчанию: 1 сек. |
Порог резкого изменения количества пакетов относительно предыдущего периода времени | 0..86400 | Параметр показывает, насколько должно измениться количество пакетов по сравнению с предыдущим периодом, чтобы был отправлен трап о DoS-атаке. Значение по-умолчанию: 250. |
Период отправки сообщения о детектировании атаки в секундах | 0..604800 | Значение по-умолчанию: 20 |
Пороговое значение пакетов типа "Association request" | 0..86400 | Значение по-умолчанию: 500 |
Пороговое значение пакетов типа "Reassociation request" | 0..86400 | Значение по-умолчанию: 500 |
Пороговое значение пакетов типа "Diassociation request" | 0..86400 | Значение по-умолчанию: 500 |
Пороговое значение пакетов типа "Probe request" | 0..86400 | Значение по-умолчанию: 500 |
Пороговое значение пакетов типа "Beacon" | 0..86400 | Значение по-умолчанию: 500 |
Пороговое значение пакетов типа "Block Ack request" | 0..86400 | Значение по-умолчанию: 500 |
Пороговое значение пакетов типа "Block Ack" | 0..86400 | Значение по-умолчанию: 500 |
Пороговое значение пакетов типа "PS poll" | 0..86400 | Значение по-умолчанию: 500 |
Пороговое значение пакетов типа "Authentication" | 0..86400 | Значение по-умолчанию: 500 |
Пороговое значение пакетов типа "Deauthentification" | 0..86400 | Значение по-умолчанию: 500 |
Пороговое значение пакетов типа "RTS" | 0..86400 | Значение по-умолчанию: 500 |
Пороговое значение пакетов типа "CTS" | 0..86400 | Значение по-умолчанию: 500 |
Настройка вспомогательного сервиса eltex-wids-service
Переопределение "доверенных" и "вражеских" точек доступа происходит путем явного задания списков в GUI EMS (раздел "Wireless → WIDS Manager") и дальнейшего их указания в поле "WIDS MAC list" на вкладке "WIDS/WIPS" в меню "Конфигурация" ТД.
/etc/eltex-wids-service/config.hocon
Конфигурационный файл сервиса.
- Порт, на котором работает сервис:
ServicePort = 9095
- Среда логирования. Доступны 2 значения: "production" - отправка логов в Graylog, "k8s" - вывод логов в stdout.
Environment = "production"
- Активация отправки в Graylog:
GelfEnabled = false
- Путь к БД MariaDB:
ConnectionString = "tcp(127.0.0.1:3306)"
- Название БД MariaDB:
DBName = "eltex_wids"
- Логин от учетной записи пользователя MariaDB:
Login = "javauser"
- Пароль от учетной записи пользователя MariaDB:
Password = "javapassword"
- Уровень логирования:
LogLevel = "error"
- Расположение папки хранения логов:
FileLog = "/var/log/eltex-wids/wids.log"
- Максимальный размер файла логов:
MaxSize = 5
- Максимальный период хранения файлов логов:
MaxAge = 30
- Максимальное число бэкапов:
MaxBackups = 10
- Активация сжатия файлов логов:
Compress = true
- Адрес и порт Graylog:
GelfHostWithPort = "localhost:12201"
Докеризация сервиса
Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл с переменными окружения .env и docker-compose.yml
version: "3" services: wids: image: ${ELTEX_HUB}/eltex-wids:${SWLC_VERSION} ports: - 9095:${WIDS_PORT} volumes: - "/var/log/eltex-wids:/var/log/eltex-wids" environment: - ServicePort=${WIDS_PORT} - LogLevel=${WIDS_LOG_LEVEL} - SleepDaemonQueueTime=${WIDS_SLEEP_DAEMON_QUEUE_TIME} - FoulTime=${WIDS_FOUL_TIME} - MySQLUrl=${WIDS_MYSQL_URL} - MySQLDBName=${WIDS_MYSQL_DBNAME} - MySQLUsername=${WIDS_MYSQL_USERNAME} - MySQLPassword=${WIDS_MYSQL_PASSWORD}
# .env ELTEX_HUB=hub.eltex-co.ru/softwlc # Common version number SWLC_VERSION=1.31 # wids env WIDS_PORT=9095 WIDS_LOG_LEVEL=error WIDS_SLEEP_DAEMON_QUEUE_TIME=5 WIDS_FOUL_TIME=60 WIDS_MYSQL_URL=tcp(<IP адрес MariaDB>:3306) WIDS_MYSQL_DBNAME=eltex_wids WIDS_MYSQL_USERNAME=javauser WIDS_MYSQL_PASSWORD=javapassword #Настройка часового пояса TZ=Asia/Novosibirsk
Описание переменных окружения
Запуск сервиса
- ServicePort - порт, на котором будет стартовать сервис внутри контейнера.
Параметры работы сервиса
- SleepDaemonQueueTime - время задержки обработки очереди;
- FoulTime - время до удаления необрабGelfHostWithPort = "localhost:12201"
отанных событий.
Подключение к MariaDB
- WIDS_MYSQL_DBNAME - имя базы данных
- WIDS_MYSQL_URL - адрес MariaDB-сервера
- WIDS_MYSQL_USERNAME - имя пользователя MariaDB
- WIDS_MYSQL_PASSWORD - пароль от учетной записи MariaDB.
Логирование
- LogLevel - уровень логирования (ERROR, INFO, DEBUG);
- FileLog - путь до файла с логами;
- MaxSizeFileLog - максимальный размер лог-файла в Мб;
- MaxAgeFileLog - максимальное время хранения лог-файла в днях;
- MaxBackupsFileLog - максимальное количество файлов логов;
- CompressLogs - архивировать ли лог-файлы;
- GelfHostWithPort - хост и порт подключения к GrayLog;
- LogEnvironment - среда работы сервера; определяет место, куда будут писаться логи (file/stdout);
- GelfEnabled - отправлять ли логи в GrayLog.
Настройка часового пояса
- TZ - часовой пояс в формате Asia/Novosibirsk (список существующих можно посмотреть командой timedatectl list-timezones)