Новый принцип межсетевого экранирования

22557e6e23b34add885f56568d8ad7e6.jpg

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

В данной статье мы рассмотрим новый принцип построения межсетевых экранов, ориентированный на обычных людей, не имеющих специальных знаний в области информационной безопасности.

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

Чего хочет пользователь от межсетевого экрана?


Попытаемся сформулировать типовые представления среднестатистического пользователя о межсетевых экранах.

Обычно про межсетевые экраны знают, что это устройства, способные защитить компьютер от несанкционированного доступа и атак по сети. Другим общераспространенным знанием является то, что межсетевые экраны очищают сетевой трафик, подобно фильтру, пропускающему легитимный и блокирующему вредоносный трафик. И, конечно, при всем при этом пользователю важно, чтобы, используя межсетевой экран, он был защищен, мог работать «как обычно», и ему не надо было бы ничего настраивать и ни за чем следить.

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

  1. Защищать компьютер от несанкционированного доступа и атак по сети (блокирование вредоносного трафика).
  2. Позволять работать «как обычно» (пропуск легитимного трафика).
  3. Не требовать конфигурирования и обслуживания.

Анализ задачи


Как удовлетворить данные потребности? Что считать вредоносным, и что считать легитимным трафиком? Что значит работать «как обычно»?

Для начала проанализируем типовую работу пользователя в корпоративной сети. Каждый пользователь создает на своем компьютере электронные документы, передает их коллегам по электронной почте, IM-мессенджерами, в системах электронного документооборота и т.д… Часть пользователей работает с серверами корпоративных информационных систем, и практически все пользуются корпоративным Интернет-доступом.

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

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

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

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

Альтернативой будет установка межсетевого экрана в разрыв между защищаемым компьютером и остальной сетью, тогда сторону, инициирующую соединение, можно будет сопоставить порту (сетевому интерфейсу), на который пришли соответствующие сетевые пакеты.

Таким образом техническое задание на устройство будет звучать так. Межсетевой экран должен:

  1. Подключаться в разрыв между защищаемым компьютером и остальной сетью.
  2. Обеспечивать транзит сетевого трафика только по соединениям, инициированным защищаемым компьютером. Весь остальной трафик должен быть отброшен.

Техническое решение


Рассмотрим один из возможных вариантов реализации технического задания.
В нашем случае это будет аппаратный межсетевой экран, содержащий два порта (сетевых интерфейса):
  • «Внешний порт» — сетевой интерфейс, к которому подключается потенциально враждебная вычислительная сеть.
  • «Внутренний порт» — сетевой интерфейс, к которому подключается защищаемый компьютер.

e1219d6bcd094fbfa284161b43362476.jpg

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

С точки зрения стека TCP/IP межсетевой экран подобного типа выглядит как неуправляемый коммутатор. Его порты, не имеющие IP и MAC адресов, логически объединены в мост, работающий по алгоритму IEEE 802.1D (transparent bridge). Однако, в отличии от обычного коммутатора данное устройство при принятии решения о транзите сетевого пакета между портами применяет также алгоритм многоуровневой фильтрации, при котором прохождение сетевого пакета возможно только в случае прохождения всех модулей фильтрации.

Дальнейшее рассмотрение логики работы будет основываться на том, что межсетевой экран построен на базе Linux-box и обладает стандартными возможностями работы со стеком TCP/IP.

В модуле фильтрации канального уровня (L2) производятся следующие действия:

  1. Для поступившего в устройство сетевого пакета по алгоритму IEEE 802.1D определяются порты источника и назначения.
  2. Сетевой пакет, пришедший с порта, который мы ранее обозначили как «Внутренний порт», помечается как «ВНУТРЕННИЙ».
  3. Сетевой пакет, пришедший с любого из интерфейсов и не содержащий в себе инкапсулированный IP- или ARP- пакет, отбрасывается.
    Примечание. Модуль фильтрации L3 работает только с пакетами, принадлежащими стеку TCP/IP. Для устранения возможных утечек сетевые пакеты других стеков отбрасываются.
  4. Сетевой пакет передается на модуль фильтрации сетевого уровня (L3).
  5. Если сетевой пакет вернулся с модуля фильтрации сетевого уровня (L3), то он передается в порт назначения и покидает межсетевой экран.

Модуль фильтрации сетевого уровня (L3) выполняет следующие действия:
  1. На постоянной основе ведет таблицу активных сетевых соединений, где для каждого соединения фиксируется информация о конечных точках (адреса, порты и т.д.), а также состояния, описывающие различные этапы жизненного цикла соединений «новое соединение», «установленное соединение» и др. (более подробно про отслеживание состояния соединений в Linux можно посмотреть тут).
    Для осознания дальнейшего алгоритма важно понять, что как только какая-либо сторона послала запрос на соединение, то состояние записывается как «новое соединение». После того как сторона, получившая запрос, шлет пакет в ответ, состояние соединения принимает значение «установленное соединение».
  2. Возвращает на модуль фильтрации канального уровня (L2) сетевые пакеты, удовлетворяющие следующим требованиям:
    • сетевой пакет принадлежит установленному соединению;
    • сетевой пакет имеет маркировку «ВНУТРЕННИЙ».
  3. Все остальные пакеты отбрасываются.

Как мы видим, рассмотренный алгоритм фильтрации не привязан к сетевым адресам или портам, а оперирует лишь направлением трафика и состоянием соединения, что позволяет использовать устройство без конфигурирования в IP-сети с любой адресацией.

Первые опыты и трудности


Собрав устройство, реализующее приведенный алгоритм, получили два результата: первый, и главный, что данный подход работает; второй, и не менее важный, что неопытный пользователь не сможет пользоваться подобным устройством, поскольку оказались не доступны многие базовые сетевые протоколы (DHCP, NetBIOS NS, WS-Discovery и др.), использующие широковещательные адреса. Возможны два варианта решения этой проблемы:
  • добавить в исключения модулей фильтрации типовые протоколы, использующие широковещательные посылки;
  • вообще не блокировать широковещательный трафик.

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

Поэтому было решено не блокировать широковещательный трафик. Попутно был также разрешен и трафик с групповой адресацией (multicast), поскольку данный тип трафика также широко используется, например, в ОС Windows для обнаружения конфликтов IP-адресов.

Защита подсети


Учитывая то, что межсетевой экран не привязан к конкретным сетевым адресам и портам, стало интересно, можно ли с помощью подобного устройства защитить подсеть. Для этого была собрана следующая конфигурация:
4e7e028dd83f43238197cd46ddc47986.jpg

Оказалось, что подобная схема также работает. Межсетевой экран защитил оба компьютера от подключений из внешней сети. После этого было решено попробовать собрать межсетевой экран, у которого несколько портов, отнесенных к «внутренним портам».
8392bb46b9164ef0a01a8288830de60b.jpg

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

Защита в беспроводных сетях (WiFi)


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

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

01cd8bdfb0454688bd44da6a148fd726.jpg

В остальном функционирование экрана и его защитные функции остались без изменений.

Опытная эксплуатация


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

После года опытной эксплуатации было установлено, что практически все типовые офисные программы: MS Office, 1C: Предприятие, браузеры, IM-мессенджеры, VoIP, электронная почта, системы видеонаблюдения и даже игры работают через устройство, реализующее рассматриваемый принцип фильтрации, без проблем. Исключение составили ряд программ, имеющих нестандартную систему защиты от не лицензионного копирования, при которой сервер лицензий требует подключения к защищаемому компьютеру.

Выводы


Приведенный в статье принцип межсетевого экранирования позволяет решить поставленные в начале статьи задачи. Устройство, построенное по данному принципу, не требует настройки и может быть внедрено неквалифицированным пользователем за считанные секунды. За счет того что порты устройства не имеют сетевых адресов, устройство «невидимо» (stealth) для остальной сети и не может быть удалённо деактивировано.

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

По большому счету приведенный принцип межсетевого экранирования может быть реализован
не только в аппаратно, но и в виде программного межсетевого экрана или даже виртуальной машины.
Демо-видео к статье (RuTube)

Комментарии (2)

  • 28 ноября 2016 в 11:23 (комментарий был изменён)

    0

    В чём отличия данного межсетевого экрана, либо его поведения, от стандартного Брандмауэра Windows с настройками по умолчанию? Кроме поддержки других ОС (в которых наверняка есть аналоги), аппаратной реализации, и отсутствия возможности каким-либо образом его настроить?
  • 28 ноября 2016 в 11:39 (комментарий был изменён)

    0

    Для поступившего в устройство сетевого пакета по алгоритму IEEE 802.1D определяются порты источника и назначения.

    802.11d — это же про STP?

    P.S. А в чем новизна вашего решения, которое не требует настроек? Кроме того, где в вашей схеме возможность доступа снаружи ко внутренним ресурсам? Да, если вы еще NAT добавите, получите самый банальный домашний роутер, вроде тех, что раздают провайдеры.

© Habrahabr.ru