Введение
Интернет можно по праву назвать символом 21 века. Через Интернет решаются вопросы, начиная от заказа пиццы в ближайшем кафе, заканчивая многомиллионными сделками. Последнее подталкивает каждого из нас к мысли о необходимости защиты той информации, с которой мы работаем в Интернете. Сегодня мне бы хотелось остановить свое внимание на межсетевых экранах. Использование этих устройств – не новое решение. Межсетевые экраны (файерволы) закрепили за собой важную роль в сетевом мире еще в середине девяностых годов прошлого века. Однако изменение технологий передачи информации, архитектурных решений при построении сетей неизбежно приводит к необходимости модернизации устройств, которые эти сети защищают. Изложение статьи будет построено следующим образом: мы поговорим о том, что такое периметр сети и как его можно защитить, введем формальное определение межсетевого экрана и обсудим основные принципы его работы и, наконец, поговорим о тех решениях, которые применяются сегодня при использовании файерволов. Поскольку некоторые термины встречаются раньше, чем их формальные определения, отметим, что файервол, брандмауэр и межсетевой экран – слова-синонимы, которые в контексте этой статьи можно не различать.
Что такое периметр сети
Чтобы понять, что такое межсетевой экран и какую роль он играет в сетевом мире, нам необходимо ввести несколько важных определений. В мире кибербезопасности существует концепция безопасности, называемая «периметр». Периметр - это воображаемая «цифровая стена», установленная вокруг вашей сети, чтобы не пускать злоумышленников. Например, давайте представим, что вы управляете сетью для малого бизнеса. Эта сеть содержит несколько компьютеров, каждый из которых подключен к центральному маршрутизатору офиса. Этот маршрутизатор имеет доступ в Интернет. Чтобы защитить вашу сеть, вы ставите файервол между глобальным Интернетом и своим центральным маршрутизатором (в этом случае реальный периметр сети представляет собой просто точку входа в вашу сеть). Теперь необходимо правильно настроить безопасность сети, то есть другими словами настроить файервол на определенные правила защиты. Допустим, вы запрещаете определенным устройствам входить в вашу сеть извне. Другими словами, это как замок: все, кто внутри его стен - приветствуются, а вот те, кто живет снаружи – проходят строгий контроль (см. рис.1). Устройства, которые этот контроль осуществляют – межсетевые экраны, именно они расставляются по периметру сети, тем самым образуя «стены» вашего замка (в нашем случае замок – несколько компьютеров нашего офиса).
Однако, естественно, ваш бизнес может состоять из нескольких офисов, филиалов, у вас могут быть коллеги, которых вы рады видеть в своем замке. Поэтому межсетевые экраны настраиваются значительно более сложным образом. Они не просто делят мир вокруг них на два полупространства, они устанавливают степени доверия для тех, кто в этих полупространствах живет. Вернемся к нашему примеру с замком – мы уже определились, что есть люди, которых мы рады в него впустить. Но наверняка найдутся и те, которых мы готовы впустить, но не показывать весь замок. Есть что-то, что по нашему глубокому убеждению этим товарищам видеть не обязательно. Не нужно забывать и о том, что кого-то мы в замок пускать категорически не хотим.
Чтобы определить кого впускать в наш замок, а кого нет, по периметру этого замка и ставятся межсетевые экраны. Теперь поймем, каким образом межсетевые экраны защищают наш «замок» и как устроен механизм их работы.
Коротко о файерволах
Межсетевой экран (брандмауэр, файервол) — технологический барьер, предназначенный для предотвращения несанкционированного или нежелательного сообщения между компьютерными сетями или хостами. Зонные файерволы (на примере которых мы построим наш краткий экскурс в работу файерволов), имеют несколько интерфейсов, которые делятся на группы (зоны), в каждую зону может входить 1 и более интерфейсов. Вся настройка по фильтрации, как правило, происходит между зонами: фильтруется не тот трафик, который входит в интерфейс, а который идет из одной зоны в другую. То есть в явном виде указывается, из какой зоны в какую трафик идти должен/не должен. Бывают файерволы, которые используют не зоны, а уровни доверия – каждому интерфейсу ставится в соответствие число: чем оно больше, тем более доверенный интерфейс. Трафик из интерфейсов с большим уровнем доверия в сторону интерфейсов с меньшим уровнем доверия по умолчанию разрешен. Обратное направление трафика возможно только после специальной настройки. Мы кратко обсудим работу только зонных файерволов. В последних обычно предусмотрен следующий набор действий над трафиком, который отобран из общего потока:
· pass – разрешить/пропустить (отметим, что пропускается только прямой трафик, то есть в нашем примере – тот, который идет «в замок»);
· drop – отбросить трафик;
· inspect – инспектировать трафик – этот трафик тоже пропускается, но в рамках сессии файервол пропускает трафик и обратно.
Отметим также, что файервол - устройство, которое позволяет анализировать трафик до 7 уровня модели OSI включительно. Этот анализ может быть достаточно гибким, на его основе принимается решение о разрешении прохождения трафика. Такими образом, с помощью межсетевых экранов можно анализировать протоколы прикладного уровня, параметры, которые передаются, разрывать соединения.
Пример: Если пользователь пытается получить доступ к запрещенной странице, межсетевой экран может разорвать такую коннекцию, предотвратив скачивание запрещенного материала. При этом другие подключения этого пользователя к тому же серверу разрешаются, и все остальные ресурсы пользователь может просматривать/скачивать.
Межсетевой экран может работать в L2 и L3 режиме (выполнять коммутацию или маршрутизацию соответственно).
В L2 режиме файервол практически не заметен для серверов и другого оборудования (ставится в разрыв кабеля как обычный мост/коммутатор). В L3 режиме появляется дополнительный переход через маршрутизатор (hop). Современные файерволы могут заниматься маршрутизацией (поддерживать большое число протоколов динамической маршрутизации), но обычно для этих целей используют обычные маршрутизаторы. Очень условно файервол можно считать компьютером, который умеет делать определенные функции.
В современных сетях файерволы используют для 3 функций:
· Проверка трафика
· Операции NAT/PAT
· Шифрование
Вы спросите, почему нельзя обойтись фильтрацией на роутерах. Мы помним, что на роутерах фильтрация трафика производилась с помощью списков доступа. Большинство файерволов делают фильтрацию трафика в режиме statefull (access-lists в режиме stateless), то есть отслеживают состояние коннекции – на файерволах есть список коннекций, которые в данный момент активны (в access-lists такого нет). То есть, если полетит какой- то пакет между двумя TCP – sockets и в заголовке TCP будет стоять флаг ACK, но при этом файервол не видел сегментов с SYN, то файервол этот пакет отбросит.
Последнее, что стоит отметить – на наш замок могут быть направлены DDoS атаки – распределенные атаки, направленные на отказ в обслуживании. То есть происходит бомбардировка центрального сервера одновременными запросами данных. Злоумышленник отправляет такие запросы из нескольких взломанных систем. Таким образом он пытается полностью занять интернет-канал и истощить ресурсы ОЗУ компании-жертвы. Конечная цель состоит в выводе из строя систем такой компании и прерывании ее бизнес-процессов. Поскольку файервол – это устройство, которое открывает сессии на себя, то это первое устройство, которое «ляжет».
Для защиты от таких атак можно применять оборудование компании Arbor. Это оборудование работает в режиме stateless и позволяет защищать периметр сети от DDoS. Таким образом это оборудование служит своего рода экраном, который защищает наши файерволы. Однако это оборудование не может работать также гибко, как межсетевой экран – оно защищает наш «замок» только от конкретного вида вторжений, поэтому используется вместе с файерволами, а не вместо них.
Теперь, разобравшись с принципами работы классического сетевого файервола, поговорим о проблемах, которые стали возникать с их использованием последние несколько лет и о том, какие решения этих проблем существуют сегодня.
Host-based firewalls
Как мы понимаем, в предыдущей главе речь шла о защите физической сети – компьютерной сети, которая построена на физическом оборудовании и кабелях. В последнее время мы наблюдаем изменение инфраструктуры компьютерных сетей – большинство компаний работают с облачными ресурсами. Чтобы лучше понять, с какими проблемами в защите облачной инфраструктуры сталкиваются классические файерволы, скажем пару слов о процессе виртуализации сети. В последнее время начался взрывной рост использования виртуальных машин, которые изначально работали изолированно или в единой виртуализированной среде. Со временем виртуальные машины стали объединяться в виртуальные сети, эти сети стали взаимодействовать с физическими сетями, интегрироваться в них. Развитие этого процесса привело к созданию облачных ресурсов, где могут храниться приложения, сервера, виртуальные машины, контейнеры. В таком облаке может быть расположено оборудование IP, NFV, оптического доменов. Виртуальные сети очень быстро столкнулись с уязвимостями, которые характерны для физической сети. Появились проблемы с фильтрацией трафика, который идет из физической среды в виртуальную. Последняя требует значительно более гибких методов для защиты. Это связано в первую очередь с тем, что что вся инфраструктура виртуальных сетей представляет собой неоднородную среду. В такой среде очень сложно ввести привычную для физических сетей IP-адресацию. Таким образом, описанный выше подход по созданию специальных политик отбора трафика на основе IP-адресов теперь оказывается крайне сложным в реализации и не масштабируемым. Поэтому анализ и отбор трафика необходимо осуществлять по какому-то другому полю, а точнее по целой группе полей. Другими словами, наш «замок» становится значительно более сложной конструкцией – его защита требует применения новых, более интеллектуальных решений. Одно из таких решений – поставить host-based файервол на входе в виртуальную инфраструктуру. Эти файерволы отличаются очень гибкими возможностями при настройке политик отбора трафика и стоят значительно дешевле классических сетевых файерволов. Таким образом мы получаем единую точку входа в нашу виртуальную сеть, в которой мы сможем задавать сетевые политики для всех объектов в нашей среде. Давайте теперь обсудим, какие поля анализируют host-based файерволы, чтобы принять решение об отбросе/пропускании трафика. У каждого агента нашего облака есть набор метаданных – регион, домен, провайдер, версия, уникальное имя и целый ряд меток. На основе анализа этих полей host-based межсетевые экраны и принимают решение о том, как поступать с проходящим трафиком. Более того, определенным образом агрегируя поля метаданных мы можем вернуться к привычной нам архитектуре файерволов – создавать зоны и настраивать политики для трафика оперируя зонами, как это обсуждалось ранее.
Отметим еще одно важное преимущество, которым обладают host-based файерволы. Ни для кого не секрет, что современная сетевая архитектура построена на сетевых коммутаторах. Коммутаторы проводят микросегментирование, оставляя в одном сегменте как можно меньше устройств. В определённый момент развитие сетей привело нас к тому, что к одному интерфейсу коммутатора подключено только одно устройство (компьютер, сервер, роутер или другой коммутатор). Когда мы говорим о какой-то облачной архитектуре, то проблема микросегментации продолжает стоять так же остро, как и в физической сети. И здесь благодаря host-based файерволам мы можем эту микросегментацию выполнить. Такой подход значительно более экономически выгоден и прост в реализации, чем использование интеллектуальных L3 – коммутаторов для виртуальных систем.
Важной особенностью облака является динамичность его развития. Развертывание оборудования и изменение конфигурации в виртуальной сети происходит значительно быстрее, чем в физической. Host-based файервол является частью той виртуальной инфраструктуры, в которой он находится и развивается вместе с ней. Таким образом, применение host-based значительно более масштабируемое решение, чем использование классических файерволов.
Таким образом, host-based файерволы обладают целым рядом преимуществ:
· Возможность гибко настраивать политики трафика используя метаданные;
· Решение проблемы микросегментации в неоднородной среде;
· Масштабируемость решения, возможность подстраиваться под динамично развивающуюся архитектуру виртуальной сети;
· Доступность: host-based файерволы значительно дешевле, чем network-based
Однако, нельзя сказать, что при использовании host-based файероволов не возникает абсолютно никаких проблем. Эти устройства потребляют значительную часть полезной нагрузки, что особенно сильно проявляется, если потоки трафика значительно вырастают. Именно на этом этапе мы платим за масштабируемость нашего решения. Более того, host-based значительно уступает обычным сетевым файерволам по быстродействию. Эта проблема на сегодняшний день является наиболее актуальной и играет важную роль, когда речь касается выбора устройств для защиты сети.
Отметим также, что при защите каких-то особенно важных ресурсов существует технология эшелонированной защиты. То есть мы устанавливаем host-based файервол внутри периметра сети, уже защищенной обычными файерволами. Таким образом появляется дополнительный рубеж защиты. Такая эшелонированная защита определенных ресурсов позволяет свести к минимуму вероятность атаки на защищаемое устройство.
Заключение
Мы постарались последовательно разобраться с причинами появления файерволов, основными особенностями и принципами их работы, а также рассмотрели такое решение, как host-based файервол, которое позволяет значительно более гибко настраивать политики трафика и применяется в различных облачных средах.
Автор: Николайчук Никита