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 :
- Génère un candidat correctif à l'aide du moteur de raisonnement hébergé dans le cloud.
- Applique le correctif à une copie du code source dans votre bac à sable local.
- Compile et teste la base de code en exécutant votre
build.commandconfiguré pour s'assurer que le projet est compilé et que les tests unitaires sont réussis. - 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 : Remarque : Vous pouvez également désactiver les invites d'écriture interactives de manière globale en définissantcm fix FINDING_ID -y
confirm_writes: falsedans votreconfig.yaml. - Contrôler le bac à sable (
--sandbox) : activez ou désactivez explicitement le bac à sable pour cette exécution (par exemple,--sandbox=falsepour 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