Nota:
AI Scan se encuentra actualmente en versión preliminar pública y está sujeto a cambios.
AI Scan genera hallazgos de seguridad adicionales con un motor de análisis basado en IA que se ejecuta en solicitudes de extracción y complementa CodeQL. A diferencia de las alertas CodeQL, los resultados del análisis de IA solo están disponibles en las solicitudes de incorporación de cambios y no aparecen como alertas pendientes en la vista de seguridad del repositorio.
Aunque CodeQL proporciona análisis estáticos de alta precisión para un conjunto específico de lenguajes y consultas admitidos, muchos repositorios usan lenguajes y marcos que CodeQL no cubren. Ai Scan amplía la code scanning cobertura en estas áreas, lo que le ayuda a encontrar vulnerabilidades sin agregar nuevas herramientas ni configuración.
Durante el versión preliminar pública, AI Scan requiere una licencia GitHub Advanced Security y una licencia GitHub Copilot.
El uso consume AI credits. Consulte Facturación basada en el uso para organizaciones y empresas.
Cómo funciona AI Scan
El examen de IA se ejecuta automáticamente cuando code scanning está habilitado para un repositorio, la configuración eficaz del examen de IA del repositorio está habilitada y una solicitud de incorporación de cambios válida contiene cambios aptos en un lenguaje o marco admitidos que CodeQL no cubre. Estas condiciones también determinan cuándo comienza el uso de AI Scan. El examen se desencadena en la creación de solicitudes de incorporación de cambios y después de cada confirmación nueva, igual que CodeQL.
AI Scan no requiere CodeQL una configuración predeterminada y no depende del estado del análisis de CodeQL. Si el análisis de CodeQL falla o está en espera, AI Scan seguirá ejecutándose.
Los resultados de AI Scan son meramente informativos y no bloquean la fusión de las pull requests. Proporcionan señales sobre dónde se puede mejorar la seguridad del código sin interrumpir el flujo de trabajo.
El motor de análisis de IA funciona directamente con el código de la solicitud de incorporación de cambios y no requiere un sistema de compilación. Usa herramientas como la búsqueda de código para recopilar contexto adicional del repositorio al decidir si se debe marcar un problema. Usa sus propias indicaciones especializadas y no usa archivos de instrucción personalizados como /.github/copilot-instructions.md o /CLAUDE.md.
Los resultados se publican en la solicitud de incorporación de cambios a medida que se van encontrando. Si el CodeQL análisis tarda más en completarse, es posible que vea los resultados del análisis con IA antes de que aparezcan los resultados de CodeQL, o viceversa.
Cómo aparecen los hallazgos de AI Scan en las pull requests
Los resultados del análisis con IA aparecen junto con las alertas CodeQL en las pestañas Conversación y Archivos cambiados de una solicitud de extracción. Cada hallazgo se etiqueta con un indicador de "IA" para que puedas distinguirlo de las alertas CodeQL.
Cada hallazgo incluye una descripción del problema de seguridad y una explicación del riesgo. La mayoría de los hallazgos también incluyen una corrección sugerida, pero no todas las conclusiones tienen una. Cuando hay disponible una corrección sugerida, Copilot Autofix se incluye y proporciona un cambio de código recomendado para corregir el problema, de la misma manera que lo hace para CodeQL las alertas. Los resultados también incluyen un mecanismo de valoración positiva o negativa que ayuda a mejorar la calidad de la detección con el tiempo.
Limitations
- AI Scan solo analiza las solicitudes de incorporación de cambios. No se permiten análisis del repositorio completo.
- Los resultados de AI Scan aún no pueden usarse en conjuntos de reglas para aplicar requisitos de fusión.
- AI Scan no se ejecuta en solicitudes de extracción de bifurcaciones ni en solicitudes de extracción creadas por Dependabot.
- Las categorías de detección y los idiomas admitidos pueden cambiar a medida que evoluciona la característica.
- Al igual que con cualquier herramienta basada en IA, los hallazgos de análisis de IA pueden incluir falsos positivos. Use el mecanismo de comentarios para notificar resultados inexactos.
Idiomas compatibles
Ai Scan está diseñado para cubrir lenguajes y marcos que no son compatibles actualmente con CodeQL. Esto incluye, entre otros, lenguajes como PHP, Shell/Bash, la configuración de Terraform (HCL) y Dockerfiles, así como lagunas en la cobertura de frameworks, como JSP para Java y Blazor para C#.
Para obtener una lista completa de los idiomas admitidos por CodeQL, consulte Análisis de código con CodeQL.
Categorías de detección
AI Scan cubre actualmente las siguientes categorías. Estas categorías describen cómo se clasifican los resultados. El motor de análisis puede evolucionar a lo largo del tiempo a medida que mejoran los modelos.
- Inyección de cadenas — SQL, HTML, shell, JSON o YAML construidos de forma insegura mediante cadenas, sin el escape o la sanitización necesarios, o con ellos incorrectos.
- Criptografía débil : algoritmos débiles, claves pequeñas, aleatoriedad no segura, cifrado que falta o hash de contraseña débil.
- Pérdida de control de acceso: cruce de directorios, deficiencias de CSRF o redireccionamientos abiertos controlados por el usuario.
- Exposición de datos confidenciales : secretos, tokens, contraseñas o seguimientos de pila almacenados, registrados o enviados sin una protección adecuada.
- Configuración incorrecta de seguridad: valores predeterminados o valores de configuración de riesgo, como deshabilitar controles de seguridad o habilitar características de depuración.
- Fallos de autenticación — ausencia de TLS o de validación, flujos de autenticación no seguros o ausencia de limitación de solicitudes.
- Errores de integridad de datos: deserialización no segura, HTTP para acciones confidenciales, contaminación de prototipos o ejecución de contenido que no es de confianza.
- Falsificación de solicitudes del lado servidor (SSRF): el servidor captura direcciones URL, hosts o protocolos controlados por atacantes.
- Riesgos de la cadena de suministro : acciones, paquetes o imágenes de terceros desanclados o descargas sin comprobaciones de integridad.
Activación del escaneo con IA
El examen de IA no se permite en el nivel empresarial de forma predeterminada y está deshabilitado en los niveles de organización y repositorio. Los propietarios de la empresa deben permitir AI Scan antes de que los administradores de la organización puedan habilitarlo. Al habilitar el análisis de IA para una organización, se aplica a los repositorios elegibles en los que code scanning está habilitado. Los administradores de repositorios pueden optar por no participar en repositorios individuales. En el caso de un repositorio público apto propiedad de una cuenta personal, un administrador de repositorios debe habilitar ai Scan directamente para el repositorio.
No es necesario seleccionar un modelo para habilitar el examen de IA.
- Empresa: la directiva de análisis de IA en "Seguridad del código" controla si las organizaciones pueden habilitar la característica. Consulte Aplicación de directivas de seguridad y análisis de código de la empresa.
- Organización: la configuración examen de IA en "Análisis de código" permite el examen de IA para repositorios aptos en la organización donde code scanning está habilitado. Consulte Configuración de seguridad global para su organización.
- Repositorio: En un repositorio propiedad de una organización, la opción AI Scan de «análisis de código» permite a los administradores del repositorio desactivar su uso cuando AI Scan está habilitado para la organización. Para un repositorio público que cumpla los requisitos y pertenezca a una cuenta personal, el interruptor activa o desactiva AI Scan directamente.
Puede usar la API REST para administrar la configuración de la organización o del repositorio ai-scan . Consulte Puntos de conexión de la API de REST para el análisis de código.