Нулевое доверие в микросервисной архитектуре
Как финансовый финтех-стартап «ФинКод» устранил уязвимости внутренней сети, внедрив автоматизированную верификацию API через Verifly.
Введение: Почему периметр больше не работает
Традиционная модель безопасности «замка и дворника» (castle-and-moat) устарела. В современной распределенной системе атаки идут изнутри.
Когда команда «ФинКод» перешла с монолита на 40+ микросервисов, они столкнулись с классической проблемой: сервисы доверяли друг другу по умолчанию, находясь в одной подсети VPC. Взлом одного слабого сервиса (например, публичного API для загрузки аватаров) открывал доступ к базе транзакций.
Принцип Zero Trust («никому не доверяй, проверяй всегда») требует, чтобы каждое обращение к API, даже внутреннее, было строго верифицировано. Но как внедрить это без падения производительности на 40%?
Проблемы традиционной аутентификации
OAuth2 и JWT — это стандарты, но их реализация часто оставляет лазейки.
Высокая латентность
Проверка токена у центрального сервера авторизации (Auth Server) добавляет 50-100мс к каждому запросу. В高频交易系统 это недопустимо.
Лавина зависимостей
Если Auth Service падает, падает весь кластер. Традиционные шлюзы (API Gateways) становятся единой точкой отказа.
Дрейф конфигураций
Разработчики часто отключают проверки в тестовых средах, и эти настройки случайно попадают в продакшн.
Роль Verifly в политике доступа
Verifly внедряется не как шлюз, а как библиотека валидации внутри самого сервиса, что обеспечивает максимальную скорость.
Архитектурное решение
Вместо того чтобы полагаться на сетевые ACL, мы настроили Verifly для проверки семантики запроса. Платформа анализирует заголовки и тело запроса, сверяя их с декларативной политикой безопасности.
Команда «ФинКод» использовала Verifly для:
- Верификации подписей: Проверка HMAC заголовков без обращения к внешним сервисам.
- Валидации контрактов: Убедиться, что сервис «Оповещения» не пытается записать данные в базу «Платежей».
- Автоматического блокирования: Мгновенный отказ (403 Forbidden) при малейшем отклонении от схемы.
Практический пример конфигурации
Ниже представлен фрагмент YAML-конфигурации, который «ФинКод» использует для защиты эндпоинта транзакций.
verifly:
policy: strict
# Блокируем любые запросы без подписи
auth:
type: hmac-sha256
header: X-Vfy-Signature
timeout: 10ms
schema:
endpoint: /api/v1/transactions
method: POST
rules:
- field: amount
type: decimal
constraint: > 0.00
- field: currency
enum: [USD, EUR, RUB]
- field: user_id
type: uuid
required: true
on_violation:
action: reject
log_level: warn
С такой конфигурацией бизнес-логика приложения вообще не знает о проверках. Verifly делает это на уровне middleware до того, как данные попадут в контроллер.
Заключение
Переход на Zero Trust — это не просто установка файрвола, это изменение культуры разработки.
Используя Verifly, «ФинКод» смог гарантировать, что каждый байт данных, проходящий через их инфраструктуру, легитимен. Это позволило им пройти аудит безопасности за рекордные 2 недели и получить сертификацию для работы с банковскими картами.
Безопасность не должна замедлять разработку. С правильной инструментарной платформой, она становится её неотъемлемой частью.