Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Nimbus Vestige — クラウドおよびアイデンティティインシデントレスポンスのためのフォレンジック再構築エンジン。 | Kitploit
ツール/GitLabGitLab/dobybaxter127/nimbus-vestige
偵察デジタルフォレンジックペネトレーションテストクラウドセキュリティ脅威インテリジェンスアイデンティティ&アクセス管理 (IAM)学習と教育インシデントレスポンスログ分析
GitLabdobybaxter127/nimbus-vestige

Nimbus Vestige

クラウドおよびアイデンティティインシデントレスポンスのためのフォレンジック再構築エンジン。

2353日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

Nimbus Vestige (NV)

クラウドおよびアイデンティティのインシデント対応のためのフォレンジック再構築エンジン。

断片化されたクラウド、SaaS、アイデンティティのテレメトリ — コントロールプレーンログ、サインインイベント、トークンおよび同意アクティビティ — が与えられると、NV は侵入がアカウントやサービスをまたいでどのように移動した可能性が最も高いかを再構築し、取り得た他の最も可能性の高い経路を列挙し、すべてのステップを較正された説明可能な信頼度とともに報告します。証拠が裏付けられない事柄については断言を拒否します。

検出は何かが起きたことを教えてくれます。Nimbus Vestige はどのように — そして他に何が — を教えてくれます。


これが存在する理由

現代の侵入は「押し入る」ものではありません。ログインするのです。アイデンティティは今や主要な攻撃手段であり、クラウド IR 調査の大多数に関与しており、ほとんどの侵入は複数のサーフェス — アイデンティティ、クラウド、SaaS、エンドポイント — にまたがります。それらを記録するテレメトリは断片化され一貫性がないため、対応者は不完全なデータから手作業でストーリーを再構築することを余儀なくされています。

その手作業の再構築は遅く、予測可能な形で失敗します。対応者は最初のもっともらしい筋書きに固執し、本当の筋書きを見逃してしまうのです。NV は再構築を自動化し、単一のストーリーではなく、もっともらしい経路のランク付けされた空間を常に提示することで、その失敗モードに直接対処します。

重要なのは、NV がこれを誠実さそのものを製品として行うことです。市場が掲げる敵はブラックボックスの信頼度 — 作業内容を示さずに結論を断言するツールです。NV が生成するすべての数値は、それを獲得した特定の証拠まで追跡可能であり、裏付けられないものは推測するのではなく差し控えられます。


それが何であり、何でないか

NV は検出器でも、スキャナでも、監査ツールでも、攻撃実行ツールでもありません。それらのツールは何かが起きたことを教え、それを測定します。NV は逆向きに動作します — 断片化されたアイデンティティ資産全体にわたり、パターンからメカニズムをアブダクティブに再構築するのです。

  • 検出器ではない — アクティビティに対してアラートを発するのではなく、アクティビティがどのように整合するかを説明します。
  • SIEM ではない — ログプラットフォームとしてではなく、狭い楔 (インシデント後のナラティブ再構築) を通じて参入します。
  • ルールエンジンではない — 既知のパターンに何も一致しない場合でも再構築を行い、見えなくなるのではなく優雅に縮退します。

なぜ長期的に有効なのか

  1. ブルーチームは再生し、レッドチームはコモディティ化する。 攻撃的ツールは有限でパッチ可能な穴の集合を見つけ出し、自動化された CI/CD 安全パイプラインへと吸収されつつあります。侵入がどのように起きたかを再構築することは決して解決しません — 攻撃者は発明を続けるため、その必要性は永続的かつ自己再生産的です。

  2. エンジンは基盤に依存しない。 コアロジック — 較正された信頼度と停止レールを伴い、パターンからメカニズムを再構築する — はまずクラウド/アイデンティティにコミットされていますが、後にネットワーク、エンドポイント、OT へ移植されます。テーゼを書き換えることなく対象を変更できます。

  3. 再構築はハードニングを可能にする。 彼らがどのように侵入したか — そして他にどの扉が開いていたか — を知れば、防御を構築できます。取られなかったがもっともらしい経路はハードニングのバックログであり、多くの場合再構築そのものよりも価値があります。なぜならほとんどの侵害は目新しい手口ではなく、予防可能な露出を悪用するからです。

  4. 新規の侵入 — 最も重要なまさにそのインシデント — に対して優雅に縮退する。 シグネチャ/ルールエンジンはゼロデイで見えなくなりますが、NV のアブダクティブコアは依然として最も可能性の高い経路を生成し、より低い信頼度として誠実にフラグを立てます。

  5. 誠実さは堀である。 ランク付けされた代替案を伴う較正されたケースベースの信頼度は、まさに市場が求めていると述べているものであり、ブラックボックスの競合他社が再設計なしには構造的に提供できないものです。


アーキテクチャ

生のプロバイダログ → 正規化されたイベント/エンティティグラフ → 再構築エンジン → JSON → GUI。

  O365 / Entra audit logs      nv_extract_identity_events.py
  AWS CloudTrail (IAM/STS/S3)   nv_extract_cloudtrail_events.py   (ingest + normalize)
          ▼
  normalized identity events (JSONL)  ← one event model, any substrate
          │  nv/graph.py                      (typed per-actor timelines)
          ▼
  reconstruction engine
     ├─ nv/patterns.py     known layer: ATT&CK identity pattern library
     ├─ nv/providers.py    provider packs: per-substrate op→ATT&CK vocab (Entra + AWS)
     ├─ nv/validation.py   Phase 3: provenance + integrity gate on every pattern
     ├─ nv/feeds.py        live ATT&CK STIX / TAXII / Sigma clients + scheduler
     ├─ nv/confidence.py   evidence-corroboration scorer (calibratable weights)
     ├─ nv/calibration.py  fit + measure confidence against labeled ground truth
     ├─ nv/reconstruct.py  most-likely chain + ranked competing paths + trust floor
     └─ nv/scope.py        authorized-scope gate (refuses unauthorized tenants/accounts)
          │  run_nv.py
          ▼
  reconstruction.json  ──►  nv_gui.html  (embedding canvas + two-column view + trust slider)

GUI は純粋なビュー層であり、エンジンの出力を描画し、アナリストが信頼の下限を移動できるようにするだけです。それ自体には再構築ロジックは一切含まれていません。


信頼度モデル(製品全体の信頼性)

すべてのステップは [0, 1] の範囲の信頼度を持ち、証拠の裏付けによって構築されます:

confidence = per-technique base rate
           + bonus for each independent corroborating signal
                 (source IP, device, successful outcome, temporal adjacency, broad-consent flags)
           − penalty for missing signals (e.g. no source IP to corroborate origin)
  • verified — 信頼度 ≥ 0.70 かつ 2つ以上の独立したシグナルが一致している。
  • pattern-only — 信頼下限を上回っているが、サポートが弱い、または単一のシグナルのみ。
  • withheld — 信頼下限を下回る。グレー表示され、暗黙に推測されたり隠されたりすることは決してない。

パスのスコアはリンクを幾何平均で合成するため、1つの弱いリンクが平均化されて消えるのではなく、正直にパス全体を引き下げる。

上記のすべての重み — テクニックごとの基準率、シグナルごとのボーナス、欠落ペナルティ — は nv/confidence.py 内の単一の PARAMS テーブルに存在する。これらはNVのv1事前分布であり、キャリブレーション可能である。nv/calibration.py はラベル付きの正解データに対してそれらを再フィットでき、エンジンはその結果を読み込む。キャリブレーションが提供されない場合はv1事前分布にフォールバックする(以下を参照)。

信頼下限

withholdルールは、UIだけでなく、エンジンの出力契約に組み込まれている。下限を下回るステップはwithheldとなる。下限を動かすことは、誠実さとカバレッジのトレードオフを物理的に体現することである。厳格/高信頼には上げ、寛容/高カバレッジには下げる。デフォルトの下限は、アナリストが触れる前にNVがどこに位置するかについての編集上の決定である。


正解データに対する信頼度のキャリブレーション

v1の重みは擁護可能ではあるが、事前分布にすぎない。nv/calibration.py はそれらをラベル付きの正解データ — どのイベントが侵入の一部で、どれが良性であったかを把握しているイベント — に対して調整し、さらに重要なことに、調整が実際に役立ったかどうかを測定する。したがってキャリブレーションは、単に数値を動かすのではなくキャリブレーション誤差を下げる場合にのみ採用される。

キャリブレーションされた信頼度が意味するのは1つのことである。あるステップに対するNVの信頼度は、そのステップが実際に攻撃パス上にあった確率に等しいべきである。そこで、各ラベル付きイベントの信頼度を予測確率として扱い、ハーネスは以下をフィットする:

  • 操作ごとの基準率 — その操作の経験的なヒット率で、小さなサンプルが過学習しないようv1事前分布に向けてベイズ的に縮小される。そして
  • シグナルごとのボーナスと2つのペナルティ — v1の値に向けたL2の引き戻しを伴い、Brierスコアを最小化する有界座標降下法による。

verified/withheldのしきい値はポリシーでありキャリブレーションではないため、変更されない。

これはBrierスコア、log-loss、ECE、AUC、信頼性テーブル、そして信頼下限スイープ(各下限における真のステップの再現率と良性の偽陽性率)を、前後で報告する。これにより、誠実さとカバレッジのトレードオフが単一の数値ではなく読み取れるものになる。

# calibrate against a real, labeled BadZure / MAAD-AF run
python3 calibrate.py --labeled run_labeled.jsonl --origin live \
    --run-label "badzure-2026-07 tenant-x" --out calibration.json

# demonstrate on the bundled documented-shape proxy corpus
python3 calibrate.py --out calibration.json

# run the engine on calibrated weights (opt-in; v1 priors are the default)
python3 run_nv.py events.jsonl out.json --authorize t.onmicrosoft.com \
    --calibration calibration.json

グラウンドトゥルースのソース。 正直な入力とは、実際のテナントで BadZure / MAAD-AF を実行した際のテレメトリであり、統合監査ログを攻撃ツール自身のアクティビティ記録と突き合わせることでラベル付けされる(ツールが引き起こしたすべてのイベントはオンチェーンにあり、それ以外はすべて良性である — nv/calibration.py の LABELED_SCHEMA を参照)。実際の実行を指定するまでは、eval/calibration_cases.py が文書化された形状のプロキシコーパスを提供し、そこから適合されたすべての成果物はその来歴に source="proxy" と刻印されるため、プロキシによる適合がライブの適合と取り違えられることは決してない。calibration.proxy.json がその同梱のプロキシ成果物である。

同梱のプロキシコーパスでは、適合は明らかな改善を示す — Brier 0.398 → 0.045、ECE 0.576 → 0.081、AUC 0.81 → 0.91、そして 0.60 の下限における良性の偽陽性率は 0.69 から 0.00 へと激減する(v1 の事前分布は良性アクティビティに対してひどく過信していた)。プロキシは意図的に保守的であり、実際にデプロイすべき重みを生み出すのはライブテナントでの実行である。

信頼の完全性(フェーズ 3)

2 つの第一級の制御が、再構築を不正な入力から保護する:

  • 認可スコープゲート(nv/scope.py) — NV は認可リストにないエステートでは実行を拒否する。調査を許可されているエステートごとに --authorize <tenant-domain> を付けて実行すること。ゲートがどのエステートにも配置できない行(ドメインもテナントもアカウントも持たないアクター)も、スコープ内にあることを示せないため拒否される。それらの行の調査が許可されている場合に限り --allow-unscoped を渡すこと。それらは依然として出力に計上される。

  • パターンソースの検証(nv/validation.py) — いかなるパターンも以下を通過しなければライブラリに入らない:(1) 信頼済みソースの許可リスト、(2) 必須のコンテンツチェックサム、(3) スキーマの整形性、(4) 有効な ATT&CK 形式のテクニック ID。受け入れられたすべてのパターンは監査記録を保持し、拒否は理由とともにログに記録される。不正な、あるいはポリシー外のフィードエントリは、偽の再構築を捏造する前に上流で阻止される。これはエンジンが証拠に適用するのと同じ懐疑心を、パターン自体に移したものである。

    チェックサムは整合性チェックである:パターンが構築されるときにそのパターン自身の内容から計算されるため、後から変更された内容(編集されたキャッシュやコミットされたライブラリファイル)を検出できる。ソースで汚染されたフィードを検出することはできない。そのためには、信頼するフィードペイロードの生の sha256 を update_feeds.py --pin URL=SHA256 で固定すれば、その URL にある他のペイロードは検証前に拒否される。


知識を最新に保つ(攻撃者の進化に先んじる)

再構築エンジンは、そのパターンライブラリと、ライブラリが一度も見たことのないものを扱う能力の分だけしか最新でありえない。NV は設計上、2 つの独立した側面で陳腐化に対処する:

1. 既知のレイヤーは検証済みの更新パイプラインを通じて新鮮に保たれる

ライブラリはハードコードされていない — nv/patterns.py は(組み込みセットを含む)すべてのパターンを nv/validation.py を通じて読み込むため、外部フィードも同じ信頼済みの経路で入ってくる。これらのフィードをスケジュールに従って取得するライブネットワーククライアントは nv/feeds.py に実装され、update_feeds.py によって駆動される。ソースは信頼階層別に以下のとおり:

ツールをダウンロード