Поиск...

среда, 28 сентября 2011 г.

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

Доброго времени суток!!!

В одном из прошлых постов я описывал, как запустить IPS/IDS в GNS3. Появились комментарии, всем спасибо за них. И в одном из них, у меня спросили, можно ли привести пример по настройке и непосредственной работе 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, ну а потом и на живой сети.

По всем возникающим вопросам обращайтесь ко мне через комментарии или лично. Координаты можно найти вот тут.


С нетерпением жду вас в следующих постах!!!

С уважением, Ant0ni0n

16 комментариев:

  1. Спасибо огромное! По вашей статье курсовую делаю. Только есть вопрос. Как сделать чтобы на сервере показался сайт, как у Вас на скриншоте? Нужно denwer ставить? Если можно объясните как чайнику ))). Спасибо.

    ОтветитьУдалить
    Ответы
    1. Доброго времени суток!
      Эмуляцию сайта я реализовывал с помощью службы IIS на win server 2003 (написал небольшой код на html и подключил его в IIS). В инете есть инфа по этому поводу, там не сложно совсем. Ftp сервер тожа скачал из инета, поставил его на тот же сервер, что и сайт.
      Можно конечно использовать и денвер, но там больше настроек мне кажется нужно...
      Если уж не получится, то пишите на почту или скайп (контакты указаны вверху).

      Удалить
  2. Спасибо, попробую и напишу получилось ли.

    ОтветитьУдалить
  3. Если у вас созданная пара интерфейсов не назначается на виртуальный сенсор и выходит ошибка Unspecified error: Analysis engine is busy, то не расстраивайтесь, а просто подождите какое-то время (зависит от мощности ПК наверно) до того момента, когда загрузка ЦП начнет падать со 100%.

    ОтветитьУдалить
  4. Спасибо, за статью! Подскажите, как можно запретить удаленное сканирование (syn, ack) на Cisco ASA ?

    ОтветитьУдалить
    Ответы
    1. Это можно сделать, в ASA уже заложен функционал, правда немного в другом виде, но на ваши задачи хватит :)
      Но это уже более тонкая настройка устройства ASA :) Если что надо конкретное, пишите через контактные данные.

      Удалить
  5. Здравствуйте,спасибо за статью
    Планирую установить Cisco 2811 со встроенным модулем AIM-IPS-К9 на нашем Интернет соединении, для реализации Firewall+IDS+IPS в одном. Циска будет проверять входящий/исходящий интернет трафик компании, а также интернет трафик на наш сайт на котором можно проводить онлайн платежи.
    Сайт на данным момент работает на операционной системе FreeBSD 8.2 (планируем заменить на RHEL 6.3), а также на РНР и mysql.
    В настройках IPS неразбериха так как сенсоров множество. Будьте добры порекомендовать какие виды угроз нужно включать в область проверки.

    ОтветитьУдалить
    Ответы
    1. Добрый день.
      Если не знаете что включать, используйте то что включено по умолчанию.

      P.S> все будет зависеть от типа атаки.

      Удалить
    2. Да, и мониторьте логи срабатывания IPS/IDS, будет понятно что нужно будет включать.

      Удалить
  6. Ant0ni0n, большое спасибо за ваши статьи, особенно за IPS.
    Возник вопрос как удаленно подключиться к IPS, что для этого нужно настроить ?
    Для чего нужен tls/ssl?

    ОтветитьУдалить
  7. На связке windwos7 64 bit + gns 0.8.4-rc2 у ids-ки всегда загрузка процессора 100% соответственно не идёт назначение на виртуальный сенсор. Есть мысли как это поправить?

    ОтветитьУдалить
  8. Всё ок, просто надо долго ждать. (Машина мощная, i5+20 Гиг оперативки)

    ОтветитьУдалить
  9. Я думаю, Сервер попался на 23 порту потому, что в сигнатуре 60000 был прописан Source Port, а не Destination Port. Если бы 23 порт был указан в качестве Destination, вот тогда бы попался сам атакующий.

    ОтветитьУдалить
  10. Приветствую! столкнулся с такой проблемой, при добавлении виртуально сенсора, когда сохраняешь настройки, висит окошко сохранения с бегущими кубиками, затем вылазит ошибка невозможно сохранить попробуйте позже, после чего интерфейс не работает и приходится только перезагружать, какие есть варианты? спасибо!

    ОтветитьУдалить
    Ответы
    1. загрузка процессора 0, ошибка не как когда процессор 100

      Удалить
    2. a response from the sensor has not been received try again later -вот такая ошибка

      Удалить