Привет! Меня зовут Великов Павел, я архитектор по информационной безопасности в «Кросс технолоджис». Хочу поделиться интересным опытом миграции с зарубежного NGFW на Континент 4.

Введение

К нам обратился заказчик с задачей миграции с Palo Alto на отечественный NGFW. В качестве отечественного NGFW заказчик выбрал Континент 4, т.к. заказчик ранее с ним работал, и у него в эксплуатации был Континент 3 версии. Выполнение задачи миграции правил — достаточно сложный процесс, т.к. у различных производителей используется своя логика работы, которая требует аналитики и ручных «подкручиваний».

В ходе обследования текущей инсталляции NGFW была собрана следующая исходная информация: шлюзы под управлением PANOS 9 и 10 версий, на каждом из шлюзов организован RA-VPN, 3000 объектов (IP-адресов, DNS-имен), 1000 сервисов, несколько десятков URL-списков для доступа серверов и пользователей, 1000 правил фильтрации и порядка 100 правил NAT.

Правила доступа реализованы с использованием black-листов, в которых указаны запрещенные приложения, сайты и ip-адреса.

Приступаем к переносу

Проанализировав исходные данные, мы начали искать методы, которые позволят оптимизировать процесс переноса правил фильтрации с Palo Alto на Континент 4. Так как Континент 4 не имеет встроенного конвертора правил, но имеет возможность импорта сетевых объектов из CSV-файла или импорта правил/объектов из Check Point версий 77.30 и 80.20, то сначала необходимо исходные правила/объекты сконвертировать в формат правил Check Point, затем выполнить конвертацию в формат Континента. Для конвертации мы использовали утилиту SmartMove, для этого потребовалось загрузить архив, выгруженный из Panorama. Загружаем, ждём, получаем несколько файлов в том числе и файл с оптимизированными политиками. Осталось сконвертировать правила в формат Континента и готово?

Проблема №1

Первая проблема, с которой мы столкнулись уже на первом этапе конвертации — использование в качестве Source и Destination ANY. Почему же так? Потому что Palo Alto — Zone Based firewall, и заказчик активно использовал эту функцию. Как она работает? Каждому интерфейсу назначена своя зона безопасности и при прохождении трафика через Firewall проверяется не только адрес источника/назначения, но и зона безопасности.

Вот так выглядело исходное правило:

Вот так выглядит сконвертированное правило:

После конвертации правило разрешает доступ всем и везде. Разве это задумывалось? Нет, данное правило необходимо для работы приложения SkypeForBusiness при подключении через VPN-клиент (Global Protect).

Что же делать? Использовать вместо зоны VPN-клиентов пул адресов VPN-клиентов.

Проблема №2

Внимательные читатели обратили внимание, что в сконвертированных правилах отсутствует фильтрация по приложениям. У нас же не L3/L4, а межсетевой экран, поэтому требуется фильтровать не только по портам, но и по приложениям. Добавляем фильтрацию по приложениям и получаем следующее правило:

Проблема №3

При выполнении миграции решено было использовать новый RA VPN пул, т.к. на время опытной эксплуатации требовалось обеспечение удаленного доступа с использованием Global Protect и Континент АП. Неужели придётся менять объект в правилах руками? К счастью, в продукте есть встроенный сервис, который позволяет просмотреть, где используется объект и заменить его на другой. Для этого выбираем старый объект, указываем, на какой объект заменить и в каких правилах.

Переходим к следующему правилу:

Вроде бы ничем не примечательное правило — разрешение доступа до рабочей станции пользователя по RDP. Какой же сервис выбрать при переносе на Континент? И что же значит application-default в столбце Service? Это значит, что разрешено взаимодействие по портам по умолчанию, т.е. для приложения RDP разрешены порты TCP/3389 и UDP/3389. А что делать с приложениями, для которых не знаешь порты по умолчанию? Для этого в Palo Alto есть встроенная библиотека приложений, где можно найти приложение и посмотреть порты по умолчанию. Пример для ms-rdp:

Можем ли мы при переносе правила в Континенте указать в качестве Сервиса Any? Нет, потому что, во-первых, исходное правило подразумевало доступ лишь по портам по умолчанию. Во-вторых, использование правил фильтрации по приложениям без заданного сервиса ведёт к неоптимальному расходованию ресурсов, т.к. трафик по всем портам будет инспектироваться на наличие данного приложения. Поэтому рекомендуется всегда по возможности указывать сервис.

В итоге получаем следующее правило:

Следующей проблемой стало использование DNS-имён в правилах фильтрации, т.к. данный тип объектов использовать нельзя — необходимо вручную их перенести. Изучаем Release Notes к Континент 4.1.5 и обнаруживаем следующее ограничение:

Смотрим результаты конвертации и получаем цифру — 838 объектов. Т.к. превышение данного лимита может повлечь некорректную работоспособность УБ, решаем не превышать данное количество объектов и параллельно заводим пожелание на доработку с просьбой увеличить кол-во объектов DNS-имя в следующих релизах. (В дальнейшем мы обновили до Континент 4.1.7, где кол-во объектов увеличено до 1000).

Изучив объекты, которые используются заказчиком, мы понимаем, что большинство объектов — сервера со статичным IP, и решаем использовать IP-адреса для серверов, а для внешних сервисов использовать FQDN-имена.

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

URL-списки переносим вручную, т.к. ни при импорте из CSV-файла, ни при импорте из объектов Check Point этот тип объектов не переносится, а API продукта закрыт.

Перенос завершен

Объекты, сервисы перенесены, правила перенесены, проверяем — и правила URL-фильтрации не работают. Разбираемся, с чем это связано, и выясняем следующее: при обработке трафика правилом Контроля приложения данный трафик не попадёт в цепочку URL-фильтрации.

Вот так выглядит Packet Flow Континент 4:

Вот он виновник — блокировка приложений для удаленного доступа. Правило расположено одним из первых и препятствует работе механизма URL-фильтрации.

Проводим анализ исходных правил и понимаем, что требуется структуризация и упорядочивание правил для корректной работоспособности.

При разработке нового концепта правил было принято решение:

  1. Использовать URL-фильтрацию для серверов, т.к. обновление ОС происходит с внутренних репозиториев для Unix-серверов и WSUS для Win-серверов, то требуется обеспечить доступ до серверов обновлений. URL-списки один из лучших способов, т.к. поддерживает указание wildcard-имён, например, *.example.com. Данное решение нам также позволило уменьшить количество использованных FQDN-объектов. Например, KSC для получения обновлений использует 83 FQDN-объекта. При лимите в 1000 объектов (для версии 4.1.7) кажется незначительным, но при лимите в 150 объектов (для версии 4.1.5) — мы ограничены в дальнейшем использовании FQDN.

  2. Использовать URL-фильтрации для АРМ, которые используют для работы только браузер для выхода в Интернет на несколько веб-сайтов.

От использования URL-фильтрации для всех пользователей пришлось отказаться в пользу контроля приложений для блокировки социальных сетей, т.к. приоритетной задачей является запрет приложений удаленного доступа, которые работают по TCP/80, 443, как и http(s) трафик, а также блокировка TOR. Данный метод имеет свои недостатки, т.к. сайт не загружается, и пользователь не получает уведомление о том, что доступ к данному сайту запрещен.

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

Action

Описание

Source

Destination

Service

APP

URL

Правила блокировки по IP, FQDN (trust)

Deny

Блокировка вредоносных IP

Any

Malicious IP

Any

-

-

Правила блокировки по IP, FQDN (untrust)

Deny

Блокировка вредоносных IP

Malicious IP

Any

Any

-

-

Правила публикаций (Publications)

Allow

Правила PAT трансляции

Опционально

Обязательно

Опционально

Опционально

-

Правила удаленного доступа

Allow

Правила для RA-VPN

User, Group or RA-VPN Pool

Только локальные сети

Опционально

Опционально

-

Правила LAN

Allow

Только для взаимодействия с другими компонентами в рамках ЛВС

Только локальные сети/ группа AD

Только локальные сети

Опционально

Опционально

-

Block LAN

Deny

Блокируем весь остальной трафик в ЛВС

Локальные сети

Локальные сети

Any

Any

-

Правила доступа в интернет Outside

Allow

Доступ серверов по URL

Обязательно IP

Не локальные сети

HTTP, HTTPS

-

URL-list

Allow

Доступ по белому URL листу для АРМ/Группы AD

Обязательно IP, группа AD

Не локальные сети

HTTP, HTTPS

-

URL-list

Deny

Блокировка иного трафика

Обязательно IP, группа AD

Не локальные сети

HTTP, HTTPS

-

Block ANY

Deny

Block Ransomware, TOR

Локальные сети

Не локальные сети

Any

Обязательно

-

Allow

Доступ в интернет

Локальные сети

Не локальные сети

Опционально

Опционально

-

Drop Any

Deny

Any

Any

Any

Any

-

-

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

Результаты

Подводя итоги проекта, стоит отметить, что в результате совместной работы с заказчиком удалось актуализировать и выполнить перенос правил межсетевого экранирования. В будущих версиях Континента хотелось бы увидеть открытое, задокументированное API, которое позволит автоматизировать задачи по миграции политик и объектов (DNS-имен, URL-списков), а также рассмотреть возможность реализации в продукте ведения подробной базы описания приложений с указанием портов по умолчанию, которые используются данным приложением, как это реализовано в CheckPoint или Palo Alto.

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


  1. apevzner
    23.08.2023 14:24

    А вот интересно. Что если создать свой собственный язык описания правил и генераторы правил под конкретные железки?

    Казалось бы такое вполне могло бы продаваться корпоративным клиентам, поскольку уменьшает их зависимость от вендоров сетевой аппаратуры.

    А раз такое пришло мне в голову, может, на рынке уже и есть подобные продукты?


    1. d-stream
      23.08.2023 14:24

      Останется потребность в обратной конвертации правил конкретных вендоров в эти метаправила.