Active DirectoryのKerberos攻撃の検出:脅威調査リリース(2022年3月)
Security Mauricio Velazco , Splunk Threat Research TeamSplunk脅威調査チーム(STRT)は先日、新しい分析ストーリー「Active Directory Kerberos Attacks」を公開しました。この分析ストーリーを使用することで、SOC (セキュリティオペレーションセンター)のアナリストは、Kerberosプロトコルを悪用したWindows Active Directory (AD)環境への攻撃を検出できます。このブログでは、この分析ストーリーで利用できる検出方法の一部を紹介し、その分析の概要について説明します。
下のビデオ(英語)では、Rubeus、Kerbrute、PurpleSharpなどのオープンソースツールを使って、いくつかのKerberos攻撃をシミュレートした様子を紹介しています。Attack Rangeで構築したラボ環境で、Splunkを使ってテレメトリを収集、分析して検出内容を検証しました。ぜひこちらも併せてご覧ください。
はじめに
ギリシャ神話に登場する3つの頭を持つ番犬ケルベロスにちなんでその名が付けられたKerberosは、信頼された第三者を通じてコンピューターやユーザーの身元を検証するためのネットワーク認証プロトコルです。この信頼された第三者はKey Distribution Center (KDC)と呼ばれ、クライアントがそれぞれの権限レベルに応じてサービスやネットワークリソースにアクセスすることを許可するKerberosチケットを発行します。Kerberosは、Windows Server 2003以降、Windows Active Directoryネットワークでデフォルトで使用される認証プロトコルです。
Kerberosチケットには、 チケット認可チケット(TGT:Ticket Granting Ticket)とサービスチケット(ST:Service Ticket)の2種類があります。認証の際にユーザーがパスワードを送信すると、まずTGTがユーザーに発行されます。その後、Kerberosベースのサービス(ネットワーク共有やWebサーバーなど)にユーザーがアクセスすると、TGTが送信され、STがユーザーに発行されて、セッションが開始されます。
Active Directory認証の土台となるKerberosは、攻撃のさまざまな段階(初期アクセス、権限昇格、防御回避、認証情報アクセス、ラテラルムーブメントなど)でよく悪用されます。このブログで紹介する分析ストーリーでは、Kerberosプロトコル悪用の検出ユースケースをグループごとに分類しています。セキュリティ担当者は、適切な分析手法を使用することで、Kerberosを悪用する攻撃でよく見られる挙動を検出、追跡できます。
テレメトリとログ収集
Kerberosを悪用した攻撃への防御力を高める重要なステップの1つが、Kerberosの使用(または悪用)時にWindowsが生成するテレメトリをよく理解することです。このインテリジェンスは、ログ要件の判断とコンテンツの優先順位付けに役立ちます。
Windowsの詳細な監査ポリシー設定には、Kerberosのログ収集に関するカテゴリとして、Audit Kerberos Authentication ServiceとAudit Kerberos Service Ticket Operationsの2つが用意されています。どちらもデフォルトでは無効になっており、特定のアクションが発生したときに、ドメインコントローラーでのみ、6種類のイベントが生成されます。私たちが検証した攻撃技法で特に重要なイベントは次の3つです。
Kerberos攻撃の技法が使われると、他のデータソースにも監査証跡が残されます。Splunk脅威調査チームはすべてのセキュリティチームに、Kerberosイベントとその他の補足的なデータソース(プロセスとコマンドライン、ネットワークイベント、ローカル認証イベント、アプリケーションイベントなど)を含む包括的なログ戦略を策定することをお勧めします。
Active Directory Kerberos Attacksの分析ストーリー
このセクションでは、新しい分析ストーリーで検出対象となる一般的なKerberos攻撃について説明します。検出方法はATT&CK戦術に基づいて分類されています。この分析ストーリーはまだ発展途上であり、既存のすべてのKerberos攻撃技法に対応しているわけではない点をご了承ください。フィードバックはこちらから遠慮なくお寄せください!
探索 - TA0007
ユーザー列挙
この攻撃では、攻撃者がKerberosを悪用して、ユーザーリストに含まれるユーザーがドメインユーザーであるかどうかを確認します。この確認によって認証の失敗やロックアウトのイベントが生成されることはないため、ステルス性が高いと言えます。攻撃者は、事前認証なしのTGTリクエストを送信します。KDCが認証を求めたら、そのユーザーは有効ということになります。
Kerberos委任
Kerberos委任は、アプリケーションがユーザーに代わって各種サーバーのリソースにアクセスする代理機能です。この機能は便利である反面、委任のために信頼されたアカウントやコンピューターを悪用すればKerberos TGTを盗んだりSTを不正に取得したりできるため、新たな攻撃ベクトルを生みます。
この分析では、PowerShellスクリプトブロックログ(イベントコード4104)を監視して、
制約のないKerberos委任が有効になっているWindowsエンドポイントを探索する、PowerViewハッキングツールを使用したコマンドレットを検出します。
認証情報アクセス - TA0006
AS-REP Roasting
Kerberosの事前認証は、ユーザーがTGTの要求時に各自のシークレット(パスワード)でタイムスタンプを暗号化してKDCに送信するセキュリティ機能です。KDCは、タイムスタンプが適切なシークレットで暗号化されていることを確認すると、TGTを発行します。しかし、事前認証が無効になっていると、このステップが省略されるため、攻撃者は任意のドメインユーザーのTGTを要求できます。この技法はAS-REP Roastingと呼ばれ、攻撃者はユーザーのパスワードに対してオフラインで効果的にブルートフォース攻撃を実行できます。
Kerberoasting
Active Directoryネットワークでは、ネットワークサービスのインスタンスを一意に識別するためにサービスプリンシパル名(SPN)が使用されます。認証を可能にするために、SPNは通常、ドメインサービスアカウントと関連付けられます。ユーザーがSPNのKerberos STを要求すると、サービスアカウントのパスワードハッシュを使用してチケットの一部が暗号化されます。この仕組みを悪用した攻撃はKerberoastingと呼ばれ、攻撃者は、オフラインでブルートフォース攻撃を実行してサービスアカウントのパスワードを取得しようとします。
パスワードスプレー
パスワードスプレーは、攻撃者が1つのパスワードまたはよく使われる少数のパスワードと多数のユーザー名を組み合わせて、有効なアカウント認証情報を探し出す技法です。Active Directory環境では、この技法にNTLMとKerberosのどちらのプロトコルでも使用できます。以下ではKerberosでの検出方法をいくつか紹介します。その他の検出方法については、Password Spraying分析ストーリーを参照してください。
ゴールデンチケット
ゴールデンチケット攻撃は、Active Directory環境で任意のドメインユーザーとして恣意的であるが有効なTGTを偽造する技法です。これにより攻撃者は、ユーザー(高い権限を持つユーザーを含む)に巧みになりすまして、不正な操作を実行できます。ゴールデンチケット攻撃を行うには、攻撃者は特殊なドメインアカウントであるkrbtgtのNTLMハッシュパスワードを取得する必要があります。
ラテラルムーブメント - TA0008
リモートコード実行
攻撃者は、ネットワークへの侵入口を確保した後、ラテラルムーブメントとリモートコード実行の技法を駆使してアクセス範囲を拡大しようとします。どの技法を用いる場合でも(WMI、WinRM、SMBなど)、Kerberosプロトコルを使用したラテラルムーブメント攻撃では特徴的なイベントが生成されます。ラテラルムーブメントのその他の検出方法については、Active Directory Lateral Movement分析ストーリーを参照してください。
OverPass The Hash
高い権限でWindowsシステムに侵入した攻撃者は、メモリーをダンプして認証情報を探し出し、パスワードのクリアテキストまたはハッシュを取得できます。OverPass The Hashは、NTLMハッシュパスワードを手に入れた攻撃者が、侵入したコンピューターのユーザーになりすまし、このハッシュを使用してKDCに認証を行って、有効なKerberosチケット(TGT)を受け取る技法です。その後、攻撃者はこのチケットを使用して、ネットワーク内のKerberosベースのサービスにアクセスできます。
この分析では、イベントID 4768「Kerberos認証チケット(TGT)が要求されました」を監視して、暗号化タイプが0x17、つまり
RC4-HMACのTGTリクエストを検出します。この暗号化タイプは新しいシステムでは使用されないため、これが使用された場合はOverPass The Hash攻撃である可能性があります。この攻撃では、有効なドメインアカウントのNTLMハッシュを盗んだ攻撃者が、正規のアカウントになりすましてKDCに認証を行い、Kerberos TGTチケットを取得します。侵害したアカウントの権限によっては、このチケットを使用して、システムや他のネットワークリソースに無制限にアクセスできます。
Pass The Ticket
Windowsホストのシステム権限を取得した攻撃者が、メモリーに保存された有効なKerberos TGTとSTを抽出する技法です。侵害されたホスト上で高い権限を持つアカウントがアクティブなセッションを保持している場合、NTLMでのPass The Hash攻撃と似た方法で、メモリーをダンプしてチケットを抽出し、それを使用してネットワーク上のサービスやリソースにアクセスできます。
権限昇格 - TA0004
sAMAccountNameスプーフィングとドメインコントローラーのなりすまし
2021年11月9日、Microsoft社はWindows Active Directoryドメインコントローラーに影響する2つの脆弱性、sAMAccountNameスプーフィング(CVE-2021–42278)とドメインコントローラーのなりすまし(CVE-2021–42287)に対処するためのパッチをリリースしました。攻撃者はこれらの脆弱性を悪用し、権限の低いドメインユーザーの認証情報を盗んで、ドメインコントローラーのコンピューターアカウントのKerberos STを取得できます。これにより、通常のドメインユーザーがドメインコントローラーを乗っ取れるようになります。
権限昇格の悪用
2021年6月、Will Schroeder氏とLee Christensen氏がホワイトペーパー「Certified Pre-Owned: Abusing Active Directory Certificate Services」を公開し、その中で、MicrosoftのPKI実装を悪用してActive Directory証明書サービスを呼び出せることを指摘しました。攻撃者は、ネイティブサービスを悪用してWindowsコンピューターに悪質なエンドポイントへの認証を強制するツール、PetitPotamと組み合わせることで、Active Directoryネットワーク内で自らの権限を昇格させることができます。詳しくは、こちらの分析ストーリーを参照してください。
データセット
Splunk脅威調査チームは、チームの方法論に従って各分析ストーリーに含める検出方法を作成、テストした後、Attack Rangeで構築したラボ環境で、Kerberosを悪用するすべての攻撃をシミュレートし、収集したテレメトリをAttack Dataプロジェクトに保存しました。
セキュリティチームは、これらのデータセットを利用して検出方法を開発またはテストできます。このセクションでは、特に関連の深いデータセットへのリンクを表に示します。検出のレジリエンスを高めるために同じ技法を複数の方法でシミュレートしているため、一部の攻撃は複数のデータセットに関連します。
参考リソース
セキュリティ分析ストーリーの最新コンテンツは、GitHubとSplunkbaseからダウンロードできます。Splunk Security Essentialsでは、プッシュアップデートによってこれらの検出方法をすべて利用できます。
すべてのセキュリティコンテンツの一覧は、Splunk Docsのリリースノートに掲載されています。
フィードバック
ご意見やご要望がございましたら、GitHubから遠慮なくお寄せください。Slackチャネル「#security-research」にご参加いただくこともできます。SlackのSplunkユーザーグループへの招待が必要な場合は、こちらの手順に従ってください。
著者/寄稿者
この記事はMauricio Velazcoが中心となり、Michael Haag、Patrick Bareis、Jose Hernandez、Teoderick Contreras、Eric McGinnis、Rod Soto、Lou Stellaの協力の下で執筆されました。
関連記事

XDRとは?XDRの仕組みと必要とされる背景を解説

SOCマネージャー/ディレクターの役割:スキル、職務、給与など
