Статья по сегментации сети (Network segmentation Cheat Sheet)

Введение

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

  • SQL-инъекций — см. SQL Injection Prevention Cheat Sheet;
  • компрометации рабочих станций сотрудников с повышенными привилегиями;
  • компрометации другого сервера в периметре организации;
  • компрометации целевого сервиса через LDAP, DNS и другие корпоративные сервисы и сайты, опубликованные в интернете.

Главная цель этой статьи — показать базовые приёмы сетевой сегментации для противодействия атакам за счёт безопасной и максимально изолированной сетевой архитектуры сервиса.

Сегментация помогает избежать ситуаций, когда:

  • выполнение произвольных команд на публичном веб-сервере (Nginx, Apache, IIS) сразу даёт прямой доступ к базе данных;
  • получив несанкционированный доступ к серверу БД, атакующий может выйти на C2 в интернете.

Содержание

  • Условные обозначения на схемах;
  • Трёхуровневая сетевая архитектура;
  • Межсервисное взаимодействие;
  • Политика сетевой безопасности;
  • Полезные ссылки.

Условные обозначения

Элементы, используемые на сетевых диаграммах:

Условные обозначения

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

Трафик через два фаервола

На рисунке выше трафик проходит через два фаервола с именами FW1 и FW2.

Трафик через один фаервол

На рисунке выше трафик проходит через один фаервол, за которым находятся два VLAN.

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

Трёхуровневая сетевая архитектура

По умолчанию разрабатываемые информационные системы должны состоять как минимум из трёх компонентов (зон безопасности):

  1. FRONTEND;
  2. MIDDLEWARE;
  3. BACKEND.

FRONTEND

FRONTEND — набор сегментов со следующими сетевыми элементами:

  • балансировщик нагрузки;
  • межсетевой экран прикладного уровня (WAF);
  • веб-сервер;
  • веб-кэш.

FRONTEND

MIDDLEWARE

MIDDLEWARE — набор сегментов для размещения элементов:

  • веб-приложений с бизнес-логикой ИС (обработка запросов клиентов, других сервисов компании и внешних сервисов; выполнение запросов);
  • сервисов авторизации;
  • сервисов аналитики;
  • очередей сообщений;
  • платформ потоковой обработки.

MIDDLEWARE

BACKEND

BACKEND — набор сетевых сегментов для размещения элементов:

  • SQL-база данных;
  • каталог LDAP (контроллер домена);
  • хранилище криптографических ключей;
  • файловый сервер.

BACKEND

Пример трёхуровневой сетевой архитектуры

Пример трёх уровней

Ниже — пример локальной сети организации с именем Contoso.

Пограничный фаервол содержит 2 VLAN зоны безопасности FRONTEND:

  • DMZ Inbound — сегмент для сервисов и приложений, доступных из интернета; их нужно защищать WAF;
  • DMZ Outgoing — сегмент для сервисов, недоступных из интернета, но имеющих выход во внешние сети (в правилах фаервола нет разрешения входящего трафика извне).

Внутренний фаервол содержит 4 VLAN:

  • в зоне MIDDLEWARE один VLAN APPLICATIONS — для приложений ИС, взаимодействующих друг с другом (межсервисная связь) и с другими сервисами;
  • в зоне BACKEND:
    • DATABASES — сегмент для разграничения различных баз автоматизированной системы;
    • AD SERVICES — сегмент для сервисов Active Directory; в примере показан один сервер с контроллером домена contoso.com;
    • LOGS — сегмент для серверов журналирования; централизованно хранятся журналы приложений АС.

Межсервисное взаимодействие

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

Базовые разрешённые взаимодействия показаны зелёными стрелками на рисунке:

Межсервисное взаимодействие

На том же рисунке показан разрешённый доступ из сегментов FRONTEND и MIDDLEWARE во внешние сети (например в интернет).

Из схемы следует:

  1. доступ между сегментами FRONTEND и MIDDLEWARE разных информационных систем запрещён;
  2. доступ из сегмента MIDDLEWARE к сегменту BACKEND чужого сервиса запрещён (нельзя ходить в чужую базу, минуя прикладной сервер).

Запрещённые направления показаны красными стрелками:

Запрещённое межсервисное взаимодействие

Несколько приложений в одной сети

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

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

Пример такой сегментации:

Межсервисная связь с балансировкой

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

Политика сетевой безопасности

Организация должна иметь зафиксированную «бумажную» политику с правилами фаерволов и базовыми разрешёнными сетевыми доступами.

Она полезна как минимум:

  • сетевым администраторам;
  • представителям ИБ;
  • ИТ-аудиторам;
  • архитекторам ИС и ПО;
  • разработчикам;
  • ИТ-администраторам.

Удобно, когда политика иллюстрируется схемами в едином стиле: информация краткая и наглядная.

Примеры отдельных положений политики

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

Разрешения для CI/CD

Политика может описывать базовые разрешения для системы разработки ПО. Пример:

CI/CD

Безопасное журналирование

Важно, чтобы при компрометации ИС злоумышленник не мог подделать уже записанные журналы. Для этого, например, копируйте журналы на отдельный сервер по syslog: протокол не позволяет менять старые записи, только добавлять новые события.

Фрагмент политики для такого сценария:

Журналирование

Речь и о прикладных журналах с событиями безопасности и признаками возможной атаки.

Разрешения для систем мониторинга

Если в компании для мониторинга используется Zabbix, политика может выглядеть так:

Пример Zabbix

© Перевод на русский язык. Оригинальные материалы: OWASP Cheat Sheet Series.
Этот проект использует материалы OWASP, распространяемые по лицензии CC BY-SA 4.0.