GH GambleHub

Укрепление прод-среды и аудит

1) Цели и зона ответственности

Продакшен — это не только «самая стабильная среда», но и наиболее атакуемая. Наша задача:
  • минимизировать площадь атаки и Blast Radius;
  • защитить каналы, учетки, секреты и артефакты поставки;
  • обнаруживать и реагировать на инциденты быстрее MTTR-целей;
  • подтверждать соответствие нормативам (GDPR/PCI DSS/локальные правила);
  • сохранять проверяемость (auditability) всех критичных действий.

Ключевые принципы: Zero Trust, Least Privilege, Segmentation, Everything-as-Code, Security-by-Default.

2) Сетевой периметр и сегментация

Сегменты: Edge (WAF, бот-менеджмент, DDoS), DMZ (gateway), App (микросервисы), Data (БД/кэши), Backoffice/Ops (CI/CD, observability).
Политики L4/L7: deny-by-default, явные allow по сервисам/неймспейсам/портам.
mTLS внутри кластера; TLS 1.2+ на периметре, HSTS, безопасные шифры.
Входной фильтр: WAF (OWASP Top-10), анти-бот, rate limits, гео/ASN-блоки, CAPTCHA на риск-пути.
DDoS protection: always-on + auto-mitigation, отдельные профили для API/статического контента.
Egress-контроль: только необходимые внешние хосты для провайдеров (PSP/KYC/игры).

3) Идентичности, доступ и привилегии (IAM/PAM)

SSO (OIDC/SAML) + MFA для людей; OIDC-токены/Workload Identity для сервисов.
RBAC/ABAC: роли с минимально необходимыми разрешениями; «break-glass» доступ под аудитом и TTL.
PAM: выписывание привилегированных сессий по запросу, полная запись и журналирование.
CIEM (облака): поиск чрезмерных прав и мертвых ролей, авто-ремедиация.
Доступ к прод-данным: только через одобренные jump/прокси, с маскированием PII.

4) Секреты и криптография

KMS/HSM: хранение ключей, envelope-шифрование, ротации с уведомлениями.
Секрет-менеджер: короткоживущие креды, исключить секреты из Git/логов.
Подписи: артефактов (cosign), webhooks (HMAC), служебных токенов.
Поля PAN/PII: токенизация/шифрование at-rest; маскирование в логах и превью.
Политики ротации: ключи/сертификаты/пароли — регламентно и принудительно.

5) Контейнеры и Kubernetes (CWPP/KSPM)

Базовые образы: минимальные, скан уязвимостей на CI; rootless где возможно.
Admission-политики (OPA/Gatekeeper/Kyverno): запрещаем `:latest`, `privileged`, hostPath; требуем подписи образов.
NetworkPolicies: межсервисная связь только по необходимости.
PodSecurity: ограниченные capabilities, read-only FS, seccomp, AppArmor.
Секреты: из Secret Store CSI (KMS); ни одного plain-секрета в манифестах.
Runtime-защита: поведенческие правила (eBPF), алерты на аномалии.

Пример OPA-правила (запрет незаподписанных образов):
rego package k8sadmission deny[msg] {
input. request. kind. kind == "Pod"
some c image:= input. request. object. spec. containers[c].image not startswith(image, "registry. company. com/signed/")
msg:= sprintf("Image must be signed and come from trusted registry: %v", [image])
}

6) Цепочка поставки: доверяй, но проверяй

SBOM на каждый билд; хранение и связывание с релизом.
Подписи образов/манифестов, проверка в admission-контроллере.
SLSA-аттестации: доказуемое происхождение артефактов.
Policy-as-Code: Conftest/OPA на Terraform/Helm/K8s перед мержем.
Запрет «last-minute patching» на проде: все изменения — только через пайплайн.

7) Управление уязвимостями и патчами

SCA/SAST/DAST в CI; пороги блокировки для critical/high.
Еженедельные батчи обновлений (образы, ОС-пакеты, библиотеки) + экстренные внепланово.
Выполненные исправления → тикеты/релизы с привязкой к CVE/SBOM.
EASM: внешний обзор поверхности атаки (поддомены, открытые порты, сертификаты).
Регулярные пен-тесты: минимум раз в год + таргетные по критичным потокам (платежи/KYC).

8) Логи, метрики, трассировки и хранение артефактов аудита

Стандартизованные логи (JSON) с `trace_id`, `request_id`, user/tenant/geo (псевдонимно), без PII/PAN.
Метрики: p50/p95/p99, error-rate, saturation, DLQ, ретраи, бизнес-KPI (Time-to-Wallet).
Трейсинг (OTel): end-to-end для критичных маршрутов (депозит/KYC/вывод).
SIEM: корреляция событий (аутентификация, изменения ролей, админ-действия, правила WAF/ботов).
SOAR: авто-реакции (изоляция пода, отзыв токена, блок IP/ASN, запрет релиза).
Ретеншн: операционные логи — 30–90 дней горячее хранение, аудит-артефакты — дольше, по политикам.

Минимальный формат лога (пример):
json
{
"ts":"2025-11-05T15:00:00Z",
"sev":"WARN",
"svc":"payments-api",
"route":"POST /v1/payments",
"trace_id":"2f9f...e1",
"user":"anon",
"tenant":"eu-casino-12",
"geo":"EU",
"event":"circuit_breaker_open",
"provider":"psp-1"
}

9) Антибот, мошенничество и защитные сценарии

Бот-менеджмент: сигнатуры/поведение, device-fingerprint, динамические челленджи.
Rate limits/quotas: per-user/tenant/IP; адаптивные при аномалиях.
RASP-датчики на критичных эндпоинтах (попытки обхода подписи webhooks, дрейф часов, повторная доставка).
Fraud-сигналы: корреляция по каналам (логины, платежи, KYC), авто-эскалации.

10) Резервирование, DR и BCP

RTO/RPO цели определены и тестируются (например, RTO ≤ 1 час, RPO ≤ 5 минут для платежных БД).
Бэкапы: шифрованные, периодически в оффлайн-хранилище; регулярные restore-тесты.
Гео-дублирование: актив-пассив/актив-актив по регионам; DNS-failover с TTL-контролем.
Каталог критичных зависимостей (PSP/KYC/агрегаторы игр) и планы переключения.

11) Инциденты и реагирование

Runbooks: для падения провайдера, роста латентности, компрометации токена, DDoS.
On-call: 24/7, ротации и бласт-пейджи; совместная «war-room» практика.
Коммуникации: шаблоны сообщений клиентам/партнерам и регуляторам.
Post-mortem (blameless): действия по предотвращению повторений, обновление политик/плейбуков.

12) Комплаенс и приватность

GDPR: минимизация данных, регистры согласий, право на удаление/портирование; DPIA для новых провайдеров.
PCI DSS: токенизация/изолированные зоны PAN, сетевые сегменты, строгие журналы доступа.
Локальные требования (юрисдикции рынков): хранение данных в регионе, отчетность, окна обновлений.
Data Lineage: где и как текут PII/PAN; схемы и DPIA в DevPortal.

13) Аудит: типы, артефакты и цикл

Типы аудита:
  • Внутренний (ежеквартально): соответствие политикам, контроль изменений, доступов, секретов, логов, пайплайнов.
  • Внешний (ежегодно/по требованиям): PCI/GDPR/локальные регуляторы, пен-тесты, SOC-отчеты провайдеров.
Ключевые артефакты (что готовить заранее):
  • Политики безопасности, IAM-матрица ролей, список исключений с датой истечения.
  • Логи изменений инфраструктуры (IaC), отчеты CI/CD (SBOM, подписи, тесты).
  • Реестр провайдеров (PSP/KYC/игры), DPIA/вендор-риск-оценки, договоры и SLA.
  • Журналы доступа в прод, результаты ротаций секретов, отчеты SIEM/SOAR.
  • Планы DR/BCP и протоколы последних restore-тестов.
Подход к аудиту:
  • «Evidence-first»: каждая практика — проверяемый артефакт.
  • «No humans in prod»: максимум через пайплайны и одобренные заявки; все сессии — под журнал.
  • «Trace everything»: соотнесите изменения с инцидентами/метриками.

14) Guardrails-as-Code: примеры

Conftest для Terraform (запрет публичных БД):
rego package terraform. deny deny[msg] {
input. resource. type == "aws_db_instance"
input. resource. publicly_accessible == true msg:= "RDS must not be public"
}

AdmissionPolicy (K8s): требуем метки безопасности и ресурс-лимиты

yaml apiVersion: kyverno. io/v1 kind: ClusterPolicy metadata:
name: enforce-security-labels-and-limits spec:
rules:
- name: require-labels match: {resources: {kinds: ["Deployment","StatefulSet"]}}
validate:
message: "security labels required"
pattern:
metadata:
labels:
security. tier: "?"
data. classification: "?"
- name: require-limits match: {resources: {kinds: ["Deployment","StatefulSet"]}}
validate:
message: "resources limits/requests required"
pattern:
spec:
template:
spec:
containers:
- resources:
limits:
cpu: "?"
memory: "?"
requests:
cpu: "?"
memory: "?"

15) Чек-лист ежедневной гигиены прод-среды

  • WAF/бот-политики активны, сигнатуры обновлены; анти-DDoS в режиме always-on.
  • Admission-контроллеры в кластере в состоянии enforce, не audit.
  • Все прод-образы подписаны; SBOM доступен и привязан к релизу.
  • Уязвимости critical/high — отсутствуют или зафиксированы исключениями с датой.
  • Ротации секретов/сертификатов — по графику, просрочек нет.
  • SIEM коррелирует события входа/изменения IAM/релизов; SOAR-плейбуки тестируются.
  • Бэкапы прошли, restore-тест в расписании; DR-план валиден.
  • Доступы в прод — только через SSO+MFA/PAM; все сессии записываются.
  • «No PII in logs» — валидируется сканерами; маскирование включено.
  • Release gates и наблюдаемость обновлены «as-code».

16) Модель зрелости (кратко)

1. Базовая — ручные изменения, единый периметр, частичный мониторинг.
2. Продвинутая — сегментация, IAM/RBAC, подписанные артефакты, WAF/DDoS, SIEM, регулярные патчи.
3. Экспертная — Zero Trust, guardrails-as-code, SLSA-аттестации, runtime-защита, SOAR-автоматизация, «no humans in prod», непрерывный аудит.

17) Дорожная карта внедрения

M0–M1 (MVP): сегментация сети, WAF/DDoS, SSO+MFA, KMS, базовые Admission-policy, стандартизованные логи/метрики/трейсы, SIEM.
M2–M3: подписи образов и проверка admission, SBOM, Conftest/OPA на IaC, PAM, план ротаций, регулярные патчи, первые DR-тесты.
M4–M6: SOAR-плейбуки, eBPF/runtime-детект, EASM, комплаенс-пакет (PCI/GDPR), полный набор артефактов аудита, ring-DR по регионам.
M6+: Zero-Trust сеть (mTLS везде), CIEM, автоматизированные контрольные отчеты аудита, постоянное «purple-team» тестирование.

Краткий вывод

Сильный прод — это не набор «железных» правил, а система: сегментация, строгие идентичности и секреты, защищенная поставка, управляемые контейнеры, наблюдаемость и автоматизированная реакция. Добавьте к этому проверяемость (артефакты аудита, SBOM/подписи, журналы), и прод-среда становится предсказуемой, управляемой и готовой к внешним проверкам — без компромиссов по скорости релизов и бизнес-SLO.

Contact

Свяжитесь с нами

Обращайтесь по любым вопросам или за поддержкой.Мы всегда готовы помочь!

Telegram
@Gamble_GC
Начать интеграцию

Email — обязателен. Telegram или WhatsApp — по желанию.

Ваше имя необязательно
Email необязательно
Тема необязательно
Сообщение необязательно
Telegram необязательно
@
Если укажете Telegram — мы ответим и там, в дополнение к Email.
WhatsApp необязательно
Формат: +код страны и номер (например, +380XXXXXXXXX).

Нажимая кнопку, вы соглашаетесь на обработку данных.