Skip to main content

Proteger las subidas con el escaneo de secretos

Puedes utilizar el escaneo de secretos para prevenir que los secretos compatibles se suban a tu organización o repositorio si habilitas la protección contra subidas.

El Escaneo de secretos se encuentra disponible para los repositorios que pertenecen a organizaciones de GitHub Enterprise Server si tu empresa tiene una licencia de GitHub Advanced Security. Para obtener más información, consulta la sección "Productos de GitHub".

Nota: Tu administrador de sitio debe habilitar el escaneo de secretos para tu instancia de GitHub Enterprise Server antes de que puedas utilizar esta característica. Para obtener más información, consulta "Configurar el escaneo de secretos en tu aplicativo."

Nota: El Escaneo de secretos como subida de protección se encuentra actualmente en beta y está sujeto a cambios. Para solicitar acceso al lanzamiento beta, contacta a tu equipo de administración de cuenta.

Acerca de la protección contra subidas para los secretos

Has ahora, el >- escaneo de secretos verifica secretos después de una subida y alerta a los usuarios sobre los secretos expuestos. Cuando habilitas la protección contra subidas, el escaneo de secretos también verifica las subidas para encontrar secretos altamente confidenciales (aquellos identificados con una tasa de falsos positivos baja). El Escaneo de secretos lista cualquier secreto que detecte para que el autor pueda revisar los secretos y eliminarlos o, de ser necesario, permitir que se suban dichos secretos.

Si un contribuyente omite un bloque de protección de subida para un secreto, GitHub:

  • genera una alerta.
  • crea una alerta en la pestaña de "Seguridad" del repositorio.
  • agrega un evento de omisión en la bitácora de auditoría.

El Escaneo de secretos como protección contra subidas actualmente escanea los repositorios para encontrar secretos que hayan emitido los siguientes proveedores de servicios.

If access to a resource requires paired credentials, then secret scanning will create an alert only when both parts of the pair are detected in the same file. This ensures that the most critical leaks are not hidden behind information about partial leaks.

ProveedorSecreto compatibleTipo de secreto
Adafruit IOClave de IO de Adafruitadafruit_io_key
Alibaba CloudID de Llave de Acceso a la Nube de Alibaba con Secreto de Llave de Acceso a la Nube de Alibabaalibaba_cloud_access_key_id
alibaba_cloud_access_key_secret
AmazonID de Cliente OAuth de Amazon con Secreto de Cliente OAuth de Amazonamazon_oauth_client_id
amazon_oauth_client_secret
Amazon Web Services (AWS)ID de Llave de Acceso de AWS de Amazon con Llave de Acceso al Secreto de AWS de Amazonaws_access_key_id
aws_secret_access_key
Amazon Web Services (AWS)Token de Sesión de AWS de Amazon con ID de Llave de Acceso Temporal de AWS de Amazon y Llave de Acceso al Secreto de AWS de Amazonaws_session_token
aws_temporary_access_key_id
aws_secret_access_key
AsanaToken de Acceso Personal de Asanaasana_personal_access_token
AtlassianToken de Acceso Personal a Bitbucket Serverbitbucket_server_personal_access_token
AzureSecreto de aplicación de Azure Active Directoryazure_active_directory_application_secret
AzureCaché de Azure para la Llave de Acceso A Redisazure_cache_for_redis_access_key
AzureToken de Acceso Personal de Azure DevOpsazure_devops_personal_access_token

Habilitar el escaneo de secretos como una protección contra subidas

Para que puedas utilizar el escaneo de secretos como protección contra subidas, el repositorio u organización necesita tener habilitados tanto la GitHub Advanced Security como el escaneo de secretos. Para obtener más información, consulta las secciones "Administrar los ajustes de seguridad y análisis de tu organización", "Administrar los ajustes de seguridad y análisis de tu repositorio" y "Acerca de la GitHub Advanced Security".

Los propietarios de las organizaciones, administradores de seguridad y administradores de repositorio pueden habilitar la protección de subida para escaneo de secretos a través de la IU y de la API. Para obtener más información, consulta la sección "Repositorios" y expande la sección de "Propiedades del objeto security_and_analysis" en la documentación de la API de REST.

Habilitar el escaneo de secretos como protección contra subida para una organización

  1. En tu instancia de GitHub Enterprise Server, navega hasta la página principal de la organización.
  2. Debajo del nombre de tu organización, da clic en Ajustes. Botón de configuración de organización
  1. En la sección de "Seguridad" de la barra lateral, haz clic en Análisis y seguridad de código.

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

  3. Debajo de "Escaneo de secretos" y debajo de "Protección contra subida", haz clic en Habilitar todo. Captura de pantalla que muestra cómo habilitar la protección de subida para el escaneo de secretos en una organización

  4. Opcionalmente, haz clic en "Habilitar automáticamente para los repositorios privados agregados al escaneo de secretos".

Habilitar el escaneo de secretos como protección de subida para un repositorio

  1. En tu instancia de GitHub Enterprise Server, visita la página principal del repositorio.

  2. Debajo de tu nombre de repositorio, da clic en Configuración. Botón de configuración del repositorio

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

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

  5. Debajo de "Escaneo de secretos" y debajo de "Protección contra subida", haz clic en Habilitar. Captura de pantalla que muestra cómo habilitar la protección de subida para el escaneo de secretos en un repositorio

Utilizar el escaneo de secretos como protección de subida desde la línea de comandos

Cuando intentas subir un secreto compatible a un repositorio u organización con escaneo de secretos como una protección contra subida habilitada, GitHub bloqueará la subida. Puedes eliminar el secreto desde tu confirmación o seguir una URL proporcionada para permitir la subida.

Se mostrarán hasta cinco secretos detectados a la vez en la línea de comandos. Si ya se detectó un secreto en particular en el repositorio y la alerta ya existe, GitHub no lo bloqueará.

Captura de pantalla que muestra que una subida está bloqueada cuando un usuario intenta subir un secreto a un repositorio

Si necesitas eliminar el secreto de tu última confirmación (es decir, HEAD) en la rama que se está subiendo y cualquier confirmación anterior que lo contenga, puedes eliminarlo de HEAD y luego combinar las confirmaciones que haya entre ellos cuando la confirmación se introdujo y la primera versión de HEAD para la cual se eliminó el secreto.

Notas:

  • Si tu configuración de git es compatible con las subidas a ramas múltiples y no solo a la rama predeterminada, tu subida podría bloquearse debido a que se están subiendo refs imprevistos y adicionales. Para obtener más información, consulta las opciones de push.default en los documentos de Git.
  • Si el escaneo de secretos excede el tiempo cuando se hace una subida, GitHub aún ejecutará el escaneo después de dicha subida.

Permitir que se suba un secreto bloqueado

Si GitHub bloquea un secreto que piensas se puede subir con seguridad, puedes permitirlo y especificar la razón por la cual se debería de permitir.

Si confirmas que un secreto es real y que pretendes corregirlo después, debes intentar remediarlo tan pronto como sea posible. Por ejemplo, podrías revocar el secreto y eliminarlo del historial de confirmaciones del repositorio. Para obtener más información, consulta la sección "Eliminar datos confidenciales de un repositorio".

When you allow a secret to be pushed, an alert is created in the "Security" tab. GitHub closes the alert and doesn't send a notification if you specify that the secret is a false positive or used only in tests. If you specify that the secret is real and that you will fix it later, GitHub keeps the security alert open and sends notifications to the author of the commit, as well as to repository administrators. Para obtener más información, consulta la sección "Administrar alertas del escaneo de secretos."

  1. Visita la URL que devolvió GitHub cuando se bloqueó tu subida. Captura de pantalla que muestra un formulario con opciones para desbloquear la subida de un secreto
  2. Choose the option that best describes why you should be able to push the secret.
    • If the secret is only used in tests and poses no threat, click It's used in tests.
    • If the detected string is not a secret, click It's a false positive.
    • If the secret is real but you intend to fix it later, click I'll fix it later.
  3. Haz clic en Permitirme subir este secreto.
  4. Vuelve a intentar la subida en la línea de comandos al cabo de tres horas. Si no has realizado una subida a cabo de tres horas, necesitarás repetir este proceso.