26 Июня, 2018

5. Check Point на максимум. IPS. Часть 1

Евгений Ольков


Продолжаем нашу серию уроков по Check Point. На этот раз мы обсудим одну из моих любимых тем, а именно — IPS (Intrusion Prevention System) По-русски — система предотвращения вторжений. Причем акцент именно на Prevention (т.е. предотвращение)! Одно из главных кредо компании Check Point это: “We Prevent, not detect!”. Лично я согласен с такой позицией. Какой толк от детекта, если вас атаковал например шифровальщик? Зашифрованный компьютер и так вам сообщит, что была атака. В текущих реалиях нужно позаботиться именно о Prevent. И IPS здесь может очень хорошо помочь.
Однако, в последнее время наблюдается некое пренебрежение этим классом защиты, мол “IPS больше не актуален и использовать его бессмысленно”. На мой взгляд это мнение является непростительной ошибкой. Собственно в этом уроке я постараюсь описать основные бытующие заблуждения на счет IPS. Затем в рамках лабораторной работы покажу каким образом IPS поможет усилить защиту вашей сети. Ну и конечно же постараюсь рассказать, как получить максимум от этого полезного инструмента, на какие настройки обратить внимание и о чем нужно помнить включая IPS.
Урок получился весьма длинным поэтому я разбил его на две части. Первая часть будет чисто теоретическая, а вторая уже полностью посвящена практике в виде лабораторной работы. Надеюсь, что будет интересно.
Спойлер — В конце статьи видео урок, если кому-то удобнее смотреть, а не читать.

Краткая история развития IPS




Хотелось бы начать с некоторых исторических особенностей. На самом деле IPS является частным случаем IDS (Intrusion Detection System — Система обнаружения вторжений или СОВ, как ее кратко называют в России).
Идея о создании IDS появилась после выхода статьи “Computer Security Threat Monitoring and Surveillance” Джеймса Андерсона, аж в 1980 году! Довольно занятная статья и самое главное актуальная по сей день.

Спустя 6 лет, в 1986 году Дороти Деннинг и Питер Нейман опубликовали первую теоретическаю модель IDS, которая наверно до сих пор является основой для современных систем. Далее было довольно много различных разработок, но все они в основном сводились к использованию трех методов обнаружения вторжений:

  • Сигнатурный анализ;
  • Эвристический анализ;
  • Обнаружение аномалий.

Пожалуй одним из ключевых моментов в развитии IDS стало появление библиотеки libpcap в 1998 году. Разработали ее ребята из Национальной лаборатории им. Лоуренса в Беркли. В этом же году был разработан снифер пакетов APE использующий пакет libpcap. Через месяц APE был переименован во всем известный Snort. Автором Snort-а является Мартин Рёш.

Позже была основана компания Sourcefire (в 2001 году) и проект Snort продолжил свое стремительное развитие уже в рамках компании Sourcefire и стал фактически стандартом среди IDS решений. Snort имеет открытый исходный код, чем и пользуется большинство современных производителей ИБ решений (особенно отечественные компании).

В 2003 г. компания Gartner констатировала неэффективность IDS и необходимость перехода на IPS системы (т.е. сменить детект на превент). После этого разработчики IDS стали оснащать свои решения режимом IPS. Snort естественно может работать как в IDS, так и в IPS режиме (т.е. на предотвращение).

Безусловно стоит также отметить бурный рост еще одного проекта с открытым исходным кодом — Suricata. Основали этот проект выходцы из Snort-а. Первый бета релиз был в 2009 году. За разработку отвечает компания Open Information Security Foundation (OISF). На данный момент Suricata является очень популярным решением (хоть и уступает пока еще Snort-у по популярности). На самом деле их довольно часто используют совместно.

В 2013 году Sourcefire была поглощена компанией Cisco. При этом Snort продолжает оставаться проектом с открытым исходным кодом, а его коммерческая версия продается под брендом Cisco FirePower. С вашего позволения мы не будем говорить об отличиях свободной и проприетарной версии. Интересный момент. Еще в 2005 году Check Point пытались купить SourceFire за 225 млн $, однако правительство США не одобрили эту сделку. И как я сказал ранее, Cisco купили SourceFire в 2013 году аж за 2,7 млрд $. Неплохое подорожание за 8 лет) более чем в 12 раз.

Естественно я перечислил только малую часть решений. Параллельно развивалось огромное количество коммерческих проприетарных решений (Check Point один из них). Чаще всего IPS входил в состав UTM или NGFW решения, реже в качестве отдельно стоящей “железки” (Cisco IPS — яркий пример).

IPS в корпоративных сетях


Теперь, если коснуться истории распространения IPS решений в корпоративных сетях, то получается примерно следующая картина:



В начале 2000-х компании весьма скептически относились к этому новому классу решений защиты. Большинство считали IPS какой-то экзотической штукой, которая не особо то и нужна.
Уже после 2005-го большинство осознали пользу и необходимость IPS. Начался бум внедрений по всему миру.
К 2010 году IPS стал фактически необходимым стандартным средством защиты корпоративной сети.
Ближе к 2015-му рынок IPS относительно остыл. IPS по стандарту был практически во всех UTM/NGFW решениях. Все переключились на SIEM, защиту от таргетированных атак, песочницы, хонейпоты и т.д. При этом совсем забыв про важность IPS. Но это мы уже обсудим чуть дальше.

Теперь, когда мы немного освежили знания об истории появления IPS, хочется обсудить еще один момент. А именно классы IPS. В грубом приближении все IPS-решения можно разделить на два класса:

  • NIPS работает на уровне сети, т.е. сканирует проходящий/транзитный трафик.
  • HIPS работает на уровне компьютера пользователя, т.е. с тем трафиком, который предназначен непосредственно этому компьютеру, ну либо генерирует сам хост.

Мы сегодня будем обсуждать именно первый вариант.

Два варианта использования NIPS


Давайте рассмотрим архитектурное применение IPS. Здесь тоже все довольно просто, есть два варианта использования сетевого IPS:



  1. Inline mode. По-русски мы это называем “в разрыв”. Т.е. реальный сетевой трафик проходит через IPS. IPS в данном случае работает как обычный бридж (т.е. на втором уровне модели OSI). Данный режим самый оптимальный с точки зрения защиты. В случае обнаружения атаки, IPS может сразу заблокировать сессию и компьютер атакующего. Есть конечно и негативные моменты в виде false positive срабатываний, ну т.е. ложных срабатываний, когда IPS блочит нормальный трафик. Но это отдельная тема, мы чуть позже ее обсудим.
  2. Promiscuous mode. Опять же, по-русски — режим мониторинга. Как правило в таком режиме IPS “вешается” на SPAN-порт, который “зеркалирует” на устройство КОПИЮ! трафика. В этом варианте, IPS автоматически превращается в IDS, т.к. он работает уже не с реальном трафиком и у него нет возможности оперативно блокировать атаки. Т.е. это плохой вариант, когда требуется максимальная защищенность.

Мы не будем подробно рассматривать особенности применения того или иного режима. Это довольно обширная тема, которая выходит за рамки нашего урока. Давайте лучше сосредоточимся на inline режиме, т.к. именно он в большинстве случаев используется в Check Point-е.

IPS в UTM устройствах. Packet Flow




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

Межсетевой экран стремится предотвратить прохождение того или иного трафика. IPS же работает с уже прошедшим трафиком.”

Это логично не только с точки зрения безопасности, но и с точки зрения производительности. Зачем исследовать трафик, который может быть быстро отброшен фаерволом с минимальными ресурсными затратами. Это к вопросу, стоит ли ставить IPS перед firewall-ом. Однозначно нет! Только представьте сколько “левого” трафика будет на него сыпаться от разных ботов, которые сканируют в Интернете все подряд.

Что ж, на этом мы заканчиваем наше затянувшееся лирическое отступление. Давайте перейдем к типичным заблуждениям на счет IPS. Я постараюсь их развенчать на примере Check Point-а.

Типичные заблуждения на счет IPS


1. IPS защищает только от атак сетевого уровня


Пожалуй это самый распространенный миф. Исторически конечно IPS в первую очередь защищал от сетевых атак, таких как сканирование портов, брутфорс, некоторые виды ddos-а ну и конечно борьба с аномалиями. Однако! Многие до сих пор не знают, что IPS может проверять и скачиваемые файлы! И если файл содержит exploit, то IPS заблокирует его скачивание быстрее чем Anti-Virus, т.к. IPS работает в потоке трафика, а Anti-Virus вынужден ждать пока в буфер скачается весь файл. Т.е. IPS проверяет такие файлы как pdf, doc, xls и многое другое. Я обязательно покажу это в лабораторной работе. Поэтому, включенный IPS существенно повысит защиту ваших пользователей, которые качают из интернета различные файлы. Не пренебрегайте этим дополнительным уровнем защиты!

2. IPS уже не актуален и ни от чего не защищает


Еще один популярный миф. Безусловно, в последнее время профессиональные хакеры стараются не использовать классические инструменты атаки, такие как сканирование портов, брутфорс и т.д. И все потому, что такие атаки сразу заметны и генерят огромное кол-во алертов на классических средствах защиты. Однако! Это имеет место быть только при очень сложных и таргетированных атаках, когда за дело берется настоящий профессионал. 99% всех успешных атак — автоматизированные боты, которые сканируют сеть на предмет известных уязвимостей, которые затем и эксплуатируют. IPS все это видит! Более того, опять же вспомнив wannacry, после обнаружения этой уязвимости, Check Point выпустил IPS-сигнатуру буквально через пару дней. Microsoft же выпустил заплатку куда позже (через пару недель на сколько я помню). Включенный IPS с актуальными сигнатурами отлично отражает подобные автоматизированные атаки, которые до сих пор преобладают (да и вряд ли что-то изменится в ближайшем будущем).

3. IPS не надо часто обновлять


Собственно в предыдущем пункте я констатировал, что включенный IPS именно с АКТУАЛЬНЫМИ сигнатурами обеспечивает защиту от автоматизированных атак. Почему-то многие считают, что регулярно обновлять нужно только антивирусные базы, при этом напрочь забывая про IPS. А ведь сигнатуры для IPS появляются или обновляются буквально каждый день. Для примера можно воспользоваться ресурсом Check Point . Как видите только за последние пару дней вышло несколько новых сигнатур. Либо были обновлены ранее созданные.
IPS с актуальными базами это очень важно. Как я уже сказал ранее, IPS сигнатуры выходят быстрее чем патчи от вендоров. Если у вас старые сигнатуры, то ваш IPS просто в пустую молотит трафик и бесцельно расходует системные ресурсы. И не верьте отечественным производителям СОВ, которые говорят, что обновление раз в месяц это нормально (как правило именно такой период они ставят и скорее всего это связано с тем, что они используют базы snort, которые для бесплатной версии обновляются с задержкой в 30 дней).

4. IPS существенно снижает производительность устройства


Что я могу сказать об этом мифе. И да и нет. Безусловно, включение IPS увеличивает нагрузку и на процессор и на оперативную память. Но все не так драматично, как принято считать. Колоссальное повышение нагрузки при включении IPS как правило проявляется в двух случаях:

  1. Вы (или Вам) неправильно подобрали решение. Будь то аппаратный аплайнс или виртуальное решение. Это к вопросу, что все необходимо тестировать перед покупкой. Опять же, тут многое зависит от того, кто подбирает решение. Уделяйте этому особое внимание. Внимательно пользуйтесь даташитами на устройства. Там обязательно указывается пропускная способность устройства при включенном IPS. Ну и опять же, у Check Point-а есть инструмент сайзинга, который дает весьма реалистичные рекомендации по поводу подходящей модели. Обязательно пользуйтесь сайзингом! Если у вас нет доступа к этому инструменту, просите своих партнеров.
  2. Вторая и самая распространенная причина повышенной загрузки из-за IPS — включено слишком много сигнатур. Это одна из крайностей использования IPS, когда включаются абсолютно все доступные сигнатуры, по причине того, что изначально не понятно, какие именно нужны. Это очень грубая ошибка приводит к просто дикой загрузке устройства и большому количеству ложных срабатываний. Напоровшись на это многие администраторы решают отключить IPS, т.к. с ним пограничный шлюз просто “загибается”. Как быть? Ну для начала нужно определить, что именно вы собираетесь защищать. Логично предположить, что если у вас в DMZ находится почтовый сервер на Linux-е, то наверно не стоит включать для этого сегмента сигнатуры связанные с уязвимостями Microsoft, MacOS, Android, Wordpress и т.д. Думаю общий смысл понятен. Молотить трафик всеми сигнатурами без разбора — очень дорого. Чтобы IPS эффективно расходовал ресурсы, необходимо включить только нужные сигнатуры и выключить ненужные. Звучит просто. Но реализация представляется весьма сложной. Отсюда растет следующий миф.


5. IPS трудно настраивать


Отчасти это справедливое мнение, которые имело место быть. На самом деле многие IPS решения до сих пор весьма сложны в освоении. Но это не про Cheсk Point. Давайте по порядку. Как обычно выглядит сигнатура? Как правило это что-то вроде:

IGSS SCADA ListAll Function Buffer Overflow
WebGate Multiple Products WESPMonitor Stack Buffer Overflow


И попробуй разберись, что это за сигнатура, для чего она, сильно ли нагрузит шлюз ее включение, насколько она критична? К счастью в Check Point-е есть подробное описание каждой сигнатуры. Описание видно прямо в SmartConsole и вам не придется гуглить каждое название. Более того, для удобства, Check Point присвоил каждой сигнатуре несколько тегов:

  • Severity (т.е. уровень опасности, которую может закрыть данная сигнатура);
  • Confidence level (уровень достоверности сигнатуры, т.е. какова вероятность адекватности срабатывания этой сигнатуры. Это очень важная характеристика особенно для поведенческого анализа)
  • Performance Impact (этот тэг показывает на сколько сильно включенная сигнатура будет грузить устройство)
  • Vendor — вы можете отфильтровать сигнатуры по Вендору (например уязвимости связанные со всеми продуктами компании Adobe или Microsoft)
  • Product — возможно отфильтровать по продукту (например Microsoft Office или WordPress).

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

6. Работа с IPS это нудная и рутинная работа


Я уже много раз говорил, что информационная безопасность это не результат, а непрерывный процесс. Нельзя один раз настроить систему и забыть про нее. Нужна непрерывная, систематическая доработка. Тоже самое касается IPS. И тут обычно возникают трудности. Практически любая более менее адекватная IPS система генерит огромное кол-во логов. Как правило они выглядят подобным образом:



А теперь представьте, что этих логов набралось несколько тысяч за неделю. Каким образом вам анализировать их? Как понять какие события происходят чаще всего? Какие сигнатуры возможно надо выключить или какие хосты возможно стоит заблокировать на уровне firewall-а?

Конечно логи чекпоинта выглядят более привлекательно и наглядно:



Тут видно и Severity и Performance Impact и Confidence Level. Однако это не решает проблему анализа такого большого количества событий. Как правило именно здесь вспоминают про SIEM системы, которые призваны агрегировать, коррелировать и выполнять первичный анализ событий. К счастью у Check Point есть встроенная SIEM система — Smart Event. Этот блейд позволяет видеть логи IPS уже в обработанном и агрегированном виде:



Как вы понимаете, с этим уже гораздо проще работать. Главная ценность SIEM в том, что эта система позволяет “увидеть” вашу защищенность в количественном выражении. В любой работе нужно видеть результат и здесь гораздо проще ориентироваться на цифры. В нашем примере мы видим, что присутствует довольно большое количество логов с Severity уровня Critical. Именно с ними и нужно начинать работу. Более того, мы видим, что наибольшее количество событий связано с сигнатурой GNU Bash Remote Code Execution. Разбор стоит начать именно с этих событий. Провалившись дальше мы можем определить:

  • Какие хосты атакуют?
  • Какой хост атакуют?
  • Из какой страны идет атака?

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

Если же атака идет из внешней сети, то может быть все эти логи создает всего один атакующий узел (скорее всего это какой-то бот), причем из какого-нибудь Сингапура. В этом случае мы можем добавить этот хост (либо вообще всю сеть Сингапура) в блок-лист, чтобы он блокировался на уровне firewall-а и не доходил до обработки трафика IPS-ом.

Также мы можем заметить, что сигнатура отлавливает атаки для linux-дистрибутивов, при этом возможно атакуется windows-хост. В этом случае будет также логично отключить linux-сигнатуры конкретно для этого хоста.

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

  1. Часть атакующих хостов будет блокироваться еще на уровне firewall-а;
  2. Будут отключены ненужные сигнатуры, которые расходуют ресурсы.

При этом SmartEvent позволяет тут же увидеть результат в виде уменьшающегося кол-ва логов. Это как раз та, количественная характеристика, которая показывает эффективность нашей проделанной работы. В идеале мы должны избавиться от так называемого “шума” и видеть в логах только действительно важные IPS события (т.е. настоящие атаки).

Более того, всю эту процедуру расследования и добавления хостов в блок-лист можно автоматизировать! В R80.10 появился полноценный API, который позволяет интегрироваться со сторонними решениями. Я уже писал статью на хабре о самом API — Check Point R80.10 API. Управление через CLI, скрипты и не только.
Также, мой коллега Глеб Ряскин публиковал подробную инструкцию по интеграции Check Point и Splunk — Check Point API + Splunk. Автоматизация защиты от сетевых атак .
Там не только теоретическая часть, но и практическая, с примером атаки и автоматическим добавлением хоста в блок-лист. Не ленитесь, посмотрите.
На этом я предлагаю закончить нашу теоретическую часть. В следующем уроке нас ждет большая лабораторная работа.

Теоретическая часть в формате видеоурока





Если вас интересуют другие материалы по Check Point, то здесь вы найдете большую подборку ( Check Point. Подборка полезных материалов от TS Solution ). Также вы можете подписаться на наши каналы ( YouTube , VK , Telegram ), чтобы не пропустить новые статьи, курсы и семинары.

P.S. В ближайшее время состоится два интересных события. Регистрируйтесь:


Подробнее о моделях коммутаторов Extreme можно посмотреть здесь .

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

Используете ли вы IPS?