CodeMender は、検証済みの脆弱性のソースコード パッチを自動的に生成、検証、適用し、ローカル サンドボックスでテストして回帰を防ぎます。
脆弱性の修正を生成する
cm fix を使用して、検証済みの検出結果の検証済みセキュリティ パッチを生成します。
cm fix FINDING_ID
cm fix を実行すると、CodeMender は次の検証ステップを実行します。
- クラウド ホスト型の推論エンジンを使用してパッチ候補を生成 します。
- ローカル サンドボックス内のソースコードのコピーにパッチを適用 します。
- 構成済みの
build.commandを実行してコードベースをコンパイルしてテスト し、プロジェクトのビルドと単体テストが成功することを確認します。 - 検証済みの PoC エクスプロイトを再実行 して、脆弱性が悪用できなくなったことを確認します。
デフォルトでは、CodeMender は、ワークスペースのディスクに書き込む前に、各ファイルの変更を確認するよう求めます。すべてのチェックに合格すると、検証済みのパッチがワークスペースに適用され、ステージングの準備が整います。
フラグを修正する
- 修正コンテキストを指定する(
-c/--context): アーキテクチャの制約またはコーディング ガイドラインを指定します:cm fix FINDING_ID -c "Use the safe parameterized database helper in src/db/query.go"
- 書き込みを自動承認する(
-y/--yes): 修正プロセス中にすべてのファイルの書き込みとプロンプトを自動的に承認します。 注:cm fix FINDING_ID -y
config.yamlでconfirm_writes: falseを設定すると、インタラクティブな書き込みプロンプトをグローバルに無効にすることもできます。 - キャッシュをバイパスする(
--no-cache): CodeMender に新しいパッチを強制的に生成させます。cm fix FINDING_ID --no-cache
ローカル VCS の差分を検査して管理する
CodeMender には、パッチによって導入されたコード変更を commit する前に検査、ステージング、管理するための組み込み VCS コマンドが含まれています。
リポジトリのステータスを表示する: ローカル ワークスペースで CodeMender によって変更または作成されたファイルを確認します。
cm vcs status
差分を検査する: エージェントによって生成された、commit されていないすべてのコード変更の行ごとの統合差分を確認します。
cm vcs diff
変更をステージングする: 検証済みのパッチ変更をローカル ステージング環境に追加して、commit の準備を整えます。
cm vcs stage
セッションの変更を元に戻す: 現在のセッション中に生成されたローカル ファイルの変更をすべて破棄し、リポジトリをベースライン状態に戻します。
cm vcs reset