Перейти к содержанию

Защита сетевого транспорта

Требования применяются к сетевым соединениям компонентов проекта. Уровни обязательности определены в корневом README.md.

SEC-TLS-001. Обязательный TLS

Уровень: MUST

Применяется к: передаче аутентификационных, персональных, секретных или бизнес-данных через недоверенную либо разделяемую сеть

Соединение должно использовать TLS версии 1.2 или выше. SSL, TLS 1.0 и TLS 1.1 должны быть отключены. Незашифрованный fallback после ошибки TLS запрещён.

Обоснование

Шифрование защищает конфиденциальность и целостность данных в пути.

Проверка

  • автоматическое сканирование поддерживаемых протоколов;
  • integration-тест отказа от устаревшей версии и plaintext;
  • review ingress, proxy, broker и client configuration.

Исключения

Plaintext допустим только внутри одного процесса. Иное отклонение требует ADR с анализом границы сети.

SEC-TLS-002. Проверка подлинности сервера

Уровень: MUST

Применяется к: каждому TLS-клиенту

Клиент должен проверять цепочку сертификата по утверждённому trust store, срок действия и соответствие имени целевому endpoint. Отключение проверки, trust-all callback и принятие self-signed сертификата без закреплённого корпоративного центра сертификации запрещены во всех средах.

Обоснование

Шифрование без проверки стороны не предотвращает man-in-the-middle.

Проверка

  • тест неверного имени, срока и неизвестного центра сертификации;
  • статическая проверка небезопасных client options;
  • review trust store.

Исключения

Self-signed сертификат допустим в изолированном тесте, если его сертификат явно добавлен в отдельный test trust store.

SEC-TLS-003. Набор криптографических параметров

Уровень: MUST

Применяется к: TLS endpoint и клиенту

Разрешённые cipher suites, алгоритмы подписи и параметры ключей должны соответствовать действующей корпоративной security-политике. При отсутствии такого перечня должны использоваться безопасные defaults поддерживаемой версии TLS-библиотеки без ручного включения устаревших алгоритмов.

Обоснование

Версия протокола не исключает слабую ручную криптографическую конфигурацию.

Проверка

  • TLS scanner;
  • сопоставление конфигурации с security-политикой;
  • проверка отсутствия устаревших алгоритмов.

Исключения

Совместимость с legacy-клиентом требует ограниченного ADR и срока отключения.

SEC-TLS-004. Область применения mTLS

Уровень: MUST

Применяется к: решению об аутентификации межсервисного соединения

Mutual TLS (mTLS) не является обязательным для всего межсервисного трафика. Проект должен применять mTLS, когда оно установлено моделью угроз, политикой среды или контрактом интеграции. Отсутствие mTLS не отменяет TLS и отдельную проверку service identity средствами протокола приложения.

Обоснование

mTLS применяется по границе доверия, а не заменяет авторизацию операции.

Проверка

  • review модели угроз и схемы потоков;
  • integration-тест выбранного механизма service identity;
  • тест отказа клиента без сертификата там, где mTLS обязательно.

Исключения

Не допускаются для границы, где mTLS предписано политикой.

SEC-TLS-005. Жизненный цикл сертификатов и ключей

Уровень: MUST

Применяется к: TLS private key, сертификату и trust bundle

Private key должен доставляться через предназначенный для runtime механизм секретов и не должен попадать в Git, image, build-артефакт или лог. Сертификаты должны обновляться до истечения срока без пересборки приложения. Клиент и сервер должны принимать ротацию сертификата и trust bundle без перерыва, превышающего установленный для компонента предел недоступности.

Обоснование

Управляемая доставка и ротация предотвращают утечку ключа и простой при истечении сертификата.

Проверка

  • secret scanning Git, build context и image;
  • integration-тест ротации сертификата и trust bundle;
  • alert до истечения сертификата.

Исключения

Перезапуск экземпляра для применения сертификата допустим при rolling deployment без нарушения SLO.