情報漏えいのニュースを読んだあと、「自分たちと似た組織では、どんな原因が多いのか」「何を確認すればよいのか」を調べられるように、Webダッシュボードを作りました。
この記事では、画面の使い方と、データを集計・表示するときに工夫した点を紹介します。特に、記事と事件の区別、測定できない値の扱い、AIによる分類結果の見せ方を取り上げます。
※画面の数値・機能は2026年10月21日の確認時点です。データごとに更新日が異なり、今後変わります。
どんなことができるか
画面は4つのタブに分かれています。
| タブ | 確認できること | 対象範囲 |
|---|---|---|
| 漏えい | 組織の種類別の傾向、原因、経路、漏れた情報の種類 | 国内の公表・報道事例 |
| 狙われている機器 | 防御製品に関連する、悪用が確認された脆弱性 | 選定した製品・世界の悪用情報 |
| AIの悪用 | 組織に関係する手口、根拠となる事例、対策 | 国内・海外を区別した事例 |
| 脆弱性 | 製品名やCVE番号での検索、深刻度・攻撃条件の確認 | CISA KEVの収録情報 |
「国内」というページ名ですが、機器と脆弱性のタブは世界の情報を扱います。この違いは各タブにも表示しています。
1. 漏えい事例を、自分の組織に近い条件で見る
漏えいタブでは、地方自治体、国・独法、医療・介護、学校、団体・組合、民間企業を選べます。民間企業は業種でも絞れます。
さらに、公表期間、原因、漏れた情報の種類、委託先の関与、漏れた人数の規模で対象を絞り込めます。
たとえば、学校の担当者なら、まず組織を「学校」に切り替え、原因や情報の種類を確認する使い方ができます。全体の数字と、自分に近い組織の数字を行き来するための画面です。
確認時点では、漏えいタブに3,509件が集計され、そのうちサイトで「うっかり」に分類した原因が73%でした。
ただし、これはこのダッシュボードが収集・分類した報道事例の中での割合です。全国の漏えい全体について、同じ割合だとはいえません。また、「うっかり」は誤操作・設定ミス、紛失・誤廃棄などをまとめた表示名で、原因を個人の不注意だけに帰す意味ではありません。業務手順や権限設定なども含めて考える必要があります。
収集対象は、Security NEXTが報じた国内の漏えい事件のうち、第1報の公表日が2021年4月1日以降のものです。未公表の事件や、ほかの媒体だけが報じた事件は含みません。詳細は数え方と用語にまとめています。

2. 記事数ではなく、事件数を数える
ニュースをそのまま集計すると、続報が出るたびに件数が増えてしまいます。
そこで、同じ事件の第1報と続報をまとめ、事件を1件として扱います。ただし、すべての項目を第1報のまま固定するわけではありません。
| 項目 | 採用する値 |
|---|---|
| 公表日 | 第1報の日付 |
| 漏れた件数 | 件数が判明している最も新しい記事の値 |
| 原因 | 「不明」ではない最も新しい記事の値 |
| 出典 | 第1報・続報へのリンク |
この扱いにより、続報で人数や原因が分かった場合も、事件数を増やさず情報を更新できます。
人数の集計にも注意が必要です。「人」「件」「世帯」「社」は同じ単位ではありません。このダッシュボードでは、人数による規模の分類には単位が「人」の値だけを使い、それ以外は「人数不明」としています。
また、グラフは原則として公表日を基準にしています。月別の山が、その月に実際に発生した事件の山を示すとは限りません。報告制度の変化なども関わるため、法令の節目前後の差だけから因果関係は判断できません。
3. 「0件」「測れない」「比べられない」を分ける
「狙われている機器」タブでは、ファイアウォール、VPN、EDR、SIEMなどの防御製品を扱います。
利用しているのは、CISAのKEV、NVDの製品情報、FIRSTのEPSS、JVN iPediaなどです。KEVは、実際の悪用が確認された脆弱性を収録するカタログです。
製品と脆弱性を対応付ける際、製品を特定するコードであるCPEが見つからない場合や、コードの範囲が製品より広い場合があります。
そこで、製品の状態を分けています。
| 状態 | 表示の扱い |
|---|---|
| 測れる | 製品コードを確定でき、数値を表示する |
| 測れない | 製品コードがなく、数値を出せない |
| 比べられない | コードの範囲が広すぎるため、製品単位の比較から外す |
欠損値を0で埋めると、「情報がない製品ほど安全そうに見える」という問題が起こります。数値を出せない理由も、データの一部として表示する設計にしました。
さらに、「製品そのもの」と「同梱部品」の脆弱性を分けています。同じ部品が複数の製品に含まれることがあるため、何を1件と数えるかが比較結果に影響するからです。
なお、この画面の件数だけで製品の安全性や優劣は判断できません。収集範囲、普及状況、調査・公開のされ方も影響します。
4. AIの役割と、出典に戻る経路を残す
データの整理にはClaudeを利用しています。
漏えい記事への該当判断、組織・業種の分類、続報の整理などに使っていますが、原因や人数などは機械抽出した値も含みます。AIによる確認は、人による全件確認を意味しません。 抽出や分類の誤りが残る可能性があるため、出典リンクと確認待ち件数を表示しています。
「AIの悪用」タブでは、攻撃者によるAIの利用と、自分たちのAIの使い方に関わる問題を分けています。組織の種類を選ぶと、関係する手口と「今やる対策3つ」を確認できます。
対策には公的機関の資料へのリンクと原典の確認日を付け、手口から根拠の事例へ戻れるようにしています。
国内と海外の事例も区別しています。海外の事例は手口を知るための根拠として使い、そのまま国内の発生件数として扱いません。事例数には収集範囲の偏りがあるため、手口ごとの件数を発生確率として読むこともできません。
5. 脆弱性は、スコアと攻撃条件を並べて見る
「脆弱性」タブでは、製品名、ベンダー名、CVE番号などで検索できます。ランサムウェアへの利用、CVSS、ネットワーク越しで認証不要か、といった条件でも絞れます。
CVSSとEPSSは役割が異なります。CVSSは技術的な深刻度を表す指標、EPSSは今後30日以内に悪用の動きが観測される確率の推定です。EPSSは被害規模や、自社が被害に遭う確率を示す数字ではありません。FIRSTのEPSS解説
このタブの対象はすでにKEVへ収録された脆弱性なので、スコアが低いことだけで対応を後回しにはできません。まず使用製品と影響バージョンを確認し、自社の公開状況やベンダーの対策情報と照合する入口として使います。
また、画面上の「悪用の確認日」はKEVへの追加日です。最初に悪用された日時そのものではありません。数値の日付や欠損表示の意味も、一覧の近くに置いています。
6. 実装では、計算と画面操作を分けた
公開画面は、HTML・JavaScriptとJSONデータで構成し、グラフにはChart.jsを使っています。
JavaScriptは、絞り込み・集計を行う部分と、DOM操作・グラフ描画を行う部分に分けています。たとえば、漏えいの計算処理はcore.js、画面処理はapp.jsに置いています。
絞り込みの考え方を、期間と原因だけに簡略化すると次のようになります。これは説明用の抜粋・簡略版です。dateは公表日を表すYYYY-MM-DD形式の文字列を想定しています。
function filterCases(cases, filter = {}) {
return cases.filter((item) => {
const month = item.date.slice(0, 7);
if (filter.from && month < filter.from) return false;
if (filter.to && month > filter.to) return false;
if (filter.cause && item.cause !== filter.cause) return false;
return true;
});
}
この関数はDOMやグラフを変更せず、条件に合う配列を返します。計算を画面から分離すると、ブラウザーを操作せずに入力と出力を確認しやすくなります。
表示する文字列はtextContentなどで設定し、データをHTML文字列として組み立てない方針にしています。
調べた結果を、共有できる形にする
グラフには「画像で保存」を付け、保存画像に出典と絞り込み条件を入れています。グラフだけが資料に貼られたときも、対象範囲を確認できるようにするためです。
漏えい・機器・脆弱性の各タブにはCSV保存、各タブには条件付きURLのコピーがあります。漏えいのCSVはUTF-8のBOM付きで、Excelでも扱いやすい形式です。
漏えいタブでは元記事の見出し・本文・要約を掲載せず、分類した項目と出典リンクを表示しています。数字を引用するときも、収集範囲と確認時点を添えてください。
まずはダッシュボードで、自分の組織に近い種類を選んでみてください。気になる数字は出典までたどり、業務手順や使用製品の点検に結び付ける使い方を想定しています。
集計方法は数え方と用語で公開しています。


