Skip to main content

Acerca del examen de código con CodeQL

Puedes utilizar CodeQL para identificar las vulnerabilidades y errores en tu código. Los resultados se muestran como alertas del code scanning en GitHub.

¿Quién puede utilizar esta característica?

Code scanning está disponible para todos los repositorios públicos en GitHub.com. Code scanning también está disponible para los repositorios privados que pertenecen a las organizaciones que usan GitHub Enterprise Cloud y que tienen una licencia de GitHub Advanced Security. Para obtener más información, vea «Acerca de GitHub Advanced Security».

CodeQL es el motor de análisis de código que desarrolló GitHub para automatizar las verificaciones de seguridad. Puedes analizar tu código utilizando CodeQL y mostrando los resultados como alertas del code scanning.

Hay dos tres principales de usar el análisis de CodeQL para code scanning:

  • Usa la configuración predeterminada para configurar rápidamente el análisis de CodeQL para el code scanning en el repositorio. La configuración predeterminada elige automáticamente los lenguajes que se van a analizar, los conjuntos de consultas que se van a ejecutar y los eventos que desencadenan exámenes. Si lo prefieres, puedes seleccionar manualmente el conjunto de consultas que se ejecutarán y los lenguajes que se analizarán. Después de habilitar CodeQL, GitHub Actions ejecutará ejecuciones de flujo de trabajo para examinar el código. Para obtener más información, vea «Establecimiento de la configuración predeterminada para el examen del código».

  • Usa la configuración avanzada para agregar el flujo de trabajo de CodeQL al repositorio. Esto genera un archivo de flujo de trabajo personalizable en el que se usa github/codeql-action para ejecutar la instancia de CodeQL CLI. Para obtener más información, vea «Establecimiento de la configuración avanzada para el examen del código».

  • Ejecuta CodeQL CLI directamente en un sistema de integración continua externo y carga los resultados en GitHub. Para obtener más información, vea «Utilizar el análisis de código de CodeQL con tu sistema de IC existente».

Para más información sobre alertas de code scanning, consulta "Acerca de las alertas de análisis de código".

Acerca de CodeQL

El CodeQL trata el código como datos, permitiéndote encontrar vulnerabilidades potenciales en tu código con mayor confianza que los analizadores estáticos tradicionales.

  1. Generas una base de datos de CodeQL para representar tu base de código.
  2. Entonces, ejecutarás consultas de CodeQL en esa base de datos para identificar problemas en la base de código.
  3. Estos resultados de consulta se muestran como alertas del code scanning en GitHub cuando utilizas al CodeQL con el code scanning.

CodeQL es compatible tanto con lenguajes compilados como interpretados, y puede buscar vulnerabilidades y errores en el código escrito en los lenguajes compatibles.

  • C/C++
  • C#
  • Go
  • Java/Kotlin
  • JavaScript/TypeScript
  • Python
  • Ruby
  • Swift

Notas:

  • Use java-kotlin para analizar el código escrito en Java, Kotlin o ambos.
  • Use javascript-typescript para analizar el código escrito en JavaScript, TypeScript o ambos.

Para más información, vea la documentación en el sitio web de CodeQL: "Lenguajes y marcos admitidos".

Acerca de las consultas de CodeQL

Los expertos de GitHub, investigadores de seguridad y contribuyentes comunitarios escriben y mantienen las consultas predeterminadas de CodeQL que se utilizan para el code scanning. Las consultas se actualizan periódicamente para mejorar el análisis y reducir los falsos positivos.

Escribir sus propias consultas

Las consultas son de código abierto, por lo que puede verlas y contribuir a ellas en el repositorio github/codeql. Para obtener más información, consulte "Acerca de las consultas de CodeQL" en la documentación de CodeQL.

Ejecutar consultas adicionales

Si vas a examinar el código con una configuración avanzada o un sistema de CI externo, puedes ejecutar consultas adicionales como parte del análisis.

Estas consultas deben pertenecer a un paquete de consultas de CodeQL publicado o un paquete de CodeQL en un repositorio.

  • Cuando un paquete de consultas de CodeQL se publica en el Container registry de GitHub, todas las dependencias transitivas que requieren las consultas y un caché de compilación se incluyen en el paquete. Esto mejora el rendimiento y garantiza que el ejecutar las consultas del paquete proporciona resultados idénticos cada vez que actualizas a una versión nueva del paquete o de CLI.

  • Los paquetes de consultas de CodeQL pueden descargarse de varios registros de contenedor GitHub. Para obtener más información, vea «Personalización de la configuración avanzada para el examen de código».

Para obtener más información, vea «Personalización del análisis con paquetes de CodeQL».