CodeMender peut générer, 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 correctifs 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 de 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 la commande
build.commandconfigurée pour s'assurer que le projet est créé et que les tests unitaires sont réussis. - Réexécute l'exploit PoC vérifié 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 réussies, CodeMender applique le correctif vérifié à votre espace de travail. Vous pouvez ensuite mettre en scène les modifications.
Indicateurs de correction
- Fournir un contexte de correction (
-c/--context) : fournir des contraintes architecturales ou des consignes de codage :cm fix FINDING_ID -c "Use the safe parameterized database helper in src/db/query.go"
- Approuver automatiquement les écritures (
-y/--yes) : approuver automatiquement toutes les écritures de fichiers et les invites pendant le processus de correction : 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) : activer ou désactiver 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) : ignorer 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 du système d'exploitation :cm fix FINDING_ID --unrestricted
- Ignorer le cache (
--no-cache) : forcer CodeMender à générer un nouveau correctif :cm fix FINDING_ID --no-cache
Inspecter et gérer les différences VCS locales
CodeMender inclut des commandes VCS intégrées pour vous aider à inspecter, à mettre en scène 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
Mettre en scène les modifications : ajoutez les modifications de correctif vérifiées à votre environnement de préproduction local afin de 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 l'état de base de votre dépôt.
cm vcs reset