Skip to main content

Protección contra el envío de cambios para repositorios y organizaciones

With push protection for repositories and organizations, secret scanning blocks contributors from pushing secrets to a repository and generates an alert whenever a contributor bypasses the block.

¿Quién puede utilizar esta característica?

La protección de inserción para repositorios y organizaciones está disponible de forma gratuita en todos los repositorios públicos . Las organizaciones que usan GitHub Enterprise Cloud con una licencia de GitHub Advanced Security también pueden habilitar la protección de inserción en sus repositorios privados e internos.

Información sobre la protección contra el envío de cambios para repositorios y organizaciones

Hasta ahora, secret scanning comprueba si hay secretos después de una inserción y alerta a los usuarios de los secretos expuestos. Al habilitar la protección de inserción para la organización o el repositorio, secret scanning también comprueba si hay inserciones para secretos admitidos. Secret scanning enumera los secretos que detecta para que el creador pueda revisarlos y quitarlos, o si es necesario, permitir que se inserten.

Si un colaborador omite un bloque de protección de inserción para un secreto, GitHub:

  • Crea una alerta en la pestaña Security del repositorio.
  • Agrega el evento de omisión al registro de auditoría.
  • Envía una alerta por correo electrónico a los propietarios de la organización o de la cuenta personal, administradores de seguridad y administradores de repositorios que están viendo el repositorio, con un vínculo al secreto y el motivo por el que se permitió.

En esta tabla se muestra el comportamiento de las alertas para cada forma en que un usuario puede omitir un bloque de protección de inserción.

Razón de la omisiónComportamiento de alerta
Se usa en pruebasGitHub crea una alerta cerrada, resuelta como "se usa en pruebas"
Es un falso positivoGitHub crea una alerta cerrada, resuelta como "falso positivo"
Lo arreglaré más tardeGitHub crea una alerta abierta

En la página de alertas de secret scanning para un repositorio u organización, puede aplicar el filtro bypassed:true para ver fácilmente qué alertas son el resultado de la protección de inserción de un usuario.

Puede supervisar las alertas de seguridad para detectar cuándo los usuarios pasan por alto las protecciones de inserción y crean alertas. Para obtener más información, vea «Auditoría de alertas de seguridad».

Para obtener más información sobre los secretos y los proveedores de servicios admitidos para la protección de inserción, consulte "Patrones de análisis de secretos".

Nota: El editor basado en web de github.dev no admite la protección contra el envío de cambios. Para obtener más información sobre el editor, consulte "El editor basado en web de github.dev".

Además, la protección de inserción para usuarios lo protege automáticamente de la confirmación accidental de secretos en repositorios públicos, independientemente de si el repositorio tiene habilitado secret scanning. La protección de inserción para usuarios está activada de manera predeterminada, pero puede deshabilitar la función en cualquier momento a través de las configuraciones de su cuenta personal. Para obtener más información, vea «Protección de inserción para usuarios».

Habilitación de secret scanning como protección de inserción

Para poder usar secret scanning como protección de inserción en repositorios públicos, la organización o el repositorio debe tener secret scanning habilitado. Para obtener más información, consulte "Administrar la configuración de seguridad y análisis de su organización", "Administración de la configuración de seguridad y análisis para el repositorio" y "Acerca de GitHub Advanced Security".

Los propietarios de la organización, los administradores de seguridad y los administradores del repositorio pueden habilitar también la protección de secret scanning mediante la API. Para obtener más información, consulte "Puntos de conexión de la API de REST para repositorios" y expanda la sección "Propiedades del objeto security_and_analysis" en la documentación de la API de REST.

También puedes habilitar la protección de inserción para todos los repositorios públicos existentes a través de la configuración de la cuenta personal. En el caso de los nuevos repositorios públicos que crees, la protección de inserción se habilitará de manera predeterminada. Para obtener más información, vea «Configuración del examen de secretos para los repositorios».

Nota: Al bifurcar un repositorio con secret scanning como protección de inserción habilitada, esto no está habilitado de forma predeterminada en la bifurcación. Puede habilitarlo en la bifurcación de la misma manera que lo habilite en un repositorio independiente.

Habilitación de secret scanning como protección de inserción para una organización

puede usar la página de configuración de la organización de "Seguridad y análisis del código" para habilitar o deshabilitar secret scanning como protección frente a inserciones en todos los repositorios existentes en una organización.

  1. En GitHub.com, ve a la página principal de la organización.

  2. En el nombre de la organización, haz clic en Configuración. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de las pestañas en el perfil de una organización. La pestaña "Configuración" se destaca en naranja oscuro.

  3. En la sección "Seguridad" de la barra lateral, haga clic en Análisis y seguridad del código.

  4. Debajo de "Seguridad y análisis de código", encuentra "GitHub Advanced Security".

  5. En "Secret scanning", en "Push protection" (Protección de inserciones), haga clic en Enable all (Habilitar todo).

  6. Opcionalmente, haz clic en "Habilitar automáticamente para repositorios agregados a secret scanning.".

  7. Opcionalmente, para incluir un vínculo personalizado en el mensaje que verán los miembros cuando intenten insertar un secreto, selecciona Agregar un vínculo de recurso en la CLI y la interfaz de usuario web cuando se bloquee una confirmación, luego, escribe una dirección URL y haz clic en Guardar vínculo.

    Captura de pantalla de la sección "Protección de inserción" en la página "Seguridad y análisis del código". La casilla "Agregar un vínculo de recursos en la CLI y la interfaz de usuario web cuando se bloquea una confirmación" y el campo de texto del vínculo personalizado se resaltan con un contorno naranja oscuro.

Para más información sobre cómo habilitar las características de seguridad en una organización, consulta "Protección de la organización".

Habilitación de secret scanning como protección de inserción para un repositorio

  1. En GitHub.com, navega a la página principal del repositorio.

  2. En el nombre del repositorio, haz clic en Configuración. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de un encabezado de repositorio en el que se muestran las pestañas. La pestaña "Configuración" está resaltada con un contorno naranja oscuro.

  3. En la sección "Seguridad" de la barra lateral, haga clic en Análisis y seguridad del código.

  4. Debajo de "Seguridad y análisis de código", encuentra "GitHub Advanced Security".

  5. En "Secret scanning", en "Push protection" (Protección de inserciones), haga clic en Enable (Habilitar). Captura de pantalla en la que se muestra cómo habilitar la protección de inserciones para secret scanning para un repositorio.

Uso del examen de secretos como protección de inserción de la línea de comandos

Al intentar insertar un secreto admitido en un repositorio asegurado por protección de inserción GitHub bloqueará la inserción. Puedes quitar el secreto de la rama o seguir una dirección URL proporcionada para permitir la inserción.

En la línea de comandos se mostrarán hasta cinco secretos detectados a la vez. Si ya se ha detectado un secreto determinado en el repositorio y ya existe una alerta, GitHub no bloqueará ese secreto.

Los propietarios de la organización pueden proporcionar un vínculo personalizado que se mostrará cuando se bloquee un envío de cambios. Este vínculo personalizado puede incluir recursos y consejos específicos de la organización, como instrucciones sobre el uso de un almacén de secretos recomendado o con quién ponerse en contacto para formular preguntas relacionadas con el secreto bloqueado.

Si confirmas que un secreto es real, debes quitar el secreto de la rama, de todas las confirmaciones en las que aparece, antes de volver a insertar. Para más información sobre cómo corregir secretos bloqueados, consulta "Inserción de una rama bloqueada por la protección de inserción".

Si confirma que un secreto es real y que pretende corregirlo más adelante, debe intentar corregirlo lo antes posible. Por ejemplo, podría revocar el secreto y quitarlo del historial de confirmaciones del repositorio. Los secretos reales que se han expuesto deben revocarse para evitar el acceso no autorizado. Puede considerar la posibilidad de rotar primero el secreto antes de revocarlo. Para obtener más información, vea «Eliminación de datos confidenciales de un repositorio».

Notas:

  • Si su configuración de Git admite inserciones en varias ramas y no solo en la actual, es posible que se bloquee la inserción debido a que se insertan referencias adicionales y no deseadas. Para obtener más información, consulta las opciones push.default en la documentación de Git.
  • Si se agota el tiempo de espera de secret scanning tras una inserción, GitHub todavía examinará las confirmaciones en busca de secretos después de la inserción.

Permiso para insertar un secreto bloqueado

Si GitHub bloquea un secreto que cree que es seguro insertar, puede permitirlo y especificar el motivo por el que se debe permitir.

Cuando permites la inserción de un secreto, se crea una alerta en la pestaña Seguridad. GitHub cierra la alerta y no envía una notificación si especificas que el secreto es un falso positivo o que solo se usa en las pruebas. Si especificas que el secreto es real y lo corregirás más adelante, GitHub mantiene abierta la alerta de seguridad y envía notificaciones al creador de la confirmación, así como a los administradores del repositorio. Para obtener más información, vea «Administración de alertas del examen de secretos».

Cuando un colaborador omite un bloque de protección de inserción para un secreto, GitHub también envía una alerta por correo electrónico a los propietarios de la organización, los administradores de seguridad y los administradores de repositorios que han optado por recibir notificaciones por correo electrónico.

  1. Visite la dirección URL devuelta por GitHub cuando se bloquee la inserción.

  2. Elija la opción que mejor describa por qué debería poder insertar el secreto.

    • Si el secreto solo se usa en pruebas y no supone ninguna amenaza, haga clic en Se usa en las pruebas.
    • Si la cadena detectada no es un secreto, haga clic en Es un falso positivo.
    • Si el secreto es real, pero piensa corregirlo más adelante, haga clic en Lo corregiré más adelante.

    Nota: Debe especificar un motivo para omitir la protección de inserción si el repositorio tiene habilitado el examen de secretos.

    Al insertar en un repositorio público que no tiene habilitado el análisis de secretos, todavía está protegido de la inserción accidental de secretos gracias a la protección de inserción para usuarios, que está activado de manera predeterminada para su cuenta de usuario.

    Con la protección de inserción para usuarios, GitHub bloqueará automáticamente las inserciones en repositorios públicos si estas inserciones contienen secretos admitidos, pero no es necesario especificar un motivo para permitir el secreto y GitHub no generará una alerta. Para obtener más información, vea «Protección de inserción para usuarios».

  3. Haga clic en Permitirme insertar este secreto.

  4. Vuelva a intentar la inserción en la línea de comandos en un plazo de tres horas. Si no ha realizado la inserción en un plazo de tres horas, tendrá que repetir este proceso.

Uso del examen de secretos como protección de inserción de la interfaz de usuario web

Cuando se usa la interfaz de usuario web para intentar confirmar un secreto admitido en un repositorio asegurado mediante la protección de inserción GitHub bloqueará la confirmación.

Verás un cuadro de diálogo con información sobre la ubicación del secreto, así como opciones que te permiten insertarlo. El secreto también estará subrayado en el archivo para que puedas encontrarlo fácilmente.

GitHub solo mostrará un secreto detectado a la vez en la interfaz de usuario web. Si ya se ha detectado un secreto determinado en el repositorio y ya existe una alerta, GitHub no bloqueará ese secreto.

Los propietarios de la organización pueden proporcionar un vínculo personalizado que se mostrará cuando se bloquee un envío de cambios. Este vínculo personalizado puede incluir recursos y consejos específicos de tu organización. Por ejemplo, el vínculo personalizado puede apuntar a un archivo Léame con información sobre el almacén de secretos de la organización, a qué equipos y personas se deben escalar las preguntas, o a la directiva aprobada de la organización para trabajar con secretos y reescribir el historial de confirmaciones.

Puede quitar el secreto del archivo mediante la interfaz de usuario web. Una vez que quite el secreto, puede confirmar los cambios.

Omitir la protección de inserción para un secreto

Si confirmas que un secreto es real, debes quitar el secreto de la rama, de todas las confirmaciones en las que aparece, antes de volver a insertar. Para más información sobre cómo corregir secretos bloqueados, consulta "Inserción de una rama bloqueada por la protección de inserción".

Si confirma que un secreto es real y que pretende corregirlo más adelante, debe intentar corregirlo lo antes posible. Para obtener más información, vea «Eliminación de datos confidenciales de un repositorio».

Si GitHub bloquea un secreto que cree que es seguro insertar, puede permitirlo y especificar el motivo por el que se debe permitir.

Cuando permites la inserción de un secreto, se crea una alerta en la pestaña Seguridad. GitHub cierra la alerta y no envía una notificación si especificas que el secreto es un falso positivo o que solo se usa en las pruebas. Si especificas que el secreto es real y lo corregirás más adelante, GitHub mantiene abierta la alerta de seguridad y envía notificaciones al creador de la confirmación, así como a los administradores del repositorio. Para obtener más información, vea «Administración de alertas del examen de secretos».

Cuando un colaborador omite un bloque de protección de inserción para un secreto, GitHub también envía una alerta por correo electrónico a los propietarios de la organización, los administradores de seguridad y los administradores de repositorios que han optado por recibir notificaciones por correo electrónico.

  1. En el cuadro de diálogo que ha aparecido cuando GitHub ha bloqueado la confirmación, revisa el nombre y la ubicación del secreto.

  2. Elija la opción que mejor describa por qué debería poder insertar el secreto.

    • Si el secreto solo se usa en pruebas y no supone ninguna amenaza, haga clic en Se usa en las pruebas.
    • Si la cadena detectada no es un secreto, haga clic en Es un falso positivo.
    • Si el secreto es real, pero piensa corregirlo más adelante, haga clic en Lo corregiré más adelante.

    Nota: Debe especificar un motivo para omitir la protección de inserción si el repositorio tiene habilitado el examen de secretos.

    Al insertar en un repositorio público que no tiene habilitado el análisis de secretos, todavía está protegido de la inserción accidental de secretos gracias a la protección de inserción para usuarios, que está activado de manera predeterminada para su cuenta de usuario.

    Con la protección de inserción para usuarios, GitHub bloqueará automáticamente las inserciones en repositorios públicos si estas inserciones contienen secretos admitidos, pero no es necesario especificar un motivo para permitir el secreto y GitHub no generará una alerta. Para obtener más información, vea «Protección de inserción para usuarios».

  3. Haz clic en Permitir secreto.