Skip to main content

Esta versión de GitHub Enterprise Server se discontinuó el 2024-09-25. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise Server. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Fase 2: Prepararse para la habilitación a escala

En esta fase, prepararás a los desarrolladores y recopilarás datos sobre los repositorios para asegurarte de que los equipos están listos y tienes todo lo que necesitas para los programas piloto y el lanzamiento de code scanning y secret scanning.

Note

Este artículo forma parte de una serie sobre la adopción de GitHub Advanced Security a escala. Para obtener el artículo anterior de esta serie, consulta Fase 1: Alinear la estrategia de lanzamiento y los objetivos.

Preparación para la habilitación de code scanning

Code scanning es una característica que se usa para analizar el código en un repositorio de GitHub para buscar vulnerabilidades de seguridad y errores de código. Los problemas identificados por el análisis se muestran en el repositorio. Para más información, consulta Acerca del examen de código.

El lanzamiento de code scanning en cientos de repositorios puede resultar difícil, sobre todo si no se hace de una forma eficaz. Si sigue estos pasos, se asegurará de que el lanzamiento sea eficaz y correcto. Como parte de la preparación, trabajará con los equipos, usará la automatización para recopilar datos sobre los repositorios y habilitar code scanning.

Preparación de los equipos para code scanning

En primer lugar, prepara a tus equipos para que usen code scanning. Cuantos más equipos usen code scanning, más datos tendrás plara generar planes de corrección y supervisar el progreso del lanzamiento. Durante esta fase, debes centrarte en aprovechar las API y en realizar eventos internos de habilitación.

El enfoque principal debe ser preparar tantos equipos como sea posible para que usen code scanning. También puedes animar a los equipos a corregir correctamente, pero se recomienda priorizar la habilitación y el uso de code scanning por encima de la corrección de incidencias durante esta fase.

Recopilación de información sobre los repositorios

Puedes recopilar información mediante programación sobre los distintos lenguajes de programación que se usan en los repositorios y usar esos datos para habilitar code scanning en todos los repositorios que usan el mismo lenguaje, mediante la GraphQL API de GitHub Enterprise Server.

Note

Para recopilar estos datos sin ejecutar manualmente las consultas de GraphQL descritas en este artículo, puedes usar nuestra herramienta disponible públicamente. Para obtener más información, consulta el repositorio herramienta de habilitación de GHAS.

Si quieres recopilar información de repositorios que pertenecen a varias organizaciones de la empresa, puedes usar la consulta siguiente para obtener los nombres de las organizaciones y, a continuación, introducirlos en la consulta del repositorio. Reemplaza OCTO-ENTERPRISE por el nombre de tu empresa.

query {
  enterprise(slug: "OCTO-ENTERPRISE") {
    organizations(first: 100) {
      totalCount
      nodes {
        name
      }
      pageInfo {
        endCursor
        hasNextPage
      }
    }
  }
}

Puedes identificar qué repositorios usan los lenguajes mediante la intercalación de repositorios por lenguaje en el nivel de organización. Puedes modificar la consulta de GraphQL de ejemplo siguiente, reemplazando OCTO-ORG por el nombre de la organización.

query {
  organization(login: "OCTO-ORG") {
    repositories(first: 100) {
      totalCount
      nodes {
        nameWithOwner
        languages(first: 100) {
          totalCount
          nodes {
            name
          }
        }
      }
      pageInfo {
        endCursor
        hasNextPage
      }
    }
  }
}

Para más información sobre la ejecución de consultas de GraphQL, consulta Formar llamados con GraphQl.

A continuación, convierte los datos de la consulta de GraphQL en un formato legible, como una tabla.

IdiomaNúmero de repositoriosNombre de los repositorios
JavaScript (TypeScript)4212org/repo
org/repo
Python2012org/repo
org/repo
Go983org/repo
org/repo
Java412org/repo
org/repo
Swift111org/repo
org/repo
Kotlin82org/repo
org/repo
C12org/repo
org/repo

Puedes filtrar los lenguajes que actualmente no son compatibles con GitHub Advanced Security de esta tabla.

Si tienes repositorios con varios lenguajes, puedes dar formato a los resultados de GraphQL como se muestra en la tabla siguiente. Filtra los lenguajes que no se admiten, pero conserva todos los repositorios con al menos un lenguaje admitido. Puedes habilitar code scanning en estos repositorios y se analizarán todos los lenguajes admitidos.

IdiomasNúmero de repositoriosNombre de los repositorios
JavaScript/Python/Go16org/repo
org/repo
Rust/TypeScript/Python12org/repo
org/repo

Comprender qué repositorios usan qué lenguajes te ayudará a identificar los repositorios candidatos para programas piloto en la fase 3 y te preparará para habilitar code scanning en todos los repositorios lenguaje por lenguaje en la fase 5.

Habilitación de code scanning para el dispositivo

Para poder continuar con los programas piloto y el lanzamiento de code scanning en la empresa, primero debes habilitar code scanning para el dispositivo. Para más información, consulta Configuración la digitalización de código para el dispositivo.

Preparación para la habilitación de secret scanning

Note

Nota: Cuando se detecta un secreto en un repositorio que ha habilitado secret scanning, GitHub alerta a todos los usuarios con acceso a alertas de seguridad del repositorio.

Si tu proyecto se comunica con un servicio externo, puede que use un token o una clave privada para la autenticación. Si registras un secreto en un repositorio, cualquiera que tenga acceso de lectura al mismo puede utilizarlo para acceder al servicio externo con tus privilegios. Secret scanning analizará todo el historial de Git en todas las ramas presentes en los repositorios de GitHub en busca de secretos y le alertará o bloqueará la inserción que contiene el secreto. Para más información, consulta Acerca del examen de secretos.

Consideraciones al habilitar secret scanning

La funcionalidad secret scanning de GitHub Enterprise Server es un poco diferente de code scanning, ya que no requiere ninguna configuración específica por lenguaje de programación o por repositorio y requiere menos configuración en general para empezar. Esto significa que habilitar secret scanning en el nivel de organización puede ser fácil, pero hacer clic en Habilitar todo en el nivel de organización y marcar la opción Habilitar secret scanning automáticamente para cada repositorio nuevo tiene algunos efectos descendentes que debes tener en cuenta:

Consumo de licencias

La habilitación de secret scanning para todos los repositorios maximizará el uso de licencias de GitHub Advanced Security. Esto es correcto si tienes suficientes licencias para los confirmadores actuales en todos esos repositorios. Si es probable que el número de desarrolladores activos aumente en los próximos meses, puede que superes el límite de licencias y que no puedas usar GitHub Advanced Security en los repositorios recién creados.

Volumen inicial de secretos detectados alto

Si habilitas secret scanning en una organización grande, prepárate para ver un número elevado de secretos detectados. A veces esto choca a las organizaciones y saltan todas las alarmas. Si quieres activar secret scanning en todos los repositorios a la vez, planea cómo responderás a varias alertas en toda la organización.

Secret scanning se puede habilitar para repositorios individuales. Para más información, consulta Habilitación del examen de secretos para el repositorio. Secret scanning también se puede habilitar para todos los repositorios de la organización, como se ha descrito anteriormente. Para más información sobre cómo habilitar esta opción para todos los repositorios, consulta Administrar la configuración de seguridad y análisis de su organización.

Patrones personalizados para secret scanning

Secret scanning detecta un gran número de patrones predeterminados, pero también se puede configurar para que detecte patrones personalizados, como formatos de secreto exclusivos de tu infraestructura o usados por integradores que secret scanning de GitHub Enterprise Server actualmente no detecta. Para más información sobre los secretos admitidos para los patrones de asociados, consulta Patrones de examen de secretos admitidos.

A medida que auditas los repositorios y hablas con los equipos de seguridad y desarrolladores, crea una lista de los tipos de secretos que usarás más adelante para configurar patrones personalizados para secret scanning. Para más información, consulta Definición de patrones personalizados para el examen de secretos.

Protección de inserción para secret scanning

La protección de inserción para organizaciones y repositorios indica a secret scanning que compruebe las inserciones de secretos admitidos antes de que los secretos se confirmen en el código base. Para más información sobre los secretos que se admiten, consulta Patrones de examen de secretos admitidos.

Si se detecta un secreto en una inserción, esta se bloquea. Secret scanning enumera los secretos que detecta para que el creador pueda revisarlos y quitarlos, o si es necesario, permitir que se inserten. Secret scanning también puede comprobar las inserciones para patrones personalizados.

Los desarrolladores tienen la opción de omitir la protección de inserción notificando que un secreto es un falso positivo, que se usa en las pruebas o que se corregirá más adelante.

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ó.

Antes de habilitar la protección de inserción, plantéate si necesitas crear instrucciones para los equipos de desarrolladores en las condiciones aceptables para omitir la protección de inserción. Puedes configurar un vínculo a este recurso en el mensaje que se muestra cuando un desarrollador intenta insertar un secreto bloqueado.

A continuación, familiarízate con las distintas opciones para administrar y supervisar alertas que son el resultado de un colaborador que omite la protección de inserción.

Para más información, consulta Acerca de la protección de inserción.

Note

Para ver el siguiente artículo de esta serie, consulta Fase 3: Programas piloto.