Zero Trust: сетевая безопасность без периметра — АйТи Фреш

Zero Trust: сетевая безопасность без периметра

Zero Trust: сетевая безопасность без периметра

Периметр мёртв: почему VPN + firewall недостаточно

У нас в «ФинКорп» работало 200 сотрудников, и архитектура была классической: для удалёнщиков — VPN, на периметре — firewall, а внутри — просто плоская сеть. Ну, и как это обычно бывает, рано или поздно случается беда: один из сотрудников открыл фишинговое письмо. Тут же на рабочую станцию села малварь, начала двигаться по внутренней сети (это мы называем lateral movement) и, конечно, добралась до нашей финансовой БД. Вся эта история заняла всего 2 часа.

Слабое место периметральной модели в одной мысли: «внутри — значит доверенный». Стоит злоумышленнику пробить периметр (фишинг, скомпрометированный VPN, инсайдер) — и перед ним открыто всё.

Принцип Zero Trust, по сути, очень прост и звучит так: «Never trust, always verify». Это значит — не доверяйте никому и проверяйте буквально каждый запрос.

Периметральная модельZero Trust
VPN = доступ ко всей сетиДоступ только к конкретным ресурсам
IP-based правила (firewall)Identity-based правила (кто + что + откуда)
Плоская внутренняя сетьМикросегментация
Проверка при входеContinuous verification (каждый запрос)
Доверие к внутреннему трафикуШифрование всего трафика (mTLS)

Пять столпов Zero Trust

1. Identity verification — аутентифицируется каждый запрос, без исключений.

# Keycloak/Okta для пользователей
# Service accounts + mTLS для сервисов
# Пример: Envoy sidecar проверяет JWT на каждый запрос
- name: envoy.filters.http.jwt_authn
  typed_config:
    providers:
      keycloak:
        issuer: https://auth.fincorp.ru/realms/production
        audiences: ["api-gateway"]
        remote_jwks:
          http_uri:
            uri: https://auth.fincorp.ru/realms/production/protocol/openid-connect/certs

2. Device trust — проверка состояния устройства

  • OS обновлена? Антивирус активен? Диск зашифрован?
  • Инструменты: CrowdStrike, Kolide, osquery

3. Microsegmentation — это когда сервис A может достучаться только до сервиса B, и никуда больше. Мы как бы создаём микро-границы внутри сети.

# Kubernetes NetworkPolicy
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-frontend-to-api
spec:
  podSelector:
    matchLabels:
      app: api-service
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend
    ports:
    - port: 8080

4. Least privilege — минимальные необходимые права

5. Continuous monitoring — аномалии ловятся в реальном времени.

Практический план: от VPN к Zero Trust за 3 месяца

В «ФинКорп» мы решили внедрять Zero Trust поэтапно, чтобы не сломать уже работающую систему. Мы двигались шаг за шагом:

Месяц 1: Identity foundation

  • Keycloak как единый IdP (SSO для всех сервисов)
  • Обязательная 2FA для всех пользователей
  • Service accounts с JWT для межсервисной коммуникации

Месяц 2: Microsegmentation

  • Kubernetes: NetworkPolicy для каждого namespace
  • Cilium для L7 policy (HTTP path/method filtering)
  • Серверы вне K8s: WireGuard mesh (Netbird) + ACL

Месяц 3: Access proxy + monitoring

  • Замена VPN на ZTNA-прокси (Pomerium / Cloudflare Access)
  • Логирование всех access decisions
  • Алерты на аномальный доступ
# Pomerium — open-source ZTNA proxy
# Заменяет VPN для доступа к веб-сервисам
# pomerium-config.yaml
routes:
  - from: https://grafana.fincorp.ru
    to: http://grafana.internal:3000
    policy:
      - allow:
          and:
            - email:
                is: "@fincorp.ru"
            - groups:
                has: "engineering"
  - from: https://admin.fincorp.ru
    to: http://admin.internal:8080
    policy:
      - allow:
          and:
            - groups:
                has: "platform-admins"
            - device:
                is_valid_client_certificate: true

mTLS: шифрование всего внутреннего трафика

В Zero Trust внутренний трафик тоже шифруется — «сеть не доверенная». Mutual TLS: обе стороны проверяют сертификаты друг друга.

# Через Istio service mesh — mTLS автоматически
apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
  name: default
  namespace: production
spec:
  mtls:
    mode: STRICT  # Все соединения — только mTLS

# Или через Cilium — WireGuard encryption между нодами
helm upgrade cilium cilium/cilium \
  --set encryption.enabled=true \
  --set encryption.type=wireguard

Результат: даже если злоумышленник получит доступ к внутренней сети, он не сможет:

  • Прослушивать трафик (всё зашифровано)
  • Подделать запросы (mTLS проверяет identity)
  • Обратиться к сервису без авторизации (policy enforcement)

Результаты «ФинКорп»

МетрикаДо (VPN + firewall)После (Zero Trust)
Lateral movement при компрометацииСвободныйЗаблокирован
Время от компрометации до обнаружения~2 часа~5 минут (аномалия)
VPN-тикеты в ServiceDesk~40/мес0 (нет VPN)
Доступ для подрядчиковVPN → вся сетьКонкретный сервис
Audit trailТолько firewall logsКаждый запрос logged
Zero Trust — это не продукт, а архитектура. Нельзя «купить Zero Trust». Это набор принципов: identity verification, least privilege, microsegmentation, continuous monitoring. Инструменты — Keycloak, Cilium, Pomerium, Istio — реализуют эти принципы.

Часто задаваемые вопросы

Нужна помощь с внедрением?

Мы можем настроить, оптимизировать и взять на поддержку вашу инфраструктуру. У нас за плечами 15+ лет опыта, а наши 8 серверов Dell Xeon находятся в надёжном дата-центре МТС.

📞 Связаться с нами

Комментарии 0

Оставить комментарий

2 + 7 =

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.