Compartir a través de


Configuración del examen de secretos

Las credenciales expuestas en los sistemas de ingeniería proporcionan oportunidades fáciles de aprovechar para los atacantes. Para defenderse contra esta amenaza, GitHub Advanced Security para Azure DevOps examina las credenciales y otro contenido confidencial en el código fuente. La protección contra inserción también impide que se filtren las credenciales. Necesitará GitHub Advanced Security para Azure DevOps o, si está utilizando la experiencia independiente, tener habilitado GitHub Secret Protection para Azure DevOps.

El examen de secretos del repositorio examina los secretos que podrían existir en el código fuente en todo el historial y la protección de inserción impide que se expongan nuevos secretos en el código fuente.

GitHub Advanced Security para Azure DevOps funciona con Azure Repos. Para utilizar GitHub Advanced Security con repositorios de GitHub, consulte GitHub Advanced Security.

Prerrequisitos

Categoría Requisitos
Permisos - Para ver un resumen de todas las alertas de un repositorio: permisos de colaborador para el repositorio.
- Para descartar alertas en Seguridad Avanzada: permisos de administrador de Project.
- Para administrar permisos en Advanced Security: miembro del grupo Administradores de la colección de proyectos o del grupo Advanced Security: administrar configuración con el permiso configurado en Permitir.

Para obtener más información sobre los permisos de Advanced Security, consulte Administrar permisos de Advanced Security.

Acerca de las alertas de examen de secretos

Al habilitar Seguridad Avanzada o Protección de Secretos de manera específica, se examinan los repositorios para encontrar secretos emitidos por varios proveedores de servicios y se generan alertas de escaneo de secretos.

Si el acceso a un recurso requiere credenciales emparejadas, el examen de secretos crea una alerta solo cuando se detectan ambas partes del par en el mismo archivo. El emparejamiento garantiza que las fugas más críticas no se oculten detrás de información sobre fugas parciales. La coincidencia de pares ayuda a reducir los falsos positivos, ya que ambos elementos de un par deben usarse juntos para acceder al recurso del proveedor.

La pestaña Advanced Security de Repos>Advanced Security en Azure DevOps es el centro para ver las alertas de seguridad. Seleccione la pestaña Secretos para ver las alertas de examen de secretos. Puede filtrar por estado y tipo de secreto. Vaya a una alerta para obtener más detalles, incluida la guía de corrección. Después de habilitar Advanced Security, se inicia un examen para el repositorio seleccionado, incluidas todas las confirmaciones históricas. Con el tiempo, a medida que avanza el examen comenzarán a aparecer alertas.

Cambiar el nombre de las ramas no afecta a los resultados. Sin embargo, el nombre nuevo puede tardar hasta 24 horas en mostrarse.

Captura de pantalla que muestra las alertas de análisis de secretos activos.

Para corregir los secretos expuestos, invalide la credencial expuesta y cree una en su lugar. Después, el secreto recién creado se debe almacenar de forma segura para que no se vuelva a insertar directamente en el código. Por ejemplo, el secreto se podría almacenar en Azure Key Vault. La mayoría de los recursos tienen una credencial principal y una secundaria. El método para implementar una credencial principal frente a una secundaria es idéntico, a menos que se indique lo contrario.

Administración de alertas de examen de secretos

Visualizar las alertas para un repositorio

Seleccione la pestaña Secretos para ver todas las alertas de análisis de secretos.

Si Seguridad Avanzada se ha habilitado recientemente para su repositorio, puede que vea un mensaje que indique que Seguridad Avanzada sigue escaneando su repositorio.

Captura de pantalla que muestra el escaneo en busca de secretos.

Una vez que se complete el examen, se muestran los resultados. Se genera una sola alerta para cada credencial única detectada, en todas las ramas y el historial del repositorio. No hay filtros de rama, ya que se acumulan en una alerta.

Los secretos que no son de proveedores se pueden ver seleccionando "Otros" en la lista desplegable de confianza de la pestaña análisis de secretos.

Captura de pantalla del filtro de confianza de análisis de secretos de GitHub Advanced Security.

Detalles de alertas

Al navegar a una alerta, aparece una vista de alerta detallada, se muestran más detalles sobre la búsqueda y se proporcionan instrucciones de corrección específicas para resolver la alerta.

Captura de pantalla en la que se muestran los detalles de una alerta de examen de secretos

Sección Explicación
Ubicación En la sección Ubicaciones se detallan las rutas de acceso en las que el examen de secretos detectó la credencial filtrada. Puede haber varias ubicaciones o varias confirmaciones en el historial que contengan la credencial filtrada. Todas estas ubicaciones y confirmaciones se muestran en Ubicaciones con un vínculo directo al fragmento de código y la confirmación en la que se ha identificado.
Recomendación La sección de recomendación contiene instrucciones de corrección o vínculos a instrucciones de corrección de documentación que no son de Microsoft para la credencial identificada.
Cerrar alerta No hay ningún comportamiento de corrección automática para las alertas de examen de secretos. Todas las alertas de examen de secretos se deben evaluar manualmente como corregidas desde la página de detalles de la alerta. Seleccione el botón Cerrar para comprobar que se ha revocado el secreto.
severity Todas las alertas de examen de secretos se establecen como críticas. Cualquier credencial expuesta es potencialmente una oportunidad para un actor malintencionado.
Búsqueda de detalles El tipo de credencial y regla que se usa para buscarla se muestran en la barra lateral Buscar detalles de la página de detalles de la alerta.

Con secretos que no son de proveedor, la etiqueta Confianza: otra también aparece junto a la insignia de gravedad en la vista de detalles de la alerta.

Captura de pantalla de detalles de alertas genéricas de análisis de secretos de GitHub Advanced Security.

Corrección de alertas de examen de secretos

Cada secreto tiene pasos de corrección únicos para guiarle sobre cómo revocar y regenerar un nuevo secreto en su lugar. Los detalles de la alerta comparten pasos o documentación específicos para cada alerta.

Una alerta de examen de secretos permanece abierta hasta que se cierre. Para comprobar que se ha corregido una alerta de análisis de secretos:

  1. Vaya a la alerta que quiera cerrar y selecciónela.
  2. Seleccione el menú desplegable Cerrar alerta.
  3. Si todavía no está seleccionado, seleccione Corregido.
  4. Seleccione Cerrar para enviar la alerta y cerrarla.

Captura de pantalla en la que se muestra cómo cerrar una alerta de examen de secretos

Descarte de alertas de examen de secretos

Para descartar una alerta, siga estos pasos:

  1. Vaya a la alerta que quiere cerrar y selecciónela.
  2. Seleccione el menú desplegable Cerrar alerta.
  3. Si aún no está seleccionado, seleccione Riesgo aceptado o Falso positivo como motivo del cierre.
  4. Agregue un comentario opcional en el cuadro de texto Comentario.
  5. Seleccione Cerrar para enviar la alerta y cerrarla.
  6. El estado de la alerta cambia de Abierto a Cerrado y muestra el motivo del cierre.

Captura de pantalla en la que se muestran los detalles de cierre de una alerta de examen de secretos

Puede abrir manualmente cualquier alerta descartada anteriormente.

Asegurar secretos comprometidos

Una vez que un secreto se confirma en un repositorio, el secreto está en peligro. Microsoft recomienda las siguientes acciones para los secretos en peligro:

Importante

Se recomiendan los tokens de Microsoft Entra más seguros sobre los tokens de acceso personal de mayor riesgo. Obtenga más información sobre nuestros esfuerzos para reducir el uso de PAT. Revise nuestra guía de autenticación para elegir el mecanismo de autenticación adecuado para sus necesidades.

  • Para un token de acceso personal de Azure DevOps en peligro, elimínelo, cree otros y actualice los servicios que usan el token anterior.
  • Para todos los demás secretos, compruebe primero que el secreto confirmado en Azure Repos es válido. Si es así, cree un secreto, actualice los servicios que usan el secreto anterior y, después, elimine el secreto anterior.
  • Identifique las acciones realizadas por el token comprometido en los recursos de la empresa.

Al actualizar un secreto, almacene el nuevo secreto de forma segura y asegúrese de que nunca se almacena como texto no cifrado. Una opción es usar Azure Key Vault u otras soluciones de administración de secretos.

Protección contra inserción de secretos

La protección contra inserción comprueba si en las inserciones entrantes hay secretos de alta confianza y evita que se realicen. Un mensaje de error muestra todos los secretos identificados para que los quite, o bien continúe con su inserción si es necesario.

Acerca de las alertas de protección de inserción

Las alertas de protección contra inserción son alertas de usuario notificadas por la protección contra inserción. El examen de secretos como protección contra inserción examina actualmente los repositorios en busca de secretos emitidos por algunos proveedores de servicios.

Si el acceso a un recurso requiere credenciales emparejadas, el análisis de secretos podría crear una alerta solo cuando se detectan ambas partes del par en el mismo archivo. El emparejamiento garantiza que las fugas más críticas no se oculten detrás de información sobre fugas parciales. La coincidencia de pares ayuda a reducir los falsos positivos, ya que ambos elementos de un par deben usarse juntos para acceder al recurso del proveedor.

Es posible que la protección contra empuje no bloquee versiones anteriores de determinados tokens, ya que estos tokens podrían generar un número mayor de falsos positivos que su versión más reciente. Puede que la protección de empuje no bloquee los tokens heredados. En el caso de tokens como claves de Azure Storage, Advanced Security solo admite tokens creados recientemente, no los que coincidan con los patrones heredados.

Protección contra inserción desde la línea de comandos

La protección contra inserción se integra de forma nativa en Git de Azure DevOps. Si las confirmaciones contienen un secreto identificado, el siguiente error muestra que el empuje fue rechazado.

Captura de pantalla en la que se muestra el bloqueo de una inserción de Git desde VS Code

Protección contra inserción desde la interfaz web

La protección contra inserción también funciona desde la interfaz web. Si se identifica un secreto en una confirmación, se muestra el siguiente bloque de error, que le impide insertar los cambios:

Captura de pantalla en la que se muestra el bloqueo de una inserción de Git desde la IU web de AzDO

Qué hacer si se bloquea la inserción

La protección contra inserción bloquea los secretos que se encuentran en archivos de texto sin formato que normalmente son (aunque no exclusivamente) archivos de texto, como el código fuente o los archivos de configuración JSON. Estos secretos se almacenan en texto no cifrado. Si un actor malintencionado obtiene acceso a los archivos y se publican en un repositorio público, cualquiera puede usar los secretos.

Quite el secreto del archivo marcado y, a continuación, quite el secreto del historial de confirmaciones. Si el secreto marcado es un marcador de posición o un secreto de ejemplo, actualice el secreto falso para anteponer la cadena Placeholder delante del secreto falso.

Si el secreto se ha agregado en la confirmación inmediatamente anterior, rectifíquela y cree otra confirmación:

  1. Quita el secreto del código.
  2. Confirme los cambios mediante git commit --amend
  3. Vuelva a insertar los cambio.

Si el secreto se ha agregado en un punto posterior del historial, edite las confirmaciones mediante una base interactiva:

  1. Use git log para determinar qué confirmación ha confirmado primero el secreto.
  2. Realice un fusión mediante cambio de base interactiva: git rebase -i [commit ID before credential introduction]~1
  3. Identifica la confirmación para editar cambiando pick a edit en la primera línea del texto que aparece en el editor.
  4. Quita el secreto del código.
  5. Confirma el cambio con git commit --amend.
  6. Para finalizar la nueva base, ejecute git rebase --continue.

Inserción de un secreto bloqueado

No omita los secretos marcados porque hacerlo puede poner en riesgo la seguridad de su empresa. Si confirma que un secreto identificado no es un falso positivo, quite el secreto de todo el historial de ramas antes de intentar empujar los cambios de nuevo.

Si cree que un secreto bloqueado es un falso positivo o que se puede insertar de forma segura, puede omitir la protección contra inserción. Incluya la cadena skip-secret-scanning:true en el mensaje de confirmación. Incluso si omite la protección de envío, se genera una alerta de escaneo de secretos en la interfaz de alerta una vez que el secreto ha sido enviado.