# Monitor

サイトで使っているソフトウェアの新しいセキュリティ問題を、平易な言葉で、それぞれの対処法とともに確認できます。

人気のソフトウェアでは、毎日新しいセキュリティ問題が見つかっています。Monitorは、サイトの構築に使われているソフトウェアに影響する問題を監視し、何をすべきかを平易な言葉でお知らせします。

## 問題の情報源

Lockpickは、これらの公開情報源を一日中読み取ります。

* **OSV.dev**は、オープンソースパッケージのセキュリティ問題を集めた公開データベースです。**GitHub Advisory Database**で確認されたすべての問題を含みます。Lockpickは、JavaScript (npm) と Python (PyPI) のパッケージについて、悪意のあるパッケージの報告も含めた完全なコピーを保持し、1時間ごとに更新しています。
* **GitHub Advisory Database**を直接確認します。Monitorが追跡しているソフトウェアについて、1時間ごとに簡単な確認を行うため、OSV.devにコピーされる前でも新しい問題が表示されます。
* CISA（米国のサイバーセキュリティ機関）が公表している**Known Exploited Vulnerabilities**リスト。このリストにある問題は、攻撃者がすでに悪用しているため**実際に悪用されている**と表示されます。
* FIRSTによる**EPSS**。今後30日以内に各問題が悪用される可能性を毎日予測したものです。上位5%に入る問題には**近いうちに悪用される可能性が高い**と表示されます。
* **Wordfence Intelligence**。WordPressのコア向けで、Lockpickでオンにしている場合に利用されます。その問題にはWordfenceの著作権表示と、利用規約へのリンクが付きます。
* **Zero Day Initiative**が公開したアドバイザリ。ID、タイトル、重大度スコアを使います。
* **National Vulnerability Database**。ほかの情報源に重大度スコアがない場合にのみ使います。

スキャンだけでは、MonitorはNext.js, React, WordPress, Supabase, Clerk, Stripe, Firebase, Auth0, Sentry, Vue, Shopify, Wix, Squarespace, Webflow, Framerを追跡します。[パッケージのバージョンを送る](#affects-you-send-your-package-versions)と、そこに含まれるJavaScriptとPythonのパッケージすべてを確認します。

## 問題がサイトにどう結び付けられるか

各サイトの最新スキャンには、そのサイトが何で構築されているかが表示されます（例: Next.js や WordPress）。Monitorは、影響を受けるソフトウェアで構築されたすべてのサイトについて、問題を一覧に表示します。

スキャンで分かるのは通常、使われている技術までで、サイトが動かしているバージョンまでは分かりません。そのため、Monitorは問題が**影響するおそれがある**と表示し、サイトが脆弱だとは決して表示しません。サイトがすでに修正済みのリリースを使っている場合は、何も変更する必要はありません。

## 影響の確認: パッケージのバージョンを送る

正確な結果を得るには、サイトのコードで使っているパッケージ名とバージョンを送ってください。Lockpickは、実際に使っているバージョンに照らして各問題を確認します。一致した場合は、修正されたリリースとともに**影響あり**と表示され、影響するおそれがあるだけのものより上に並びます。お使いのバージョンで問題のない場合は、スキャンでその技術が見えていても、一覧から外れます。

送られるのは、パッケージ名と正確なバージョンだけです。コード、ファイルパス、ハッシュ、非公開のレジストリのアドレスは送られません。Lockpickが読み取るファイルは `package-lock.json`、`npm-shrinkwrap.json`、`pnpm-lock.yaml`、`yarn.lock`、`requirements.txt`（固定バージョンの行のみ）、`poetry.lock` です。

* ターミナルで、プロジェクトのフォルダーから `npx lockpicks deps <site>` を実行してください。`--dry-run` を付けると送られる内容をすべて確認でき、`--forget` を付けるとLockpickからリストを削除できます。
* プロジェクトフォルダーからPulseを開始する、または再度確認すると、CLIはバージョンを送るかどうかを一度だけ尋ね、そのフォルダーについて答えを覚えます。`--lockfile` を付けると、そのスキャンのためだけに送り、`--no-lockfile` を付けると送りません。
* コーディングエージェントが送るのは、あなたが依頼した、または同意したあとに `lockpick_send_dependencies` を呼び出したときだけです。

送信するたびに前回の内容は置き換えられるため、アップグレードのあとには再度送信してください。修正された問題は消えます。PulseやDeepが公開中のサイトでも確認した問題には**実際に確認されています**と表示されます。送信には、サイトの管理を許可したキー（`lockpick login --sites`）と、そのサイトに対する管理の権限が必要です。

## Monitorのページの見方

アプリのサイドバーで**Monitor**を開きます。ページの上部には、サイト全体でMonitorが監視している技術の数、今週公開された問題の数、影響するおそれがある問題の数、そして、パッケージのバージョンを送信したあとは、影響を受けている問題の数が表示されます。

5つのビューで、一覧に表示する内容を選べます。サイトを登録すると、Monitorは**サイトへの関連情報**を開いた状態になります。

* **サイトへの関連情報**は、サイトで使われているソフトウェアの問題を表示します。送信したバージョンに影響する問題が先頭に来て、次に緊急度の高いもの（実際に悪用されているもの、次に近いうちに悪用される可能性が高いもの、次に重大度順）です。公開から90日以内の問題、または実際に悪用されている問題には、まだ対応済みにしていないサイトの場合、**影響するおそれあり**と表示されます。
* **最新情報**は、Monitorが読み取ったすべての問題を、新しい順に表示します。サイトがそのソフトウェアを使っているかどうかは関係ありません。
* **悪用情報**は、攻撃者がすでに使っている問題だけを表示します。
* **フォロー中**は、サイトごとに選んで追跡している技術の問題を表示します。フォローしても、この一覧に追加されるだけです。緊急メールは送信されません。
* **セキュリティニュース**は、最近のセキュリティニュースを表示します。各見出しから全文へのリンクがあります。

アドバイザリID、タイトル、またはパッケージ名で検索できます。**絞り込み**では、言語またはプラットフォーム、種類（脆弱性または悪意のあるパッケージの報告）、重大度、さかのぼる期間で一覧を絞り込めます。ページ下部の**情報源の状況**には、Monitorが各情報源から最後に情報を受け取った時刻が表示されます。

## ダッシュボードで

ダッシュボードの上部には、同じ問題が要約して表示されます。

* **あなたのサイト向け**には最大5件の問題が表示されます。送信したバージョンに影響するものが先に来て、その次に影響するおそれがあるもの、緊急度の高いものから順に並びます。それぞれをクリックすると、Monitorで開きます。
* **最新の動向**には、サイトで使っているソフトウェアに関する最近のセキュリティニュースが表示されます。Node.jsとReactのセキュリティ投稿、Vercel、Cloudflare、Netlify、BleepingComputer、The Hacker News からの記事に加え、CISAが実際に悪用されていると新たにリストアップした問題も含みます。各見出しには、情報源、タイトル、短い抜粋が表示され、情報源のサイトの全文へのリンクがあります。Lockpickが記事をコピーすることはありません。

どちらも、すべてのプランで表示されます。

## サイトごとの現在の関連事項

各サイトの**概要**は、**現在の関連事項**から始まります。これは、そのサイトに関係する問題を、それぞれタグとその根拠とともに表示したものです。

* **影響があります**: 送信したパッケージのバージョンが影響を受けています。そのバージョンと、それを修正したリリースを表示します。
* **影響する可能性があります**: スキャンでソフトウェアは確認できましたが、バージョンは分かりません。
* **実際に確認されています**: PulseまたはDeepのスキャンで、公開中のサイト上に影響を受けるコンポーネントが見つかりました。
* **実際に悪用されています**: 攻撃者がすでに使っています。
* **修正済み**: 新しいスキャンで見つからなくなった、または修正済みのバージョンを含む一覧を送信しました。

新しいスキャンでその問題が見つからなくなった場合、またはアップグレード後の一覧を送信した場合、タグは自動的に消えます。この表示欄には、各タグが表示されたときと消えたときの短い履歴が残ります。**サイト**の一覧には、各サイトに関係する問題の数が表示されます。既知の問題に関連付けられた検出事項は、そのカードに問題名が表示されます。**修正が必要な項目**では、それらの検出事項だけを表示できます。ダッシュボードの**あなたのサイト向け**では、影響があるもの、または実際に悪用されているものだけを表示できます。コーディングアシスタントは、`lockpick_site_status` で同じタグを読み取ります。

## 各問題の内容

問題を開くと、次の内容が表示されます。

* **何が起きたか**。平易な2文で説明します。
* **対処法**。情報源がリリースを示している場合は、修正されたリリースを明記します。
* **あなたのサイト**。影響を受けるソフトウェアを使っているサイトです。
* 近いうちに悪用される可能性（EPSS）と、重大度スコア（CVSS）。分かっている場合に表示されます。
* 元の情報源。IDを付けて表示され、あなたや開発者が詳細を確認したい場合に使えます。

平易な説明は、AIモデルが公開されたアドバイザリの本文だけから作成します。サイトに関する情報は一切使いません。各回答は、そこに書かれたバージョン番号も含めて、情報源と照合されます。照合に失敗した場合は、Monitorが決まった文言を代わりに使います。

## 修正する

* **AI向けの手順をコピー**は、コーディングアシスタント向けの手順をコピーします。使っているバージョンを確認し、影響がある場合は更新し、テストを実行して結果を報告する内容です。
* **開発者に送る**は、同じ内容を含むメールを開きます。
* **対応済みにする**は、そのサイトでその問題に対処済みであることを記録し、**影響するおそれあり**の一覧から外します。**元に戻す**で元に戻せます。サイトの検出事項を確認できる人なら、誰でも対応済みにできます。

## 通知

新しい問題がお使いのサイトのいずれかに影響するおそれがある場合、そのサイトの結果を見られるワークスペース内の全員に、アプリ上部の**ベル**から通知が届きます。通知を開くと、その問題に直接移動します。通知が送られるのは、公開から14日以内の問題、または実際に悪用されている一覧に新しく追加された問題だけです。そのため、Monitorをオンにしても、古いニュースで埋め尽くされることはありません。

Monitorは、新しい問題を**週次ダイジェスト**としてメールでも送ります。内容はサイトごとにまとめられ、最初の問題が届いてから約7日後に送られます。送信したバージョンに**影響し**、かつ実際に悪用されている、または近いうちに悪用される可能性が高い新しい問題は、代わりにすぐメールで送られます。これはすべてのプランで行われます。どのメールにも、対処法と、Monitorでその問題を開くリンクが記載されています。これらのメールを停止するには、**設定**を開き、次に**通知**を開いて**新しい脆弱性**をオフにするか、Monitorのメールにある**配信停止**リンクを使ってください。