0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

claude + cve-lite-cliでフロントエンドの脆弱性対応の優先順位づけをAIに任せる

0
Posted at
  • 前回、cve-lite-cliを利用してローカルで完結するフロントエンドの脆弱性管理という記事で、手元でCVEを可視化する方法を書きました。
  • 可視化まではできても、そこから先の「どれから直すか」「実際に直す」という作業は、地味で疲れる作業のまま残ります。
  • 今回は、cve-lite-cliの優先度判断(CVSS × EPSS)をClaude Skillに渡し、セキュリティに疎くても優先度が理解でき、対応まで効率化できる仕組みを作った話を記録します。

背景

  • cve-lite-cliの優先度判断(CVSS × EPSS)をAIが機械的に処理すれば、セキュリティに詳しくない人でも「何から直すべきか」が理解でき、効率化できると考えました。
  • 脆弱性対応は地味で疲れる作業なので、AIに任せる方が負担も下がり、楽しく続けられそうだと感じました。

概要

  • 前回導入したcve-lite-cliのJSON出力を、Claude CodeのSkill機能に読み込ませます。
  • 検出された脆弱性の中から、優先度が最も高いものを1つだけ選び、修正まで行わせます。
  • 最終確認は自身で行います。

環境

  • Node.js
  • cve-lite-cli v1.33.0以上
  • Claude Code

前提

  • 手元にNode.jsプロジェクトがあること
  • 本記事では※前回の記事を最初に読んでおくと理解しやすいです

手順

スキル作成

  • 対象プロジェクトの.claude/skills.claude/skills/cve-lite/SKILL.mdを作成し、以下の内容を記述します。
---
name: cve-lite
description: cve-lite-cliでCVEを検出し、EPSS優先度が最も高い1パッケージを修正する
argument-hint: "[<package名> | --all | --dry-run]"
---

- 引数
  - 引数なし:優先度最上位の1パッケージを修正
  - `<package名>`:指定したパッケージだけを修正
  - `--all`:優先度順に全パッケージを修正
  - `--dry-run`:修正はせず、判定結果だけ報告

### やること
- `cve-lite-cli`のJSON出力を読み込み、**優先度が一番高い脆弱性を1つだけ**Claudeが自動で修正する。
- 1回の実行で1パッケージだけ直す。

### 優先度の決め方
- `prioritySignal`(EPSS優先度)を基準に4段階で判定する。
  - `fix_now`:危険度高 + 悪用される確率も高い → 即修正
  - `fix_soon`:危険度高、悪用確率は低い → 修正
  - `monitor` / `low_priority`:危険度低め → メジャーバージョンが変わらない範囲で修正
  - EPSSが取れない場合は、深刻度だけで代わりに判断する

### 修正のやり方は3パターン
- **自動**:メジャーバージョンが変わらない → 提示された修正コマンドをそのまま実行
- **手動**:メジャーバージョンが変わる → 変更履歴を確認し、壊れる箇所をコードごと直す
- **保留**:直せる修正版がない → 内容だけ報告

### 修正後
- テスト・ビルド・再スキャンで確認する。

scripts追加

  • 対象プロジェクトのpackage.jsonのscriptsに以下を追加します。
"cve:json": "cve-lite . --check-maintenance --json"

実行

  • Claude Codeを開き、スキル呼び出しの補完に作成したスキルが以下のように表示されることを確認します。

image

  • 以下を入力して実行します。実際の修正は行わず、修正結果の確認のみです。
/cve-fix --dry-run
  • 実行後、優先度最上位の1パッケージについて、判定内容と修正案が提示されることを確認します。
    • ※結果は対象プロジェクトによって変わります。以下は自身のサンプルプロジェクトでの結果です

image

  • 実際の修正は/cve-fixを引数なしで実行することで行えます。

まとめ

  • cve-lite-cliが優先度を計算し、Claude Skillがその優先度に従って結果の表示や修正までを担う役割分担がうまく作れたと感じました。
  • 「検知して工学的に優先度を判断し、AIが修正する」という流れは、セキュリティに疎くても扱いやすいと思います。
  • 脆弱性対応は疲れる作業だからこそ、こうした仕組みで少しでも楽に続けられる状態を作っておきたいと感じました。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?