Configuración de GitHub Advanced Security para GitHub y Azure DevOps
GitHub Advanced Security es un conjunto de características y funcionalidades de seguridad que ofrece GitHub para ayudar a las organizaciones a identificar y mitigar las vulnerabilidades de seguridad, proteger su código y proteger su cadena de suministro de software. Consta de los siguientes componentes clave:
- Análisis de código: examina automáticamente el código en los repositorios para detectar vulnerabilidades de seguridad y errores de programación mediante técnicas de análisis estáticos proporcionadas por CodeQL o herramientas de terceros. Identifica posibles vulnerabilidades de seguridad, incluidas las relacionadas con las dependencias obsoletas y los cifrados débiles.
- Detección de secretos: detecta y ayuda a corregir la presencia de secretos, como tokens de API y claves criptográficas en repositorios y confirmaciones. Examina automáticamente el contenido de los repositorios y genera alertas en función de sus detecciones.
- Revisiones de dependencias: ayuda a identificar y administrar dependencias en proyectos de software, basadas en dependencias directas y transitivas recuperadas de manifiestos de paquete y otros archivos de configuración. Permiten evaluar el impacto total de los cambios en las dependencias y ver los detalles de las versiones vulnerables antes de combinar una solicitud de incorporación de cambios.
- Reglas de evaluación automática personalizadas: le ayudan a administrar las alertas de Dependabot a escala. Con las reglas de evaluación automática personalizadas, puede controlar qué alertas se pueden omitir y cuáles requieren aplicar una actualización de seguridad.
- Avisos de seguridad: proporciona avisos de seguridad seleccionados y alertas sobre vulnerabilidades detectadas en dependencias de código abierto.
GitHub Advanced Security se integra de forma nativa con GitHub y Azure DevOps.
GitHub
GitHub hace que sus características de Advanced Security estén disponibles en repositorios privados en función de las licencias de Advanced Security. Una vez que haya adquirido licencias de GitHub Advanced Security para su organización, puede habilitar y deshabilitar estas características en el nivel de organización o repositorio. Estas características también están habilitadas permanentemente en repositorios públicos en GitHub.com sin requisitos previos de licencia y solo se pueden deshabilitar si cambia la visibilidad del proyecto.
Para configurar GitHub Advanced Security para su organización, en la esquina superior derecha de GitHub.com, seleccione el icono de perfil y, a continuación, seleccione Sus organizaciones. A continuación, seleccione Configuración y, en la sección Seguridad de la barra lateral, seleccione Seguridad y análisis de código. Se mostrará la página que le permite habilitar o deshabilitar todas las características de seguridad y análisis de los repositorios de su organización.
El impacto de los cambios de configuración viene determinado por la visibilidad de los repositorios de su organización:
- Informes de vulnerabilidades privadas: solo repositorios públicos.
- Gráfico de dependencias: solo repositorios privados porque la característica siempre está habilitada para los repositorios públicos.
- Alertas de Dependabot: todos los repositorios.
- Actualizaciones de seguridad de Dependabot: todos los repositorios.
- GitHub Advanced Security: solo repositorios privados porque GitHub Advanced Security y las características relacionadas siempre están habilitadas para repositorios públicos.
- Examen de secretos: repositorios públicos y privados en los que está habilitado GitHub Advanced Security. Esta opción controla si las alertas de examen de secretos para los usuarios están habilitadas o no.
- Examen de código: repositorios públicos y privados en los que está habilitado GitHub Advanced Security.
También puede administrar las características de seguridad y análisis para repositorios privados individuales. Para ello, en GitHub.com, vaya a la página principal del repositorio y seleccione Configuración. En la sección "Seguridad" de la barra lateral, seleccione Seguridad y análisis de código. En el panel Seguridad y análisis de código, deshabilite o habilite características individuales. El control de GitHub Advanced Security estará deshabilitado si su empresa no ha adquirido licencias necesarias.
Tenga en cuenta que si deshabilita GitHub Advanced Security, la revisión de dependencias, las alertas de examen de secretos para los usuarios y el examen de código estarán deshabilitados de forma eficaz. Como resultado, se producirá un error en los flujos de trabajo que incluyan el examen de código.
Una vez habilitadas, las características de seguridad se integran directamente en la plataforma de GitHub, lo que proporciona supervisión continua de seguridad y alertas directamente dentro de la interfaz de GitHub. Los administradores y desarrolladores de repositorios pueden acceder a información de seguridad, recomendaciones y pasos accionables para abordar las vulnerabilidades de seguridad identificadas y reforzar la posición general de seguridad de sus proyectos de software. Además, las organizaciones pueden personalizar las directivas de seguridad, configurar flujos de trabajo automatizados e integrar GitHub Advanced Security con otras herramientas y servicios de seguridad para satisfacer sus requisitos de seguridad y necesidades de cumplimiento específicas.
Azure DevOps
GitHub Advanced Security para Azure DevOps tiene como destino Azure Repos e incluye:
- Protección de inserción de análisis secreto: comprueba si las inserciones de código incluyen confirmaciones que exponen secretos.
- Examen del repositorio de análisis de secretos: busca repositorios para secretos expuestos.
- Análisis de dependencias: identifica vulnerabilidades directas y transitivas en dependencias de código abierto.
- Análisis de código: usa el análisis estático CodeQL para identificar vulnerabilidades de aplicación de nivel de código, como la inserción de SQL y la omisión de autenticación.
La seguridad avanzada se puede activar en el nivel de organización, proyecto o repositorio. Esto habilita automáticamente la protección de inserción de análisis de secretos y el examen de repositorios. De hecho, las inserciones futuras que contengan secretos se bloquean automáticamente mientras se ejecuta el examen de secretos en segundo plano.
El examen de dependencias es una herramienta de análisis basada canalizaciones. Los resultados se agregan por repositorio. Se recomienda agregar la tarea de examen de dependencias a todas las canalizaciones que le gustaría examinar. Para obtener los resultados de examen más precisos, asegúrese de agregar la tarea de examen de dependencias siguiendo los pasos de compilación de una canalización que compile el código que quiera examinar. Puede agregar la tarea Análisis de dependencias de Advanced Security (AdvancedSecurity-Dependency-Scanning@1) directamente al archivo de canalización de YAML o seleccionarla en el asistente de tareas.
El examen de código también es una herramienta de análisis basada en canalizaciones en la que los resultados se agregan por repositorio. Tiende a ser una tarea de compilación que consume mucho tiempo, por lo que plantéese agregar la tarea de examen de código a una canalización independiente clonada de la canalización de producción principal o crear una nueva canalización. En la canalización, agregue las tareas en el orden siguiente:
- Advanced Security Initialize CodeQL (AdvancedSecurity-Codeql-Init@1)
- Pasos de creación personalizados
- Advanced Security Perform CodeQL Analysis (AdvancedSecurity-Codeql-Analyze@1)
Además, deberá incluir una lista separada por comas de los idiomas que está analizando mediante la tarea Inicializar CodeQL de Advanced Security. Los lenguajes admitidos incluyen csharp, cpp, go, java, JavaScript, python, ruby y swift.