Zero Trust Architecture

«Никогда не доверяй, всегда проверяй». Современный подход к безопасности, заменяющий старую модель «крепости с рвом» (perimeter security).

Откуда это пришло

2009: Google внутри запустил инициативу BeyondCorp после китайской атаки Operation Aurora. Идея: «корпоративная сеть не безопаснее интернета». Каждый запрос проверяется заново на каждом ресурсе.

2020: NIST оформил это в стандарт SP 800-207. Сейчас — стандарт de facto в облаке.

Старая модель vs Zero Trust

Perimeter (старое)Zero Trust
ДопущениеВнутри сети — доверяюНикому не доверяю по умолчанию
ЗащитаVPN на входе, firewallIdentity + контекст на каждый запрос
Доступ«Ты в офисе» → можно«Кто ты + откуда + с какого устройства + что хочешь»
Lateral movementЛёгкоеЗаблокировано
VPNОбязателенЗаменён на ZTNA

Семь принципов NIST 800-207

  1. Все источники данных и сервисы — это resources
  2. Все коммуникации защищены независимо от расположения сети
  3. Доступ к ресурсам выдаётся на per-session основе
  4. Доступ определяется динамической политикой: identity + device + behavior + контекст
  5. Мониторинг integrity всех активов
  6. Аутентификация и авторизация — динамические и строгие, перед каждым доступом
  7. Сбор телеметрии для улучшения политик безопасности

Что это значит на практике

1. Идентичность вместо IP

Не «10.0.5.42 имеет доступ к БД». А «сервис orders-api с сертификатом X имеет доступ к таблице orders на чтение».

2. ZTNA вместо VPN

Вместо «VPN → доступ ко всей внутренней сети» — точечный доступ к конкретным приложениям.

3. Microsegmentation

В Kubernetes — NetworkPolicy default deny, потом явные allow. Каждый pod общается только с теми, с кем нужно.

# Запретить всё входящее по умолчанию в namespace
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-ingress
spec:
  podSelector: {}
  policyTypes: [Ingress]

4. Continuous verification

Не «один раз залогинился — на 8 часов твой». А «каждый запрос проверяется». Сессии короткие, токены rotated.

5. Минимальные привилегии

Сервис получает токен с минимальным scope для конкретной операции. Не root role «делай что хочешь».

Внедрение в облаке

AWS

Kubernetes

Разработка

Типичные ошибки внедрения

💎 Best practice

Внедряй ZT итеративно: сначала один критичный сервис, потом расширяй. Параллельно — observability (Falco, audit logs, SIEM), иначе ничего не увидишь.

Ресурсы