Corriger les failles de code et gérer les diffs

CodeMender peut produire, valider et appliquer automatiquement des correctifs de code source pour les failles vérifiées, en les testant dans votre bac à sable local pour éviter les régressions.

Générer des corrections de failles

Utilisez cm fix pour générer un correctif de sécurité validé pour un résultat vérifié :

cm fix FINDING_ID

Lorsque vous exécutez cm fix, CodeMender effectue les étapes de validation suivantes :

  1. Génère un candidat correctif à l'aide du moteur de raisonnement hébergé dans le cloud.
  2. Applique le correctif à une copie du code source dans votre bac à sable local.
  3. Compile et teste la base de code en exécutant votre build.command configuré pour s'assurer que le projet est compilé et que les tests unitaires sont réussis.
  4. Exécute à nouveau l'exploit de preuve de concept validé pour confirmer que la faille n'est plus exploitable.

Par défaut, CodeMender vous invite à confirmer chaque modification de fichier avant de l'écrire sur le disque de votre espace de travail. Une fois toutes les vérifications effectuées, CodeMender applique le correctif validé à votre espace de travail. Vous pouvez ensuite préparer les modifications.

Corriger les indicateurs

  • Fournir le contexte de la correction (-c / --context) : fournir des contraintes architecturales ou des consignes de programmation :
    cm fix FINDING_ID -c "Use the safe parameterized database helper in src/db/query.go"
  • Approuver automatiquement les écritures (-y / --yes) : approuve automatiquement toutes les écritures de fichiers et les invites pendant le processus de réparation :
    cm fix FINDING_ID -y
    Remarque : Vous pouvez également désactiver les invites d'écriture interactives de manière globale en définissant confirm_writes: false dans votre config.yaml.
  • Contrôler le bac à sable (--sandbox) : activez ou désactivez explicitement le bac à sable pour cette exécution (par exemple, --sandbox=false pour le désactiver) :
    cm fix FINDING_ID --sandbox=false
  • Ignorer le bac à sable (--unrestricted) : ignore temporairement toutes les protections du bac à sable pour cette exécution, en désactivant les limites du système de fichiers et l'isolation des conteneurs au niveau de l'OS :
    cm fix FINDING_ID --unrestricted
  • Ignorer le cache (--no-cache) : forcez CodeMender à générer un correctif :
    cm fix FINDING_ID --no-cache

Inspecter et gérer les diffs VCS locales

CodeMender inclut des commandes VCS intégrées qui vous aident à inspecter, à préparer et à gérer les modifications de code introduites par les correctifs avant de les valider :

  • Afficher l'état du dépôt : vérifiez les fichiers que CodeMender a modifiés ou créés dans votre espace de travail local.

    cm vcs status

  • Inspecter les différences : examinez les différences unifiées ligne par ligne de toutes les modifications de code non validées générées par l'agent.

    cm vcs diff

  • Préparer les modifications : ajoutez les modifications validées du correctif à votre environnement de préparation local pour pouvoir les tester et les valider.

    cm vcs stage

  • Rétablir les modifications de la session : supprimez toutes les modifications de fichiers locaux générées par CodeMender au cours de la session actuelle et restaurez votre dépôt dans son état de référence.

    cm vcs reset