Выбрать язык


Выбрать язык | Show only


Русский | English


воскресенье, 6 марта 2016 г.

Безопасная настройка Cisco IDS/IPS


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

Самый первый этап защиты - информационный. Очень ограниченное количество специалистов знает о том, что существуют такие устройства, как IDS/IPS, и еще меньше знает о том, что они используются именно в данной корпоративной сети. Дальнейшая защита осуществляется технологическими методами.

Командная строка в Cisco IPS/IDS очень похожа на Cisco IOS CLI. В то же время, Cisco IPS основаны на Linux RedHat, поэтому возможно управление как IPS, так и операционной системой.

Данная статья не является полным и универсальным руководством по настройке, эксплуатации и обеспечении безопасности систем обнаружения и предотвращения вторжений производства Cisco Systems. Более подробная информация доступна на сайте производителя [1].

Управление пользователями

В Cisco IPS определены 4 уровня доступа пользователей:

Administrator – «суперпользователь» IPS. Имеет право на произведение любых действий в IPS CLI, но не имеет доступа в консоль операционной системы.

Operator - большинство функций CLI IPS, кроме управления конфигурационными файлами, пользователями и рестарта/выключения системы.

Viewer – уровень доступа без возможности редактирования.

Service - пользователь консоли Linux.

Рекомендую создать хотя бы одного пользователя с уровнем доступа service на случай сбоя mainApp сенсора, и, как результат, отсутствия возможности входа в Cisco IPS CLI. Доступ в консоль операционной системы позволит диагностировать и, возможно, решить возникшую проблему. Как минимум, будет возможность собрать необходимую для службы поддержки производителя информацию (cidDump, tech-support, logs). Пароль пользователя уровня service используется также для перехода в режим суперпользователя root командой su консоли Linux. Производитель официально предупреждает о том, что вносить изменения, используя уровень доступа service, рекомендуется только в случае прямых указаний службы поддержки [2].
Создание пользователя
Создание пользователя производится в режиме глобальной конфигурации. Пароль для пользователя можно ввести как в открытом виде:
ids(config)# username test privilege operator password u$erp@$$
так и в безопасном:
ids# configure terminal
ids(config)# username test privilege operator
Enter new login password : **********
Re-enter new login password : **********
Увидеть всех пользователей IPS CLI можно в режиме, аналогичном EXEC режиму Cisco IOS, командой show users all:
ids# show users all
CLI ID User Privilege
* 12528 admin administrator
andrey service
cisco administrator
soc viewer
test operator
Изменение пароля для пользователя
Когда возникает необходимость изменить пароль для пользователя, например, при компрометации или стандартной ситуации «забыл пароль», администратор IPS может осуществить данную операцию с помощью команды (в данном случае для пользователя test):
ids(config)# password test
Enter new login password : *********
Re-enter new login password : *********
Удаление пользователя
В случае необходимости удалить пользователя можно командой:
ids(config)# no username test
При попытке удалить встроенного пользователя cisco, получим:
ids(config)# no username cisco
Error: this account cannot be removed. Use the 'no password' command to disable account.
Парольная политика Cisco IPS не позволяет использовать слабые пароли для пользователей, однако для большей безопасности рекомендую создать пользователя с правами администратора IPS, а аккаунт cisco заблокировать:
ids(config)# no password cisco
Определить то, что пользователь cisco заблокирован, можно по круглым скобкам:
ids# show users all
CLI ID User Privilege
* 12528 admin administrator
andrey service
(cisco) administrator
soc viewer
Настройка парольной политики
Парольная политика Cisco IPS по умолчанию предъявляет достаточно строгие требования к паролям, однако, если есть необходимость ужесточить ее – предоставляется возможность задать:

- длину пароля;

- количество символов верхнего и нижнего регистра в пароле,

- количество цифр и спецсимволов в пароле;

- количество старых паролей, которые помнит сенсор.

Настройки производятся через режим конфигурации службы аутентификации:

ids# configure terminal
ids(config)# service authentication
ids(config-aut)#
Сброс сессии
Определить, что пользователь в данный момент работает с Cisco IPS через CLI, возможно с помощью той же команды show users all. Звездочкой (*) обозначена сессия текущего пользователя:
ids# show users all
CLI ID User Privilege
* 12528 admin administrator
14167 soc viewer
andrey service
(cisco) administrator
Если возникает необходимость сбросить сессию другого пользователя по причине, например, зависания ssh-клиента, таймаута, принятия решения о нелегитимности сессии и т. п., определяем ее CLI ID (в данном случае для soc - 14167) и принудительно обрываем:
ids# clear line 14167
Изменение привилегий пользователя
При необходимости изменения уровня доступа пользователя администратор IPS может произвести эту операцию с существующими пользователями:
ids(config)# privilege user test viewer
Warning: The privilege change does not apply to current CLI sessions. It will be applied to subsequent logins.
Как предупреждает IPS, если пользователь, которому изменили права доступа, на момент изменения использует активную сессию, изменения коснутся его только после повторного логина. Соответственно, нужно либо сообщить пользователю о такой необходимости, либо грубо сбросить его сессию. Для аккаунта cisco также возможно изменение уровня доступа.
Настройки узла
Структура настроек Cisco IPS организована таким образом, что из знакомого всем по IOS режима общей конфигурации возможен переход в режимы специфической конфигурации каждого сервиса:
ids# configure terminal
ids(config)# service host
ids(config-hos)#
Сетевой доступ
Достаточно важной частью обеспечения безопасности любого сетевого устройства является ограничение доступа по сети. Само собой разумеется, что IP-адрес интерфейса управления сенсора должен находиться в максимально защищенном корпоративными файрволлами административном (management) VLAN. Однако, для комплексности защиты не помешает настройка собственного брандмауэра IPS. Из режима конфигурации хоста переход в режим конфигурации доступа по сети к сенсору осуществляется следующим образом:
ids(config-hos)# network-settings
ids(config-hos-net)#
В режиме конфигурации любого сервиса возможен просмотр настроек, касающихся сугубо текущего специфического режима с помощью команды show settings
ids(config-hos-net)# show settings
network-settings
-----------------------------------------------
host-ip: 10.0.1.50/24,10.0.1.1 default: 192.168.1.2/24,192.168.1.1
host-name: ids default: sensor
telnet-option: disabled default: disabled
access-list (min: 0, max: 512, current: 6)
-----------------------------------------------
network-address: 10.0.11.11/32
-----------------------------------------------
network-address: 10.0.16.154/32
-----------------------------------------------
network-address: 10.0.12.0/27
-----------------------------------------------
-----------------------------------------------
ftp-timeout: 300 seconds <defaulted>
login-banner-text: <defaulted>
dns-primary-server
-----------------------------------------------
enabled
-----------------------------------------------
address: 10.0.2.5
-----------------------------------------------
-----------------------------------------------
dns-secondary-server
-----------------------------------------------
enabled
-----------------------------------------------
address: 10.0.2.6
-----------------------------------------------
-----------------------------------------------
dns-tertiary-server
-----------------------------------------------
disabled
-----------------------------------------------
-----------------------------------------------
-----------------------------------------------
http-proxy
-----------------------------------------------
proxy-server
-----------------------------------------------
address: 10.0.2.7
port: 3128
-----------------------------------------------
-----------------------------------------------
-----------------------------------------------

В access-list указаны хосты и сети, с которых разрешен доступ на IPS по SSH, Telnet (если включен), HTTP (если включен), HTTPS, SNMP (если включен), ICMP.

Если обнаруживаем в списке доступа подсети или хосты, которым в данный момент не нужен доступ к management-интерфейсу и не понадобится в ближайшем будущем, либо в случае критической ситуации - удаляем:

ids(config-hos-net)# no access-list 10.0.16.154/32
Назначаем banner login
Для того, чтобы иметь возможность предупредить потенциального взломщика об уголовной ответственности, определяем текст баннера при логине, указывающий на преследование незаконных попыток подбора пароля:
ids(config-hos-net)# login-banner-text This system is restricted to authorized users. Individuals attempting unauthorized access will be prosecuted.
Отключение telnet
Telnet отключен по умолчанию, как того требуют нормы безопасности. Если же он оказался включен предыдущим администратором, рекомендуется его отключить:
ids(config-hos-net)# telnet-option disabled
Автоматические обновления
Для поддержания в актуальном состоянии систем обнаружения вторжений необходимо периодическое обновление сигнатур и системы. Для этого нужна лицензия производителя. Когда в распоряжении администратора 1-2 сенсора, обновление вручную может не создавать особого труда, но если их гораздо больше – стоит настроить автоматическое обновление в целях экономии времени. Автоматическое обновление возможно по протоколам FTP, SCP, HTTP, HTTPS.

Рассмотрим обновление по SCP. Необходим UNIX-сервер обновлений, на котором только создается учетная запись для сенсора с минимальными привилегиями. Корпоративными файрволлами обеспечивается доступ по порту 22 от management интерфейсов IDS/IPS к серверу обновлений, если они находится не в одной подсети. Администратором IPS по мере выхода обновлений и анализа их необходимости файлы выкладываются в определенную папку, а сенсоры рациональнее всего настроить на периодическую проверку наличия обновлений. Файлы, загруженные с сайта производителя, переименовывать категорически не рекомендуется. При обновлении по SCP на сервере, где будут располагаться обновления, должна быть включена поддержка SSHv1 в sshd_config.

На сенсоре для корректной работы обновлений по SCP необходимо добавить ssh-ключ сервера обновлений в список доверенных узлов сенсора:
ids# configure terminal
ids(config)# ssh host-key 10.0.105.50
MD5 fingerprint is DE:0E:FE:AE:77:F9:4B:0D:69:49:D4:60:26:55:67:52
Bubble Babble is xulir-tyhoc-tehyb-dupez-byvat-tapiz-fepur-povok-sadem-luhyt-taxux
Would you like to add this to the known hosts table for this host?[yes]:
Затем можно приступать непосредственно к настройке авто-апгрейда. Включаем обновление с сервера в корпоративной сети:
ids(config)# service host
ids(config-hos)# auto-upgrade
ids(config-hos-aut)# user-server enabled
Указываем IP-адрес сервера обновлений:
ids(config-hos-aut-ena)# ip-address 10.0.5.5
Указываем директорию, в которую будут выкладываться файлы обновлений, относительно пути /home/<username>:
ids(config-hos-aut-ena)# directory up
Имя пользователя на сервере обновлений:
ids(config-hos-aut-ena)# user-name ips
Указываем пароль учетной записи сенсора на сервере обновлений:
ids(config-hos-aut-ena)# password
Enter password[]: ***********
Re-enter password: ***********
Затем конфигурируем на обновление либо по календарю, либо периодическое обновление. Я предпочитаю последнее:
ids(config-hos-aut-ena)# schedule-option periodic-schedule
Задаем интервал в часах:
ids(config-hos-aut-ena-per)# interval 24
и время обновления. Поскольку в данном случае объем трафика в большинстве случаев будет генерироваться небольшой (объем файла сигнатур – порядка 200-300 килобайт), критичного влияния нет, я предпочел поставить дневное время, чтобы наблюдать за процессом:
ids(config-hos-aut-ena-per)# start-time 12:00

Рекомендую настраивать обновления на всех сенсорах в разное время, с интервалом порядка 15 минут.
 В случае обнаружения некорректной работы обновления сигнатур или движка (engine), либо принятия решения о возврате на предыдущую конфигурацию в CLI используется команда downgrade режима глобальной конфигурации:
ids(config)# downgrade
Производитель в своей онлайн-документации официально уведомляет о том, что возврат к предыдущей Minor или Major версии с помощью команды downgrade осуществить невозможно [3].
Настройка параметров времени
Для того, чтобы время отработанных событий совпадало со всеми остальными информационными системами компании, рекомендую настроить синхронизацию времени с корпоративным NTP-сервером. Параметры времени сенсора настраиваются следующим образом:
ids(config-hos)# time-zone-settings
указываем смещение в минутах относительно GMT:
ids(config-hos-tim)# offset 120
и название часового пояса:
ids(config-hos-tim)# standard-time-zone-name EET # название зоны
Настраиваем синхронизацию по NTP с сервером, не требующим аутентификации:
ids(config-hos)# ntp-option enabled-ntp-unauthenticated
ids(config-hos-ena)# ntp-server 10.0.2.123
ids(config-hos-ena)# exit
Настраиваем автоматический переход на летнее время и обратно:
ids(config-hos)# summertime-option recurring
ids(config-hos-rec)# offset 60
ids(config-hos-rec)# summertime-zone-name EEST
ids(config-hos-rec)# start-summertime
ids(config-hos-rec-sta)# month march
ids(config-hos-rec-sta)# week-of-month last
ids(config-hos-rec-sta)# day-of-week sunday
ids(config-hos-rec-sta)# time-of-day 03:00:00
ids(config-hos-rec-sta)# exit
ids(config-hos-rec)# end-summertime
ids(config-hos-rec-end)# month october
ids(config-hos-rec-end)# week-of-month last
ids(config-hos-rec-end)# day-of-week sunday
ids(config-hos-rec-end)# time-of-day 04:00:00
ids(config-hos-rec-end)# exit
Сохранение изменений
Сохраняются нововведения не сразу, а при выходе из подрежима конфигурации хоста в режим global config:
ids(config-hos)# exit
Apply Changes?[yes]:
ids(config)#
Настройка SNMP
По умолчанию возможность управления сенсором по SNMP отключена, однако, может возникнуть необходимость использования этого протокола для мониторинга и анализа работы сенсора. В этом случае стоит обратить внимание на то, что доступ по SNMP открывается и на чтение, и на запись, даже если нет необходимости в редактировании по SNMP – такова особенность работы Cisco IPS. Потенциальная опасность ясна: каждый, кто знает значения read-write community, имеет возможность конфигурировать сенсор с помощью set-команд. Отдельный access-list для SNMP не создается, используются общие ACL из настроек service host. Аутентификация и шифрование не поддерживается, поэтому возможные варианты защиты:

- нетривиальные значения community, которые сложно подобрать;

- ограничение доступа по сети как на уровне корпоративных файрволлов и ACL роутеров, так и списков доступа service host;

- использование протокола транспортного уровня TCP, поскольку защита от spoofing’а в UDP не реализована.

- использование нестандартного порта.

Безопасная настройка производится следующим образом:

ids#configure terminal
ids(config)#service notification
ids(config-not)#enable-set-get true
ids(config-not)#read-only-community DlY@_$en$0r@
ids(config-not)#read-write-community DlY@_AdM1n@_$en$orA
ids(config-not)#snmp-agent-protocol tcp
ids(config-not)#snmp-agent-port 1961
ids(config-not)#exit
Настройка web-server
Обезопасить Web-server необходимо включением tls (активировано по умолчанию), также можно изменить порт, на котором он слушает (по умолчанию 443):
ids(config)# service web-server
ids(config-web)# enable-tls true
ids(config-web)# port 7001
ids(config-web)# exit
Apply Changes?[yes]:
ids(config)#
Настройка логгирования
По умолчанию уровень логгирования на каждую категорию системный событий установлен как warning. В случае необходимости, например, для диагностики возникших проблем, можно внести свои корректировки методом конфигурации service logger. Делать это необходимо очень аккуратно, во избежание перегрузок [4]:
ids(config)# service logger
ids(config-log)#
Ссылки на официальные ресурсы

Выводы
Подводя итоги, можно сказать, что защита и безопасная конфигурация IPS/IDS осуществляется посредством следующих мер:
  1. Административно-информационные меры. Чем меньше людей знает о наличии сенсоров, тем лучше.
  2. Расположение управляющего интерфейса в специальный административный VLAN, защищенный корпоративными файрволлами и списками доступа на маршрутизаторах.
  3. Управление пользователями и разграничения прав доступа. Блокировка встроенного пользователя cisco, создание отдельных пользователей с правами администратора IPS и уровня service.
  4. Настройка парольной политики в соответствии с корпоративными нормами безопасности.
  5. Конфигурация параметров сетевого доступа. Разрешение доступа с ограниченного количества хостов/подсетей.
  6. Предупреждение потенциального взломщика с помощью баннера при логине.
  7. Отключение возможности администрирования сенсора с помощью telnet.
  8. Настройка автоматического обновления и синхронизации времени.
  9. В случае включения администрирования по SNMP назначить сложноугадываемые community и, по возможности, использовать протокол TCP и нестандартный порт.
  10. Включение шифрования TLS в веб-сервере и смена номера порта.

Комментариев нет:

Отправить комментарий