Nota:
El administrador del sitio debe habilitar code scanning antes de que puedas utilizar esta característica. Para más información, consulta Configuración del análisis de código para el dispositivo.
Es posible que no puedas habilitar o deshabilitar code scanning si un propietario de una empresa ha establecido una directiva de GitHub Advanced Security en el nivel de la empresa. Para más información, consulta Aplicación de directivas de seguridad y análisis de código de la empresa.
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 tres maneras principales de usar el análisis CodeQL para code scanning:
-
Usa la configuración predeterminada para configurar rápidamente el análisis CodeQL para code scanning en tu repositorio. La configuración predeterminada elige automáticamente los lenguajes que se van a analizar, la suite de consultas que se va a ejecutar y los eventos que activan escaneos. Si lo prefiere, puede seleccionar manualmente el conjunto de consultas para ejecutar y lenguajes que se van a analizar. 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.
-
Use la configuración avanzada para agregar el CodeQL flujo de trabajo al repositorio. Esto genera un archivo de flujo de trabajo personalizable que utiliza github/codeql-action para ejecutar CodeQL CLI. Para obtener más información, vea Establecimiento de la configuración avanzada para el examen del código.
-
Ejecute directamente CodeQL CLI en un sistema de CI externo y cargue 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.
Nota:
En GitHub Enterprise Server3.16, la acción CodeQL utiliza la versión CodeQL CLI de 2.20.3 de forma predeterminada. Se recomienda usar la misma versión de CodeQL CLI si ejecuta el análisis en un sistema de CI externo.
Para obtener información sobre las alertas code scanning, consulte Alertas de examen de código.
Acerca de CodeQL
CodeQL es un lenguaje de programación y herramientas asociadas que tratan el código como los datos. Se creó explícitamente para facilitar el análisis de código y encontrar posibles vulnerabilidades en el código con mayor confianza que los analizadores estáticos tradicionales.
- Se genera una CodeQL base de datos para representar el código base.
- A continuación, ejecute CodeQL consultas en esa base de datos para identificar problemas en el código base.
- Los resultados de la consulta se muestran en forma de code scanning alertas en GitHub cuando se usa CodeQL con code scanning.
CodeQL admite lenguajes compilados e interpretados, y puede encontrar vulnerabilidades y errores en el código escrito en los idiomas admitidos.
CodeQL admite los siguientes idiomas:
- C/C++
- C#
- Go
- Java/Kotlin
- JavaScript/TypeScript
- Python
- Ruby
- Rust (versión preliminar pública)
- Swift
Nota:
- Usa
java-kotlinpara analizar el código escrito en Java, Kotlin o ambos. - Usa
javascript-typescriptpara analizar el código escrito en JavaScript, TypeScript o ambos.
Para más información, consulta la documentación en el sitio web de CodeQL: Lenguajes y marcos admitidos.
Importante
CodeQLno admite idiomas que no se enumeran anteriormente. Esto incluye, entre otros, PHP y Scala. Intentar usar CodeQL con idiomas no admitidos puede dar lugar a que no se generen alertas y a análisis incompletos.
Modelado de marcos personalizados o de nicho
GitHub Los expertos, investigadores de seguridad y colaboradores de la comunidad escriben bibliotecas para modelar el flujo de datos en frameworks y bibliotecas populares. Si usa dependencias personalizadas que no están modeladas, puede usar la CodeQL extensión para Visual Studio Code crear modelos para estas dependencias y usarlas para ampliar el análisis. Para obtener más información, vea Uso del editor de modelos de CodeQL.
Consultas de CodeQL
GitHub expertos, investigadores de seguridad y colaboradores de la comunidad escriben y mantienen las consultas predeterminadas CodeQL usadas para code scanning. Las consultas se actualizan periódicamente para mejorar el análisis y reducir los resultados falsos positivos. Para obtener detalles sobre las consultas disponibles en los paquetes predeterminados y ampliados, consulte Consultas incluidas en los conjuntos de consultas predeterminadas y ampliadas de seguridad.
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 Información sobre las consultasCodeQL en la CodeQL documentación.
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 publicado CodeQL o a un CodeQL paquete de un repositorio.
-
Cuando se publica un CodeQL paquete de consultas en GitHubContainer registry, todas las dependencias transitivas requeridas por las consultas y una 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.
-
CodeQL Los paquetes de consulta se pueden descargar desde varios GitHub registros de contenedor. Para obtener más información, vea Opciones de configuración de flujo de trabajo para el examen de código.
Para obtener más información, vea Personalización del análisis con paquetes de CodeQL.