CodeMender は、すべてのスキャン、検証、修復の試行を、ローカル SQLite データベース(state.db)にバックアップされたステートフル セッションとして追跡します。アクティブなセッションを検査し、一時停止したタスクを再開して、詳細な結果レポートをエクスポートできます。
セッション管理
CodeMender CLI は、ステートフル実行セッションをローカルで維持するため、アクティブなタスクの追跡、中断されたワークフローの再開、セキュリティ レポートのエクスポートを行うことができます。
アクティブなセッションと過去のセッションを一覧表示する
次のコマンドを実行して、すべてのセッション、ステータス(RUNNING、WAITING_FOR_TOOL、COMPLETED、FAILED、CANCELLED)、ターゲット パスを一覧表示します。
cm session list
中断されたセッションを再開する
ネットワークの中断やステップの失敗によりセッションが一時停止した場合は、最新のチェックポイント ステージから再開します。
cm session resume SESSION_ID
実行中のセッションをキャンセルする
アクティブなセッションを終了し、バックエンド エージェントのコンピューティング実行を停止するには:
cm session cancel SESSION_ID
レポートを表示してパッチをエクスポートする
cm report を使用して、セッションの結果、検証ステータス、パッチの詳細を表示します。
出力形式
端末テーブル(デフォルト)
調査結果の要約リスト。
cm reportHTML レポート
フォーマットされた HTML レポートを生成します。--open(または -o)を使用して、デフォルトのブラウザで自動的に起動します。
cm report --format html --open
マークダウン
GitHub フレーバーの Markdown レポートを生成します。
cm report --format md
JSON
すべてのセッションの検出結果の詳細を未加工の JSON としてエクスポートします。
cm report --format json
SARIF
他のセキュリティ ツールと統合するために、標準の SARIF 形式(v2.1.0)で検出結果をエクスポートします。
cm report --format sarif
フラグのフィルタリングと並べ替え
- 提案されたコードパッチを表示する(
--patches): 生成された修正の完全な統合差分をレポートに含めます。bash cm report --patches - 重大度でフィルタ(
--severity): レベル(CRITICAL、HIGH、MEDIUM、LOW)に一致する検出結果を表示します。bash cm report --severity HIGH - ステータスでフィルタする(
--status): 状態(OPEN、FIXED、DISMISSED、REOPENED)に一致する検出結果を表示します。bash cm report --status OPEN - セッションでフィルタ(
--session): 特定のセッション ID プレフィックスの結果を表示します。cm report --session SESSION_ID_PREFIX
- エージェント アーティファクトを表示(
--artifacts): エージェントが生成した実行アーティファクト(ログ、エクスプロイト スクリプトなど)へのパスを含めます。bash cm report --artifacts - 結果を並べ替える(
--sort): 結果をseverity(デフォルト)またはtimeで並べ替えます。bash cm report --sort time - 検出結果 ID でフィルタする: 特定の検出結果 ID(または接頭辞)を位置引数として渡し、単一の検出結果の詳細を表示します。
cm report FINDING_ID_PREFIX
脆弱性の検出結果の状態
CodeMender は、次の脆弱性の状態にわたって検出結果を追跡します。
OPEN- 意味: スキャン中に脆弱性が正常に検出された(またはサードパーティ ツールからインポートされた)が、まだ検証、パッチ適用、非アクティブとしてマークされていない。
- 処理方法: これは、新たに発見されたセキュリティ上の欠陥の初期状態です。
OPEN状態の脆弱性は、検証(cm verify)またはパッチ適用(cm fix)のためにアクティブにキューに登録されます。
FIXED- 意味: CodeMender が脆弱性のパッチを生成し、差分をローカルのコードベースに適用して、検証テストをコンパイルして実行し、エクスプロイトが成功しなくなったことを確認しました。
- 処理方法: パッチが既存のコードロジックを壊すことなく問題を解決することが確認されると、CodeMender は検出結果を
FIXEDに移行します。この状態は、今後のスキャンで回帰が検出されない限り維持されます。
DISMISSED- 意味: 脆弱性が偽陽性またはすでに修正済みと特定されたか、検出結果がプロジェクトの脅威モデル(オンボーディング時に提供された場合)に対する攻撃可能性を確認するのに十分な信頼性がないため、脆弱性が非アクティブとして指定されています。
- 処理方法: 項目を
DISMISSEDとしてマークすると、今後のアラートがミュートされ、cm report --status OPENを使用したアクティブな CLI 出力から検出結果が除外されます。無視した検出結果に対してcm verifyを再実行すると、無視した項目が再検査または復元されます。
REOPENED- 意味: 以前に
FIXEDまたはDISMISSEDとしてマークされた脆弱性が、後続のコードベース スキャンで再検出されました。 - 処理方法: この状態は、回帰(パッチを元に戻す git マージの失敗など)または緩和策の失敗を示します。この問題にフラグが立てられ、直ちに再評価が行われます。デベロッパーはパッチ適用プロセスを確認する必要があります。
- 意味: 以前に
脆弱性の重大度レベル
CodeMender は、検出結果を次の重大度レベルに分類します。
CRITICAL- 意味: この脆弱性は、アプリケーションまたは基盤となるインフラストラクチャに重大なリスクを直ちに及ぼし、システム全体の侵害につながる可能性があります。
- 重大と分類される理由: 重大な影響のしきい値(リモート コード実行やルートレベルの書き込みなど)を満たし、前提条件なしで信頼できない境界から直接到達可能であり、信頼性の高い taint-flow 分析または CodeMender のサンドボックス内で実行された検証済みの概念実証(PoC)によって裏付けられている。
HIGH- 意味: この脆弱性は、不正なシステム制御、権限昇格、重大なデータ漏洩につながる可能性のある重大なセキュリティ上の欠陥を表しますが、実行するには特定の条件が必要です。
- 「高」に分類される理由: 悪用の影響は大きい(任意のデータベースの読み取りや管理者のハイジャックなど)ものの、悪用可能性はやや制限されています。攻撃者が標準のユーザー認証を必要としたり、特定のシステム構成に依存したり、非常に正確な一連のアクションを必要としたりする可能性があります。
MEDIUM- 意味: この脆弱性は中程度のリスクをもたらします。通常は、制限されたデータが公開されたり、ローカルで中断が発生したりしますが、ホストシステムに対するリスクは低くなります。
- 重大度「中」に分類される理由: エクスプロイトは、到達可能性または複雑さによって大きく制限されます。一般に、防御レイヤをバイパスするには、ユーザーの積極的な操作(悪意のあるリンクをクリックするなど)、深い権限、複雑な条件が必要であり、最終的な影響範囲は制限されます。
LOW- 意味: この検出結果は、軽微なセキュリティ リスク、またはそれ自体が直ちに脅威となるわけではない多層防御の一般的な衛生状態の欠如を表します。
- 低に分類される理由: 悪用される可能性が非常に低いか、影響が最小限である。この検出結果は、通常、攻撃者が直接的な侵害ではなく、偵察や構成のフィンガープリントに使用するものであり、任意のコードの実行や機密性の高いアプリケーション データの引き出しには使用できません。
Workspace のメンテナンス
ローカル状態トラッキング ファイルをリセットして一時実行キャッシュをクリーンアップするには、次のコマンドを実行します。
cm clean