【Claude Code活用事例】脆弱性の公表を集め、関係する件だけ知らせる仕組み

<パソコン> 機種:MacBook Air(13インチ、M3、2024) OS:macOS 26.6.2<ソフトウェア> Claude for Mac 4.4212.0 Node.js 22.23.4
2026年10月は、PHP、Node.js、Linuxカーネルと、重い脆弱性の公表が続きました。そのたびにニュースを開き、自分のサイトに関係があるかを調べていては、手が回りません。
そこで、Claude Codeに見回りを任せることにしました。本記事では、この使い方で仕事がどう変わったか、実際にどう動いているか、どう作ったかを順に紹介します。
スケジュール実行は、チャットとCoworkの統合版のClaudeにもある機能です。今回はClaudeデスクトップアプリのClaude Codeで、手元のサイトとスクリプトを扱いました。この記事は、その環境で確かめた例です。
| 項目 | 内容 |
|---|---|
| 使ったツール | Claudeデスクトップアプリ(Claude Code) |
| 使った機能 | スケジュール済みタスク(Scheduled) |
| 仕事の目的 | 重大な脆弱性の公表に早く気づき、自分のサイトに関係するかを判断する |
仕事の変化
Claude Codeを使う前と後で、脆弱性の公表を知ってから判断するまでの手順を比べました。左が使う前、右が使った後です。
使う前は、4つの手順をすべて自分でこなしていました。とくに時間がかかったのは、一次情報を読み、自分のサイトの部品と版に当てはまるかを調べるところです。
使った後は、集めるところから報告を書くところまでを、Claude Codeが毎日8時と20時に進めます。自分がするのは、届いた報告を読んで、更新するかを決めることだけです。
実際の様子
登録後の画面で、スケジュール、実行履歴、保存された報告を順に確認しました。以下は2026年11月1日の画面です。
1: 一覧で「脆弱性の公表の監視(8時・20時)」の登録と、毎日8:00・20:00の設定を確認します。

2: タスクの詳細画面で、「今日の8:08」の実行履歴を確認します。

3: 実行結果の会話と、Markdownの報告に書かれた候補の件数を確認します。

【メモ】
この回は新しい候補が1件、取得の失敗は0件でした。Claude Codeは「記録のみ」と判断し、急ぐ件がなかったため通知を送っていません。
しくみの解説
この仕組みは、取得スクリプト(小さなプログラム)、Claude Code、人で分担しています。左に情報源と人、中央に実行するプログラムとAI、右に候補を保存するファイルを置きました。丸数字に沿って、情報の受け渡しを確認できます。
取得スクリプトはClaude Codeの実行指示に従い、公開されている情報源から新しい公表を集め、前回までになかった項目だけを残します。何度やっても同じ結果になるべき処理なので、AIに任せずプログラムにしました。
Claude Codeは候補の一覧を読みに行き、取得した文章から「自分のサイトに当てはまるか」を考えます。版の範囲が書かれていない勧告や、特定の設定のときだけ起きる脆弱性もあるため、ここは文章を読めるAIの出番です。
候補の一覧には、JSONファイルの pending.json を使っています。報告は reports/ 以下のMarkdownファイル(.md)にも保存しますが、図では人とClaude Codeの依頼・報告の往復にまとめました。
1回の実行で何が起きるかは、次の図で順に追えます。登場するものを上に並べ、上から下へ時間が進む図です。矢印の根元の●は動作する側、先は相手を表します。
新しい候補が0件で取得の失敗もない回は、Claude Codeは勧告を読まず、報告も書かずに終えます。
【メモ】
脆弱性に付く世界共通の番号(CVE)を追えば最も早く知れそうですが、実際は違いました。2026年10月のNode.jsでは、予告が修正版の1週間前、CVEの記録は修正版の翌日に出ています。そのため、この仕組みでは各ソフトの公式の告知を主な情報源にしました。
しくみの作り方
仕組みは、Claude Codeと相談しながら作りました。会話記録をもとに、相談と返答の要点を整理しています。最後の時刻指定は、実際に入力した文のままです。
最初に相談したのは、脆弱性の公表を早く知り、自分のサイトに関係するかを自動で調べる方法でした。
CVE番号の公表を追えば、早く対応できますか。自分に関係する脆弱性を調べて、知らせる仕組みを作りたいです。
Claude Codeは、CVE番号の公表だけを追うより、各ソフトの公式の告知を先に読む設計を提案しました。攻撃に使われたかは悪用済みの一覧(KEV)、サイトで使う部品の版に当てはまるかは脆弱性のデータベース(OSV)で確かめる、という分け方です。
設計案を見てから、仕組みを実装し、その裏側も記事で紹介したいと伝えました。
この仕組みを実装して、どう動くか、その裏側も記事に書きたいです。
Claude Codeは、取得のスクリプト、監視するソフトの一覧、判定と報告の手順を作成しました。ファイルを1つずつ指定したわけではありません。サイトで使う部品は、既存の package-lock.json を読む設計にしています。
仕組みができたところで、実行する時刻を伝えました。
8時と20時で登録
Claude Codeは、毎回使う指示文とスケジュールを登録し、Macとアプリを起動しておく条件を説明しました。
翌朝の2026年11月1日には、8:00の予定に対して8:07:59に自動で起動し、8:09に処理を終えた記録を確認できています。新しい候補は1件、取得の失敗は0件で、報告は reports/2026-11-01_0808.md に保存されました。急ぐ件はなかったため、通知が届くことはまだ確かめていません。
実行されたかは、ClaudeのデスクトップアプリのCode側で「スケジュール済みタスク」を開き、対象のタスクの「履歴」で確認できます。実行履歴をクリックすると、その回の会話でコマンドの結果や報告、許可待ちの有無を読める仕組みです。候補が0件なら報告ファイルを作らないため、ファイルが増えたかだけでは実行の有無を判断できません。
【メモ】
ローカルのスケジュール済みタスクには、負荷を分散するため、予定時刻から数分の待ち時間があります。今回もログに待ち時間が記録されており、8:00ちょうどの開始ではありませんでした。次回の予定は、同じタスク画面の「次回の実行」で確認できます。
任せるときの注意
この仕組みでは、Claude Codeに任せる範囲を、読むこと、報告を書くこと、急ぐ件を知らせることまでにしています。スクリプト、Claude Code、人の受け持ちを並べました。
部品の更新、ビルド、公開は、人が報告を読んでから行います。部品を更新すると、サイトの表示が変わったり、ビルドが通らなくなったりすることがあるためです。
【注意】
スケジュール済みタスクのClaude Codeは、インターネットから取ってきた文章を毎回読みます。その中の命令に従わないよう指示文に書きましたが、指示文の禁止は頼みごとで、操作そのものを止める設定ではありません。スケジュール済みタスクは登録したときの権限のモードを引き継ぎ、今回は実行のたびに許可を求めないモードで保存されました。より慎重にしたいときは、アプリのスケジュール済みタスクの編集画面でモードを変えましょう。
【メモ】
今回は手元のMacで動くローカルのスケジュール済みタスクを使いました。Macが起きていて、デスクトップアプリを開いていることが実行の条件です。クラウドで実行するタスクとは条件が違います。統合版Claudeで同じスクリプトを動かす方法は、この記事では検証していません。
この記事で触れた脆弱性は、それぞれ別の記事で解説しました。PHPの件はPHP2Shellとは?、Node.jsの件はNode.jsのBrotli脆弱性とは?、Linuxカーネルの件はLinuxカーネルのCVE-2026-98432です。
参考にした一次情報
- Claude Code Docs「スケジュール済みタスク」(Claude Codeのローカル実行とクラウド実行の条件)
- Anthropicヘルプ「Claude Coworkで定期的なタスクをスケジュール設定する」(チャットとCoworkの統合版Claudeにもあるスケジュール実行の機能)
- CISA「Known Exploited Vulnerabilities Catalog」(米国のサイバーセキュリティ機関による、悪用が確認された脆弱性の一覧)
- OSV「API」(オープンソースの脆弱性のデータベースと、その問い合わせの方法)
- Node.js「Vulnerability Reports」(Node.jsのセキュリティの告知)