Skip to main content

Uso de las características de seguridad de GitHub para proteger el uso de Acciones de GitHub

GitHub tiene varias características de seguridad que pueden mejorar la seguridad de las acciones que consume y publica.

Acerca de las característicfas de seguridad de GitHub

GitHub proporciona muchas características para que el código sea más seguro. Puede usar las características integradas de GitHub para comprender las acciones que dependen de los flujos de trabajo, asegurarse de que se le notifican vulnerabilidades en las acciones que consume o automatizar el proceso de mantener actualizadas las acciones de los flujos de trabajo. Si publica y mantiene acciones, puede usar GitHub para comunicarse con la comunidad sobre vulnerabilidades y cómo corregirlas. Para obtener más información sobre las características de seguridad que ofrece GitHub, consulte "Características de seguridad de GitHub".

En este artículo se explica cómo puede usar algunas de las características de seguridad de GitHub para aumentar la seguridad del uso de GitHub Actions.

Descripción de las dependencias de los flujos de trabajo

Puede usar el gráfico de dependencias para explorar las acciones que usan los flujos de trabajo del repositorio. El gráfico de dependencias es un resumen de los archivos de bloqueo y el manifiesto almacenados en un repositorio. También reconoce archivos en ./github/workflows/ como manifiestos, lo que significa que las acciones o flujos de trabajo a los que se hace referencia mediante la sintaxis jobs[*].steps[*].uses o jobs.<job_id>.uses se analizarán como dependencias.

El gráfico de dependencias muestra la siguiente información sobre las acciones usadas en los flujos de trabajo:

  • Cuenta u organización que posee la acción.
  • Archivo de flujo de trabajo que hace referencia a la acción.
  • La versión o SHA a la que está anclada la acción.

En el gráfico de dependencias, éstas se ordenan automáticamente por gravedad de la vulnerabilidad. Si alguna de las acciones que usa tiene avisos de seguridad, se mostrarán en la parte superior de la lista. Puede ir al aviso desde el gráfico de dependencias e instrucciones de acceso para resolver la vulnerabilidad.

El gráfico de dependencias se habilita para los repositorios públicos, y puede elegir habilitarlo también para los privados. Para obtener más información sobre el uso del gráfico de dependencias, vea "Explorar las dependencias de un repositorio".

Tener en cuenta las vulnerabilidades de seguridad en las acciones que se usan

Para las acciones disponibles en el Marketplace, GitHub revisa los avisos de seguridad relacionados y, a continuación, agrega esos avisos a GitHub Advisory Database. Puede buscar en la base de datos las acciones que use para buscar información sobre las vulnerabilidades existentes e instrucciones sobre cómo corregirlas. Para simplificar la búsqueda, use el filtro GitHub Actions en GitHub Advisory Database.

Puede configurar los repositorios para:

Supervisión de las acciones de los flujos de trabajo

Puede usar Dependabot para supervisar las acciones de los flujos de trabajo y habilitar Dependabot alerts para notificarle cuándo una acción que usa tiene una vulnerabilidad notificada. Dependabot realiza un examen de la rama predeterminada de los repositorios donde está habilitado para detectar dependencias no seguras. Dependabot genera Dependabot alerts cuando se agrega una nueva advertencia a GitHub Advisory Database o cuando se actualiza una acción que se usa.

Nota: Dependabot solo crea alertas para acciones vulnerables que usan control de versiones semánticos y no crearán alertas para acciones ancladas a valores SHA.

Puedes habilitar Dependabot alerts para tu cuenta personal, para un repositorio, o para una organización. Para obtener más información, consulte "Configuración de alertas de Dependabot."

Puedes ver todas las Dependabot alerts abiertas y cerradas y las Dependabot security updates correspondientes en la pestaña Dependabot alerts del repositorio. Para obtener más información, consulta "Visualización y actualización de alertas de Dependabot".

Filtrado de acciones de vulnerabilidades en flujos de trabajo nuevos o actualizados

Al abrir solicitudes de incorporación de cambios para actualizar los flujos de trabajo, se recomienda usar la revisión de dependencias para comprender el impacto en la seguridad de los cambios realizados en las acciones que use. La revisión de dependencias te permite entender los cambios a las dependencias y el impacto de seguridad de estos cambios en cada solicitud de cambios. Proporciona una visualización fácil de entender para los cambios de dependencia con un diferencial importante en la pestaña "Archivos cambiados" de una solicitud de incorporación de cambios. La revisión de dependencias te informa sobre:

  • Qué dependencias se agregaron, eliminaron o actualizaron junto con las fechas de lanzamiento.
  • Cuántos proyectos utilizan estos componentes.
  • Datos de las vulnerabilidades para estas dependencias.

Si alguno de los cambios realizados en los flujos de trabajo está marcado como vulnerable, puede evitar agregarlos al proyecto o actualizarlos a una versión segura.

Para más información sobre la revisión de dependencias, consulta "Acerca de la revisión de dependencias" y "Configuración de la revisión de dependencias".

Puede usar dependency-review-action en el repositorio para aplicar revisiones de dependencia en las solicitudes de incorporación de cambios. La acción analiza las versiones vulnerables de las dependencias introducidas por los cambios de versión del paquete en las solicitudes de incorporación de cambios y le advierte sobre las vulnerabilidades de seguridad asociadas. Esto proporciona una mejor visibilidad de los cambios en una solicitud de incorporación de cambios y ayuda a evitar que se agreguen vulnerabilidades al repositorio.

Captura de pantalla de una ejecución de flujo de trabajo que usa la acción Revisión de dependencias.

De forma predeterminada, se producirá un error en la comprobación de Acción de revisión de dependencias si detecta paquetes vulnerables. Una comprobación con errores impide combinar una solicitud de incorporación de cambios si el propietario del repositorio requiere que se supere la comprobación de revisión de dependencias. Para obtener más información, vea «Acerca de las ramas protegidas».

Mantener las acciones en los flujos de trabajo seguras y actualizadas

Puedes usar Dependabot para asegurarte de que las referencias a las acciones y los flujos de trabajo reutilizables usados en el repositorio se mantienen actualizados. Las acciones a menudo se actualizan con correcciones de errores y con nuevas características para que los procesos automatizados sean más confiables, rápidos y seguros. Dependabot acaba con la necesidad de mantener las dependencias, ya que lo hace automáticamente. Para obtener más información, vea «Mantener tus acciones actualizadas con el Dependabot» y «Sobre las actualizaciones de seguridad de Dependabot».

Las siguientes características pueden actualizar automáticamente las acciones de los flujos de trabajo.

  • Dependabot version updates abra las solicitudes de incorporación de cambios para actualizar las acciones a la versión más reciente cuando se publique una nueva versión.
  • Dependabot security updates abra solicitudes de incorporación de cambios para actualizar acciones con vulnerabilidades notificadas a la versión mínima revisada.

Notas:

  • Dependabot solo admite actualizaciones de GitHub Actions mediante la sintaxis de repositorio de GitHub, como actions/checkout@v4. Dependabot omitirá las acciones o los flujos de trabajo reutilizables a los que se hace referencia localmente (por ejemplo, ./.github/actions/foo.yml).
  • Actualmente no se admiten Docker Hub y direcciones URL del Container registry de GitHub Packages. Por ejemplo, no se admiten referencias a acciones de contenedor de Docker mediante la sintaxis docker://.
  • Dependabot admite repositorios públicos y privados para GitHub Actions. Para ver las opciones de configuración del registro privado, consulta "git" en "Opciones de configuración para el archivo dependabot.yml".

Para obtener información sobre la configuración de Dependabot version updates, consulta "Configuración de las actualizaciones de versiones de Dependabot".

Para obtener más información sobre cómo configurar Dependabot security updates, consulta "Configuración de actualizaciones de seguridad de Dependabot".

Protección de acciones que ha creado

GitHub permite la colaboración entre personas que publican y mantienen acciones e informantes de vulnerabilidades con el fin de promover la seguridad del código. Las asesorías de seguridad del repositorio permiten a los mantenedores de repositorios analizar y corregir de forma privada una vulnerabilidad de seguridad en un proyecto. Después de colaborar en una corrección, los mantenedores de repositorios pueden publicar el aviso de seguridad para revelar públicamente la vulnerabilidad de seguridad a la comunidad del proyecto. Al publicar avisos de seguridad, los mantenedores de repositorios facilitan a su comunidad la actualización de las dependencias de paquetes y la investigación del impacto de las vulnerabilidades de seguridad.

Si es alguien que mantiene una acción que se usa en otros proyectos, puede usar las siguientes características de GitHub para mejorar la seguridad de las acciones que ha publicado.