• Русский
  • Понимание Tekton Chains

    Tekton Chains — это мощный компонент безопасности в экосистеме Tekton, который помогает обеспечить безопасность вашей цепочки поставок программного обеспечения, генерируя, подписывая и храня свидетельства для артефактов, созданных с помощью Tekton Pipelines. Этот документ предоставляет подробное объяснение работы Tekton Chains и его ключевых компонентов.

    Терминология

    ТерминОписание
    СвидетельствоМетаданные, описывающие, как был произведен артефакт, включая процесс сборки, входные данные и окружение
    SLSAУровни цепочки поставок для программных артефактов — рамочная структура безопасности для целостности цепочки поставок программного обеспечения
    АттестацияАутентифицированные метаданные о программных артефактах, следуя формату attestation in-toto
    ПодписьКриптографическое доказательство, подтверждающее подлинность и целостность данных свидетельства
    Подсказки типовСпециально названные результаты/параметры, которые помогают Tekton Chains понимать входные и выходные данные
    ХранилищеСистема, в которой Tekton Chains хранит свидетельства и подписи

    Зачем нужна Tekton Chains

    Проблема безопасности цепочки поставок программного обеспечения

    В традиционных процессах разработки и доставки программного обеспечения обеспечение целостности и безопасности артефактов на протяжении всей цепочки поставок представляет собой значительные трудности:

    • Недостаток отслеживаемости: Без надлежащей информации о свидетельствах трудно проверить, откуда пришли артефакты и как они были собраны
    • Риски подделки: Артефакты могут быть изменены на различных этапах без обнаружения
    • Сложности верификации: Пользователи артефактов не имеют надежного способа проверить их подлинность
    • Проблемы соблюдения: Организации сталкиваются с трудностями в соответствии с растущими нормативными требованиями к безопасности цепочки поставок программного обеспечения

    Эти проблемы привели к громким атакам на цепочку поставок, таким как SolarWinds, когда вредоносный код был вставлен в процесс сборки, что затронуло тысячи организаций.

    Решение Tekton Chains

    Tekton Chains решает эти задачи следующим образом:

    1. Автоматическая генерация свидетельств: Захват подробных метаданных о процессе сборки
    2. Криптографическая подпись: Обеспечение целостности и подлинности данных свидетельств
    3. Стандартизированные форматы: Поддержка отраслевых стандартных форматов, таких как свидетельство SLSA
    4. Гибкое хранилище: Обеспечение нескольких вариантов хранения и извлечения свидетельств
    5. Интеграция с существующими инструментами: Работа с инструментами, такими как Sigstore, Cosign и облачными сервисами KMS

    При внедрении Tekton Chains организации могут достичь более высоких уровней безопасности цепочки поставок и соответствовать требованиям соблюдения SLSA.

    Преимущества

    • Автоматизация: Автоматически генерирует и подписывает свидетельства без ручного вмешательства
    • Стандартизация: Поддерживает отраслевые стандарты форматов, такие как SLSA и in-toto
    • Гибкость: Работает с различными механизмами подписи и хранилищами
    • Интеграция: Плавно интегрируется в экосистему Tekton Pipelines
    • Прозрачность: Обеспечивает четкую видимость того, как были произведены артефакты
    • Соответствие: Помогает соответствовать нормативным и отраслевым требованиям безопасности цепочки поставок

    Сценарии

    Сценарий 1: Обеспечение безопасности сборок контейнерных изображений

    Команда разработчиков использует Tekton Pipelines для сборки контейнерных изображений. Внедрив Tekton Chains, они могут автоматически генерировать подписанное свидетельство для каждого изображения, которое включает детали о исходном коде, окружении сборки и этапах сборки. Это свидетельство хранится вместе с изображением в их реестре контейнеров, позволяя downstream-пользователям проверять подлинность изображения и процесс сборки.

    Сценарий 2: Соответствие требованиям безопасности

    Организации необходимо соответствовать требованиям безопасности, которые обязывают к отслеживаемости и проверке целостности для всего развернутого программного обеспечения. Используя Tekton Chains, они могут генерировать свидетельства SLSA для всех артефактов, предоставляя криптографические доказательства того, как и из каких источников был собран каждый артефакт. Это помогает им выполнять требования аудита и продемонстрировать добросовестность в обеспечении их цепочки поставок.

    Сценарий 3: Обнаружение атак на цепочку поставок

    Команда безопасности хочет убедиться, что не происходит несанкционированных изменений в их процессе сборки. С помощью Tekton Chains любая попытка вмешательства в процесс сборки приведет к свидетельству, которое не соответствует ожидаемым значениям. Внедрив шаги верификации в свой процесс развертывания, они могут автоматически обнаруживать и предотвращать развертывание артефактов с подозрительными свидетельствами.

    Ограничения и недостатки

    • Зависимость от Kubernetes: Требуется кластер Kubernetes с установленными Tekton Pipelines
    • Сложность конфигурации: Для точного получения свидетельств требуется правильная конфигурация подсказок типов
    • Управление ключами: Необходима безопасная организация подписывающих ключей
    • Требования к хранению: Для свидетельств и подписей требуется дополнительное хранилище
    • Влияние на производительность: Подписание и хранение свидетельств добавляет некоторую нагрузку к процессу сборки

    Принципы

    Как работает Tekton Chains

    Tekton Chains функционирует через контроллер, который наблюдает за ресурсами TaskRun и PipelineRun в кластере Kubernetes. Рабочий процесс включает следующие шаги:

    1. Наблюдение: Контроллер следит за завершенными TaskRuns и PipelineRuns
    2. Снимок: Когда выполнение завершается, Chains делает снимок его состояния
    3. Форматирование: Chains генерирует свидетельство в настроенном формате (например, SLSA)
    4. Подпись: Свидетельство криптографически подписывается с использованием настроенного метода
    5. Хранение: Как свидетельство, так и подпись хранятся в сконфигурированных хранилищах

    Рабочий процесс Tekton Chains

    Генерация свидетельств

    Tekton Chains использует подсказки типов, чтобы понять входные и выходные данные процесса сборки. Эта информация затем используется для генерации свидетельств в заданном формате:

    1. Сбор входных данных: Chains идентифицирует входные артефакты через подсказки типов
    2. Захват процесса сборки: Записываются детали об окружении сборки и этапах
    3. Идентификация выходных данных: Выходные артефакты идентифицируются через подсказки типов
    4. Сбор свидетельств: Вся информация собирается в стандартизированном формате

    Процесс подписи

    Tekton Chains поддерживает несколько методов подписи для соответствия различным требованиям безопасности:

    1. Извлечение ключа: Подписывающий ключ извлекается из сконфигурированного источника
    2. Подготовка полезной нагрузки: Данные свидетельства подготавливаются для подписывания
    3. Генерация подписи: Генерируется криптографическая подпись
    4. Данные для верификации: Включаются дополнительные данные, необходимые для верификации

    Примеры конфигурации

    Базовая конфигурация SLSA v1.0

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: chains-config
      namespace: tekton-chains
    data:
      artifacts.taskrun.format: "slsa/v2alpha3"
      artifacts.taskrun.storage: "tekton,oci"
      artifacts.taskrun.signer: "x509"
      artifacts.pipelinerun.format: "slsa/v2alpha3"
      artifacts.pipelinerun.storage: "tekton"
      artifacts.pipelinerun.signer: "x509"
      artifacts.oci.format: "simplesigning"
      artifacts.oci.storage: "oci"
      artifacts.oci.signer: "x509"

    Пример подсказки типов для источника Git

    apiVersion: tekton.dev/v1
    kind: TaskRun
    metadata:
      name: build-from-source
    spec:
      taskSpec:
        results:
          - name: CHAINS-GIT_URL
            description: URL репозитория Git
          - name: CHAINS-GIT_COMMIT
            description: SHA коммита Git
          - name: IMAGE_URL
            description: URL собранного изображения
          - name: IMAGE_DIGEST
            description: Дайджест собранного изображения
        steps:
          # Реализация задачи

    Важные параметры

    Конфигурация хранения

    Хранилища определяют, где хранятся свидетельства и подписи. Это имеет решающее значение для обеспечения доступности свидетельств, когда они необходимы для верификации.

    Сценарии использования

    • Хранилище Tekton: Полезно для отладки и внутренней верификации
    • OCI Хранилище: Идеально для хранения свидетельств рядом с контейнерными изображениями
    • GCS/DocDB Хранилище: Подходит для централизованного хранения и управления

    Пример конфигурации

    artifacts.taskrun.storage: "tekton,oci"
    artifacts.pipelinerun.storage: "tekton"
    artifacts.oci.storage: "oci"

    Конфигурация подписи

    Конфигурация подписи определяет, как криптографически подписываются свидетельства, что необходимо для проверки их подлинности.

    Сценарии использования

    • x509: Стандартная подпись на основе сертификатов
    • KMS: Облачное управление ключами для повышения безопасности
    • Без ключа: Подпись с нулевым уровнем доверия с эфемерными ключами

    Пример конфигурации

    artifacts.taskrun.signer: "x509"
    artifacts.pipelinerun.signer: "x509"
    artifacts.oci.signer: "x509"

    Ссылки