antiCisco blogs


блоги по технологиям и оборудованию cisco от инструкторов

Опубликовано 12 Апрель , 2011

В Интернете много злоумышленников: хакеры, крекеры, спамы, куки, закладки.
Некий преподаватель

Как известно, МСЭ может отфильтровать нежелательный трафик только по небольшому числу жестко заданных критериев. Поэтому для повышения безопасности применяют системы обнаружения/предотвращения вторжений (англ. IPS/IDS — Intrusion Prevention/Detection System) — программы, которые анализируют трафик в поисках аномалий и известных угроз и принимают решение о его блокировке. К типичным угрозам, от которых может помочь IPS относятся, например, попытки сканирования портов и определения ОС, атаки сетевых червей, известные эксплойты и другие виды атак, обнаружение которых требует глубокого анализа проходящего трафика.

Vyatta включает в себя Snort — систему предотвращения вторжений компании Sourcefire, одну из самых распространенных в мире (более 300 000 зарегистрированных пользователей) и признанную фактическим стандартом в UNIX. Snort использует анализ на основе сигнатур (последовательностей данных, встречающихся в трафике, характерном для известных угроз) в сочетании с поиском аномалий.

В этой статье мы рассматриваем настройку в версии 6.2. Раньше было немного иначе, подробности можно найти в документации (SecutiryRef).

Получаем правила

Сама система Snort является бесплатной и свободной, но наборы сигнатур к ней, распространяются под проприетарной лицензией, которая запрещает их распространение третьими лицами. Поэтому в дистрибутиве Vyatta раньше (до версии 6.2) был очень старый набор, который можно распространять. Сейчас по умолчанию не поставляется вообще никакой.

Учитывая, что наборы правил постоянно пополняются и их эффективность прямо зависит от актуальности, их все равно придеться обновлять, поэтому отсутствие свежего набора в дистрибутиве не является проблемой. Их можно получить с официального сайта Snort — либо бесплатно, либо расширенный набор по платной подписке с технической поддержкой. Бесплатный набор весьма широк и обеспечивает вполне хорошую защиту.

Для загрузки обновлений сигнатур нужен так называемый oinkcode (дословно — хрю-код). Это идентификатор пользователя, используемый для авторизации.

Чтобы его получить, нужно зарегистрировать аккаунт на snort.org и пройти по ссылке https://www.snort.org/account/oinkcode.

После его получени вы сможете загрузить актуальный набор сигнатур:

run update ips rules oinkcode <OINKCODE>

Файл достаточно большой — на данный момент около 30 мегабайт в архиве .tar.gz. Этот шаг обязательно делать первым, поскольку при отсутствии правил любое применение изменений вызовет ошибку. Имейте в виду, что после загрузки файлов в фоновом режиме начнется их распаковака и установка, до конца которой применить изменения будет нельзя. За процессом можно наблюдать командой show ips update-log

Также нужно настроить обновления, указав этот код и желаемый час суток, в который будет загружаться набор сигнатур:

set content-inspection ips auto-update oink-code <OINKCODE>
set content-inspection ips auto-update update-hour 3

На этом с обновлениями сигнатур закончено. Но применить настройки на этом этапе еще нельзя, поскольку нужно указать еще ряд опций.

Настраивем анализ

Настраиваем действия при обнаружении атак

Snort разделяет угрозы на три приоритета по убыванию «опасности» — 1, 2 и 3. К приоритету 1 относятся черви, вирусы, известные эксплойты и другие подобные угрозы, которые гарантированно опасны и трафик которых не может быть полезным. Второй приоритет имеют вероятные DoS-атаки, использование нестандартных портов и протоколов и другой трафик, который с большой вероятностью может быть опасным. Третий приоритет имеют сканирование портов, доступ к потенциально уязвимым приложениям и другой трафик, который подозрителен, но не представляет прямой опасности.

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

  • drop — уничтожить и сгенерировать предупреждение в логах;
  • sdrop — уничтожить без предупреждения;
  • alert — сгенерировать предупреждение в логах, трафик не трогать;
  • pass — ничего не делать.

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

set content-inspection ips actions priority-<NUMBER> action <ACTION>

Рекомендуемая политика следующая: 1 — drop; 2, 3 — alert. Действия нужно настроить обязательно, иначе настройки не применятся.

Настраивам анализ трафика

Необходимо указать внутреннюю сеть:

set content-inspection ips modify-rules internal-network <x.x.x.x/y>

Отбираем трафик для анализа

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

Если нужен анализ всего, используйте опцию:

set content-inspection traffic-filter preset all

Также можно указать критерии отбора трафика, который будет подвергнут анализу. Для отбора «интересного» трафика используется экземпляр МСЭ с правилами, содержащими «action inspect».

Предположим, что мы хотим защитить веб-сервер от известных атак с помощью эксплойтов и прочего. Напишем экземпляр МСЭ:

edit firewall name Inspect-HTTP
set default-action accept
set rule 10 protocol tcp
set rule 10 destination port http
set action inspect

Теперь вешаем этот МСЭ в качестве фильтра для IPS:

set content-inspection traffic-filter custom Inspect-HTTP

Включаем анализ трафика

Теперь можно выбрать, что именно будет подвергать анализу. Есть три основных варианта:

  • Весь проходящий трафик (кроме трафика из внутренней сети);
  • Весь трафик по заданным критериям;
  • Трафик определенных интерфейсов;
  • Трафик определенных зон (при настроенном zone-based МСЭ).

Анализируем весь трафик

Делается следующим образом:

set content-inspection inspect-all enable

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

Анализируем трафик определенных интерфейсов

Для этой цели нужно включить анализ на интерфейсе в нужном направлении: in (к сети за маршрутизатором), out (к внешней сети со стороны сети за маршрутизатором) или local (к самому маршрутизатору).

set interfaces ethernet eth0 content-inspection [in|out|local] enable 

Анализируем трафик из зоны

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

set zone-policy zone Trusted from Untrusted content-inspection enable

Следим за результатами работы IPS

IPS оставляет записи в логах о произошедших событиях. Можно либо просматривать их локально, командой «show ips log», либо через syslog. Также можно экспортировать их в удаленную базу данных (в настоящее время поддерживается MySQL) для последующего анализа внешними утилитами, например ACID (Analysis Console for Intrusion Databases).

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

edit content-inspection ips log remote-db
set db-type mysql
set db-name <DATABASE_NAME>
set host <DATABASE_SERVER> # IP или имя хоста
set username <USER>
set password <PASSWORD>

Заключение

Мы кратко рассмотрели использование IPS во Vyatta. Следует быть осторожным с анализом интенсивного трафика без критериев отбора, поскольку он сильно загружает процессор. Также могу посоветовать не ставить слишком строгую политику (action drop) для низких приоритетов, поскольку она повышает вероятность блокировки обычного трафика.

Еще следует учесть, что IPS срабатывает только для трафика, который не был отфильтрован МСЭ.

P.S.
А еще сегодня исполняется ровно год как я сюда приперся моего присутствия на антициске. За это время было опубликовано 12 статей, Vyatta выделена в отдельный блог, написан «Курс молодого бойца», начат проект по адаптации вьятты для российского законодательства. Надеюсь, что следующий год будет еще более плодотворным в плане сотрудничества.

 

Опубликовано: Vyatta

 

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

Вы должны войти чтобы прокомментировать.