nar3k 2d36bb8b76 Update README.md 3 tahun lalu
..
README.md 2d36bb8b76 Update README.md 3 tahun lalu

README.md

☑️ Yandex-Cloud-Security-Checklist

Этот документ пока является драфтом для публичного ревью

Yandex-Cloud-Security-Checklist

  • 🔵 Сетевая безопасность:

  • 🔵 Аутентификация и управление доступом:

    • ☑️ Централизованное управление и федерации удостоверений: создайте организацию в сервисе Yandex Cloud Organization и настройте федерацию удостоверений (Single Sign-On аутентификацию в Yandex.Cloud через свой сервер IdP). 📖Пример настройки для ADFS, 📖Пример настройки для Keycloak, 📖Пример настройки для Google Workspace
    • ☑️ Используйте федеративные аккаунты вместо аккаунтов Яндекс.Паспорта, где это возможно
    • ☑️ Принцип минимальных привелегий: назначайте сервисные роли (например compute.images.user) вместо примитивных (viewer, editor, admin), список всех ролей, 📖 пример назначения ролей, посмотрите вебинар 📹 Управление доступами в облаке
    • ☑️ Используйте Terraform Yandex Cloud IAM module: позволяет организовать группы доступов для пользователей облака и имеет ряд других удобных функций. IAM модуль (с примерами использования)
    • ☑️ Работа с сервисными аккаунтами: применяйте механизм назначения сервисного аккаунта виртуальной машине и получения токена через сервис метаданных. Настройте локальный файрвол на ВМ, чтобы только необходимые процессы и пользователи системы имели доступ к сервису метаданных (IP-адрес: 169.254.169.254), ссылка на решение (tbd)
    • ☑️ Используйте 2FA: настройке 2FA на стороне вашего IDP (при использовании федерации удостоверений), для паспортного аккаунта настройте 2FA согласно инструкции.
    • ☑️ Защитите billing.accounts.owner: выполните первоначальные операции и после этого не используйте. Для управления платежным аккаунтом назначьте роль admin или editor, viewer на платежный аккаунт выделенному сотруднику организации с федеративным аккаунтом.
    • ☑️ Защитите resource-manager.clouds.owner: назначьте роль resource-manager.clouds.owner сотрудникам организации с федеративным аккаунтом. Аккаунту Яндекс.Паспорта, с которым создано облако, назначьте сложный пароль и используйте только в случае крайней необходимости. Назначьте менее привелигированные доступы администраторам и используйте resource-manager.clouds.owner в случае крайней необходимости
    • ☑️ Ресурсная модель: Все критичные ресурсы, которые входят в область соответствия стандартам, поместите в отдельное облако, Группы ресурсов, разделите по каталогам, Общие ресурсы (например, сеть и группы безопасности) поместите в отдельный каталог для разделяемых ресурсов.
  • 🔵 Шифрование данных и управление ключами/секретами:

    • ☑️ Включиите server-side шифрование Yandex Object Storage: ссылка на инстуркцию. Помимо шифрования данных это защищает данные бакета от сценария когда бакет сделают публичным.
    • ☑️ Используйте Шифрование диска ВМ в Облаке с помощью YC KMS (если требуется): используйте 🔐Шифрование диска ВМ в Облаке с помощью YC KMS
    • ☑️ Шифруйте данные с помощью client-side encryption (если требуется): возможно использования client-side encryption при помощи KMS следующими библиотеками
    • ☑️ Защита ключей KMS: выдавайте только точечные права на KMS ключ - kms.keys.encrypterDecrypter, используйте ротацию ключей
    • ☑️ Управление секретами: используйте SecretManager для работы с секретами: Yandex Lockbox либо HashiCorp Vault c поддержкой KMS (из marketplace) или контейнер cr.yandex/yc/vault
  • 🔵 Безопасная конфигурация:

    • ☑️ Следите за default паролями в ПО внутри ВМ: Организационно и технически с помощью различных сканнеров уязвимостей
    • ☑️ Конфигурируйте ОС и ПО в соответствии с baseline и стандартами: для автоматизации соответствия различным стандартам и baseline (CIS, PCI DSS, др), например OpenSCAP
    • ☑️ Старайтесь не использовать серийную консоль: если необходимо то оценивайте указанные риски и отключайте по итогу работы
    • ☑️ Безопасное использование Terraform: используйте terraform remote state на базе Yandex Cloud Object Storage с функцией блокировки в Yandex Database Ссылка на решение. Где необходимо: используйте параметр “sensitive = true”. Старайтесь не передавать приватные данные в конфиг, но если требуется то используйте Secret Manager либо env vars. Подробнее
    • ☑️ Используйте контроль целостности на гостевых ОС: возможно имплементировать с помощью беcплатных host-based решений: Wazuh, Osquery либо с помощью платных решений в marketplace (Kaspersky security).
    • ☑️ Безопасная конфигурация Object Storage: шифрование (описано выше) + Bucket Policy/ACL + версионирование(защита от удаления) + включить встроенный аудит доступа + настройки CORS (при необходимости). 🔐Пример безопасной конфигурации Yandex Cloud Object Storage: Terraform
    • ☑️ Безопасная конфигурация Cloud Functionse: предоставлять токен сервисного аккаунта через нативный механизм с помощью назначенного сервисного аккаунта и метадаты. Старайтесь использовать приватные функции
    • ☑️ Безопасная конфигурация Yandex Container Registry: не рекомендуется использовать привилегированные контейнеры для запуска нагрузок. Используйте встроенный в сервис сканер уязвиомстей в образах (tbd ссылка на инстуркцию)
    • ☑️ Используйте Yandex Certificate Manager: Yandex Certificate Manager сервис для хранения, получения и обновления TLS-сертификатов от Let's Encrypt®, а также для загрузки собственных сертификатов. Интегрирован с: Yandex Object Storage, Yandex API Gateway, Application LoadBalancer
  • 🔵 Защита от вредоносного кода:

    • ☑️ Защитите от вредоносного кода уровень ОС: антивирусные решения представлены в marketplace, которые возможно устанавливать на ВМ в рамках сервиса Compute Cloud. 🔐Развертывание Kaspersky Antivirus в Yandex.Cloud (Compute Instance, COI)
    • ☑️ Защитите от вредоносного кода уровень Сети: NGFW/IDS/IPS (некоторые со встроенными Sandbox) представлены в marketplace
    • ☑️ Защитите от вредоносного кода уровень Образов контейнеров: Используйте встроенный в сервис Yandex Container registry сканер уязвиомстей в образах (tbd ссылка на инстуркцию)
  • 🔵 Управление уязвимостями:

  • 🔵 Сбор, мониторинг и анализ Аудит логов:

    • ☑️ Включите Audit trails: Yandex Audit Trails для всех облаков/каталогов
    • ☑️ Собирайте события с уровня гостевых ОС и приложений: например с помощью Yandex Managed Service for Elasticsearch, или с помощью бесплатных решений: osquery, wazzuh и др.
    • ☑️ При необходимости собирайте Flow logs: например с помощью NGFW из marketplace либо бесплатного ПО (в планах встроенные возможности)
    • ☑️ Настройке экспорт событий Audit Trails в SIEM: 🔐Экспорт в Yandex Managed Service for Elasticsearch (ELK), 🔐Экспорт в ArcSight, 🔐Экспорт в Splunk, в любой другой SIEM с помощью s3fs
    • ☑️ Используйте заготовленные Облаком Use cases: Use cases и важные события безопасности в аудит логах
    • ☑️ (Альтернатива) Реагирование на Audit Trails с Cloud Functions: Оповещения и реагирование на события ИБ Audit trails с помощью Cloud Logging/Cloud Functions + Telegram (tbd ссылка на решение)
    • ☑️ Регулярный аудит state: используйте yc client для запросов к текущему состоянию облачной инфраструктуры, либо партнерское решение Cloud Advisor
  • 🔵 Физическая безопасность:

  • 🔵 Резервное копирование:

  • 🔵 Управление бюджетами:

  • 🔵 Реагирование на инциденты:

  • 🔵 Безопасность Managed Service for Kubernetes:

    • Шифрование данных и управление ключами/секретами Managed Kubernetes:
    • ☑️ Включиите server-side шифрование в k8s: включение шифрования secrets в etcd ссылка на инстуркцию. Делайте это всегда вне зависимости будете ли вы использовать решения ниже по управления секретами или нет
    • ☑️ Управление секретами: используйте SecretManager для работы с секретами: Yandex Lockbox либо HashiCorp Vault c поддержкой KMS (из marketplace) или контейнер cr.yandex/yc/vault. Управление секретами c SecretManager(Lockbox,Vault).
    • Сетевая безопасность:
    • ☑️ Настройте группы безопасности для k8s: подробная инструкция. Не рекомендуется давать публичный доступ и публичные адреса компонентам k8s
    • ☑️ Используйте Ingress контроллер: для доступа извне к сервисам k8s используйте Ingress контроллер (https) с типом LoadBalancer (внешний либо внутренний) Рекомендуется использовать Application Load Balancer ingress conroller. А также возможно использовать и другие ingress controllers например Инструкция по настройке nginx ingress conroller
    • Защищайте сервисы и Ingress Conroller Kubernetes от DDoS, создав IP адрес с защитой от DDoS и назначив его сервису либо application ingress conroller.
    • ☑️ Сетевые политики (Network Policy): ограничьте доступ на уровне k8s с помощью network policy calico либо продвинутых network policy cilium
    • Если необходимо обеспечить к приложению доступ только из ограниченного пула адресов - то в случае Application Load Balancer Ingress controller используйте группы безопасности, назначенную на него. В случае других ingress conrollers используйте Network Policy
    • Аутентификация и управление доступом:
    • ☑️ Правильно построить ролевую модель в k8s: Детальное описание ролевого доступа в k8s. 🔐Пример настройки ролевых моделей и политик в Managed Service for Kubernetes. Контролируйте права доступа сервисного аккаунта группы узлов (как правило достаточно: container-registry.images.puller)
    • Безопасная конфигурация:
    • ☑️ Конфигурация группы узлов в соответствии с baseline и стандартами: настройке группы узлов в соответствии со стандартами и baseline: NIST, CIS, др. Возможно использовать автоматизированные инструменты: kubebench, kubescape
    • ☑️ Используйте runtime security и Policy Engine: пример runtime security: Falco, примеры Policy Engine: OPA Gatekeeper, Kyverno. 🔐Пример установки Falco+Policy Engine с отправкой alerts в managed ELK
    • ☑️ Обновления безопасности: выберите подходящий канал обновления и настройте автоматическое применение обновлений либо применяйте их вручную сразу после публикации в выбранном канале. Также выполняйте своевременное обновление собственного ПО на группах узлов
    • ☑️ Распределяйте поды на разные группы узлов: с помощью node taints and tolerations + node affinity (по нагрузке и степени приватности)
    • Cбор, мониторинг и анализ Аудит логов:
    • ☑️ Собирайте, анализируйте аудит логи k8s и инструментов защиты: 🔐Анализ логов безопасности k8s в Managed ELK: аудит-логи, policy engine, falco
    • ☑️ Собирайте, анализируйте аудит логи workloads и группы узлов: например, с помощью открытых инструментов
    • ☑️ Мониторьте аномальную нагрузку: с помощью Yandex Cloud Monitoring
    • Резервное копирование:
    • ☑️ Выполняйте резервное копирование: например в object storage по гайду, необходимо следовать рекомендациям из раздела «Безопасная конфигурация Yandex Object Storage»