> ## 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 natif de l’IA

> Couverture complète des vulnérabilités avec Corgea

## Aperçu

Le SAST natif de l’IA est la solution de scan de code nouvelle génération de Corgea. Elle détecte et corrige les vulnérabilités du code applicatif, en mettant particulièrement l’accent sur les failles de logique métier, d’authentification et de code. Contrairement aux outils traditionnels de test statique de sécurité des applications (SAST), le SAST natif de l’IA s’appuie sur des techniques avancées pilotées par l’IA pour améliorer la précision de la détection, réduire les faux positifs et fournir des informations directement exploitables aux développeurs et aux équipes de sécurité.

En combinant la puissance des grands modèles de langage (LLM) et l’analyse statique, le SAST natif de l’IA acquiert une compréhension contextuelle plus fine du code et détecte des vulnérabilités qui peuvent échapper aux outils SAST classiques. Ce document présente son fonctionnement technique, les vulnérabilités qu’il peut détecter et son intégration aux workflows de développement.

## Caractéristiques clés

<AccordionGroup>
  <Accordion title="Détection améliorée par IA" icon="robot">
    * Combine les capacités de raisonnement des LLM avec l’analyse statique du code
    * Détecte avec précision les vulnérabilités grâce à une compréhension contextuelle
    * Identifie aussi bien les vulnérabilités de logique métier que les vulnérabilités SAST classiques
  </Accordion>

  <Accordion title="Expérience développeur" icon="code">
    * Un faible taux de faux positifs réduit le bruit dans les résultats d'analyse
    * Des analyses exploitables avec des explications claires
    * Intégration fluide avec les pipelines CI/CD et les pull requests
  </Accordion>

  <Accordion title="Couverture de sécurité" icon="shield-check">
    * Détection des vulnérabilités en logique métier
    * Failles d’authentification et d’autorisation
    * Détection complète des vulnérabilités dans plusieurs catégories
  </Accordion>
</AccordionGroup>

## Classes de vulnérabilité détectées

Le SAST natif de l’IA excelle dans la détection des vulnérabilités de logique métier, qui échappent souvent aux outils SAST traditionnels. Voici quelques-unes des vulnérabilités qu’il détecte :

<AccordionGroup>
  <Accordion title="Contrôle d’accès" icon="shield-halved">
    * **Contrôle d’accès défaillant (CWE-639)**: absence de contrôles d’autorisation permettant un accès non autorisé
    * **Références directes non sécurisées à des objets (CWE-639)**: accès direct à des objets sans autorisation adéquate
    * **Path traversal (CWE-22)**: traversée de répertoires permettant d’accéder à des fichiers non autorisés
    * **Autorisation non sécurisée (CWE-285)**: contrôles d’accès insuffisants
    * **Escalade des privilèges (CWE-269)**: Gestion inappropriée des privilèges
    * **Contrôle d’accès au niveau de fonction manquant (CWE-285)**: Fonctions administratives non protégées
  </Accordion>

  <Accordion title="Vulnérabilités liées à l’injection" icon="syringe">
    * **Injection SQL (CWE-89)**: requêtes SQL non assainies permettant de manipuler la base de données
    * **Injection de commandes (CWE-78)**: injection de commandes du système d’exploitation
    * **Cross-site scripting (XSS) (CWE-79)**: injection de scripts malveillants dans les pages web
    * **Injection LDAP (CWE-90)**: manipulation de requêtes LDAP
    * **Injection XML (CWE-91)**: manipulation de contenu XML
    * **Injection de code (CWE-94)**: Vulnérabilités d’exécution dynamique de code
    * **Injection de langage d’expression (CWE-917)**: Injection dans les langages d’expression
    * **Injection de template (CWE-1336)**: injection de templates côté serveur
  </Accordion>

  <Accordion title="Authentification et autorisation" icon="lock">
    * **Authentification non sécurisée (CWE-287)**: absence de MFA ou gestion non sécurisée des tokens
    * **Authentification défaillante (CWE-287)**: Mécanismes d’authentification faibles
    * **Mauvaise gestion des sessions (CWE-384)**: Mauvaise gestion de l’ID de session
    * **Gestion des identifiants (CWE-255)**: stockage ou transmission inadéquats des identifiants
    * **Exigences de mot de passe faibles (CWE-521)**: Application insuffisante de la complexité des mots de passe
  </Accordion>

  <Accordion title="Défaillances cryptographiques" icon="key">
    * **Stockage de données non sécurisé (CWE-311)**: Chiffrement faible ou stockage en clair
    * **Cryptographie faible (CWE-327)**: Utilisation d’algorithmes cryptographiques défaillants ou risqués
    * **Entropie insuffisante (CWE-330)**: Génération prévisible de nombres aléatoires
    * **Secrets codés en dur (CWE-798)**: Identifiants intégrés
    * **Exposition aux données sensibles (CWE-200)**: Fuites d’informations
    * **Validation incorrecte des certificats (CWE-295)**: échecs de validation SSL/TLS
  </Accordion>

  <Accordion title="Gestion et validation des données" icon="database">
    * **Traitement non sécurisé des données (CWE-20)**: validation insuffisante des entrées
    * **Encodage incorrect des sorties (CWE-116)** : échappement insuffisant des sorties
    * **Affectation de masse (CWE-915)**: liaison de paramètres de requête à des objets internes
    * **Entité externe XML (XXE) (CWE-611)**: vulnérabilités des parseurs XML
    * **Désérialisation des données non fiables (CWE-502)**: Désérialisation d’objets non sécurisés
  </Accordion>

  <Accordion title="Mauvaise configuration de sécurité" icon="gear">
    * **Mauvaise configuration de sécurité (CWE-16)**: Mauvais réglages de sécurité
    * **Configurations par défaut (CWE-1188)**: Utilisation de paramètres par défaut non sécurisés
    * **En-têtes de sécurité manquants (CWE-693)**: absence d’en-têtes HTTP de protection
    * **Messages d’erreur trop détaillés (CWE-209)**: divulgation d’informations dans les erreurs
    * **Listing de répertoire (CWE-548)**: exposition du contenu des répertoires
  </Accordion>

  <Accordion title="Logique métier et flux de code" icon="map">
    * **Vulnérabilités de la logique métier (CWE-840)**: Défauts qui permettent aux utilisateurs de manipuler ou de contourner des processus critiques
    * **Vulnérabilités de la logique de code (CWE-633)**: Erreurs dans les conditions ou boucles menant à des comportements inattendus
    * **Vulnérabilités dépendantes du contexte (CWE-696)**: Erreurs basées sur le temps ou dépendantes de l’état
    * **Conditions de concurrence (CWE-362)**: synchronisation ou ordre des opérations non maîtrisé
    * **Attaques temporelles (CWE-208)**: fuites d’informations fondées sur le temps d’exécution
  </Accordion>

  <Accordion title="Server-Side Request Forgery" icon="server">
    * **SSRF (CWE-918)**: falsification de requête côté serveur permettant des requêtes internes non autorisées
    * **Redirection d’URL (CWE-601)**: redirections et transferts non validés
    * **DNS rebinding (CWE-350)**: attaques SSRF fondées sur le DNS
  </Accordion>

  <Accordion title="Défaillances de journalisation et de surveillance" icon="chart-line">
    * **Journalisation incorrecte (CWE-532)**: Données sensibles dans les journaux
    * **Journalisation insuffisante (CWE-778)**: Journalisation des événements de sécurité manquants
    * **Mauvaise gestion des erreurs (CWE-209)**: Fuites d’informations dans les messages d’erreur
    * **Gestion incorrecte des exceptions (CWE-248)**: Risques de sécurité liés à une mauvaise gestion des exceptions
    * **Trace d’audit manquante (CWE-778)**: Suivi insuffisant de l’activité
  </Accordion>

  <Accordion title="Détection de code malveillant" icon="bug">
    * **Code malveillant (CWE-506)**: Actions nuisibles non autorisées
    * **Portes dérobées (CWE-288)**: Mécanismes d’accès cachés
    * **Bombes à retardement (CWE-511)**: Actions malveillantes déclenchées
    * **Attaques sur la chaîne d’approvisionnement (CWE-1357)**: Dépendances ou mises à jour compromises
  </Accordion>

  <Accordion title="Confidentialité et ressources" icon="eye-slash">
    * **Exfiltration de données (CWE-319)**: Transmission de données non autorisée
    * **Collecte de données non éthique (CWE-359)**: Collecte de données inappropriée
    * **Activité réseau malveillante (CWE-293)**: connexions suspectes
    * **Minage de cryptomonnaies (CWE-400)**: Utilisation non autorisée des ressources
    * **Épuisement des ressources (CWE-400)**: Refus de service par consommation de ressources
  </Accordion>
</AccordionGroup>

Outre les vulnérabilités de logique métier, le SAST natif de l’IA détecte également les failles de sécurité courantes couvertes par les scans SAST classiques, soit environ **900 Common Weakness Enumerations (CWE)**.

<Card title="Analyse des secrets" icon="key" href="/fr/secret-scanning">
  Corgea offre également une analyse complète des secrets afin de détecter les identifiants codés en dur, les clés API et les données sensibles. Découvrez la détection des secrets et les solutions de stockage sécurisé.
</Card>

## Couverture complète des vulnérabilités

Le SAST natif de l’IA de Corgea offre une couverture étendue des vulnérabilités, au-delà des référentiels du secteur tels que l’OWASP Top 10 et le Top 25 des CWE. Notre plateforme enrichit continuellement sa base de vulnérabilités pour anticiper les menaces émergentes et traiter un large éventail de problèmes de sécurité dans différents langages et frameworks.

### Profondeur et étendue de la couverture

Notre couverture des vulnérabilités s’étend à plusieurs dimensions afin de garantir une analyse approfondie de votre code :

<AccordionGroup>
  <Accordion title="Vulnérabilités propres à chaque langage" icon="code">
    Corgea comprend les subtilités des différents langages de programmation et leurs enjeux de sécurité propres. Nos modèles d’IA sont entraînés à identifier les vulnérabilités propres à chaque langage pris en charge, des problèmes de gestion de la mémoire en C/C++ aux difficultés liées au typage dynamique en Python et Ruby.
  </Accordion>

  <Accordion title="Vulnérabilités propres à chaque framework" icon="layer-group">
    Les frameworks populaires introduisent leurs propres problématiques de sécurité. L’analyse de Corgea tient compte des particularités de frameworks tels que .NET, Django, Ruby on Rails, Gin, Express.js et Spring afin de cibler la détection et la remédiation des vulnérabilités.
  </Accordion>

  <Accordion title="Vulnérabilités multilangages" icon="arrows-cross">
    Au-delà des problèmes propres à chaque langage, notre plateforme traite les vulnérabilités communes à plusieurs langages, notamment :

    * Pratiques cryptographiques non sécurisées
    * Validation d’entrée incorrecte
    * Conditions de concurrence
    * Failles d’authentification et d’autorisation
  </Accordion>

  <Accordion title="Menaces émergentes" icon="shield-virus">
    Nos modèles d’IA sont continuellement mis à jour pour rester en avance, assurant la détection et la correction des nouvelles vulnérabilités au fur et à mesure qu’elles apparaissent dans un paysage de sécurité en constante évolution.
  </Accordion>
</AccordionGroup>

### Pourquoi une couverture complète est essentielle

<CardGroup cols={2}>
  <Card title="Réduction du risque" icon="shield-check">
    Minimisez le risque de failles de sécurité, de fuites de données et d’autres menaces potentielles en traitant un large éventail de vulnérabilités
  </Card>

  <Card title="Conformité" icon="file-certificate">
    Respecter les exigences de sécurité et les normes réglementaires spécifiques à chaque secteur, réduisant ainsi le risque de pénalités de non-conformité
  </Card>

  <Card title="Efficacité" icon="gauge-high">
    Simplifiez les processus de contrôle de sécurité grâce à la détection des faux positifs et des capacités de correction automatisée par IA
  </Card>

  <Card title="Amélioration continue" icon="arrows-rotate">
    Restez protégé à mesure que le paysage de la sécurité évolue grâce à l’expansion continue des bases de données de vulnérabilités et de l’intelligence sur les menaces
  </Card>
</CardGroup>

## Examiner l’analyse de taint

Pour les problèmes de code dont Corgea peut identifier le flux de données, la **Vue complète** comporte un onglet **Analyse de taint**. Celui-ci permet de suivre le cheminement de données non fiables depuis leur source, à travers l’application, jusqu’au sink vulnérable, y compris lorsque le flux traverse plusieurs fichiers.

<Steps>
  <Step title="Ouvrez un problème">
    Depuis la liste des problèmes d’un scan, cliquez sur une ligne de problème pour ouvrir la barre latérale des détails du problème.
  </Step>

  <Step title="Ouvrir la vue complète">
    Dans la barre latérale, cliquez sur **Ouvrir la vue complète**. L’onglet Analyse de taint est disponible dans la vue complète, mais pas dans l’aperçu de la barre latérale.

    <Frame>
      <img src="https://mintcdn.com/corgea/1OfVmGqf59iOSEPM/images/open-full-view.png?fit=max&auto=format&n=1OfVmGqf59iOSEPM&q=85&s=9ce044d4358093beb84a8a89ba0e3fba" alt="Issue de la barre latérale de vue rapide avec le bouton Ouvrir la vue complète en surbrillance" style={{ borderRadius: '0.5rem' }} width="3022" height="1684" data-path="images/open-full-view.png" />
    </Frame>
  </Step>

  <Step title="Ouvrir l’onglet Analyse de taint">
    Sélectionnez **Analyse de taint**. Corgea charge une trace ordonnée du flux de données. Lors de la première ouverture de l’onglet, sa génération peut prendre quelques secondes.
  </Step>

  <Step title="Cliquez sur la trace">
    Chaque étape indique son rôle, le chemin du fichier, le numéro de ligne et une brève description. Cliquez sur une étape pour ouvrir le fichier dans le visualiseur de code intégré et accéder directement à la ligne concernée.
  </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="L’onglet d’analyse de taint dans la vue complète du problème affiche les étapes de source, de propagation et de sink à côté d’une visionneuse de code" style={{ borderRadius: '0.5rem' }} width="3022" height="1710" data-path="images/multi-file-taint-analysis.png" />
</Frame>

La trace est regroupée en trois types d’étapes :

* **Source** — où une entrée non fiable entre dans l’application
* **Propagation** — fonctions ou fichiers intermédiaires qui transmettent la valeur contaminée
* **Sink** — point où les données atteignent l’opération vulnérable

Selon les données dont Corgea dispose pour le problème, la trace peut provenir du flux de données calculé pendant le scan (par exemple, à partir de résultats Semgrep, SARIF ou Checkmarx), d’un graphe d’appels d’accessibilité ou d’une analyse générée par l’IA lorsqu’aucune trace n’est disponible au moment du scan. L’en-tête de l’onglet indique la source utilisée.

## Technologie du SAST natif de l’IA

Le SAST natif de l’IA repose sur la technologie propriétaire CodeIQ de Corgea, qui associe l’IA aux arbres syntaxiques abstraits (AST) pour offrir une analyse complète :

<Steps>
  <Step title="Analyse au niveau du projet">
    Le SAST natif de l’IA analyse l’ensemble du projet afin d’obtenir une vue complète des interactions entre les composants du code et de ne manquer aucune vulnérabilité.
  </Step>

  <Step title="Intelligence contextuelle">
    Le moteur d’IA comprend le contexte du code, y compris le middleware, les configurations et les modèles.
  </Step>

  <Step title="Réduction des faux positifs">
    La compréhension du contexte et de la logique réduit les faux positifs courants dans les outils traditionnels.
  </Step>
</Steps>

### Comparaison avec les méthodes traditionnelles

<Warning>
  Les techniques traditionnelles d’analyse statique présentent des limites importantes :

  * L’analyse source-sink ne tient pas compte de certaines étapes de validation
  * Les graphes d’appels ne rendent pas compte de certains comportements à l’exécution
  * La recherche vectorielle et le RAG souffrent d’une généralisation excessive
</Warning>

## Intégration et flux de travail

<Card title="Points d’intégration" icon="plug">
  * **Pipelines CI/CD**: scan automatique lors des commits et des pull requests
  * **Revues de pull requests**: analyse des vulnérabilités avant fusion
  * **Intégration à l’IDE**: retour en temps réel pendant le développement
</Card>

## Langages et frameworks pris en charge

Corgea prend entièrement en charge le scan, la détection des faux positifs et la correction automatique dans de nombreux langages de programmation et frameworks courants, avec une couverture d’environ 900 Common Weakness Enumerations (CWE).

### Langages pris en charge

<AccordionGroup>
  <Accordion title="C#" icon="hashtag">
    **Prise en charge native du langage**: prise en charge robuste des constructions C#, notamment LINQ, les patterns async/await et les génériques.

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

    Corgea excelle dans la sécurisation des applications .NET d’entreprise et traite notamment les défauts d’authentification, la désérialisation non sécurisée et les vulnérabilités CSRF.
  </Accordion>

  <Accordion title="Python" icon="python">
    **Prise en charge native du langage**: analyse les fonctionnalités propres à Python telles que les décorateurs, les gestionnaires de contexte et les compréhensions.

    **Frameworks**: Django, Flask, FastAPI

    Couvre les applications web et les services backend, notamment les injections SQL, les XSS et les références directes non sécurisées à des objets.
  </Accordion>

  <Accordion title="Ruby" icon="gem">
    **Prise en charge native du langage**: comprend la nature dynamique de Ruby, notamment la métaprogrammation et les blocs.

    **Frameworks**: Ruby on Rails, Sinatra

    Spécialisé dans l’identification et la correction des vulnérabilités spécifiques à Ruby, y compris les problèmes d’attribution de masse, les routes non protégées et les téléchargements de fichiers non sécurisés.
  </Accordion>

  <Accordion title="Go" icon="golang">
    **Prise en charge native du langage**: analyse les constructions propres à Go telles que les goroutines, les channels et les interfaces.

    **Frameworks**: Gin, Echo, Fiber

    Cible les problématiques de sécurité propres à Go, comme les conditions de concurrence, la gestion incorrecte des erreurs et l’utilisation non sécurisée des fonctions cryptographiques.
  </Accordion>

  <Accordion title="JavaScript & TypeScript" icon="js">
    **Prise en charge native du langage**: prend en charge JavaScript et TypeScript, notamment async/await, les closures et le système de types de TypeScript.

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

    Couvre la sécurité côté client comme côté serveur, notamment la pollution de prototype, les dépendances non sécurisées et les XSS basées sur le DOM.
  </Accordion>

  <Accordion title="Java" icon="java">
    **Prise en charge native du langage**: analyse les fonctionnalités propres à Java telles que les génériques, les annotations et les expressions lambda.

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

    Cible les écosystèmes Java d’entreprise et traite notamment les attaques par entité externe XML (XXE), les injections LDAP et la désérialisation non sécurisée d’objets.
  </Accordion>

  <Accordion title="PHP" icon="php">
    **Prise en charge native du langage**: gère la syntaxe et les constructions propres à PHP, notamment les traits et les attributs.

    Traite les vulnérabilités courantes des applications web telles que l’exécution de code à distance, l’inclusion de fichiers et les injections SQL.
  </Accordion>

  <Accordion title="Kotlin" icon="k">
    **Prise en charge native du langage**: analyse les fonctionnalités propres à Kotlin, notamment la null safety, les coroutines et les fonctions d’extension.

    Spécialisé dans la sécurité des applications Android et côté serveur, traitant des problèmes tels que l’exposition inappropriée des données et la communication non sécurisée.
  </Accordion>

  <Accordion title="Swift" icon="swift">
    **Prise en charge native du langage**: analyse les fonctionnalités propres à Swift, notamment les optionnels, les extensions de protocole, les génériques et les types valeur.

    Renforce la sécurité du développement d’applications iOS et macOS en traitant notamment le stockage non sécurisé des données, la validation incorrecte des certificats SSL/TLS et les communications interprocessus non sécurisées.
  </Accordion>

  <Accordion title="C & C++" icon="c">
    **Prise en charge native du langage**: gère les constructions de bas niveau, notamment les pointeurs, la gestion de la mémoire et les templates.

    Il se concentre sur les vulnérabilités liées à la mémoire, les débordements de tampons et les problèmes de sécurité au niveau système courants dans les applications C/C++.

    *Disponible pour la détection des faux positifs et la correction automatique. Le scan sera bientôt pris en charge.*
  </Accordion>
</AccordionGroup>

### Capacités clés

<CardGroup cols={2}>
  <Card title="Analyse complète" icon="magnifying-glass">
    Des algorithmes avancés analysent votre base de code pour identifier d’éventuelles vulnérabilités de sécurité, couvrant un large éventail de CWE
  </Card>

  <Card title="Détection de faux positifs" icon="filter">
    Le système alimenté par l’IA distingue avec précision les véritables vulnérabilités des faux positifs
  </Card>

  <Card title="Correction automatisée" icon="wrench">
    Fournit des correctifs exploitables et contextuels qui peuvent être appliqués automatiquement ou examinés avant la mise en œuvre
  </Card>

  <Card title="Analyse propre au framework" icon="puzzle-piece">
    Comprend les subtilités des différents frameworks au sein de chaque langage pour obtenir des insights de sécurité ciblés
  </Card>
</CardGroup>

## Filtrage intelligent des fichiers

Pour optimiser les performances et la précision du scan, Corgea exclut automatiquement les fichiers qui ne sont pas pertinents pour l’analyse de sécurité :

### Fichiers exclus

<AccordionGroup>
  <Accordion title="Fichiers non sources" icon="file-image">
    * Fichiers multimédias (images, vidéos, polices)
    * Fichiers de style (CSS, SCSS, LESS)
    * Documentation et fichiers Markdown
    * Archives de configuration et fichiers compressés
  </Accordion>

  <Accordion title="Développement et essais" icon="flask">
    * Fichiers de test et répertoires de test
    * Données de mocks et fixtures
    * Rapports de couverture du code
  </Accordion>

  <Accordion title="Code généré et traité" icon="gears">
    * Fichiers de code générés automatiquement
    * Code minifié ou bundlé
    * Fichiers de migration de base de données
    * Fichiers de définition de type
  </Accordion>

  <Accordion title="Artefacts de build" icon="box">
    * Binaires compilés et sorties de compilation
  </Accordion>
</AccordionGroup>

### Fichiers utilisés pour le contexte

Même s’ils ne sont pas directement scannés à la recherche de vulnérabilités, certains fichiers peuvent être consultés par Corgea afin d’améliorer le contexte de l’analyse, notamment les fichiers README, les exemples de configuration et les fichiers de paramètres de l’application.

### Configuration personnalisée

Vous pouvez personnaliser davantage le comportement des scans à l’aide d’un fichier de configuration `corgea.yaml` placé à la racine de votre dépôt :

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

Cela vous permet d’exclure des répertoires ou des motifs de fichiers spécifiques en fonction des besoins de votre projet.

### Pourquoi nous filtrons

Notre approche de filtrage intelligent :

* **Améliore la précision** en se concentrant sur le code applicatif réel
* **Réduit le bruit** provenant des fichiers de test et du code tiers
* **Optimise les performances** pour des résultats d'analyse plus rapides
* **Priorise les résultats** dans le code que vous maintenez

<Note>
  **Bientôt disponible**: prise en charge de Rust
</Note>
