- tocdepth
2
Применение сегментации сети
Сегментация сети помогает эффективно защищать информационную систему, если та построена по принципам многоуровневой архитектуры.
Примечание
Многоуровневая архитектура представляет собой фреймворк, позволяющий разделить компоненты приложения, которые могут независимо друг от друга разрабатываться, поддерживаться и управляться (порой, разными командами), а также независимо масштабироваться.
Вследствие этого подхода сеть является границей между слоями (компонент слоя должен инициировать сетевое взаимодействие для связи с другим слоем) и может участвовать в обеспечении политик безопасности приложения.
Как правило, выделяют три уровня:
слой представления, с которым непосредственно взаимодействует пользователь;
слой бизнес-логики, предназначенный для трансляции действий пользователя в функциональность приложения;
слой данных для хранения данных приложения, например базы данных, объектное хранилище, файловая система.
Примечание
Уровней может быть больше или меньше, они могут иметь иную функциональность. Главное, чтобы сохранялся общий подход с их изоляцией.
В качестве примера мы будем использовать наиболее популярный вариант использования многоуровневой архитектуры — трехуровневое веб-приложение. При этом подход применим к огромному спектру приложений, не только к веб-приложениям.
Сегментирование уровней с точки зрения сетевого взаимодействия
В одноуровневом приложении все компоненты находятся в одной сети. Это открывает все ресурсы злоумышленнику, получившему доступ к вашей сети.
Как исправить: уменьшить поверхность атаки
Поверхность атаки — это количество способов, которыми злоумышленник может воспользоваться, чтобы проникнуть в инфраструктуру. Чем она меньше, тем более вы защищены.
В многоуровневой архитектуре можно разместить дополнительные слои защиты между атакующим и чувствительными ресурсами. В нашем примере данные являются наиболее чувствительным ресурсом, поэтому их стоит поместить в самый конец цепочки, за двумя дополнительными слоями защиты.
В целом при этом подходе нет необходимости размещать в публичной сети никаких ресурсов, за исключением балансировщика трафика и узла bastion (jump-host).
Правила фильтрации трафика
В соответствии с изложенной выше идеей политики фильтрации могут выглядеть следующим образом:
Any -> Load balancer. Разрешить на TCP/80, TCP/443.
Load balancer -> App. Разрешить на TCP/80, TCP/443.
App -> Database. Разрешить на TCP/3306.
Explicit deny.
В этом наборе нет правил, разрешающих трафик от компонентов приложения в интернет. Такие правила необходимо добавить, если вашему приложению требуется интеграция со сторонними IT-системами: дополнительное правило будет разрешать доступ от App к IP-адресам внешнего сервиса по нужным протоколам.
Подробнее обо всех вариантах подключения межсетевого экрана:
для Dev & Test