Acerca del escaneo 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 escaneo de código en GitHub.

El Escaneo de código se encuentra disponible para todos los repositorios públicos y para los privados que pertenecen a organizaciones en donde se habilitó la GitHub Advanced Security. Para obtener más información, consulta la sección "Acerca de GitHub Advanced Security".

Acerca de escaneo de código con CodeQL

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 escaneo de código.

Hay dos formas principales para utilizar el análisis de CodeQL para el escaneo 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 escaneo de código en GitHub cuando utilizas al CodeQL con el escaneo de código.

CodeQL es compatible tanto con los lenguajes compilados como con lso interpretados, y puede encontrar vulnerabilidades y errores en el código que se escriba en los lenguajes compatibles.

  • C/C++
  • C#
  • Go
  • Java
  • JavaScript/TypeScript
  • Python

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 escaneo de código. Las consultas se actualizan frecuentemente para mejorar el análisis y reducir cualquier resultado falso positivo. Las consultas son de código abierto, así que puedes ver y contribuir con ellas en el repositorio de github/codeql. Para obtener más información, consulta la sección CodeQL en el sitio web de GitHub Security Lab. También puedes escribir tus propias consultas. Para obtener más información, consulta la sección "Acerca de las consultas de CodeQL" en la documentación de CodeQL.

Puedes ejecutar consultas adicionales como parte de tu análisis de escaneo de código. Estas consultas deben pertenecer a un paquete de consultas (beta) de CodeQL publicado o a un paquete de QL en un repositorio. Los paquetes de CodeQL (beta) proporcionan los siguientes beneficios sobre los paquetes tradicionales de QL:

  • Cuando un paquete de consultas de CodeQL (beta) se publica en el Registro de contenedores 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 QL no incluyen las dependencias transitivas, así que las consultas en el paquete puede depender únicamente de las librerías estándar (esto es, si las librerías se referencian mediante un argumento import LANGUAGE en tu consulta) o en las librerías del mismo paquete de QL que la consulta.

Para obtener más información, consulta las secciones "Acerca de los paquetes de CodeQL" y "Acerca de los paquetes de QL" en la documentación de CodeQL.

Nota: La funcionalidad de administración de paquetes de CodeQL, incluyendo los paquetes de CodeQL, se encuentra actualmente en beta y está sujeta a cambios.

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.