“From Heuristics to Histograms: Reinventing Kerberoasting Detections” Jul 23, 2025 by Cole Sodja, Christopher Calvani and BeyondTrust Research Team より
本ブログでは、Kerberoasting攻撃の基本、従来の検知手法の限界、そしてBeyondTrustのデータモデリングアプローチがいかにして従来の防御策では見逃されていた脅威を浮かび上がらせることができるのかを解説します。
最も巧妙なKerberoasting攻撃を見抜くには
あらゆるActive Directory環境には盲点が存在しており、Kerberoastingは、まさにその盲点を巧みに突く手法です。この脅威は静かで、目立たず、そして持続的であり、重大な損害が発生するまで気づかれないことも稀ではありません。
従来の防御手法は、アカウントごとの振る舞いの違いを無視した一律のしきい値といった、頼りないヒューリスティック(経験則)に依存していました。これらのしきい値は通常、静的なベースラインや汎用的な異常検知モデルに基づいており、Kerberosトラフィックの変動性の高さにより、実際の攻撃の検出では失敗することが多々あります。こうした手法は、大量の誤検知を引き起こす一方で、『低速かつ目立たない(low-and-slow)』攻撃を見逃してしまいます。
BeyondTrustは、セキュリティ研究とデータサイエンスを組み合わせることで、各アカウントにおけるチケット要求の典型的な頻度を学習し、その基準からの逸脱を検知するモデルを開発しました。その結果として、軽量ながらも非常に巧妙なKerberoasting攻撃を見抜くことができる検出能力を実現しています。
本ブログでは、Kerberoasting攻撃の基本的な仕組み、従来の検出手法の限界、そしてBeyondTrustのデータモデリング手法がどのようにして従来の防御では見逃されていた脅威を露にするのかを解説します。
Kerberoastingを理解する
Kerberoastingとは?
Kerberoastingとは、Windows Active Directory環境を標的としたポスト・エクスプロイト技術(侵入後にシステム内部で行われる攻撃手法)です。この手法では、攻撃者が侵害された権限の低いドメインユーザーアカウントを用いて、サービスアカウントの資格情報を取得することが可能になります。
この攻撃は、Active Directoryのドメインコントローラーからサービスチケット(正確にはTicket Granting Service:TGSチケット)を要求することで行われます。攻撃者は、こうして取得したチケットをオフラインでクラックすることにより、対象となるサービスアカウントのプレーンテキストパスワードを解読しようと試みます。
この攻撃が非常に有効である理由は、管理者権限を必要としない点と、パスワードのクラックが完全にオフラインで行える点にあります。
Kerberos認証とは?
Kerberosは、チケットを用いてユーザーの身元を安全に検証し、サービスへのアクセスを提供するネットワーク認証プロトコルです。Kerberoastingの影響を理解するためには、この認証プロセスの仕組みを把握することが重要です。
以下にKerberos認証の手順を示します:
- AS-REQ:ユーザーがログインし、Ticket Granting Ticket(TGT)を要求します。
- AS-REP:認証サーバーがユーザーの資格情報を検証し、TGTを発行します。
- TGS-REQ:ユーザーがネットワークサービスにアクセスしようとする際、TGTを使ってTGS(Ticket Granting Service)チケットを要求します。
- TGS-REP:TGSがリクエストを検証し、サービスアカウントのパスワードハッシュで暗号化されたTGSチケットを発行します。
- KRB-AP-REQ:ユーザーがTGSチケットをアプリケーションサーバーに送信して認証します。
- KERB-VERIFY-PAC:アプリケーションサーバーが受信したTGSを使用して、Key Distribution Center(KDC)に対しユーザー権限を検証します。
- PAC-VERIFY-REP:KDCがPrivilege Attribute Certificate(PAC)を検証し、アプリケーションサーバーにその妥当性を返答します。
- KRB-AP-REP:アプリケーションサーバーがユーザーに応答し、相互認証が完了してサービスへのアクセスが許可されます。
図1:Kerberos認証の図解
手順6~8はKerberosの完全なフローに含まれますが、ユーザーがアプリケーションサーバーへアクセスする上で必須ではありません。これらの手順が適用されるかどうかはアプリケーションサーバー側の実装に依存するため、実際の運用では省略されることが多いのが実情です。
Kerberoastingはどうやって行われるのか
Kerberoastingは、サービスアカウントのパスワードでハッシュ化された暗号化サービスチケットを攻撃者が悪用できるときに成立します。
SPN(Service Principal Name/サービスプリンシパル名)は、特定のサービスインスタンスにActive Directory(AD)アカウントを結びつける一意の識別子です。
重要なのは、SPNが関連付けられているユーザーアカウントだけがこの種の攻撃の標的になり得るという点です。
攻撃者がそのようなアカウントに対してサービスチケットを取得できた場合、オフラインでのブルートフォース攻撃や辞書攻撃によって、アカウントのプレーンテキストパスワードを解読しようと試みることができます。
なお、SPNはユーザーアカウントにもコンピューターアカウントにも設定できますが、コンピューターアカウントのパスワードは通常、長く、ランダムに生成されており、非常に複雑なため、クラックはほぼ不可能です。
クライアントがサービスを要求すると、KerberosはSPNを使用してそれに対応するアカウントを特定し、そのアカウントのパスワードハッシュで暗号化されたチケットを発行します。
Kerberoasting攻撃は通常、次のような手順で実行されます:
1. 初期アクセスの取得:攻撃者はまず、Active Directoryドメインに有効なユーザーアカウントを使ってアクセスを得ます。
2. Kerberosサービスプリンシパル名の列挙:攻撃者は、LDAP(Lightweight Directory Access Protocol)を利用して、SPNが設定されたActive Directoryアカウントをディレクトリから検索します。SPNが存在するアカウントは、何らかのサービスに紐づけられていることを意味します。
3. 特定されたSPNに対するサービスチケットの要求:攻撃者は、見つけたSPNに対してTGSチケットを要求します。
※Windowsでは、これらのチケットを要求するのに昇格権限は不要です。
4. チケットの抽出と保存:攻撃者はパケットキャプチャなどを通じてTGSチケットを抽出し、オフライン解析用に保存します。
5. チケットのオフラインブルートフォース:抽出されたチケットは、HashcatやJohnTheRipperなどのツールを使ってオフラインでクラックされます。
6. クラックされた資格情報の使用:パスワードが復元された後、攻撃者はその資格情報を使ってサービスアカウントとして認証を行い、横展開や特権昇格の機会を得ることができます。
Kerberosサービスチケットのテレメトリが重要である理由
Windowsイベント ID 4769とは?
WindowsイベントID 4769は、Active Directory環境内でプリンシパルがTGSチケットを要求した際に記録される、重要なセキュリティイベントログです。
Kerberoasting攻撃は、まさにこのTGSチケットのリクエストに依存しているため、このイベントの監視は効果的な検知において非常に重要です。
※注:MicrosoftはイベントID 4769に対して、いくつかの新しいイベントフィールドを追加する更新をリリースしています。本稿では、最新のセキュリティ累積更新プログラムを適用していないお客様にも対応できるよう、旧形式のイベントスキーマに基づいて解説しています。
主なイベント属性:
✅ サービス名: 要求されたSPNに関連付けられたアカウントの名前。多くのチケットはKRBTGTサービスや組み込みマシンアカウントによって要求される。これらのアカウントは通常、極めて長くランダムなパスワードを持つため、攻撃者にとって効果的な標的とはならない。
✅ 対象ユーザー名: TGSチケットのリクエストを行ったアカウントの名前。
✅ チケットの暗号化方式: TGSチケットに使用された暗号化方式。多くのKerberoastingのシナリオでは、攻撃者が暗号方式をダウングレードすることで、チケットをオフラインでクラックしやすくする。AESが標準であるが、適切に構成されていない場合はRC4やDESも使用されうる。
✅ ステータス: リクエストが完了したかどうかを示す。
Windowsイベント4769を用いたリクエスト件数の分析とプロット例
私たちは、複数のエンタープライズ規模のActive Directory環境において3か月にわたる分析を実施し、明確なパターンを確認しました。
一般的に、ユーザーアカウントはKerberosサービスチケットをごくまれにしか要求しておらず、要求する場合でも、対象となるサービスは非常に少数に限られていました。
約5万件のActive Directoryアカウントを分析した結果、70%以上のアカウントがKerberosをほとんど使っておらず、その期間中にサービスチケットを要求した頻度は1%未満でした。また、こうしたアカウントのうち99.5%以上は、アクティブな時間帯においても、1時間あたりにアクセスしたサービスの種類が5つ以下にとどまっていました。
※図2:イベントID 4769ログに基づく、典型的なActive Directoryアカウントが5日間にわたり毎時アクセスしたサービス数の時系列チャート
一方、BeyondTrustの調査チームは、明らかに異なる振る舞いを示すいくつかのアカウントを特定しました。それらは、より頻繁な要求や、ばらつきの大きい、あるいは極端にまれな要求パターンを含んでいました。
※図3および図4は、こうした異常なパターンのいくつかの例を示しています。
図3:イベントID 4769ログに基づく、5日間における高アクティビティアカウントのサービスアクセス頻度のチャート
※図4:20日間にわたり毎時記録された、Kerberosチケット要求数に異常なスパイクを示したアカウントのチャート
Kerberosのモニタリングを通じてセキュリティ上の脅威を効果的に検出するには、
まずユーザーごとの通常の行動傾向を把握し、それを比較の基準として明確にしておくことが重要です。
一部のユーザーアカウントは、もともと予測しづらい挙動を示すことがあります。たとえば、長期間まったく活動がなかったにもかかわらず、突然、大量の認証リクエストを発生させるといったケースです。
こうした不規則で“バースト的(突発的)”な振る舞いは、しばしば正当な動作であり、大部分のアクティビティは低頻度にとどまりながらも、時折スパイク(急増)を見せるという統計的な傾向に従っていることが多いのです。