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.
Los propietarios de empresas pueden configurar el gráfico de dependencias y Dependabot alerts para una empresa. Para más información, consulta "Habilitación del gráfico de dependencias para la empresa".
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:
- Recibir alertas cuando las acciones usadas en los flujos de trabajo reciben un informe de vulnerabilidades. Para obtener más información, consulte "Supervisión de las acciones en los flujos de trabajo".
- Se advierte sobre los avisos existentes al agregar o actualizar una acción en un flujo de trabajo. Para obtener más información, consulte "Acciones de filtrado de vulnerabilidades en flujos de trabajo nuevos o actualizados".
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.
Un propietario de la empresa debe configurar primero Dependabot para su empresa antes de poder administrar Dependabot alerts para el repositorio. Para más información, consulta "Habilitación de Dependabot para la empresa".
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.
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".