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

Minder — это открытая платформа, которая помогает командам разработчиков и сообществам открытого кода создавать более безопасное программное обеспечение и доказывать другим, что созданное ими безопасно. Minder помогает владельцам проектов активно управлять своей безопасностью, предоставляя набор проверок и политик для минимизации рисков в цепочке поставок ПО, а также удостоверять свои практики безопасности для потребителей ниже по цепочке.
Minder позволяет пользователям регистрировать репозитории и определять политики для обеспечения единообразной и безопасной настройки репозиториев и артефактов. Политики могут быть настроены только на оповещение или на автоматическое исправление. Minder предоставляет предопределённый набор правил и может быть настроен для применения пользовательских правил.
Minder можно развернуть как Helm-чарт, и он предоставляет CLI-инструмент minder. Custcodian также предоставляет бесплатную хостинговую версию Minder. Minder спроектирован как расширяемый, что позволяет пользователям интегрировать его с существующими инструментами и процессами.
Custcodian предоставляет бесплатный публичный экземпляр Minder по адресу api.custcodian.dev. Это экземпляр, используемый по умолчанию при использовании CLI minder начиная с версии 0.0.89. Этот экземпляр бесплатен для использования с публичными репозиториями; для частных репозиториев может взиматься дополнительная плата за использование облачного хостинга.
Запуск и работа с Minder занимает менее минуты и состоит из:
minder quickstart для создания вашего первого профиля.Всего за несколько секунд вы зарегистрируете свои репозитории и включите защиту от утечки секретов для всех них! 🤯
Выберите предпочтительный способ установки minder:
Убедитесь, что у вас установлен Homebrew.
brew install minder
Убедитесь, что у вас установлен Winget.
winget install mindersec.minder
Скачайте последний релиз с minder/releases.
Соберите minder и minder-server из исходников, следуя руководству по сборке из исходников.
Чтобы использовать minder с публичным экземпляром Minder (api.custcodian.dev), войдите, выполнив:
minder auth login --grpc-host api.custcodian.dev
(Этот хост API используется по умолчанию начиная с версии 0.0.89.) После завершения вы должны увидеть, что сервер Minder установлен на api.custcodian.dev.
Команда quickstart проводит вас через создание вашего первого профиля в Minder, регистрацию репозиториев и включение защиты от утечки секретов для ваших репозиториев за секунды.
Для этого выполните:
minder quickstart
Вас попросят подключить вашего провайдера, выбрать нужные репозитории, создать тип правила secret_scanning и создать профиль, который включает защиту от утечки секретов для выбранных репозиториев.
Чтобы увидеть статус вашего профиля, выполните:
minder profile status list --profile quickstart-profile --detailed
Вы должны увидеть общий статус профиля и подробное представление статусов оценки правил для каждого из зарегистрированных репозиториев.
Minder будет продолжать отслеживать ваши репозитории и обеспечивать исправление любых отклонений от желаемого состояния с помощью функции remediate или оповещать вас, если необходимо, с помощью функции alert.
Поздравляем! 🎉 Вы только что успешно создали свой первый профиль!
Теперь вы можете продолжить изучение возможностей Minder, добавляя или удаляя репозитории, создавая больше профилей с различными правилами и многое другое. Minder предлагает гораздо больше, чем просто защиту от утечки секретов.
Правило secret_scanning — лишь один из многих типов правил, поддерживаемых Minder.
Полный список готовых к использованию правил и профилей, поддерживаемых командой Minder, можно найти здесь — mindersec/minder-rules-and-profiles.
Если вы не нашли чего-то, Minder спроектирован как расширяемый. Это позволяет пользователям создавать свои собственные типы правил и профили и удостоверять особенности своей безопасности.
Теперь, когда всё настроено, вы можете продолжать выполнять команды minder для публичного экземпляра Minder, где сможете управлять зарегистрированными репозиториями, создавать профили, правила и многое другое, чтобы ваши репозитории были настроены единообразно и безопасно.
Для получения дополнительной информации о minder см.:
minder — Документация.minder — Документация.minder, поддерживаемые командой Minder — GitHub.Сообщество Minder активно работает над новыми функциями и улучшениями Minder.
Вы можете найти нашу дорожную карту здесь.
Если вы хотите запросить или внести функцию или улучшение, используйте следующий шаблон задачи
В этом разделе описано, как собрать и запустить Minder из исходников.
Вам потребуются следующие инструменты — Go, Docker и Docker Compose.
Для сборки и запуска minder-server также потребуется ko.
Для запуска тестов через make test потребуется gotestfmt и helm.
Для вызова цели run-docker make потребуется yq.
git clone [email protected]:mindersec/minder.git
Выполните следующее для сборки minder и minder-server (бинарные файлы будут находиться в ./bin/)
make build
Чтобы использовать minder с публичным экземпляром Minder (api.custcodian.dev), выполните:
minder auth login --grpc-host api.custcodian.dev
После завершения вы должны увидеть, что сервер Minder установлен на api.custcodian.dev.
Если вы хотите запустить minder против локального экземпляра minder-server, вы можете использовать флаги --grpc-host=localhost и --grpc-port=8090 или использовать файл конфигурации, следуя шагам ниже.
Создайте начальный файл конфигурации для minder. Это можно сделать, выполнив:
cp config/config.yaml.example config.yaml
Создайте начальный файл конфигурации для minder-server. Это можно сделать, выполнив:
cp config/server-config.yaml.example server-config.yaml
Также необходимо настроить приложение OAuth2 для minder-server. После завершения обновите файл конфигурации соответствующими значениями. См. документацию о том, как это сделать — Документация.
minder-serverЗапустите minder-server вместе с зависимыми сервисами (keycloak и postgres), выполнив:
make run-docker
minder-server использует Keycloak в качестве IAM. Для входа вам потребуется настроить приложение OAuth2 для GitHub и настроить Keycloak для его использования.
Создайте приложение OAuth2 для GitHub здесь. Выберите New OAuth App и заполните детали. URL обратного вызова должен быть http://localhost:8081/realms/stacklok/broker/github/endpoint. Создайте новый секрет клиента для вашего OAuth2-клиента.
Используя client_id и client_secret, созданные выше, включите вход через GitHub в Keycloak, выполнив следующую команду:
make KC_GITHUB_CLIENT_ID=<client_id> KC_GITHUB_CLIENT_SECRET=<client_secret> github-login
Убедитесь, что файл config.yaml присутствует в текущем каталоге, чтобы minder мог его использовать.
Запустите minder против вашего локального экземпляра Minder (localhost:8090):
minder auth login
После завершения вы должны увидеть, что сервер Minder установлен на localhost:8090.
По умолчанию CLI minder будет указывать на облачную среду Custcodian, если файл конфигурации отсутствует, но создание config.yaml для запуска сервера заставит CLI указывать на вашу локальную среду разработки. Если вы явно хотите использовать другой экземпляр, вы можете установить переменную окружения MINDER_CONFIG для указания на конкретную конфигурацию. У нас есть конфигурации для локальной разработки и облачной среды Custcodian в каталоге config.
Более подробную информацию о процессе разработки вы можете найти в Руководстве разработчика.
Мы приветствуем участие в разработке Minder. Пожалуйста, ознакомьтесь с нашим руководством Участие для получения дополнительной информации.
Проект Minder следует лучшим практикам безопасности цепочки поставок ПО и прозрачности.
Все выпущенные ресурсы:
Minder лицензирован в соответствии с Лицензией Apache 2.0.