Описание

WIPS/WIDS — внутренний сервис точки доступа (ТД) по обнаружению и предотвращению вторжений в беспроводную сеть.

Функционал WIDS/WIPS доступен на следующих точках доступа:

WEP-3ax – начиная с версии ПО 1.14.0.

WEP-30L, WOP-30L, WOP-30LS – начиная с версии ПО 2.6.0.

Данный механизм анализирует трафик в радио-окружении ТД, делает вывод о наличии в сети угроз безопасности, оповещает о них администратора контроллера и, при необходимости, предпринимает действия для подавления этих угроз.

Поддержан следующий функционал WIDS/WIPS:

  1. Обнаружение DDoS-атак;
  2. Отслеживание перебора паролей;
  3. Обнаружение точек доступа, имитирующих SSID;
  4. Обнаружение точек доступа, имитирующих MAC-адрес;
  5. Отключение клиентов от вражеских ТД.

Лицензирование

Функционал WIDS/WIPS активируется лицензией WLC-WIDS-WIPS. Информация о загрузке и применении лицензии описана в статье Активация функционала по лицензии.

Проверить наличие лицензии можно с помощью команды show licence:

wlc# show licence
Feature                            Source     State         Value                              Valid from             Expiries               
--------------------------------   --------   -----------   --------------------------------   --------------------   --------------------   
WLC                                Boot       Active        true                               --                     --                     
WLC                                Boot       Candidate     true                               --                     --                     
WLC-WIDS-WIPS                      File       Active        true                               --                     --                     
WLC-WIDS-WIPS                      File       Candidate     true                               --                     --                     

В случае отсутствия лицензии конфигурирование WIDS/WIPS доступно, но функционал не активирован. 

Управление

Активация сервиса 

Включить сервис можно только в общих настройках WIDS.

Если в общих настройках сервис выключен, то он не работает на всех ТД контроллера и включить его на отдельной ТД или в конкретной локации нельзя.

Предусмотрена возможность выключения сервиса в определенной локации или на конкретной ТД с помощью команды wids-disable. При этом команда no wids-disable в локации или в индивидуальном профиле ТД не означает, что сервис включен, если одновременно с этим он выключен в общих настройках WIDS.

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

wlc# configure
wlc(config)# wlc
wlc(config-wlc)# wids
wlc(config-wlc-wids)# enable
wlc(config-wlc-wids)# shared-key ascii-text 0123456789
wlc(config-wlc-wids)# do commit
wlc(config-wlc-wids)# do confirm


Для включения сервиса обязательно должен быть задан общий ключ доверенных ТД 'shared-key'.

По умолчанию в общих настройках WIDS используется профиль default-wids. Увидеть настройку можно в полной конфигурации контроллера с помощью команды sh ru full wlc wids:

wlc# sh ru full wlc wids
wids
  wids-profile default-wids
  shared-key ascii-text encrypted CCE5513EE45A1EAC450A
  enable
exit

Чтобы проверить настройки профиля используйте команду sh ru full wlc wids-profile. В данном случае профиль содержит настройки параметров по умолчанию.

wlc# sh ru full wlc wids-profile 
wids-profile default-wids
  prevention-mode none
  attack-stats-trap-send-period 10
  scan
    mode none
    interface all
    passive interval 20
    passive time 110
    sentry time 200
  exit
  bruteforce-detection
    threshold 25
    interval 5
    no mac-ban enable
    mac-ban timeout 1800
    no enable
  exit
  dos-detection
    interval 1
    trap-send-period 20
    threshold leap 250
    threshold assoc 500
    threshold reassoc 500
    threshold disassoc 500
    threshold probe 500
    threshold beacon 500
    threshold blockack 500
    threshold blockack-req 500
    threshold ps-poll 500
    threshold auth 500
    threshold deauth 500
    threshold rts 500
    threshold cts 500
    no enable
  exit
exit

Порядок применения настроек

Существуют 3 варианта применения настроек:

1. На все точки доступа контроллера.

2. На точки доступа локации.

3. На конкретную точку доступа.

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

В общих настройках сервиса задается общий ключ доверенных точек доступа, выбирается профиль настроек WIDS, а также  белые и черные списки для более точной настройки "доверенных" и "вражеских" ТД. Все эти настройки можно переопределить на уровне локации, а также на конкретной точке доступа через индивидуальный профиль.

Настройка сервиса на точке доступа и логика работы

Атака "Человек посередине" (Man-in-the-Middle, MITM)

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

Обнаружение вредоносных ТД 

Для определения вредоносных точек доступа необходимо настроить сканирование. Сканирование может быть пассивным или активным.

В пассивном режиме сканирования точка доступа периодически (через время, заданное в параметре 'passive interval') и кратковременно (на время, заданное в параметре 'passive time') меняет свой текущий радиоканал, на котором работает с клиентами, на очередной канал из общего списка, чтобы обнаружить другие ТД в эфире. Качество услуги, предоставляемой клиенту в момент сканирования, практически не деградирует.

В активном режиме сканирования не предусмотрена работа ТД с клиентами. Точка доступа всё время сканирует весь список радиоканалов (продолжительность сканирования одного канала задается в параметре 'sentry time') и максимально быстро обнаруживает угрозы.

В результате сканирования точка доступа распределяет все точки доступа в эфире на три группы:

  1. "Недоверенные" ТД – точки, которые присутствуют в эфире, но о них более ничего не известно;
  2. "Доверенные" ТД – точки, которые установлены и управляются оператором;
  3. "Вражеские" ТД – точки, которые несут угрозу для остальных точек доступа в сети – это ТД, которые имитируют MAC-адрес или SSID исходной ТД.

Для однозначного выявления всех "недоверенных" ТД эфире, в Beacon пакет точек доступа, использующих сервис WIDS, добавляется динамически изменяющаяся зашифрованная подпись. Расшифровать пакет могут лишь те точки, на которых настроен идентичный общий ключ 'Shared key'  в конфигурации сервиса. Если подписи в пакете нет, либо при его декодировании получен не ожидаемый результат, то точка доступа, от которой был получен пакет, будет считаться "недоверенной". Иначе – "доверенной".

Если "недоверенная" точка доступа имеет MAC-адрес или SSID, совпадающий с текущими значениями на сканирующей ТД, то такая точка будет считаться "вражеской", о чем будет сообщено администратору, посредством отправки с ТД соответствующей нотификации на контроллер.


wlc# sh wlc journal wids attack mitm detected-rogue
2024-12-02T07:47:59+00:00 AP 68:13:e2:03:00:20 detected rogue AP with MAC e8:28:c1:ed:47:70, RSSI: -15, channel: 6, SSID: wids_test, AP location: default-location, reason: fake SSID


Настройки сканирования выполняются в профиле WIDS.

Пример настройки пассивного сканирования со временем сканирования одного канала 50 мкс и интервалом между сканированием 30 с, и сканированием в обоих частотных диапазонах:

wlc# configure
wlc(config)# wlc
wlc(config-wlc)# wids-profile test_wids_profile
wlc(config-wlc-wids-profile)# scan
wlc(config-wlc-wids-profile-scan)# mode passive
wlc(config-wlc-wids-profile-scan)# interface all
wlc(config-wlc-wids-profile-scan)# passive time 50
wlc(config-wlc-wids-profile-scan)# passive interval 30
wlc(config-wlc-wids-profile-scan)# do commit
wlc(config-wlc-wids-profile-scan)# do confirm
wlc(config-wlc-wids-profile-scan)# 
wlc(config-wlc-wids-profile-scan)# do sh ru wlc wids-profile test_wids_profile 
wids-profile test_wids_profile
  scan
    mode passive
    passive interval 30
    passive time 50
  exit
exit

В зависимости от того, куда необходимо применить профиль, есть следующие варианты:

1. На все точки доступа контроллера. Для этого необходимо указать профиль в общих настройках WIDS.

wlc(config)# wlc
wlc(config-wlc)# wids
wlc(config-wlc-wids)# wids-profile test_wids_profile 
wlc(config-wlc-wids)# do commit 
wlc(config-wlc-wids)# do confirm 
wlc(config-wlc-wids)# 

2. На точки доступа локации. Для этого необходимо указать профиль в настройках конкретной локации. Если одновременно профиль задан в общих настройках и в локации – будет использоваться профиль из локации.

wlc# configure 
wlc(config)# wlc
wlc(config-wlc)# ap-location default-location 
wlc(config-wlc-ap-location)# wids 
wlc(config-wlc-ap-location-wids)# wids-profile test_wids_profile 
wlc(config-wlc-ap-location-wids)# 
wlc(config-wlc-ap-location-wids)# 
wlc(config-wlc-ap-location-wids)# do commit 
wlc(config-wlc-ap-location-wids)# do confirm 
wlc(config-wlc-ap-location-wids)# 

3. На конкретную точке доступа. Для этого необходимо указать профиль WIDS в индивидуальном профиле точки доступа. Если одновременно профиль задан в общих настройках и/или в локации и в индивидуальном профиле точки доступа – будут использоваться настройки из индивидуального профиля ТД.

wlc# configure 
wlc(config)# wlc
wlc(config-wlc)# ap 68:13:e2:03:00:10
wlc(config-wlc-ap)# ap-location default-location 
wlc(config-wlc-ap)# override wids 
wlc(config-wlc-ap-wids-override)# wids-profile default-wids 
wlc(config-wlc-ap-wids-override)# do commit 
wlc(config-wlc-ap-wids-override)# do confirm 
wlc(config-wlc-ap-wids-override)# 

Для более гибкой работы сервиса, есть возможность явно указать список ТД, которые должны считаться "доверенными" ТД (white-list) или "вражескими"(black-list). Эти списки настраиваются в object-group, а применяются так же на 3 уровнях – в общих настройках, в локации или индивидуально на точке доступа.

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

Пример настройки списков для всех точек доступа контроллера. Здесь в котором в черном списке задан MAC-адрес e4:5a:d4:e8:d9:20 (эта точка доступа будет считаться "вражеской"), а в белом списке задан MAC-адрес e8:28:c1:d7:3c:20 (эта точка будет считаться "доверенной"):

wlc# configure 
wlc(config)# object-group mac AP1
wlc(config-object-group-mac)# mac address e4:5a:d4:e8:d9:20
wlc(config-object-group-mac)# ex
wlc(config)# object-group mac AP2
wlc(config-object-group-mac)# mac address e8:28:c1:d7:3c:20
wlc(config-object-group-mac)# ex
wlc(config)# 
wlc(config)# wlc
wlc(config-wlc)# wids
wlc(config-wlc-wids)# black-list AP1
wlc(config-wlc-wids)# white-list AP2
wlc(config-wlc-wids)# do commit 
wlc(config-wlc-wids)# do confirm 
wlc(config-wlc-wids)# 
wlc(config-wlc-wids)# do sh ru object-groups mac 
object-group mac AP1
  mac address e4:5a:d4:e8:d9:20 ff:ff:ff:ff:ff:ff
exit
object-group mac AP2
  mac address e8:28:c1:d7:3c:20 ff:ff:ff:ff:ff:ff
exit
wlc(config-wlc-wids)#
wlc(config-wlc-wids)# do sh ru wlc wids
wids
  wids-profile test_wids_profile
  shared-key ascii-text encrypted CCE5513EE45A1EAC450A
  enable
  white-list AP2
  black-list AP1
exit


Если требуется задать пустой список, то необходимо создать пустую группу MAC-адресов и использовать ее на нужном уровне.

Пример настройки пустого списка:

wlc# configure 
wlc(config)# object-group mac noAP
wlc(config-object-group-mac)# exit
wlc(config)# wlc
wlc(config-wlc)# wids
wlc(config-wlc-wids)# black-list noAP 
wlc(config-wlc-wids)# do commit 
wlc(config-wlc-wids)# do confirm 
 wlc(config-wlc-wids)# 
wlc(config-wlc-wids)# do sh ru object-groups mac noAP 
object-group mac noAP
exit
wlc(config-wlc-wids)#
wlc(config-wlc-wids)# do sh ru wlc wids
wids
  wids-profile test_wids_profile
  shared-key ascii-text encrypted CCE5513EE45A1EAC450A
  enable
  white-list AP2
  black-list noAP
exit

Предотвращение угроз (WIPS)

Для настройки подавления угроз от вредоносных точек доступа, которые имитируют SSID или MAC-адрес сканирующей точки доступа, используется параметр prevention-mode . В случае активации режима 'Rogue', исходная точка доступа будет отправлять пакеты типа 'Deauthentification' от имени "вражеской" точки доступа клиенту и от имени клиента – "вражеской" точке доступа. При использовании режима 'All' форсированные пакеты 'Deauthentification' будут отправляться не только "вражеским" точкам доступа, но и всем "недоверенным".

Пример настройки подавления угроз от "вражеских" точек доступа:

wlc# configure
wlc(config)# wlc
wlc(config-wlc)# wids-profile test_wids_profile
wlc(config-wlc-wids-profile)# prevention-mode rogue
wlc(config-wlc-wids-profile)# do commit
wlc(config-wlc-wids-profile)# do confirm
wlc(config-wlc-wids-profile)#

Применить профиль можно в общих настройках WIDS для всех точек доступа контроллера, в локации или индивидуально на точке доступа.

При активации режима подавления можно настроить период отправки на контроллер сообщений, содержащих статистику срабатываний функционала подавления угроз (WIPS). Для этого используйте параметр attack-stats-trap-send-period и задайте значение в минутах.

wlc(config-wlc-wids-profile)# attack-stats-trap-send-period 10
wlc(config-wlc-wids-profile)# do commit 
wlc(config-wlc-wids-profile)# do confirm
wlc(config-wlc-wids-profile)# 

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


wlc(config-wlc-wids-profile)# do sh wlc journal wids attack mitm our-attacks-information-update 
2024-11-02T20:43:26+07:00 AP 68:13:e2:20:a2:10 attacked AP 68:13:e2:0e:85:51 on channel 1, interface: wlan0, AP location: default-location1, description: broadcast-count 1012, unicast-count 1
2024-11-02T20:43:26+07:00 AP 68:13:e2:20:a2:10 attacked AP e0:d9:e3:48:74:90 on channel 1, interface: wlan0, AP location: default-location1, description: broadcast-count 1012, unicast-count 1

2024-11-02T20:43:34+07:00 AP e8:28:c1:fc:d4:60 attacked AP e8:28:c1:d7:3c:22 on channel 1, interface: wlan0, AP location: default-location1, description: broadcast-count 777, unicast-count 0
2024-11-02T20:43:34+07:00 AP e8:28:c1:fc:d4:60 attacked AP 68:13:e2:21:1e:21 on channel 1, interface: wlan0, AP location: default-location1, description: broadcast-count 777, unicast-count 0


Атака "Отказ в обслуживании" (denial-of-service, DoS)

Атака создана для значительного затруднения работы сети или системы путем загрузки служебными запросами, которые исчерпывают ресурсы сети или системы для обслуживания пользователей.

DoS атака определяется превышением лимита, который задается параметром threshold для управляющих фреймов разных типов в радиоэфире. В профиле также задается интервал времени, в течение которого идет подсчет фреймов (параметр interval). Если за это время заданный лимит превышен, то будет сгенерировано и отправлено на контроллер сообщение об обнаружении атаки. Период отправки таких сообщений настраивается в параметре trap-send-period.

Также администратором задается параметр threshold leap, который показывает, насколько должно измениться количество пакетов по сравнению с предыдущим периодом, чтобы было отправлено сообщение о DoS-атаке на контроллер.

Пример настройки профиля WIDS с активацией режима обнаружения DoS-атаки при превышении количества любого типа пакетов 700 на интервале 5 секунд, а также при резком увеличении количества пакетов более чем на 500, с периодом отправки нотификаций - 30 секунд:

wlc# 
wlc# configure 
wlc(config)# wlc
wlc(config-wlc)# wids-profile test_wids_profile 
wlc(config-wlc-wids-profile)# dos-detection 
wlc(config-wlc-wids-profile-dos-detection)# 
wlc(config-wlc-wids-profile-dos-detection)# interval 5
wlc(config-wlc-wids-profile-dos-detection)# trap-send-period 30
wlc(config-wlc-wids-profile-dos-detection)# threshold leap 500
wlc(config-wlc-wids-profile-dos-detection)# threshold assoc 700
wlc(config-wlc-wids-profile-dos-detection)# threshold reassoc 700
wlc(config-wlc-wids-profile-dos-detection)# threshold disassoc 700
wlc(config-wlc-wids-profile-dos-detection)# threshold probe 700
wlc(config-wlc-wids-profile-dos-detection)# threshold beacon 700
wlc(config-wlc-wids-profile-dos-detection)# threshold blockack 700
wlc(config-wlc-wids-profile-dos-detection)# threshold blockack-req 700
wlc(config-wlc-wids-profile-dos-detection)# threshold ps-poll 700
wlc(config-wlc-wids-profile-dos-detection)# threshold auth 700
wlc(config-wlc-wids-profile-dos-detection)# threshold deauth 700
wlc(config-wlc-wids-profile-dos-detection)# threshold rts 700
wlc(config-wlc-wids-profile-dos-detection)# threshold cts 700
wlc(config-wlc-wids-profile-dos-detection)# enable
wlc(config-wlc-wids-profile-dos-detection)# 
wlc(config-wlc-wids-profile-dos-detection)# do commit
wlc(config-wlc-wids-profile-dos-detection)# do confirm

Применить профиль можно в общих настройках WIDS для всех точек доступа контроллера, в локации или индивидуально на точке доступа.


wlc(config-wlc-wids-profile-dos-detection)# do sh wlc journal wids attack dos 
2024-11-02T20:01:43+07:00 AP 68:13:e2:20:a2:70 detected DoS attack on wlan0: a sharp increase in the number of packets with type 'Probe request' (from 20 to 640), AP location: default-location. Found 23 attacks for last detection period, attack time from AP: 2024-11-02T17:31:41+04:30
2024-11-02T20:01:43+07:00 AP 68:13:e2:20:a2:70 detected DoS attack on wlan0: too many packets with type 'Beacon' (count 720 when constraint 700), AP location: default-location. Found 30 attacks for last detection period, attack time from AP: 2024-11-02T17:31:41+04:30


Атака "Перебор паролей" (Bruteforce)

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

Точка доступа считает количество неудачных попыток авторизации пользователя при Personal или Enterprise авторизации в течении периода, определенного в параметре interval. Если общее количество таких попыток за указанное время превышает заданный порог threshold, то считается, что производится атака перебора паролей, и на контроллер отправляется сообщение о Bruteforce атаке.

При включении опции mac-ban enable точка доступа дополнительно считает количество неудачных попыток авторизации для каждого клиента в отдельности и блокирует доступ клиента к сервису по его MAC-адресу, если количество неудачных попыток авторизации для него превышено, а также оповещает об этом контроллер. По истечению времени блокировки, заданному в параметре mac-ban timeout, клиент вновь может делать попытки подключения к точке доступа, при этом точка доступа также оповещает контроллер о том, что клиент был разблокирован.

Пример настройки профиля WIDS с активацией режима обнаружения атаки "перебор паролей" при превышении порога 10 попыток на интервале времени 5 секунд, с блокировкой клиентов на 60 секунд.

wlc# configure
wlc(config)# wlc
wlc(config-wlc)# wids-profile test_wids_profile
wlc(config-wlc-wids-profile)# bruteforce-detection
wlc(config-wlc-wids-profile-bf-detection)# enable
wlc(config-wlc-wids-profile-bf-detection)# threshold 10
wlc(config-wlc-wids-profile-bf-detection)# interval 5
wlc(config-wlc-wids-profile-bf-detection)# mac-ban enable
wlc(config-wlc-wids-profile-bf-detection)# mac-ban timeout 60
wlc(config-wlc-wids-profile-bf-detection)# do commit
wlc(config-wlc-wids-profile-bf-detection)# do confirm

Применить профиль можно в общих настройках WIDS для всех точек доступа контроллера, в локации или индивидуально на точке доступа.


wlc# sh wlc journal wids attack bruteforce too-much-authentication-fail-detected 
2024-11-02T19:38:46+07:00 AP e8:28:c1:fc:d4:60 detected too much authorization failed on wlan0-vap1, SSID: wids_test, last client MAC: 60:ab:67:ba:89:24, AP location: default-location

wlc#  sh wlc journal wids attack bruteforce client-was-banned 
2024-11-11T15:14:49+07:00 AP 68:13:e2:20:a2:70 banned client 60:ab:67:ba:89:24, SSID: wids_test1_Ent, interface: wlan0-va0, auth-method: enterprise, eap-method: PEAP, captive-portal: disabled, AP location: default-location

wlc#  sh wlc journal wids attack bruteforce client-was-unbanned 
2024-11-11T15:15:51+07:00 AP 68:13:e2:20:a2:70 unbanned client 60:ab:67:ba:89:24, SSID: wids_test1_Ent, interface: wlan0-va0, auth-method: enterprise, eap-method: PEAP, captive-portal: disabled, AP location: default-location