
Plataforma de Seguridad de la Cadena de Suministro de Software
 [](https://github.com/mindersec/minder/actions/workflows/main.yml) | [](https://coveralls.io/github/mindersec/minder?branch=main) | [](https://opensource.org/licenses/Apache-2.0) | [](https://slsa.dev) | [](https://discord.gg/RkzVuTp3WK) | [](https://securityscorecards.dev/viewer/?uri=github.com/mindersec/minder) --- [Instalación](https://mindersec.github.io/getting_started/install_cli) | [Documentación](https://mindersec.github.io/) | [Lanzamientos](https://github.com/mindersec/minder/releases) --- # ¿Qué es Minder? Minder es una plataforma de código abierto que ayuda a los equipos de desarrollo y a las comunidades de código abierto a construir software más seguro y demostrar a otros que lo construido es seguro. Minder ayuda a los propietarios de proyectos a gestionar de manera proactiva su postura de seguridad proporcionando un conjunto de controles y políticas para minimizar el riesgo a lo largo de la cadena de suministro de software, y atestiguar sus prácticas de seguridad a los consumidores posteriores. Minder permite a los usuarios inscribir repositorios y definir políticas para garantizar que los repositorios y los artefactos estén configurados de manera consistente y segura. Las políticas se pueden configurar solo para alertar o para auto-remediar. Minder proporciona un conjunto predefinido de reglas y también se puede configurar para aplicar reglas personalizadas. Minder se puede implementar como un gráfico de Helm y proporciona una herramienta CLI `minder`. Custcodian también proporciona una [versión alojada gratuita de Minder](#instancia-pública). Minder está diseñado para ser extensible, permitiendo a los usuarios integrarse con sus herramientas y procesos existentes. ## Características * **Configuración y seguridad de repositorios:** Simplifica la configuración y gestión de configuraciones y políticas de seguridad en todos los repositorios. * **Aplicación proactiva de la seguridad:** Aplica continuamente las mejores prácticas de configuración de seguridad estableciendo políticas detalladas para solo alertar o auto-remediar. * **Atestación de artefactos:** Verifica continuamente que los paquetes estén firmados para garantizar que sean a prueba de manipulaciones, utilizando el proyecto de código abierto Sigstore. * **Gestión de dependencias:** Gestiona la postura de seguridad de las dependencias ayudando a los desarrolladores a tomar mejores decisiones y aplicando controles. Minder está integrado con [OSV](https://osv.dev/) (y se puede integrar con otras API de SCA) para habilitar la gestión de dependencias basada en políticas según el nivel de riesgo de las dependencias. ## Instancia pública Custcodian [proporciona una instancia pública gratuita de Minder](https://custcodian.dev/hosted/) en `api.custcodian.dev`. Esta es la instancia predeterminada que se utiliza cuando usas la CLI `minder` a partir de la versión 0.0.89. Esta instancia es de uso gratuito para repositorios públicos; para repositorios privados, puede haber un costo adicional por usar esta instancia alojada en la nube. --- # Primeros pasos (menos de 1 minuto) Poner en marcha Minder lleva menos de un minuto y es tan fácil como: 1. Instalar Minder 2. Iniciar sesión en Minder 3. y ejecutar `minder quickstart` para crear tu primer perfil. En solo unos segundos, registrarás tus repositorios y habilitarás la protección de escaneo de secretos para todos ellos. 🤯 <img src="https://assets.kitploit.com/production/public/readmes/6978/3ab7c597c1892aa6a64314bb4c0b065694936c8ca64ccc5cd453609ff8a54bbc.gif" width="80%"/> ## Instalación Elige tu método preferido para instalar `minder`: ### MacOS (Homebrew) Asegúrate de tener [Homebrew](https://brew.sh/) instalado. ```bash brew install minder ``` ### Windows (Winget) Asegúrate de tener [Winget](https://learn.microsoft.com/es-es/windows/package-manager/winget/) instalado. ```bash winget install mindersec.minder ``` ### Descargar un lanzamiento Descarga la última versión desde [minder/releases](https://github.com/mindersec/minder/releases). ### Compilar desde el código fuente Compila `minder` y `minder-server` desde el código fuente siguiendo la [guía de compilación desde el código fuente](#compilar-desde-el-código-fuente). ## Iniciar sesión en Minder Para usar `minder` con la [instancia pública](#instancia-pública) de Minder (`api.custcodian.dev`), inicia sesión ejecutando: ```bash minder auth login --grpc-host api.custcodian.dev ``` (Esta API host es la predeterminada a partir de la versión 0.0.89.) Al finalizar, deberías ver que el Servidor Minder está configurado en `api.custcodian.dev`. ## Ejecutar Minder quickstart El comando `quickstart` te guía a través de la creación de tu primer perfil en Minder, registrar tus repositorios y habilitar la protección de escaneo de secretos para tus repositorios en segundos. Para ello, ejecuta: ```bash minder quickstart ``` Esto te pedirá inscribir tu proveedor, seleccionar los repositorios que desees, crear el tipo de regla `secret_scanning` y crear un perfil que habilite el escaneo de secretos para los repositorios seleccionados. Para ver el estado de tu perfil, ejecuta: ```bash minder profile status list --profile quickstart-profile --detailed ``` Deberías ver el estado general del perfil y una vista detallada de los estados de evaluación de reglas para cada uno de tus repositorios registrados. Minder continuará realizando un seguimiento de tus repositorios y se asegurará de corregir cualquier desviación del estado deseado mediante la función `remediate` o te alertará, si es necesario, mediante la función `alert`. ¡Felicidades! 🎉 ¡Has creado exitosamente tu primer perfil! ## ¿Qué sigue? Ahora puedes continuar explorando las funciones de Minder agregando o eliminando más repositorios, creando más perfiles con varias reglas y mucho más. Minder ofrece mucho más que solo escaneo de secretos. La regla `secret_scanning` es solo uno de los muchos tipos de reglas que admite Minder. Puedes ver la lista completa de reglas y perfiles listos para usar mantenidos por el equipo de Minder aquí: [mindersec/minder-rules-and-profiles](https://github.com/mindersec/minder-rules-and-profiles). En caso de que no encuentres algo allí, Minder está diseñado para ser extensible. Esto permite a los usuarios crear sus propios tipos de reglas y perfiles personalizados y garantizar que los detalles de su postura de seguridad estén atestiguados. Ahora que tienes todo configurado, puedes continuar ejecutando comandos de `minder` contra la instancia pública de Minder, donde puedes administrar tus repositorios registrados, crear perfiles, reglas y mucho más, para asegurarte de que tus repositorios estén configurados de manera consistente y segura. Para obtener más información sobre `minder`, consulta: * Comandos de la CLI `minder` - [Documentación](https://mindersec.github.io/ref/cli/minder). * Documentación de la API REST de `minder` - [Documentación](https://mindersec.github.io/ref/api). * Reglas y perfiles de `minder` mantenidos por el equipo de Minder - [GitHub](https://github.com/mindersec/minder-rules-and-profiles). * Documentación de Minder - [Documentación](https://mindersec.github.io/). # Hoja de ruta La comunidad de Minder está trabajando activamente en nuevas funciones y mejoras para Minder. Puedes encontrar nuestra hoja de ruta [aquí](https://mindersec.github.io/about/roadmap). Si deseas solicitar o contribuir con una función o mejora, utiliza la siguiente [plantilla de incidencia](https://github.com/mindersec/minder/issues/new?template=enhancement.yml) # Desarrollo Esta sección describe cómo compilar y ejecutar Minder desde el código fuente. ## Compilar desde el código fuente ### Requisitos previos Necesitarás las siguientes herramientas: [Go](https://golang.org/doc/install), [Docker](https://docs.docker.com/get-docker/) y [Docker Compose](https://docs.docker.com/compose/install/). Para compilar y ejecutar `minder-server`, también necesitarás [ko](https://ko.build/install/). Para ejecutar el conjunto de pruebas mediante `make test`, necesitarás [gotestfmt](https://github.com/GoTestTools/gotestfmt#installing) y [helm](https://github.com/helm/helm/releases). Para invocar el objetivo make `run-docker`, necesitarás [yq](https://github.com/mikefarah/yq). ### Clonar el repositorio ```bash git clone [email protected]:mindersec/minder.git ``` ## Compilar Ejecuta lo siguiente para compilar `minder` y `minder-server` (los binarios estarán presentes en `./bin/`) ```bash make build ``` Para usar `minder` con la instancia pública de Minder (`api.custcodian.dev`), ejecuta: ```bash minder auth login --grpc-host api.custcodian.dev ``` Al finalizar, deberías ver que el Servidor Minder está configurado en `api.custcodian.dev`. Si deseas ejecutar `minder` contra una instancia local de `minder-server`, puedes usar las banderas `--grpc-host=localhost` y `--grpc-port=8090`, o usar un archivo de configuración siguiendo los pasos a continuación. #### Configuración inicial Crea el archivo de configuración inicial para `minder`. Puedes hacerlo ejecutando: ```bash cp config/config.yaml.example config.yaml ``` Crea el archivo de configuración inicial para `minder-server`. Puedes hacerlo ejecutando: ```bash cp config/server-config.yaml.example server-config.yaml ``` También debes configurar una aplicación OAuth2 para que `minder-server` la use. Una vez completado, actualiza el archivo de configuración con los valores apropiados. Consulta la documentación sobre cómo hacerlo: [Documentación](https://mindersec.github.io/run_minder_server/config_oauth). #### Ejecutar `minder-server` Inicia `minder-server` junto con sus servicios dependientes (`keycloak` y `postgres`) ejecutando: ```bash make run-docker ``` #### Configurar inicio de sesión social (GitHub) `minder-server` usa Keycloak como IAM. Para iniciar sesión, deberás configurar una aplicación OAuth2 de GitHub y configurar Keycloak para que la use. Crea una aplicación OAuth2 para GitHub [aquí](https://github.com/settings/developers). Selecciona `New OAuth App` y completa los detalles. La URL de devolución de llamada debe ser `http://localhost:8081/realms/stacklok/broker/github/endpoint`. Crea un nuevo secreto de cliente para tu cliente OAuth2. Usando el `client_id` y `client_secret` que creaste anteriormente, habilita el inicio de sesión de GitHub en Keycloak ejecutando el siguiente comando: ```bash make KC_GITHUB_CLIENT_ID=<client_id> KC_GITHUB_CLIENT_SECRET=<client_secret> github-login ``` #### Ejecutar minder Asegúrate de que el archivo `config.yaml` esté presente en el directorio actual para que `minder` pueda usarlo. Ejecuta `minder` contra tu instancia local de Minder (`localhost:8090`): ```bash minder auth login ``` Al finalizar, deberías ver que el Servidor Minder está configurado en `localhost:8090`. Por defecto, la CLI de `minder` apuntará al entorno en la nube de Custcodian si no hay un archivo de configuración, pero [crear el `config.yaml` para ejecutar el servidor](#configuración-inicial) hará que la CLI apunte a tu entorno de desarrollo local. Si deseas explícitamente usar una instancia diferente, puedes configurar la variable de entorno `MINDER_CONFIG` para que apunte a una configuración particular. Tenemos configuraciones para el desarrollo local y el entorno en la nube de Custcodian en [el directorio `config`](https://github.com/mindersec/minder/blob/main/config). ### Guías de desarrollo Puedes encontrar información más detallada sobre el proceso de desarrollo en la [Guía de desarrollo](https://mindersec.github.io/developer_guide/get-hacking). ## API de Minder * [Documentación de la API REST](https://docs.mindersec.dev/ref/api) * [Documentación de la API Proto](https://docs.mindersec.dev/ref/proto) * [Protobuf](https://github.com/mindersec/minder/blob/main/proto/minder/v1/minder.proto) * [Especificación OpenAPI/swagger (JSON)](https://github.com/mindersec/minder/blob/main/pkg/api/openapi/minder/v1/minder.swagger.json) ## Contribuciones Damos la bienvenida a contribuciones a Minder. Consulta nuestra guía [Cómo contribuir](https://github.com/mindersec/minder/blob/main/CONTRIBUTING.md) para obtener más información. * La comunidad de Minder se reúne regularmente. Puedes encontrar el calendario de reuniones en el [Calendario comunitario de OpenSSF](https://calendar.google.com/calendar/u/0?cid=czYzdm9lZmhwNWk5cGZsdGI1cTY3bmdwZXNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ). * Los documentos de gobierno y estatutos del proyecto se mantienen en el repositorio [mindersec/community](https://github.com/mindersec/community). ## Procedencia El proyecto Minder sigue las mejores prácticas de seguridad y transparencia en la cadena de suministro de software. Todos los activos publicados: * Tienen una procedencia SLSA Build Level 3 generada y verificable. Para más información, consulta el sitio web de [SLSA](https://slsa.dev). * Han sido firmados y verificados durante el lanzamiento utilizando el proyecto [Sigstore](https://sigstore.dev). Esto garantiza que sean a prueba de manipulaciones y puedan ser verificados por cualquier persona. * Tienen un archivo SBOM generado y publicado junto con el lanzamiento. Esto permite a los usuarios comprender las dependencias del proyecto y su postura de seguridad. ## Licencia Minder está licenciado bajo la [Licencia Apache 2.0](https://github.com/mindersec/minder/blob/main/LICENSE).