Información sobre los resultados de CodeQL

Completado

En unidades anteriores, creaste una base de datos y examinaste el archivo extraído de tu código. Ahora puede ver los resultados y determinar si hay vulnerabilidades de seguridad para solucionar.

Visualización de los resultados del examen de código del análisis de CodeQL

Los resultados de la consulta interpretados se muestran automáticamente en el código fuente de la extensión CodeQL para Visual Studio Code. Los resultados de salida que genera la CLI de CodeQL pueden tener muchos formatos para su uso con varias herramientas.

Puede controlar cómo se muestran los resultados de análisis en el código fuente modificando una instrucción de select en una consulta. Puede hacer que los resultados sean claros y fáciles para que otros usuarios comprendan al desarrollar la consulta. Al escribir sus propias consultas en la consola de consultas o en la extensión CodeQL para Visual Studio Code, no hay restricciones en lo que se puede seleccionar.

Si desea usar una consulta para crear alertas en el análisis de código de GitHub o generar resultados de análisis válidos mediante la CLI de CodeQL, debe hacer que la instrucción select informe los resultados en el formato requerido.

Actuar sobre alertas de análisis de código

Puede configurar el examen de código para comprobar el código en un repositorio. Puede usar el análisis de CodeQL predeterminado, un análisis que no es de Microsoft u otros tipos de análisis. Las alertas resultantes se muestran junto entre sí en el repositorio.

El análisis de CodeQL predeterminado de GitHub puede incluir más propiedades para las alertas que los resultados de las herramientas que no son de Microsoft o de consultas personalizadas. En un flujo de trabajo predeterminado, el análisis del código se realiza periódicamente en la rama predeterminada y durante las solicitudes de incorporación de cambios.

Cada alerta incluye la siguiente información:

  • Problema con el código y el nombre de la herramienta que lo identificó.
  • Línea de código que desencadenó la alerta.
  • Propiedades de la alerta, como la gravedad.
  • La gravedad de la seguridad.
  • Punto en el que se introdujo el problema.
  • La naturaleza del problema.

La información también incluye cómo corregir el problema cuando el análisis de CodeQL identifica una alerta. Además, el análisis de código a través de CodeQL puede detectar problemas de flujo de datos en el código.

Captura de pantalla que muestra las alertas de análisis de CodeQL.

Alertas de flujo de datos

El análisis de flujo de datos detecta posibles problemas de seguridad en el código, entre los que se incluyen:

  • Usar datos de una manera que ponga en peligro la seguridad.
  • Pasar argumentos peligrosos a funciones.
  • Filtrar información confidencial.

GitHub muestra cómo se mueven los datos por el código cuando las alertas de análisis de código informan sobre el flujo de datos. Puede usar estas alertas de flujo de datos para identificar las áreas del código que filtran información confidencial. Este conocimiento puede ayudarle a identificar el punto de entrada de los ataques por parte de usuarios malintencionados.

Niveles de gravedad

Los resultados del análisis de código que tengan una gravedad de Error provocan un fallo en la verificación de forma predeterminada. Los niveles de gravedad de alerta son Error, Warningy Note. Puede especificar el nivel de gravedad a partir del cual deben fallar los pull requests que desencadenan alertas de análisis de código.

Niveles de gravedad de seguridad

Las consultas de seguridad que el examen de código genera muestran los niveles de gravedad de seguridad de las alertas. Los niveles de gravedad de seguridad son Critical, High, Mediumy Low. GitHub usa datos del Sistema de puntuación de vulnerabilidades comunes (CVSS) para calcular la gravedad de seguridad de una alerta.

Cualquier resultado del examen de código con una gravedad de seguridad de Critical o High provoca un error de comprobación de forma predeterminada. Puede especificar qué nivel de gravedad de seguridad debe provocar un error de comprobación de los resultados del examen de código.

Cerrar una alerta de análisis de código

Tiene dos maneras de cerrar una alerta:

  • Corrija el problema en el código.
  • Descarte o elimine la alerta.

Descartar una alerta de análisis de código

Descartar una alerta es una manera de cerrar una alerta que considere que no es necesario solucionar. Por ejemplo, podría descartar una alerta para un error en el código usado solo para las pruebas. También puede descartar una alerta si el esfuerzo necesario para corregir el error es mayor que la posible ventaja de mejorar el código.

Puede descartar alertas de anotaciones de análisis de código en el código o en la lista de resumen de la pestaña Seguridad . Para descartar una alerta de la lista, seleccione el menú Descartar alerta , seleccione un motivo para descartar y, a continuación, seleccione el botón Descartar alerta .

Vídeo en el que se muestra el menú desplegable y el botón para descartar una alerta.

Al descartar una alerta:

  • La alerta se descarta en todas las ramas.
  • La alerta se quita del número de alertas actuales del proyecto.
  • La alerta se mueve a la lista Cerrada en el resumen de alertas. Puede volver a abrirlo desde aquí, si es necesario.
  • Se registra el motivo por el que cerró la alerta.
  • La próxima vez que se ejecute el examen de código, el mismo código no generará una alerta.

Eliminación de una alerta de análisis de código

Puede eliminar una alerta si tiene permisos de administrador para el repositorio. La eliminación de alertas es útil cuando:

  • Configura una herramienta de análisis de código, pero más adelante decide quitarla.
  • Ha configurado el análisis de CodeQL con un conjunto mayor de consultas de lo que desea seguir usando.
  • Has quitado algunas consultas de la herramienta.
  • Quiere limpiar los resultados del examen de código.

Puede eliminar alertas de la lista de resumen de la pestaña Seguridad .

Al eliminar una alerta:

  • La alerta se elimina en todas las ramas.
  • La alerta se quita del número de alertas actuales del proyecto.
  • La alerta no se agrega a la lista Cerrada en el resumen de las alertas.
  • La alerta vuelve a aparecer en los resultados del análisis, si el código que generó la alerta permanece igual y la misma herramienta de análisis de código se ejecuta de nuevo sin cambios de configuración.