1724545523
2024-08-24 23:12:18
日付: 2015年4月26日
著者: @JohnLaTwC
ネットワーク防御の多くは、敵と接触する前に失敗します。防御側が戦場をどう捉えているかという点から始まります。ほとんどの防御側は、資産を保護し、優先順位を付け、ワークロードとビジネス機能で分類することに重点を置いています。防御側は、システム管理サービス、資産インベントリ データベース、BCDR スプレッドシートなど、資産のリストであふれています。これらすべてには 1 つの問題があります。防御側は資産のリストを持っているのではなく、グラフを持っているのです。資産はセキュリティ関係によって互いに接続されています。攻撃者は、スピアフィッシングなどの手法を使用してグラフのどこかに着地してネットワークに侵入し、グラフをナビゲートして脆弱なシステムを見つけ、ハッキングします。このグラフを作成するのは誰でしょうか。あなたです。
ネットワークのグラフは、資産間の等価クラスを作成するセキュリティ依存関係のセットです。ネットワークの設計、ネットワークの管理、ネットワークで使用されるソフトウェアとサービス、ネットワーク上のユーザーの行動はすべて、このグラフに影響します。ドメイン コントローラーを例に挙げてみましょう。Bob はワークステーションから DC を管理しています。そのワークステーションがドメイン コントローラーほど保護されていない場合、DC が侵害される可能性があります。Bob のワークステーションの管理者である他のアカウントは、Bob と DC を侵害する可能性があります。これらの管理者は全員、業務の自然な流れで 1 台以上の他のマシンにログオンします。攻撃者がそれらのいずれかを侵害した場合、DC を侵害するパスがあります。
攻撃者は、mimikatz などのパスワード ダンパーを使用して、高価値アカウントがマシンにログオンするまで、侵害されたマシンで待機することができます。サンプル グラフを調べてみましょう。
左側のクラスターは、数百のユーザーが使用する単一のターミナル サーバーです。攻撃者がこのマシンを侵害すると、時間の経過とともに多くのユーザーの資格情報をダンプできます。

攻撃者はどのようにして横方向に移動して高価値資産に到達するのでしょうか?

グラフを検索することで、攻撃者は高価値資産への複数のパスを発見します。ターミナル サーバーを侵害すると、攻撃者は User46 と User128 も侵害できます。これらのユーザーは、それぞれ Machine2821 と Machine115 の管理者です。これらのワークステーションを侵害すると、攻撃者は高価値資産の管理者である User1 と User34 を侵害できます。高価値資産を保護するには、すべての依存要素を HVA と同程度に徹底的に保護し、同等クラスを形成する必要があります。
Windows ネットワークでは、ユーザーが特定の種類のログオン (対話型、ターミナル サーバーなど) を実行すると、基盤となるホストが侵害された場合に、それらのユーザーの資格情報 (および Kerberos TGT や NTLM ハッシュなどのシングル サインオンの同等のもの) が盗難の危険にさらされます。これ以外にも、セキュリティの依存関係を生み出すさまざまな関係があります。
- 共通のパスワードを持つローカル管理者アカウント。 1 つのシステムを侵害し、ローカル管理者のパスワードをダンプし、同じパスワードを持つ他のホストでそのパスワードを使用します。
- 多数のユーザーに対して実行されるログオン スクリプトとソフトウェア更新サーバーを格納するファイル サーバー。
- 使用時にクライアント マシンにプリンタ ドライバを配信するプリント サーバー。
- スマート カード ログオンに有効な証明書を発行する証明機関。
- 特権ユーザーとして実行されているデータベース サーバーのコンテキストでコードを実行できるデータベース管理者。
などなど。間接的な関係もあります。脆弱性のあるマシンが侵害され、突然攻撃者がグラフに新しいエッジを作成できるようになる可能性があります。または、ユーザーが同じパスワードを持つ 2 つの信頼されていないドメインにアカウントを持っている場合、ドメイン間に隠れたエッジが作成されます。
防御側として何ができるでしょうか? 最初のステップは、リストをグラフに変換してネットワークを視覚化することです。次に、グラフを整理するためのコントロールを実装します。
- 膨大な接続バーストを引き起こす不要なエッジを調査します。インフラストラクチャのパーティショニングと認証情報のサイロを実装して、それらを減らします。
- 管理者の数を減らします。権限の最小化には、Just-In-Time / Just Enough 手法を使用します。
- 特定のエッジトラバーサルを軽減するには、2 要素認証を使用します。
- ユーザー アカウントが侵害された場合に備えて、堅牢な資格情報のローテーション アプローチを適用します。
- 森林の信頼関係を再考する。
防御側は、戦場を視覚化する際に攻撃側が優位に立たないようにする必要があります。この競争では、防御側が優位に立つことができます。防御側は自分のネットワークに関する完全な情報を得ることができますが、攻撃側はネットワークを少しずつ調べる必要があります。防御側は、攻撃者がグラフを理解する方法から教訓を得る必要があります。攻撃者は、不正確なメンタル モデルや、不完全な資産インベントリ システムから見たもの、または古いネットワーク ダイアグラムとしてではなく、インフラストラクチャをありのままに調べます。現実から管理してください。それが準備の整った防御側の考え方です。
攻撃グラフに関する論文は数多くあります。以下にいくつか紹介します。
- Heat-ray: 機械学習、組み合わせ最適化、攻撃グラフを使用したアイデンティティスノーボール攻撃への対抗、J. Dunagan、D. Simon、A. Zheng著 http://alicezheng.org/papers/sosp2009-heatray-10pt.pdf
- S. Jha、O. Sheyner、J. Wingによる攻撃グラフの2つの形式的分析、 http://www.cs.cmu.edu/~scenariograph/jha-wing.pdf
- モデル検査を用いたネットワーク脆弱性の分析 P. Ammann および R. Ritchey 著、 http://cyberunited.com/wp-content/uploads/2013/03/Using-Model-Checking-to-Analyze-Network-Vulnerabilities.pdf
- C. Phillips と L. Swiler によるネットワーク脆弱性分析のためのグラフベースシステム http://web2.utc.edu/~djy471/CPSC4660/graph-vulnerability.pdf
- 攻撃グラフの自動生成と分析 J. Haines、S. Jha、R. Lippman、O. Sheyner、J. Wing、 https://www.cs.cmu.edu/~scenariograph/sheyner-wing02.pdf
[And thanks to @4Dgifts for mentioning the two below]
#共有防御者はリストで考える攻撃者はグラフで考えるこれが真実である限り攻撃者が勝つmd #master #JohnLaTwCShared #GitHub