概要 — 何をする画面か
セキュリティ概要(/security)は、セキュリティ役割領域の 中核 となる画面です。InfraGuard がすでに収集・判定・自動対処しているにもかかわらず、これまで一度も可視化されてこなかった「隠れたテレメトリ」を、ひとつの 防御ファネルの物語 として表面化します。
中心となるメッセージは一文です。「今この瞬間も、AI と IDS による自動防御が敵性ネットワークをブロックしている」。それを説得力あるものにするため、この画面は次の情報を一目で示します。
- 4段階の防御ファネル — 脅威(生イベント)→ 検知(フラグ)→ 自動対応ルールセット(カタログのルール + JA3 ルールセット)→ 対応(ブロック)。各段階には 実測件数 が付きます。
- 脅威強度ゲージ — セキュリティスコアから導出した円錐グラデーションのドーナツ(値が大きいほど危険)。
- 自動対応カード — 時間あたり脅威数・24時間の脅威数・有効なブロック /24・24時間のブロック数。
- JA3 オフェンダーパネル — 直近6時間の JA3 フィンガープリント上位オフェンダー(自動化/ボットネットの候補)。
- 上位脅威 IP と 直近の自動処置フィード(「なぜブロックしたか」の物語)。
- 脅威トレンド — 選択した期間のスパークライン。
すべて 読み取り専用 です。この画面が何かをブロックしたり編集したりすることはありません。実際の操作は 脅威、ブロックリスト・評判、検知 で行います。
ここに「ドメイン」はありません。セキュリティ概要は Web の TLD 別ではなく、役割領域(セキュリティ運用) 別のサマリーです。
利用する場面
- シフト開始時 に、セキュリティ体制の全体像を30秒で把握する。
- ブロックが実際に機能していることを 経営層や監査担当に説得力をもって説明する(ファネルの件数と自動化率)。
- トレンドのスパークラインで 脅威の急増 を見つけ、疑わしい IP を選んで 脅威 / 検知 へ掘り下げる。
- JA3 のボットネット/スキャナー を素早く確認し、詳細なルールセットへ移動する。
画面構成
上部 — 脅威強度ゲージと防御ファネル
| 領域 | 内容 |
|---|---|
脅威強度(t.ov.score) |
セキュリティスコアを円錐グラデーションのドーナツで描画します。表示値は 100 − score(大きいほど悪い)。サブタイトルは「大きいほど危険。未対応で残った分を基準」。 |
防御ファネル(t.ov.funnel_title) |
上から下へ幅が狭まる4段のバー。各段に実測件数とキャプションが付きます。 |
中央部 — 自動対応と脅威トレンド
| カード | 内容 |
|---|---|
自動対応(t.ov.resp_title) |
4つの指標タイル:時間あたり脅威数・24時間の脅威数・有効なブロック /24・24時間のブロック数。 |
脅威トレンド(t.ov.tseries_title) |
IDS 警報を30個のバケットにダウンサンプリングした SVG スパークライン。Σ total · ▲ max/bucket-min のメタ情報と、収集遅延(⏱ Nm)バッジが付きます。 |
下部 — JA3 オフェンダー・上位脅威 IP・直近の自動処置
- JA3 シーケンス分析(
t.ov.ai_title) — 直近6時間の上位オフェンダーを 3×3 のグリッド(最大9カード)で表示します。各カードには JA3 の多様性・TLS 接続数・SNI の多様性・国/ASN/ISP・「ブロック済み」バッジに加え、ローテーションのバーと、ブラウザがt.ov.ai_behaviorから選ぶ挙動タグ(読み手の言語に従います)が表示されます。IP をクリックすると評判ポップアップが開き、ルールセット自体は 検知 にあります。 - 上位脅威 IP(
t.ov.top_title) — 警報数・深刻度・シグネチャの異なり数・最終確認・ブロック有無・国。 - 直近の自動処置(
t.ov.feed_title) — 直近にブロックした /24 レンジを、国・ソースタグ(Kitsune/Suricata/手動)・簡潔な理由・タイムスタンプとともに表示します。
ヘッダーのコントロール
- 期間トグル:
1h / 6h / 24h(既定は24時間)。 - LIVE / PAUSED トグル:30秒ごとの自動ポーリングを切り替えます。
- 全画面 ボタン:上部ナビを隠してダッシュボードモードにします(ESC で解除)。
- stamp:最後に計算した時刻。
使い方
- 上部の 脅威強度 ゲージで現在のリスクレベルを読み取ります(大きいほど悪い)。
- 防御ファネル を上から下へ読み、「どれだけ入ってきたか(脅威)→ どれだけフラグが立ったか(検知)→ どれだけのルールセットが発火したか(自動対応)→ どれだけブロックしたか(対応)」という流れを追います。
- 脅威トレンド のスパークラインで急増を確認します。
⏱ Nmバッジが大きい場合は収集が遅延しているため、件数はそのアンカー時刻時点のものとして解釈してください。 - JA3 オフェンダー / 上位脅威 IP から疑わしい IP を選び、脅威 / 検知 で詳細な調査、評判の照会、ブロックへ進みます。
- 直近の自動処置フィード で、自動防御が直前に何をなぜブロックしたかを確認します。
ファネル各段階の厳密な定義
すべての件数は選択した期間(1h/6h/24h)に限定されます。SecurityOverviewService::compute() が算出します。
| 段階 | キー | 計算式 | ソース |
|---|---|---|---|
| 脅威 | threats |
alertCount + nginxSuspiciousCount |
suricata_alert_ct + nginx_meta_ct(is_suspicious=1) |
| 検知 | detections |
distinctAlertIps + kitsuneBlockedCount |
src_ip の異なり数(suricata_alert_ct)+ kitsune_detail_log(is_blocked=1) |
| 自動対応ルールセット | rulesets |
active rulesets + firing rulesets |
infr_sec_ruleset(status=active)+ 44 件のルールセットカタログのうち発火しているもの |
| 対応 | response |
blockedCount |
blacklist_info(created_at ≥ 期間) |
「自動対応ルールセット」の件数は、生のシグネチャ(sid)の数では ありません。ルールセットライブラリ と 同じ「ルールセット」という単位 で数えられており(RulebookService を再利用)、44 件のカタログを超えることはなく、ルールセット画面と一致します。
自動対応カードの指標定義
| 指標 | 意味 | 計算方法 |
|---|---|---|
| 時間あたり脅威数 | threats_hr |
アンカー基準の24時間の警報数 ÷ 24 |
| 24時間の脅威数 | threats_24h |
アンカー基準の24時間の alertCount |
| 有効なブロック /24 | active |
blacklist_info のうち is_use=1 の件数 |
| 24時間のブロック数 | blocks_24h |
直近24時間の blockedCount |
自動対応セクションには「隔離(自動)」と「国際連携(手動)」の文言(
resp.isolate/resp.coop)もありますが、この2つは対応ツールを配備したあとに集計する 後続フェーズ の項目です。現時点で実際に計算されているのは上記4指標だけです。
脅威強度(セキュリティスコア)の計算式
計算式は Services\Security\PostureService が所有します(2026-09-04 改定)。Overview の「セキュリティの根拠」カードと 同じ数値 です。
score = weighted mean of ids, ai, web, rep, tls, fw # each metric 0..100
metric = 100 − 45 × open / (total + floor) # open = 0 -> metric = 100
displayed threat intensity = 100 − score # 0..45, higher = worse
open= 止められずに残った分、total= 同種で観測されたすべて(ブロック済みを含む)、floor = 標本が小さいときに比率が暴れないようにする平滑化定数。- 残余がゼロならその指標は 100 です — どれだけ攻撃されても、すべて止めたなら減点する理由はありません。
- 対処済みの判定は
blacklist_info(適用済み)とblacklist(ステージング)の両方を見ます。自社ネットワークは分子・分母の双方から除外されます。 - 旧計算式は
kitsune_detail_logのブロック数とnginx_meta_ctの疑わしいリクエスト数を減点していたため、自動防御が成功するほどスコアが下がりました。 - スコアは下限 55 でクランプされます(=脅威強度は最大 45)。
データソース
脅威・検知・ブロックの件数はすべて、レガシーの legacy_glory コネクションにある大容量のテレメトリテーブルを 読み取り専用 で参照します。認証情報は config('database.connections.legacy_glory')(= .env)からのみ取得し、ハードコードすることはありません。
| テーブル | コネクション | 用途 |
|---|---|---|
suricata_alert_ct |
legacy_glory | IDS 警報(脅威・検知・上位脅威 IP・トレンド)。alert_ts インデックス |
nginx_meta_ct |
legacy_glory | 疑わしい Web リクエスト(is_suspicious)。idx_suspicious |
kitsune_detail_log |
legacy_glory | ML による異常ブロック(is_blocked) |
suricata_tls_ct |
legacy_glory | JA3 フィンガープリントのシーケンス(JA3 オフェンダー) |
blacklist_info |
legacy_glory | 自動/手動のブロック(/24 CIDR)。対応・有効なブロック・フィード |
ip_info_loop |
legacy_glory | geo/ASN/ISP のエンリッチメント(ipEnrichment) |
infr_sec_ruleset |
アプリ(MAIN) | JA3 シーケンス ルールセット(有効なルールセット数とサマリー) |
パフォーマンスと鮮度の規律
- クエリは 狭い時間窓とインデックスと LIMIT のみを使います(巨大テーブルでのスロークエリを避けるため)。
SecurityRepositoryがクエリビルダーとパラメータバインディングでそれらを隔離します。 - アンカー = 最新の警報時刻(
latestAlertTs()=MAX(alert_ts))。eve_ingest が遅延してnow()がデータより先行している場合でも、時系列と24時間統計はここを基準にすることで「空の末尾」を取り除きます。5分を超える遅延は⏱ Nmバッジで表示されます。 - 30秒キャッシュ:結果は30秒ポーリングに合わせて、キー
infr:sec:ov:{range}で30秒間キャッシュされます。個々の読み取り失敗はsafe()が吸収するため、1か所の不具合でファネル全体が止まることはありません。
SecurityScope — 自ネットワークの自動除外
上位脅威 IP と JA3 オフェンダーの一覧は、自社のサーバーが攻撃者として現れないよう、自ネットワークを自動的に除外します(ハードコードなし)。
SecurityScope::excludePrefixes()は、登録済みインスタンス(infr_instanceのパブリック/プライベート/NIC の IP → /24 プレフィックス)と 運用ポリシーのホワイトリスト(internal_networks— IP・プレフィックス・CIDR)をマージして、プレフィックスの配列にします。- それらのプレフィックスは、クエリ内で
src_ip NOT LIKE 'prefix%'として適用されます(パラメータバインド)。 - マッチャーは60秒間キャッシュされ、運用ポリシー が保存されるたびに無効化されます。
e.g. register 203.0.113.10 in infr_instance → prefix "203.0.113." auto-excluded
add 10.0.0.0/8 to OpsPolicy internal_networks → CIDR → "10." coarse prefix excluded
自社のサーバーが脅威/オフェンダーに現れ続ける場合は、それらの IP を 資産 ▸ インスタンス に登録するか、運用ポリシー の
internal_networksホワイトリストに追加してください。自動的に一覧から外れます。
アクセス権限
- この画面を含む
/security/*領域全体がinfr.level:2ミドルウェアで保護されています — 入るにはuser_level ≥ 2が必要です。 - したがって demo(1) アカウントはセキュリティデータにアクセスできず、staff(5) と admin(10) は閲覧できます。
- セキュリティ概要は 完全に読み取り専用 です。書き込み/ブロック/編集の操作がないため、step-up ゲートも監査ログも不要です。実際のブロックと解除は ブロックリスト・評判 で行います(書き込みはレベル2以上と監査)。
トラブルシューティングとFAQ
Q. ファネルの件数がすべて 0 です。
選択した期間(1h/6h/24h)にデータがないか、legacy_glory コネクションがダウンしている可能性があります。24h に広げてください。⏱ の遅延バッジが極端に大きい場合は、コレクター(eve_ingest / kts_tx / srct_tx)が停止していてデータが古くなっています。
Q. 自社のサーバー IP が上位脅威/オフェンダーに出てきます。
自ネットワークの除外が届いていません。その IP を インスタンス に登録するか、運用ポリシー の internal_networks に追加してください(SecurityScope は /24 プレフィックス単位で除外します)。
Q. 「自動対応ルールセット」の数が ルールセットライブラリ と違います。
ルールセット段階は active rulesets + firing rulesets です。有効な JA3 シーケンス ルールセット(infr_sec_ruleset の active)が加算されるため、純粋なカタログの発火数を上回ることがあります。
Q. ルールセットに action=block とあるのに、ブロックされていません。
このフィールドは推奨であって命令ではありません。自動ブロックは suricata_tls_ct から JA3 ローテーションを直接計算し、infr_sec_ruleset を読みません。実際のブロックは ブロックリスト から行うか、自動ブロックのスケジューラが実行します。検知 を参照してください。
Q. 脅威強度がいつも低い(45以下)です。
仕様どおりです。表示値は 100 − score で、score は下限 55 でクランプされるため、脅威強度は 0..45 の範囲になります。
Q. 30秒ごとに数値がわずかに揺れます。 30秒ポーリングと30秒キャッシュの組み合わせにより、ポーリングのたびに最新の期間で再計算されるためです。自動更新を止めるには LIVE をオフにしてください。
関連項目
- 脅威 — IDS の脅威エンティティのトリアージ、IP ドリルダウン、ブロックとの連携。
- 検知 + JA3 — 検知アルゴリズムの解説と JA3 シーケンスのルールセット(オンデマンド分析)。
- ルールセットライブラリ — 44 件の検知ルールセットのカタログ(発火数の正本)。
- ブロックリスト・評判 — blacklist_info による自動防御の解説とブロック/解除の操作。
- 運用ポリシー —
internal_networksホワイトリスト(SecurityScope による自ネットワーク除外)。 - IP 評判の照会 — AbuseIPDB のアプリ内ポップアップ。

