WIPS/WIDS - внутренний сервис точки доступа (ТД) по предотвращению и обнаружению вторжений в беспроводную сеть.
По своей сути этот механизм анализирует весь трафик в радио окружении ТД, делает вывод о наличии в сети угроз безопасности, оповещает о них администратора СУ и, при необходимости, предпринимает действия по подавлению этих угроз.
В текущем релизе ПО точки доступа (1.18.0) поддерживается следующий функционал:
eltex-wids-service - вспомогательный сервис на серверной стороне, отвечающий за распространение белых/черных списков "вражеских" ТД между участниками WIPS/WIDS.
Лицензия ограничивает настройку и мониторинг сервиса 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 явно регулируется какой точке доступа отдать лицензию. Для этого в параметрах доступа точки есть две настройки :
Определить, что сервис успешно активирован, можно по нескольким признакам:
Все точки доступа в эфире можно разделить на три группы:
Для однозначного выявления всех "не доверенных" ТД эфире, в Beacon пакет точек доступа, использующих сервис WIDS, добавляется динамически изменяющаяся зашифрованная подпись.
Расшифровать пакет могут лишь те точки, на которых настроен идентичный ключ Shared key в конфигурации сервиса.
Если подписи в пакете нет, либо при его декодировании получен не ожидаемый результат, точка доступа, от которой был получен пакет, будет считаться "не доверенной". Иначе "доверенной"
Если "не доверенная" точка доступа имеет MAC-адрес или SSID, совпадающий с текущими значениями на сканирующей ТД, то такая точка будет считаться "вражеской", о чем будет сообщено администратору СУ, посредством отправки с ТД соответствующего трапа в систему управления.
|
Для более гибкой работы сервиса, есть возможность явно указать список ТД, которые должны или не должны считаться "доверенными" ТД. Этот список распространяется между точками доступа вспомогательным сервисом eltex-wids-service.
Основная настройка сервиса происходит во вкладке "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.17_Критерии небезопасной конфигурации
| ||
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 |
Переопределение "доверенных" и "вражеских" точек доступа происходит путем явного задания списков в GUI EMS (раздел "Wireless → WIDS Manager") и дальнейшего их указания в поле "WIDS MAC list" на вкладке "WIDS/WIPS" в меню "Конфигурация" ТД.
Конфигурационный файл сервиса.
serviceConfiguration = { ApplicationConfiguration = { ServicePort = 9095 // service listen port // if this environment equals to 'production', all logs will transmit to graylog // else if this environment equals to 'k8s', all logs will be written to stdout Environment = "production" SleepDaemonQueueTime = 5 // time for sleep (unit: milliseconds) FoulTime = 60 // time of raw event, they disappear (unit: seconds) GelfEnabled = false // inclusion of sending logs to graylog DatabaseName = "wids" // database name MongoConnectionString = "mongodb://172.17.0.2:27017" // database connection string } } logs = { LoggerConfiguration = { LogLevel = "error" FileLog = "/var/log/eltex-wids/wids.log" // name of log file MaxSize = 5 // maximal size of log file (unit: megabyte) MaxAge = 30 // maximum log lifetime (unit: days) MaxBackups = 10 // maximum number of backups (unit: amount of log files) Compress = true // the need of compression GelfHostWithPort = "lab3-test.eltex.loc:12201" // address of graylog server } } |
ServicePort = 9095 |
Environment = "production" |
GelfEnabled = false |
DatabaseName = "wids" |
MongoConnectionString = "mongodb://172.17.0.2:27017" |
LogLevel = "error" |
FileLog = "/var/log/eltex-wids/wids.log" |
MaxSize = 5 |
MaxAge = 30 |
MaxBackups = 10 |
Compress = true |
GelfHostWithPort = "lab3-test.eltex.loc:12201" |
Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл с переменными окружения .env и docker-compose.yml
version: "3" services: wids: image: hub.eltex-co.ru/softwlc/eltex-wids:1.18-467 ports: - 9095:9095 volumes: - "/var/log/eltex-wids:/var/log/eltex-wids" - "/etc/eltex-wids-service/config.hocon:/etc/eltex-wids-service/config.hocon" environment: - LogLevel=${WIDS_LOG_LEVEL} - MongoUrl=${WIDS_MONGO_URL} - DBName=${WIDS_DB_NAME} - SleepDaemonQueueTime=${WIDS_SLEEP_DAEMON_QUEUE_TIME} - FoulTime=${WIDS_FOUL_TIME} |
WIDS_LOG_LEVEL=error WIDS_MONGO_URL=mongodb://<IP-address>:27017 WIDS_DB_NAME=wids WIDS_SLEEP_DAEMON_QUEUE_TIME=5 WIDS_FOUL_TIME=60 |