Nota:
Las detecciones de seguridad basadas en IA se encuentran actualmente en versión preliminar pública y pueden cambiar.
Las detecciones de seguridad basadas en IA son hallazgos de seguridad adicionales generados por un motor de escaneo basado en IA que se ejecuta en pull requests y complementa CodeQL. A diferencia de las alertas CodeQL, los hallazgos con tecnología de IA solo están disponibles en las solicitudes de extracción 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. Las detecciones con tecnología de inteligencia artificial amplían code scanning la 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, las detecciones de seguridad basadas en IA requieren 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.
Funcionamiento de las detecciones de seguridad con tecnología de inteligencia artificial
Las detecciones de seguridad con tecnología de inteligencia artificial se ejecutan automáticamente en solicitudes de incorporación de cambios en repositorios en CodeQL los que la configuración predeterminada está habilitada y se han optado por las detecciones con tecnología de inteligencia artificial. El análisis basado en IA se activa al crear una solicitud de incorporación de cambios y después de cada nueva confirmación de cambios, al igual que CodeQL.
Los hallazgos basados en IA son meramente informativos y no bloquean la fusión de las solicitudes de incorporación de cambios. 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.
El análisis de IA se ejecuta independientemente del estado de CodeQL. Si CodeQL se produce un error en la configuración predeterminada o se encuentra en estado de espera, las detecciones con tecnología de inteligencia artificial se seguirán ejecutando.
Los resultados se publican en la solicitud de extracción a medida que se van encontrando. Si el CodeQL escaneo tarda más en completarse, puede que vea hallazgos basados en IA antes de que aparezcan los resultados de CodeQL, o viceversa.
Cómo aparecen los hallazgos en las pull requests
Los resultados basados en IA aparecen junto a las alertas CodeQL en las pestañas Conversación y Archivos modificados de una solicitud de extracción. Cada hallazgo basado en IA se etiqueta con un indicador "IA" para que pueda distinguirlo de CodeQL las alertas.
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, Autofijo de Copilot 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
- Las detecciones de seguridad impulsadas por IA solo analizan las pull requests. No se permiten análisis del repositorio completo.
- Todavía no se pueden usar hallazgos con tecnología de inteligencia artificial en conjuntos de reglas para aplicar los requisitos de combinación
- 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 resultados pueden incluir falsos positivos. Use el mecanismo de comentarios para notificar resultados inexactos.
Idiomas compatibles
Las detecciones de seguridad con tecnología de inteligencia artificial están diseñadas 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
Actualmente, las detecciones de seguridad con tecnología de inteligencia artificial abarcan las siguientes categorías. Estas categorías describen cómo se clasifican los resultados. El escáner de IA 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.
- Control de acceso vulnerado — traversal de directorios, fallos de protección contra CSRF o redirecciones abiertas provocadas 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.
Habilitación de detecciones de seguridad con tecnología de inteligencia artificial
Las detecciones de seguridad con tecnología de inteligencia artificial no se permiten en el nivel empresarial de forma predeterminada y se deshabilitan en los niveles de organización y repositorio. Los administradores de empresa deben permitir explícitamente la característica para que las organizaciones puedan habilitarla. Los administradores de la organización deben participar explícitamente en la característica. Los administradores del repositorio pueden optar por no participar en la característica. Además, debe tener habilitada la CodeQL configuración predeterminada.
No es necesario seleccionar un modelo para habilitar las detecciones de seguridad con tecnología de inteligencia artificial.
- Empresa: la directiva de conclusiones 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 de conclusiones de IA en "Análisis de código" permite detecciones con tecnología de inteligencia artificial para repositorios de la organización. Consulte Configuración de seguridad global para su organización.
- Repositorio: el interruptor de hallazgos de IA en "Code scanning" habilita o deshabilita las detecciones con tecnología de IA para este repositorio. Los repositorios heredan la configuración de la organización, pero pueden optar por no participar individualmente.