суббота, 2 августа 2014 г.

Пример конфигурации cisco IPS/IDS для защиты сети

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


Я предлагаю не сильно заострять внимание на эмуляции полной сети. Для демонстрации работы IPS/IDS нам будет достаточно и этой схемы.
Итак, что мы имеем. Есть локальная сеть 192.168.1.х/24, где находится web-Server (192.168.1.11). Весь трафик, направленный как в сторону web-Server, так и от него, проходит через устройство cisco IPS/IDS. Есть внешняя сеть 192.168.2.x/24, в которой находится компьютер злоумышленника Attacker (192.168.2.10). Еще есть сеть 3.3.3.x/24, в которой находится машина Test_PC (3.3.3.10), она нам пригодится для некоторых проверок. Также имеется сеть 10.10.10.x/24, где находится консоль, для управления IPS/IDS (Console_PC 10.10.10.200).
На компьютере злоумышленника установлена программа XSpider v7.5. С помощью неё будем эмулировать атаки на web-Server. 
В процессе подготовки данного поста, столкнулся с одной небольшой проблемкой (касается эмуляции IPS/IDS в GNS3). Дело в том, что запускается IPS/IDS нормально, IDM работает исправно, но когда начинаешь делать настройки, включать или создавать сигнатуры, он либо выдает ошибку, либо вообще зависает. Почитав форумы, нашел путь исправления данного бага. Для этого, после того, как вы добавите устройство IPS/IDS на рабочую область, зайдите в его настройки (правой клавишей мыши по устройству – Configure) и поменяйте существующие параметры на вот эти: -smbios type=1,product=IDS-4235,serial=12345789012,uuid=E0A32395-8DFE-D511-8C31-001FC641BA6B,sku=011,family=IDS-4235/4250 в поле, показанном на рисунке:


Нажмите «Apply», а затем «OK». После этого, можно смело запускать устройство, больше баг не повторялся.
Все, теперь запускаем IPS/IDS и сделаем настройки для подключения консоли:
  • sensor# conf t
    sensor(config)#service host
    sensor(config-hos)#network-settings
    sensor(config-hos-net)#host-ip 10.10.10.30/24,10.10.10.200
    sensor(config-hos-net)#host-name IPS4235
    sensor(config-hos-net)#telnet-option enabled
    sensor(config-hos-net)#access-list 10.10.10.0/24
    sensor(config-hos-net)#ftp-timeout 300
    sensor(config-hos-net)#no login-banner-text
    sensor(config-hos-net)#exit
    sensor(config-hos)#time-zone-settings
    sensor(config-hos-tim)#offset 0
    sensor(config-hos-tim)#standard-time-zone-name UTC
    sensor(config-hos-tim)#exit
    sensor(config-hos)#summertime-option disabled
    sensor(config-hos)#ntp-option disabled
    sensor(config-hos)#exit
    sensor(config)#service web-server
    sensor(config-web)#port 443
    sensor(config-web)#exit
    sensor(config)#exit
    sensor#exit
Прежде чем продолжить настройку IPS/IDS, настроим наш роутер, чтобы сразу была сетевая доступность:
  • R1>en
    R1#conf t
    R1(config)#hostname Router
    Router(config)#int fa 0/0
    Router(config-if)#ip address 192.168.2.1 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int fa 0/1
    Router(config-if)#ip address 192.168.1.1 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#int fa 1/0
    Router(config-if)#ip address 3.3.3.1 255.255.255.0
    Router(config-if)#no shutdown
    Router(config-if)#exit
    Router(config)#exit
    Router#wr
    Building configuration...
    [OK]
    Router#
Теперь заходим на устройство IPS/IDS через web-интерфейс. Должно появиться главное окно:


Замечу, что у IPS/IDS только один интерфейс используется для настройки (Management, e0) и только на него вешается IP – адрес. Остальные интерфейсы (e1 и e2) включаются «в разрез».
Итак, далее нам надо настроить оставшиеся интерфейсы, пропустить через них трафик для дальнейшего анализа, подключить базу сигнатур. 
Идем в закладку «Configuration». На ней можно посмотреть, какие параметры уже настроены (через CLI), если необходимо, то поменять их и т.д. Идем на пункт «Interface Configuration» -- «Interfaces». Затем, выбрав первый интерфейс, нажимаем на кнопку «Edit» (справа):


В появившемся окне прописываем vlan, в котором находится интерфейс:


Те же действия проделываем для второго интерфейса. После всех действий не забудьте нажать на «Apply».
Далее можно идти по нескольким путям. Можно добавлять для анализа и мониторинга каждый интерфейс по отдельности, можно парами, можно добавлять отдельные vlan-ы, можно группы vlan-ов. Мы пойдем по пути создания пары интерфейсов (у нас их всего два и они в одном и том же vlan). Для создания пары идем на вкладку «Interface Pairs» и там нажимаем на кнопку «Add» (справа):


Здесь задаем имя нашей пары (1) и выбираем интерфейсы (2). Нажимаем «OK». Созданная пара интерфейсов должна появиться в списке, далее нажимаем «Apply».
Теперь осталось прикрепить к этой паре так называемый анализатор, к которому, в свою очередь, подключен набор сигнатур и прописаны некоторые правила. Для этого переходим на вкладку «Virtual Sensors», выбираем существующий сенсор (vs0) и нажимаем «Edit»:


Здесь выбираем набор сигнатур (1), правила оповещения (2), правила и условия детектирования аномального трафика (3), режим работы детектора аномального трафика (4) и режим, который используется для разделения представлений одного и того же потока данных, если этот поток проходит через сенсор несколько раз (5). В принципе, так как у нас только один виртуальный сенсор (vs0 по умолчанию), то все параметры можно оставить как они и есть. Ниже выбираем нашу пару интерфейсов и нажимаем кнопку «Assign». В параметре Assigned должно отобразиться «Yes». Затем нажимаем «OK». 
После закрытия малого окна, в параметрах Assigned interfaces (or Pairs) должна появиться наша пара. Не забываем нажать на кнопку «Apply», только тогда конфигурация применится к устройству IPS/IDS.
Все, основные настройки сделаны. Теперь перейдем на виртуальные машины и проверим сетевую доступность. 
Заходим на Attacker (192.168.2.10).



Видно, что ping есть, сайт открывается и ftp – сервер тоже доступен. Теперь запускаем программу XSpide 7.5 и добавляем хост для сканирования:


После добавления хоста включаем сканирование:


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


Да, довольно много :). Теперь перейдем на устройство IPS/IDS и посмотрим, зафиксировало ли оно что-нибудь подозрительное :). Идем в закладку «Monitoring» -- «Denied Attackers»:


Видно, что тут ничего нет, но давайте посмотрим log. Идем на «Events» и там нажимаем на «View»:

Видно, что IPS/IDS все-таки не спал :). Но ничего он не заблокировал. Это связано с тем, что в параметрах сигнатур, под которые попал зловредный трафик, не прописано блокировать соединение. Но это легко исправить и в следующий раз, наш атакующий будет заблокирован. Я предлагаю выбрать первую появившуюся сигнатуру, так как после блокирования, продолжения сканирования не последует. 
Итак, смотрим на номер первой в списке сигнатуры (Sig ID 3002). Переходим на вкладку «Configuration» -- «Policies» -- «Signature Definitions» -- «sig0»:


Выберете в «Select By» Sig ID и найдите сигнатуру по номеру. Затем нажмите «Edit»:


В появившемся окне находим пункт «Event Action», там, в выпадающем меню (зажав Ctrl), выбираем пункт Deny Attacker Inline. Нажимаем «OK», затем снова «OK» и затем на основном окне «Apply». 
Теперь вернемся на компьютер атакующего и снова запустим XSpide 7.5:


Видно, что сканирование не удалось, но почему то в этот раз он вычитал имя компьютера :). Посмотрим, что твориться на устройстве IPS/IDS:


А вот и наш атакующий. Попался :). Если вы сейчас вернетесь на машину Attacker (192.168.2.10) и попробуете открыть сайт, то все получится, а вот ftp-соединение, уже не будет работать, так как если посмотреть на сигнатуру, которую мы правили, то видно, что она отвечает за TCP SYN пакеты и, соответственно, соединения нет.
Но, в то же время, и сайт и ftp – сервер доступны со второго компьютера (Test_PC 3.3.3.10), так как он не заблокирован на IPS/IDS:


Ну что, вроде все работает :). Да, чтобы снова открыть доступ для компьютера, надо его удалить из списка заблокированных. Если после удаления все равно ничего не соединяется, то перегрузите IPS/IDS.
Осталось нам написать свою сигнатуру. Я предлагаю написать запрет на любое подключение по telnet к серверу по 23-му порту. Проверим, есть ли сейчас доступ по telnet к серверу. Перейдем на Attacker и попробуем:


Доступ на данный момент присутствует. Теперь переходим на устройство IPS/IDS и на вкладке «Configuration» -- «Policies» -- «Signature Definitions» -- «sig0» находим закладку «Custom Signature Wizard». Нажимаем «Start the Wizard»:


Откроется первое окно:


Здесь, если вы не хотите использовать стандартные сигнатуры, то выбираем «No» и нажимаем «Next».


Здесь выбираем «TCP». Нажимаем «Next».


Выбираем единичный пакет (Single Packet). Нажимаем «Next».


Здесь выбирается номер сигнатуры, название, пояснения и так далее. Можно оставить все по умолчанию. Запомните только номер, он нам еще пригодится. Нажимаем «Next».


Здесь выбираем порт, на который будут осуществляться попытки подключения. Ставим порт 23 (telnet). Также указываем, что надо заблокировать эти попытки соединения (Event Action). Конечно, можно прописать и многие другие параметры (вплоть до содержимого пакетов), но возьмем только порт. Нажимаем «Next».


Здесь оставляем все по умолчанию. Нажимаем «Next».


Если вам не надо задавать какие-то специфические параметры для сигнатуры, то смело жмите «Finish». Нам они не нужны, поэтому нажимаем. Вам предложат создать сигнатуру и сразу ее включить. Нажимаем «Yes».
Посмотрим на созданную сигнатуру. Находим ее, как делали немного ранее:


Все готово. Сигнатура присутствует, она активна. Переходим на компьютер атакующего и пробуем открыть telnet теперь:


Ничего не вышло. Вернемся на IPS/IDS и посмотри в список атакующих:


Интересная ситуация :). Атакующим у нас выступил сам сервер. Посмотрим log:


Да, так и есть. Немного не понятная ситуация, скорее всего IPS/IDS среагировал на ответный пакет от сервера и заблокировал его. Но самое главное, цель достигнута, доступа по порту 23 нет :). Да и принцип написания собственных сигнатур я думаю понятен.
На этом я хочу закончить этот пост. В этот раз он выдался уж очень объемным :). Так что если надо, могу потом его разбить на две части. А так, надеюсь, что он стал для вас полезным и вы, прочитав его, сможете применить эти навыки на практике. Поле для экспериментов просто огромное!!! Сначала можно в GNS3, ну а потом и на живой сети.

Источник: go-to-easyit.com/2011/09/cisco-ipsids.html

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

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