> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corgea.app/llms.txt
> Use this file to discover all available pages before exploring further.

# SAST nativo de IA

> Cobertura integral de vulnerabilidades en Corgea

## Resumen

El SAST nativo de IA es la solución de nueva generación de Corgea para detectar y corregir vulnerabilidades en el código de las aplicaciones, con especial atención a la lógica de negocio y la autenticación. A diferencia de las herramientas tradicionales de análisis estático de seguridad de aplicaciones (SAST), utiliza técnicas avanzadas de IA para aumentar la precisión, reducir los falsos positivos y proporcionar información útil a los equipos de desarrollo y seguridad.

La combinación de modelos de lenguaje de gran tamaño (LLM) y análisis estático permite comprender mejor el contexto y detectar vulnerabilidades que las herramientas SAST convencionales podrían pasar por alto. Este documento explica cómo funciona el SAST nativo de IA, qué detecta y cómo se integra en el desarrollo.

## Características principales

<AccordionGroup>
  <Accordion title="Detección mejorada por IA" icon="robot">
    * Combina las capacidades de razonamiento de los LLMs con análisis estático de código
    * Detecta con precisión vulnerabilidades con comprensión contextual
    * Identifica tanto la lógica de negocio como las vulnerabilidades tradicionales de SAST
  </Accordion>

  <Accordion title="Experiencia del desarrollador" icon="code">
    * Una baja tasa de falsos positivos reduce el ruido en los resultados de escaneo
    * Recomendaciones prácticas con explicaciones claras
    * Integración con pipelines de CI/CD y pull requests
  </Accordion>

  <Accordion title="Cobertura de seguridad" icon="shield-check">
    * Detección de vulnerabilidades en lógica de negocio
    * Fallos de autenticación y autorización
    * Detección integral de vulnerabilidades en múltiples categorías
  </Accordion>
</AccordionGroup>

## Clases de vulnerabilidad detectadas

El SAST nativo de IA destaca en la detección de vulnerabilidades en lógica de negocio, que a menudo pasan desapercibidas en las herramientas tradicionales de SAST. A continuación, algunas de las vulnerabilidades específicas detectadas por el SAST nativo de IA:

<AccordionGroup>
  <Accordion title="Control de acceso" icon="shield-halved">
    * **Control de acceso roto (CWE-639)**: Comprobaciones de autorización faltantes que permiten acceso no autorizado
    * **Referencias directas inseguras a objetos (CWE-639)**: Acceso directo a objetos sin la debida autorización
    * **Path Traversal (CWE-22)**: Ataques de recorrido de directorios accediendo a archivos no autorizados
    * **Autorización insegura (CWE-285)**: controles de acceso débiles
    * **Escalada de privilegios (CWE-269)**: Gestión inadecuada de privilegios
    * **Control de Acceso a Nivel de Función Faltante (CWE-285)**: Funciones administrativas no protegidas
  </Accordion>

  <Accordion title="Vulnerabilidades de inyección" icon="syringe">
    * **SQL Injection (CWE-89)**: Consultas SQL no sanitizadas que permiten manipulación de bases de datos
    * **Inyección de comandos (CWE-78)**: vulnerabilidades en inyección de comandos del sistema operativo
    * **Cross-Site Scripting (XSS) (CWE-79)**: Inyección de scripts maliciosos en páginas web
    * **Inyección LDAP (CWE-90)**: manipulación de consultas LDAP
    * **XML Injection (CWE-91)**: manipulación de contenido XML
    * **Inyección de código (CWE-94)**: Vulnerabilidades en la ejecución dinámica de código
    * **Inyección de Lenguaje de Expresión (CWE-917)**: Inyección en lenguajes de expresión
    * **Inyección de plantillas (CWE-1336)**: Inyección de plantillas en el lado del servidor
  </Accordion>

  <Accordion title="Autenticación y autorización" icon="lock">
    * **Autenticación insegura (CWE-287)**: MFA faltante o gestión insegura de tokens
    * **Autenticación rota (CWE-287)**: Mecanismos de autenticación débiles
    * **Gestión incorrecta de sesiones (CWE-384)**: mala gestión del ID de sesión
    * **Gestión de credenciales (CWE-255)**: Almacenamiento o transmisión incorrecta de credenciales
    * **Requisitos de contraseña débiles (CWE-521)**: Aplicación insuficiente de la complejidad de la contraseña
  </Accordion>

  <Accordion title="Fallos criptográficos" icon="key">
    * **Almacenamiento de datos inseguro (CWE-311)**: Cifrado débil o almacenamiento en texto plano
    * **Criptografía débil (CWE-327)**: Uso de algoritmos criptográficos rotos o arriesgados
    * **Entropía insuficiente (CWE-330)**: Generación predecible de números aleatorios
    * **Credenciales incluidas directamente en el código (CWE-798)**: Credenciales incrustadas
    * **Exposición a Datos Sensibles (CWE-200)**: Filtraciones de información
    * **Validación incorrecta de certificados (CWE-295)**: fallos de validación SSL/TLS
  </Accordion>

  <Accordion title="Manejo y validación de datos" icon="database">
    * **Validación de entradas incorrecta (CWE-20)**: Validación insuficiente de los datos de entrada
    * **Codificación de salida incorrecta (CWE-116)**: Sanitización inadecuada de salida
    * **Asignación masiva (CWE-915)**: Vinculación de parámetros de solicitud a objetos internos
    * **Entidad Externa XML (XXE) (CWE-611)**: Vulnerabilidades del analizador XML
    * **Deserialización de Datos No Confiables (CWE-502)**: Deserialización insegura de objetos
  </Accordion>

  <Accordion title="Configuración incorrecta de seguridad" icon="gear">
    * **Configuración incorrecta de seguridad (CWE-16)**: Configuración de seguridad incorrecta
    * **Configuraciones predeterminadas (CWE-1188)**: Uso de configuraciones predeterminadas inseguras
    * **Falta de cabeceras de seguridad (CWE-693)**: Ausencia de cabeceras HTTP protectoras
    * **Mensajes de error verbosos (CWE-209)**: Divulgación de información mediante errores
    * **Listado de directorios (CWE-548)**: Contenido expuesto del directorio
  </Accordion>

  <Accordion title="Lógica de negocio y flujo de código" icon="map">
    * **Vulnerabilidades de la lógica de negocio (CWE-840)**: Fallos que permiten a los usuarios manipular o eludir procesos críticos
    * **Vulnerabilidades de Lógica de Código (CWE-633)**: Errores en condiciones o bucles que conducen a comportamientos inesperados
    * **Vulnerabilidades Dependientes del Contexto (CWE-696)**: Errores basados en el tiempo o dependientes del estado
    * **Condiciones de carrera (CWE-362)**: Control incorrecto de la temporización o del orden de las operaciones
    * **Ataques de Temporización (CWE-208)**: Filtraciones de información basadas en el tiempo
  </Accordion>

  <Accordion title="Falsificación de solicitudes en el lado del servidor" icon="server">
    * **SSRF (CWE-918)**: Falsificación de solicitudes en el lado del servidor que permite solicitudes internas no autorizadas
    * **Redirección de URL (CWE-601)**: Redirecciones y reenvíos no validados
    * **DNS Rebinding (CWE-350)**: ataques SSRF basados en DNS
  </Accordion>

  <Accordion title="Fallos en registro y monitorización" icon="chart-line">
    * **Registro incorrecto (CWE-532)**: Datos sensibles en los registros
    * **Registro insuficiente (CWE-778)**: Registro de eventos de seguridad ausente
    * **Manejo incorrecto de errores (CWE-209)**: Filtraciones de información en mensajes de error
    * **Manejo inadecuado de excepciones (CWE-248)**: Riesgos de seguridad derivados de una mala gestión de excepciones
    * **Pista de auditoría faltante (CWE-778)**: Seguimiento inadecuado de la actividad
  </Accordion>

  <Accordion title="Detección de código malicioso" icon="bug">
    * **Código malicioso (CWE-506)**: Acciones dañinas no autorizadas
    * **Puertas traseras (CWE-288)**: Mecanismos de acceso ocultos
    * **Bombas de tiempo (CWE-511)**: Acciones maliciosas que se activan en un momento determinado
    * **Ataques a la cadena de suministro (CWE-1357)**: Dependencias o actualizaciones comprometidas
  </Accordion>

  <Accordion title="Privacidad y Recursos" icon="eye-slash">
    * **Exfiltración de datos (CWE-319)**: Transmisión de datos no autorizada
    * **Recogida de datos poco ética (CWE-359)**: Recogida inadecuada de datos
    * **Actividad maliciosa de red (CWE-293)**: Conexiones sospechosas
    * **Minería de Criptomonedas (CWE-400)**: Uso no autorizado de recursos
    * **Agotamiento de recursos (CWE-400)**: Denegación de servicio por consumo de recursos
  </Accordion>
</AccordionGroup>

Además de vulnerabilidades de lógica de negocio, el SAST nativo con IA detecta fallos de seguridad habituales que también encuentran los escáneres SAST convencionales y abarca aproximadamente **900 enumeraciones de debilidades comunes (CWE)**.

<Card title="Escaneo de secretos" icon="key" href="/es/secret-scanning">
  Corgea también ofrece un escaneo exhaustivo de secretos para detectar credenciales incluidas en el código, claves de API y datos sensibles. Consulta más información sobre su detección y almacenamiento seguro.
</Card>

## Cobertura integral de vulnerabilidades

El SAST nativo de IA de Corgea ofrece una amplia cobertura de vulnerabilidades que va más allá de los estándares del sector como el OWASP Top 10 y el Top 25 CWE. Nuestra plataforma amplía continuamente su base de datos de vulnerabilidades para adelantarse a amenazas emergentes y abordar una amplia gama de problemas de seguridad en diferentes lenguajes y frameworks de programación.

### Profundidad y amplitud de cobertura

Nuestra cobertura de vulnerabilidades abarca múltiples dimensiones para garantizar un análisis exhaustivo de tu base de código:

<AccordionGroup>
  <Accordion title="Vulnerabilidades específicas del lenguaje" icon="code">
    Corgea comprende las particularidades de cada lenguaje de programación y sus retos de seguridad. Nuestros modelos de IA están entrenados para identificar vulnerabilidades propias de cada lenguaje compatible, desde problemas de gestión de memoria en C/C++ hasta riesgos derivados del tipado dinámico en Python y Ruby.
  </Accordion>

  <Accordion title="Vulnerabilidades específicas del framework" icon="layer-group">
    Los frameworks populares presentan sus propios riesgos de seguridad. El análisis de Corgea tiene en cuenta las particularidades de .NET, Django, Ruby on Rails, Gin, Express.js y Spring para ofrecer detección y remediación específicas.
  </Accordion>

  <Accordion title="Vulnerabilidades comunes a varios lenguajes" icon="arrows-cross">
    Además de los problemas propios de cada lenguaje, la plataforma detecta vulnerabilidades que pueden aparecer en varios lenguajes, como:

    * Prácticas criptográficas inseguras
    * Validación de entrada incorrecta
    * Condiciones de carrera
    * Fallos de autenticación y autorización
  </Accordion>

  <Accordion title="Amenazas emergentes" icon="shield-virus">
    Nuestros modelos de IA se actualizan continuamente para mantenerse a la vanguardia, asegurando la detección y remediación de nuevas vulnerabilidades a medida que surgen en el panorama de seguridad en constante evolución.
  </Accordion>
</AccordionGroup>

### Por qué es importante una cobertura amplia

<CardGroup cols={2}>
  <Card title="Reducción de riesgo" icon="shield-check">
    Reduce el riesgo de brechas de seguridad, filtraciones de datos y otras amenazas al abordar una amplia variedad de vulnerabilidades
  </Card>

  <Card title="Cumplimiento" icon="file-certificate">
    Cumple los requisitos de seguridad y las normas específicas del sector, y reduce el riesgo de sanciones
  </Card>

  <Card title="Eficiencia" icon="gauge-high">
    Agiliza las revisiones mediante la detección de falsos positivos con IA y las correcciones automáticas
  </Card>

  <Card title="Mejora continua" icon="arrows-rotate">
    Mantente protegido a medida que el panorama de seguridad evoluciona con datos de vulnerabilidades y inteligencia de amenazas en continua expansión
  </Card>
</CardGroup>

## Revisar el análisis de taint

Cuando Corgea identifica un flujo de datos en un hallazgo de código, **Vista completa** incluye la pestaña **Análisis de taint**. Utilízala para seguir el recorrido de los datos no fiables desde el origen hasta el sink vulnerable, incluidos los flujos que atraviesan varios archivos.

<Steps>
  <Step title="Abre un hallazgo">
    En la lista de hallazgos de un escaneo, haz clic en una fila para abrir la barra lateral de detalles.
  </Step>

  <Step title="Abre Vista completa">
    En la barra lateral, haz clic en **Abrir Vista completa**. La pestaña Análisis de taint está disponible en Vista completa, pero no en la vista previa de la barra lateral.

    <Frame>
      <img src="https://mintcdn.com/corgea/1OfVmGqf59iOSEPM/images/open-full-view.png?fit=max&auto=format&n=1OfVmGqf59iOSEPM&q=85&s=9ce044d4358093beb84a8a89ba0e3fba" alt="Vista rápida del hallazgo con el botón Abrir Vista completa resaltado" style={{ borderRadius: '0.5rem' }} width="3022" height="1684" data-path="images/open-full-view.png" />
    </Frame>
  </Step>

  <Step title="Abre la pestaña Análisis de taint">
    Selecciona **Análisis de taint**. Corgea carga una traza ordenada del flujo de datos. La primera vez que abras la pestaña, la generación puede tardar unos segundos.
  </Step>

  <Step title="Recorre la traza">
    Cada paso muestra su función, la ruta del archivo, el número de línea y una breve descripción. Haz clic en un paso para abrir el archivo en el visor de código integrado y saltar a la línea correspondiente.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/corgea/1OfVmGqf59iOSEPM/images/multi-file-taint-analysis.png?fit=max&auto=format&n=1OfVmGqf59iOSEPM&q=85&s=0e996b545043d4ef01e284e2dd9a80b1" alt="Pestaña Análisis de taint en Vista completa, con los pasos de origen, propagación y sink junto al visor de código" style={{ borderRadius: '0.5rem' }} width="3022" height="1710" data-path="images/multi-file-taint-analysis.png" />
</Frame>

La traza se agrupa en tres tipos de pasos:

* **Fuente** — donde la entrada no confiable entra en la aplicación
* **Propagación** — funciones o archivos intermedios que transmiten el valor contaminado
* **Sink** — donde los datos llegan a la operación vulnerable

Según los datos disponibles para el hallazgo, la traza puede proceder de un flujo de datos obtenido durante el escaneo —por ejemplo, de hallazgos de Semgrep, SARIF o Checkmarx—, de un grafo de llamadas con análisis de alcanzabilidad o de un análisis generado con IA cuando no existe una traza del escaneo. La cabecera de la pestaña indica el origen utilizado.

## Tecnología del SAST nativo de IA

El SAST nativo de IA utiliza la tecnología propietaria CodeIQ de Corgea, que combina IA y árboles de sintaxis abstracta (AST) para realizar un análisis exhaustivo:

<Steps>
  <Step title="Análisis a nivel de proyecto">
    SAST, nativo de IA, analiza todo el proyecto para construir una imagen completa de las interacciones entre componentes del código, asegurando que no se pierdan vulnerabilidades.
  </Step>

  <Step title="Inteligencia contextual">
    El motor de IA entiende el contexto del código, incluyendo middleware, configuraciones y plantillas.
  </Step>

  <Step title="Reducción de falsos positivos">
    La comprensión del contexto y la lógica reducen los falsos positivos comunes en las herramientas tradicionales.
  </Step>
</Steps>

### Comparación con métodos tradicionales

<Warning>
  Las técnicas tradicionales de análisis estático presentan limitaciones significativas:

  * El análisis source-sink omite pasos de validación
  * Los call-graphs no detectan comportamientos en tiempo de ejecución
  * La búsqueda vectorial y el RAG sufren de una sobregeneralización
</Warning>

## Integración y flujo de trabajo

<Card title="Puntos de integración" icon="plug">
  * **Pipelines de CI/CD**: Escaneo automático en commits y pull requests
  * **Revisiones de pull requests**: Análisis de vulnerabilidades antes de la fusión
  * **Integración con IDE**: Información en tiempo real durante el desarrollo
</Card>

## Lenguajes y frameworks compatibles

Corgea ofrece escaneo, detección de falsos positivos y corrección automática en numerosos lenguajes de programación y sus frameworks más utilizados, con cobertura para unas 900 enumeraciones CWE.

### Compatibilidad con lenguajes

<AccordionGroup>
  <Accordion title="C#" icon="hashtag">
    **Compatibilidad nativa**: Cobertura completa de las construcciones de C#, incluidos LINQ, los patrones async/await y los genéricos.

    **Frameworks**: .NET, ASP.NET Core, Blazor

    Corgea destaca en la protección de aplicaciones .NET a nivel empresarial, abordando vulnerabilidades como autenticación incorrecta, desserialización insegura y CSRF.
  </Accordion>

  <Accordion title="Python" icon="python">
    **Compatibilidad nativa**: Analiza características de Python como decoradores, gestores de contexto y comprensiones.

    **Frameworks**: Django, Flask, FastAPI

    Se centra tanto en aplicaciones web como en servicios backend, abordando problemas como inyecciones SQL, XSS y referencias directas inseguras a objetos.
  </Accordion>

  <Accordion title="Ruby" icon="gem">
    **Compatibilidad nativa**: Comprende la naturaleza dinámica de Ruby, incluidas sus funciones y bloques de metaprogramación.

    **Frameworks**: Ruby on Rails, Sinatra

    Se especializa en identificar y corregir vulnerabilidades específicas de Ruby, incluyendo problemas de asignación masiva, rutas no protegidas y subidas de archivos inseguras.
  </Accordion>

  <Accordion title="Go" icon="golang">
    **Compatibilidad nativa**: Analiza construcciones específicas de Go como goroutines, canales e interfaces.

    **Frameworks**: Gin, Echo, Fiber

    Se dirige a preocupaciones de seguridad específicas de Go, como condiciones de carrera, manejo inadecuado de errores y uso inseguro de funciones criptográficas.
  </Accordion>

  <Accordion title="JavaScript & TypeScript" icon="js">
    **Compatibilidad nativa con los lenguajes**: Admite JavaScript y TypeScript, incluidas características como async/await, closures y el sistema de tipos de TypeScript.

    **Frameworks**: Node.js, Express.js, Next.js, NestJS, Angular, React, Vue.js

    Cubre tanto la seguridad del lado del cliente como del servidor, abordando problemas como la contaminación de prototipos, dependencias inseguras y XSS basado en DOM.
  </Accordion>

  <Accordion title="Java" icon="java">
    **Compatibilidad nativa**: Analiza características de Java como genéricos, anotaciones y expresiones lambda.

    **Frameworks**: Spring, Jakarta EE, Play Framework

    Se centra en ecosistemas Java empresariales, abordando vulnerabilidades como ataques a entidades externas XML (XXE), inyección LDAP y deserialización insegura de objetos.
  </Accordion>

  <Accordion title="PHP" icon="php">
    **Compatibilidad nativa**: Gestiona la sintaxis y las construcciones de PHP, incluidos traits y atributos.

    Aborda vulnerabilidades comunes de aplicaciones web como la ejecución remota de código, vulnerabilidades en inclusión de archivos y ataques de inyección SQL.
  </Accordion>

  <Accordion title="Kotlin" icon="k">
    **Compatibilidad nativa**: Analiza características de Kotlin, como la seguridad frente a valores null, las coroutines y las funciones de extensión.

    Está especializado en seguridad de aplicaciones Android y del lado del servidor, abordando problemas como la exposición inadecuada de datos y la comunicación insegura.
  </Accordion>

  <Accordion title="Swift" icon="swift">
    **Compatibilidad nativa**: Analiza características de Swift, como los opcionales, las extensiones de protocolo, los genéricos y los tipos por valor.

    Mejora la seguridad en el desarrollo de aplicaciones iOS y macOS, abordando vulnerabilidades como almacenamiento de datos inseguro, validación inadecuada de SSL/TLS y comunicación insegura entre procesos.
  </Accordion>

  <Accordion title="C y C++" icon="c">
    **Compatibilidad nativa**: Gestiona construcciones de bajo nivel como punteros, gestión de memoria y templates.

    Se centra en vulnerabilidades relacionadas con la memoria, desbordamientos de búfer y problemas de seguridad a nivel de sistema comunes en aplicaciones C/C++.

    *Habilitado para la detección de falsos positivos y la corrección automática. El escaneo estará disponible próximamente.*
  </Accordion>
</AccordionGroup>

### Capacidades clave

<CardGroup cols={2}>
  <Card title="Escaneo Exhaustivo" icon="magnifying-glass">
    Algoritmos avanzados escanean tu base de código para identificar posibles vulnerabilidades de seguridad, cubriendo una amplia gama de CWEs
  </Card>

  <Card title="Detección de falsos positivos" icon="filter">
    El sistema impulsado por IA distingue con precisión entre vulnerabilidades genuinas y falsos positivos
  </Card>

  <Card title="Reparación automatizada" icon="wrench">
    Proporciona correcciones aplicables y adaptadas al contexto que pueden implementarse automáticamente o revisarse antes
  </Card>

  <Card title="Análisis específico del framework" icon="puzzle-piece">
    Comprende las particularidades de los distintos frameworks de cada lenguaje para ofrecer información de seguridad específica
  </Card>
</CardGroup>

## Filtrado inteligente de archivos

Para optimizar el rendimiento y la precisión del escaneo, Corgea excluye automáticamente los archivos que no son relevantes para el análisis de seguridad:

### Archivos que se omiten

<AccordionGroup>
  <Accordion title="Archivos no fuente" icon="file-image">
    * Archivos multimedia (imágenes, vídeos, fuentes)
    * Archivos de estilo (CSS, SCSS, LESS)
    * Archivos de documentación y markdown
    * Archivos de configuración y archivos comprimidos
  </Accordion>

  <Accordion title="Desarrollo y pruebas" icon="flask">
    * Archivos de prueba y directorios de prueba
    * Datos simulados y fixtures
    * Informes de cobertura de código
  </Accordion>

  <Accordion title="Código generado y procesado" icon="gears">
    * Archivos de código generados automáticamente
    * Código minificado o agrupado
    * Archivos de migración de bases de datos
    * Archivos de definición de tipos
  </Accordion>

  <Accordion title="Artefactos de compilación" icon="box">
    * Binarios compilados y salidas de compilación
  </Accordion>
</AccordionGroup>

### Archivos usados para contexto

Aunque no los escanea directamente en busca de vulnerabilidades, Corgea puede consultar algunos archivos para mejorar el contexto del análisis, como README, ejemplos de configuración y archivos de configuración de la aplicación.

### Configuración personalizada

Puedes personalizar el comportamiento del escaneo mediante un archivo de configuración `corgea.yaml` en la raíz del repositorio:

```docs/corgea.yaml#L1-3 theme={null}
ignore_paths:
  - "path/to/exclude/*"
  - "legacy-code/*"
```

Esto te permite excluir directorios o patrones de archivo específicos según las necesidades de tu proyecto.

### Por qué filtramos

Nuestro enfoque de filtrado inteligente:

* **Mejora la precisión** centrándose en el código real de la aplicación
* **Reduce el ruido** de los archivos de prueba y del código de terceros
* **Optimiza el rendimiento** para obtener resultados de escaneo más rápidos
* **Prioriza los hallazgos** en el código que mantienes

<Note>
  **Próximamente**: Compatibilidad con Rust
</Note>
