Понимание Tekton Chains
Tekton Chains — это мощный компонент безопасности в экосистеме Tekton, который помогает обеспечить безопасность вашей цепочки поставок программного обеспечения, генерируя, подписывая и храня свидетельства для артефактов, созданных с помощью Tekton Pipelines. Этот документ предоставляет подробное объяснение работы Tekton Chains и его ключевых компонентов.
Содержание
ТерминологияЗачем нужна Tekton ChainsПроблема безопасности цепочки поставок программного обеспеченияРешение Tekton ChainsПреимуществаСценарииСценарий 1: Обеспечение безопасности сборок контейнерных изображенийСценарий 2: Соответствие требованиям безопасностиСценарий 3: Обнаружение атак на цепочку поставокОграничения и недостаткиПринципыКак работает Tekton ChainsГенерация свидетельствПроцесс подписиПримеры конфигурацииБазовая конфигурация SLSA v1.0Пример подсказки типов для источника GitВажные параметрыКонфигурация храненияСценарии использованияПример конфигурацииКонфигурация подписиСценарии использованияПример конфигурацииСсылкиТерминология
Зачем нужна Tekton Chains
Проблема безопасности цепочки поставок программного обеспечения
В традиционных процессах разработки и доставки программного обеспечения обеспечение целостности и безопасности артефактов на протяжении всей цепочки поставок представляет собой значительные трудности:
- Недостаток отслеживаемости: Без надлежащей информации о свидетельствах трудно проверить, откуда пришли артефакты и как они были собраны
- Риски подделки: Артефакты могут быть изменены на различных этапах без обнаружения
- Сложности верификации: Пользователи артефактов не имеют надежного способа проверить их подлинность
- Проблемы соблюдения: Организации сталкиваются с трудностями в соответствии с растущими нормативными требованиями к безопасности цепочки поставок программного обеспечения
Эти проблемы привели к громким атакам на цепочку поставок, таким как SolarWinds, когда вредоносный код был вставлен в процесс сборки, что затронуло тысячи организаций.
Решение Tekton Chains
Tekton Chains решает эти задачи следующим образом:
- Автоматическая генерация свидетельств: Захват подробных метаданных о процессе сборки
- Криптографическая подпись: Обеспечение целостности и подлинности данных свидетельств
- Стандартизированные форматы: Поддержка отраслевых стандартных форматов, таких как свидетельство SLSA
- Гибкое хранилище: Обеспечение нескольких вариантов хранения и извлечения свидетельств
- Интеграция с существующими инструментами: Работа с инструментами, такими как 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. Рабочий процесс включает следующие шаги:
- Наблюдение: Контроллер следит за завершенными TaskRuns и PipelineRuns
- Снимок: Когда выполнение завершается, Chains делает снимок его состояния
- Форматирование: Chains генерирует свидетельство в настроенном формате (например, SLSA)
- Подпись: Свидетельство криптографически подписывается с использованием настроенного метода
- Хранение: Как свидетельство, так и подпись хранятся в сконфигурированных хранилищах

Генерация свидетельств
Tekton Chains использует подсказки типов, чтобы понять входные и выходные данные процесса сборки. Эта информация затем используется для генерации свидетельств в заданном формате:
- Сбор входных данных: Chains идентифицирует входные артефакты через подсказки типов
- Захват процесса сборки: Записываются детали об окружении сборки и этапах
- Идентификация выходных данных: Выходные артефакты идентифицируются через подсказки типов
- Сбор свидетельств: Вся информация собирается в стандартизированном формате
Процесс подписи
Tekton Chains поддерживает несколько методов подписи для соответствия различным требованиям безопасности:
- Извлечение ключа: Подписывающий ключ извлекается из сконфигурированного источника
- Подготовка полезной нагрузки: Данные свидетельства подготавливаются для подписывания
- Генерация подписи: Генерируется криптографическая подпись
- Данные для верификации: Включаются дополнительные данные, необходимые для верификации
Примеры конфигурации
Базовая конфигурация SLSA v1.0
Пример подсказки типов для источника Git
Важные параметры
Конфигурация хранения
Хранилища определяют, где хранятся свидетельства и подписи. Это имеет решающее значение для обеспечения доступности свидетельств, когда они необходимы для верификации.
Сценарии использования
- Хранилище Tekton: Полезно для отладки и внутренней верификации
- OCI Хранилище: Идеально для хранения свидетельств рядом с контейнерными изображениями
- GCS/DocDB Хранилище: Подходит для централизованного хранения и управления
Пример конфигурации
Конфигурация подписи
Конфигурация подписи определяет, как криптографически подписываются свидетельства, что необходимо для проверки их подлинности.
Сценарии использования
- x509: Стандартная подпись на основе сертификатов
- KMS: Облачное управление ключами для повышения безопасности
- Без ключа: Подпись с нулевым уровнем доверия с эфемерными ключами