Добро пожаловать обратно во вторую часть нашей серии блогов, где мы углубимся в мощные возможности Valint. В этой статье мы сосредоточимся на механизме политики Valint и его ключевой роли в обеспечении соблюдения требований во всей вашей цепочке поставок.
В нашей предыдущей публикации в блоге мы представили обзор Принципы дизайна Валинта.
Как работает механизм политик
Механизм политики Валинта работает на основе набора правил, организованных в политики, проверенные на основе доказательств, собранных в цепочке поставок. Давайте разберем его ключевые компоненты:
Доказательства: Неизменяемые объекты, которые предназначены для автоматического использования политиками. Эти объекты содержат метаданные, необходимые для обеспечения применения политики и соблюдения требований соответствия. Содержимое доказательств включает метаданные об артефактах, событиях и настройках, но также может собирать фактические отчеты, конфигурации или сканирования. Доказательства могут быть как подписанными, так и неподписанными. Мы предлагаем следовать Intoto спецификация аттестации используя подписанный засвидетельствование и беззнаковый форматы соответственно.
- Аттестации (также известные как проверяемые подписанные доказательства): Поддающиеся проверке доказательства, связанные с конкретным экологический контекст, передавая доверие с помощью той или иной формы подписей PKI.
политика: Они определяют требования, которым должна соответствовать ваша цепочка поставок, охватывая различные аспекты, такие как проверка, детали соответствия и окончательный вердикт на основании доказательств. Например, в организации может быть «политика образов контейнеров».
Правила политики: Политики состоят из правил, каждое из которых представляет собой определенную проверку соответствия. Примеры включают проверку подписей и личности, проверку компонентов SBOM, проверку отсутствия критических уязвимостей. Следуя предыдущему примеру, «Политика образа контейнера» может состоять из следующих правил:
- Принудительное подписание образа.
- Предупреждайте, что на изображении нет жалоб с конкретными ярлыками.
Связки: Собрания политик и правил, на которые можно удобно ссылаться в целом. Пакеты предоставляют модульный и организованный способ управления наборами политик и их применения в виде кода. Пакет политик Scribe по умолчанию опубликован в разделе https://github.com/scribe-public/sample-policies, не стесняйтесь ссылаться на него.
Использование политик с Valint
Valint дает пользователям возможность использовать политики в виде кода из общедоступных или частных репозиториев, предлагая гибкость и возможности настройки. Для начала просто установите Valint и определите свои политики в соответствии с вашими потребностями в обеспечении соответствия.
Установка: Начните с установки Valint, используя предоставленный скрипт. Выполните следующую команду в своем терминале:
curl -sSfL https://get.scribesecurity.com/install.sh | sh -s — -t valint
Определение политики: Затем определите свои политики в соответствии с требованиями соответствия вашей организации. Создайте файл YAML, например my_policy.yaml
и структурируйте его так, чтобы инкапсулировать желаемые правила. Вот пример того, как может выглядеть ваш файл политики:
имя: my_image_policy по умолчанию: свидетельство: подписано: истинные правила: - использует: images/fresh-image@v1 с: max_days: 100 - использует: images/verify-labels-exist@v1 уровень: предупреждение с: labels: # изображение, необходимое для быть помечено (команда Dockerfile LABEL) - сопровождающий # Требовать метку сопровождающего. - org.opencontainers.image.source # Требовать, чтобы изображения были помечены источниками
В этом примере мы определили политику с именем my_image_policy
, согласно которому доказательства должны быть подписаны, а изображения должны быть созданы в течение последних 100 дней. Кроме того, он выдает предупреждение, если у изображений отсутствуют определенные метки.
Не стесняйтесь проверить другие правила мы поддерживаем «из коробки».
Создание доказательств: Прежде чем оценивать свою политику, вам необходимо собрать необходимые доказательства. Используйте Valint, чтобы создать доказательства вашего целевого изображения:
valint bom nginx:latest -o attest
Эта команда генерирует доказательства nginx:latest
изображение, гарантируя, что оно включает метаданные, такие как идентификатор изображения и время создания. По умолчанию Валинт использует Сигстор сервис в качестве подписывающего лица для создания доказательств, которые привязывают идентификатор OIDC к сертификату. Однако Валинт также поддерживает использование ваших собственных x509 Ключи PKI и цепочки CA для подписи.
Просто выберите идентификатор OIDC по вашему выбору для подписи.
Наконец, вы можете проверить успешность процесса создания доказательств, а также их идентичность, чтобы убедиться в их целостности и достоверности.
[2024-03-26 12:41:55] ИНФО-подтверждение: [ДОВЕРЕННОЕ] успешное подписание, CA: fulcio-signer, CN: sigstore-intermediate, электронные письма: [your_identity@gmail.com], URI: [] ... [2024-03-26 12:41:55] ИНФО-аттест: доказательства успешно сгенерированы
Оценка политики. Когда ваша политика определена и собраны доказательства, пришло время сравнить ее с компонентами вашей цепочки поставок. Используйте valint verify
команда, за которой следует целевой образ и ваш файл политики:
valint verify nginx:latest --policy my_policy.yaml
Резюме оценки:
После завершения оценки просмотрите сводную таблицу, предоставленную журналами Valint.
В данном конкретном случае анализ Валинта показывает, что nginx:latest
изображение успешно соответствует требованию свежести, но не соответствует критериям маркировки, как ожидалось. В представленной таблице кратко описывается статус оценки каждого правила с указанием того, были ли доказательства правильно подписаны.
Результаты в формате SARIF:
Кроме того, вы можете изучить результаты в формате SARIF, полученные Valint, который является еще одним доказательством, детализирующим оценку, нарушения, уровни и ссылки на доказательства.
Поддерживаемые платформы управления:
Этот стандартизированный формат поддерживается различными системами управления безопасностью, такими как GitHub, Azure и Scribe SAAS. Платформы Scribe не только обрабатывают результаты политики, но также облегчают управление доказательствами и предлагают обширные функции для управления уязвимостями, отслеживания показателей и многого другого.
Предварительный просмотр информации:
Чтобы получить представление об информации, доступной в результатах политики:
{ "версия": "2.1.0", "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json", "runs": [ { "tool": { "driver": { "informationUri": "https://scribesecurity.com", "name": "valint", "rules": [ { "id": "fresh -image", "name": "Fresh Image", "shortDescription": { "text": "Правило для проверки того, что изображение не старше порогового значения" }, }, { "id": "labels", "name": "Labels", "shortDescription": { "text": "Правило для проверки наличия на изображении всех необходимых меток" }, }, "results": [ { "ruleId": "fresh-image" , "ruleIndex": 0, "kind": "пройти", }, { "ruleId": "labels", "ruleIndex": 1, "kind": "fail", "level": "предупреждение", "policy" .violation": { "type": "Отсутствуют ярлыки", "details": [ { "label": "not_found" }, { "label": "org.opencontainers.image.source" } }, ... ] }
Пакеты политик
Пакет в Valint — это политика как пакет кода, по сути Репозиторий Git размещение набора политик и правил. Пользователи могут создать свой собственный пакет, создав образец репозитория, предоставленный Valint, и настроив его в соответствии со своими потребностями.
Форк и настройка: Начните с форка Valint's образец репозитория. Настраивайте политики и правила в соответствии с потребностями вашей организации.
Предоставление Валинту: Отправьте Валинту свой индивидуальный пакет:
валинт проверить --bundle https://github.com/my_org/my_bundle.git \ --policy my_policy.yaml
Собственные правила
При настройке правил основная ответственность заключается в анализе полезной нагрузки доказательств и сообщении о нарушениях на основе определенных критериев соответствия. Изменяете ли вы существующие правила или создаете новые.
Определение критериев соответствия: Определите критерии соответствия на основе политик организации, стандартов безопасности или правил.
Определение критериев доказательства: Определите доказательства, которые, как ожидается, будут свидетельствовать о соблюдении требований.
Оценка соответствия и сообщение о нарушениях: Используйте полезную нагрузку доказательств для оценки соответствия определенным критериям. Сообщайте о нарушениях, если компонент не соответствует требованиям.
Valint гарантирует, что требования к подписи и происхождению доказательств будут легко доступны для любого специального правила.
Хотя Валинт в настоящее время работает ОПА Рего Что касается формулирования правил, нас ждут захватывающие горизонты, поскольку правила Python планируется интегрировать в ближайшем будущем.
Что дальше?
Интеграция с Gatekeeper теперь доступна! Обратитесь к нашему документации для получения подробной информации. Следите за следующей публикацией в блоге, в которой мы углубимся в эту захватывающую разработку.
Следите за будущими публикациями в блоге, в которых мы рассмотрим политические инициативы, в том числе политики высокого уровня, которые будут реализовывать такие структуры безопасности, как SLSA и SSDF.
Захватывающие новости для энтузиастов Python! Наше последнее обновление включает расширенную поддержку Python, что значительно повышает совместимость. Это позволяет авторам политик настраивать правила с помощью Python и использовать его обширный набор библиотек.
Заключение
Подводя итог, можно сказать, что механизм политики Valint предлагает надежное решение для обеспечения соблюдения требований в вашей цепочке поставок. Используя такие компоненты, как доказательства, политики и пакеты, организации могут оптимизировать усилия по обеспечению соответствия и эффективно снижать риски.
Этот контент предоставлен вам Scribe Security, ведущим поставщиком комплексных решений для обеспечения безопасности цепочки поставок программного обеспечения, обеспечивающим современную безопасность артефактов кода, а также процессов разработки и доставки кода по всей цепочке поставок программного обеспечения. Подробнее.