2024年セキュリティの現状:競争が激化するAIの活用
先進的なサイバーセキュリティ対策を推進する組織がどのように課題を克服し、AIを活用してイノベーションを推進し、デジタルレジリエンスを強化しているかをご確認ください。
Splunk脅威調査チーム(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認証チケット(TGT)が要求されました |
|
Kerberosサービスチケット(ST)が要求されました |
|
Kerberosの事前認証に失敗しました |
Kerberos攻撃の技法が使われると、他のデータソースにも監査証跡が残されます。Splunk脅威調査チームはすべてのセキュリティチームに、Kerberosイベントとその他の補足的なデータソース(プロセスとコマンドライン、ネットワークイベント、ローカル認証イベント、アプリケーションイベントなど)を含む包括的なログ戦略を策定することをお勧めします。
このセクションでは、新しい分析ストーリーで検出対象となる一般的なKerberos攻撃について説明します。検出方法はATT&CK戦術に基づいて分類されています。この分析ストーリーはまだ発展途上であり、既存のすべてのKerberos攻撃技法に対応しているわけではない点をご了承ください。フィードバックはこちらから遠慮なくお寄せください!
この攻撃では、攻撃者がKerberosを悪用して、ユーザーリストに含まれるユーザーがドメインユーザーであるかどうかを確認します。この確認によって認証の失敗やロックアウトのイベントが生成されることはないため、ステルス性が高いと言えます。攻撃者は、事前認証なしのTGTリクエストを送信します。KDCが認証を求めたら、そのユーザーは有効ということになります。
サーチ名 |
Technique ID |
Tactic |
説明 |
T1589.002 |
探索 |
この分析では、イベントID 4768「Kerberos認証チケット(TGT)が要求されました」を監視して、存在しないユーザーの異常な数のKerberos TGTチケットを要求した単一のソースエンドポイントを検出します。この挙動が検出された場合、攻撃者がKerberosプロトコルを悪用して、Active Directory環境に対してユーザー列挙攻撃を仕掛けている可能性があります。Kerberosでは、無効なユーザー名の事前認証なしのTGTリクエストを受け取ると、KRB5KDC_ERR_C_PRINCIPAL_UNKNOWNまたは0x6が返されます。 |
Kerberos委任は、アプリケーションがユーザーに代わって各種サーバーのリソースにアクセスする代理機能です。この機能は便利である反面、委任のために信頼されたアカウントやコンピューターを悪用すればKerberos TGTを盗んだりSTを不正に取得したりできるため、新たな攻撃ベクトルを生みます。
サーチ名 |
Technique ID |
Tactic |
説明 |
T1018 |
探索 |
この分析では、PowerShellスクリプトブロックログ(イベントコード4104)を監視して、 制約のないKerberos委任が有効になっているWindowsエンドポイントを探索する、PowerViewハッキングツールを使用したコマンドレットを検出します。 |
|
T1018 |
探索 |
この分析では、PowerShellスクリプトブロックログ(イベントコード4104)を監視して、制約のないKerberos委任が有効になっているWindowsエンドポイントを探索する、特定のパラメーターを使用したGet-ADComputerコマンドレットを検出します。 |
|
T1018 |
探索 |
この分析では、PowerShellスクリプトブロックログ(イベントコード4104)を監視して、制約付きのKerberos委任が有効になっているWindowsエンドポイントを探索する、PowerViewハッキングツールを使用したコマンドレットを検出します。 |
Kerberosの事前認証は、ユーザーがTGTの要求時に各自のシークレット(パスワード)でタイムスタンプを暗号化してKDCに送信するセキュリティ機能です。KDCは、タイムスタンプが適切なシークレットで暗号化されていることを確認すると、TGTを発行します。しかし、事前認証が無効になっていると、このステップが省略されるため、攻撃者は任意のドメインユーザーのTGTを要求できます。この技法はAS-REP Roastingと呼ばれ、攻撃者はユーザーのパスワードに対してオフラインで効果的にブルートフォース攻撃を実行できます。
サーチ名 |
Technique ID |
Tactic |
説明 |
Disabled Kerberos Pre-Authentication Discovery With Get-ADUser |
T1558.004 |
認証情報アクセス |
この分析では、特定のパラメーターを使用したGet-ADUserコマンドレットを検出します。Get-ADUserは、Windows Active Directoryネットワークを管理するためのActive Directory PowerShellモジュールの一部です。その名が示唆するとおり、Get-ADUserはドメインユーザーを照会するために使用されます。攻撃者は、Get-ADUserで特定のパラメーターを指定することで、Kerberosの事前認証が無効になっているドメインアカウントを特定できます。 |
Disabled Kerberos Pre-Authentication Discovery With PowerView |
T1558.004 |
認証情報アクセス |
この分析では、特定のパラメーターを使用したGet-DomainUserコマンドレットを検出します。Get-DomainUserは、Windows Active Directoryネットワーク上で列挙を実行するPowerShellツール、PowerViewの一部です。その名が示唆するとおり、Get-DomainUserはドメインユーザーを特定するために使用されます。攻撃者は、Get-DomainUserと-PreauthNotRequiredを組み合わせて使用することで、Kerberosの事前認証が無効になっているドメインアカウントを特定できます。 |
Kerberos Pre-Authentication Flag Disabled in UserAccountControl |
T1558.004 |
認証情報アクセス |
この分析では、WindowsセキュリティイベントID 4738「ユーザーアカウントが変更されました」を監視して、Kerberosの事前認証が無効になっているドメインユーザーオブジェクトに対する変更を検出します。UserAccountControlプロパティで事前認証フラグが無効になっていると、攻撃者はAS-REP Roasting技法を使用してユーザーのパスワードに対してオフラインで簡単にブルートフォース攻撃を実行できます。 |
T1558.004 |
認証情報アクセス |
この分析では、特定のパラメーターを使用したSet-ADAccountControlコマンドレットを検出します。その名が示唆するとおり、Set-ADAccountControlは、Active Directoryドメインアカウントのユーザーアカウント制御(UAC)値を変更するために使用されます。攻撃者は、Set-ADAccountControlで特定のパラメーターを指定することで、アカウントでKerberosの事前認証を無効にできます。 |
Active Directoryネットワークでは、ネットワークサービスのインスタンスを一意に識別するためにサービスプリンシパル名(SPN)が使用されます。認証を可能にするために、SPNは通常、ドメインサービスアカウントと関連付けられます。ユーザーがSPNのKerberos STを要求すると、サービスアカウントのパスワードハッシュを使用してチケットの一部が暗号化されます。この仕組みを悪用した攻撃はKerberoastingと呼ばれ、攻撃者は、オフラインでブルートフォース攻撃を実行してサービスアカウントのパスワードを取得しようとします。
サーチ名 |
Technique ID |
Tactic |
説明 |
T1558.003 |
認証情報アクセス |
この分析では、Active Directoryネットワークに対するKerberoasting攻撃の兆候を検出します。Kerberoastingでは、攻撃者が、サービスアカウントとして使用される一般的なドメインアカウントのKerberosチケットを要求してオフラインで解析し、ドメインへの特権アクセスを獲得しようとします。この分析では、よく使われるKerberoastingツールを対象に、Ticket_Optionsフィールドの特定の組み合わせを監視します。 |
|
T1558.003 |
認証情報アクセス |
この分析では、スクリプトブロックログ(イベントコード4104)を監視して、ドメインへのサービスプリンシパル名の照会に関連するpowershell.exeの使用を検出します。通常、この挙動は、Kerberoastingまたはシルバーチケット攻撃の前兆を示します。 |
|
T1558.003 |
認証情報アクセス |
この分析では、ドメインへのサービスプリンシパル名の照会に関連するsetspn.exeの使用を検出します。通常、この挙動は、Kerberoastingまたはシルバーチケット攻撃の前兆を示します。 |
|
T1558.003 |
認証情報アクセス |
このハンティング分析では、KerberosイベントID 4769「Kerberosサービスチケットが要求されました」を監視して、Active Directoryネットワークに対するKerberoasting攻撃の兆候を検出します。各ホストの標準偏差を計算し、3シグマの統計ルールを使用して、異常な数のSTリクエストを識別します。 |
パスワードスプレーは、攻撃者が1つのパスワードまたはよく使われる少数のパスワードと多数のユーザー名を組み合わせて、有効なアカウント認証情報を探し出す技法です。Active Directory環境では、この技法にNTLMとKerberosのどちらのプロトコルでも使用できます。以下ではKerberosでの検出方法をいくつか紹介します。その他の検出方法については、Password Spraying分析ストーリーを参照してください。
サーチ名 |
Technique ID |
Tactic |
説明 |
Multiple Disabled Users Failing To Authenticate From Host Using Kerberos |
T1110.003 |
認証情報アクセス |
Kerberosプロトコルを使用して複数の無効化されたドメインユーザーで認証に失敗した単一のソースエンドポイントを検出します。この検出はドメインコントローラーでのみ行われ、メンバーサーバーやワークステーションでは行われません。 |
Multiple Users Failing To Authenticate From Host Using Kerberos |
T1110.003 |
認証情報アクセス |
Kerberosプロトコルを使用して複数の有効なユーザーで認証に失敗した単一のソースエンドポイントを検出します。この検出はドメインコントローラーでのみ行われ、メンバーサーバーやワークステーションでは行われません。 |
Multiple Invalid Users Failing To Authenticate From Host Using Kerberos |
T1110.003 |
初回アクセス |
Kerberosプロトコルを使用して複数の無効なドメインユーザーで認証に失敗した単一のソースエンドポイントを検出します。この検出はドメインコントローラーでのみ行われ、メンバーサーバーやワークステーションでは行われません。 |
ゴールデンチケット攻撃は、Active Directory環境で任意のドメインユーザーとして恣意的であるが有効なTGTを偽造する技法です。これにより攻撃者は、ユーザー(高い権限を持つユーザーを含む)に巧みになりすまして、不正な操作を実行できます。ゴールデンチケット攻撃を行うには、攻撃者は特殊なドメインアカウントであるkrbtgtのNTLMハッシュパスワードを取得する必要があります。
サーチ名 |
Technique ID |
Tactic |
説明 |
T1558.001 |
認証情報アクセス |
この分析では、KerberosイベントID 4769を監視して、ゴールデンチケット攻撃に関連する可能性のあるKerberos STリクエストを検出します。krbtgtアカウントのNTLMパスワードハッシュを取得した攻撃者は、Kerberos TGTを偽装してActive Directory環境に無制限にアクセスできる可能性があります。ゴールデンチケットを手に入れた攻撃者は、STを要求してラテラルムーブメントを行い、リモートシステム上でコードを実行できます。古いRC4暗号化方式を使用したKerberos STリクエストの試みは、ゴールデンチケット攻撃の第2段階である可能性があります。Windows VistaおよびWindows Server 2008以降ではAES Kerberos暗号化がサポートされるため、最近のネットワークではRC4が使用されることはめったになく、不審な挙動と言えます。 |
攻撃者は、ネットワークへの侵入口を確保した後、ラテラルムーブメントとリモートコード実行の技法を駆使してアクセス範囲を拡大しようとします。どの技法を用いる場合でも(WMI、WinRM、SMBなど)、Kerberosプロトコルを使用したラテラルムーブメント攻撃では特徴的なイベントが生成されます。ラテラルムーブメントのその他の検出方法については、Active Directory Lateral Movement分析ストーリーを参照してください。
サーチ名 |
Technique ID |
Tactic |
説明 |
T1078 |
ラテラルムーブメント |
このハンティング分析では、イベントID 4769「Kerberosサービスチケットが要求されました」を監視して、単一のソースからの異常な数のコンピューターSTリクエストを検出します。ドメインに参加するエンドポイントは、リモートエンドポイントに接続するときに、まずそのコンピューター名をサービス名としてKerberosチケットを要求します。単一のエンドポイントが他のエンドポイントの大量のコンピューターSTを要求している場合、ラテラルムーブメント、マルウェアのステージング、偵察など、悪質な操作が行われている可能性があります。 |
高い権限でWindowsシステムに侵入した攻撃者は、メモリーをダンプして認証情報を探し出し、パスワードのクリアテキストまたはハッシュを取得できます。OverPass The Hashは、NTLMハッシュパスワードを手に入れた攻撃者が、侵入したコンピューターのユーザーになりすまし、このハッシュを使用してKDCに認証を行って、有効なKerberosチケット(TGT)を受け取る技法です。その後、攻撃者はこのチケットを使用して、ネットワーク内のKerberosベースのサービスにアクセスできます。
サーチ名 |
Technique ID |
Tactic |
説明 |
T1550 |
ラテラルムーブメント |
この分析では、Kerberosネットワーク認証プロトコルでデフォルトで使用されるポート88でアウトバウンド接続を行うプロセスを検出します。Windowsエンドポイントでは、通常、Kerberosチケットを取得するためにKDCに接続するプロセスはlsass.exeのみです。不明なプロセスがこのプロトコルを使用している場合は、攻撃者がKerberosプロトコルを悪用している可能性があります。 |
|
T1550 |
ラテラルムーブメント |
この分析では、イベントID 4768「Kerberos認証チケット(TGT)が要求されました」を監視して、暗号化タイプが0x17、つまり RC4-HMACのTGTリクエストを検出します。この暗号化タイプは新しいシステムでは使用されないため、これが使用された場合はOverPass The Hash攻撃である可能性があります。この攻撃では、有効なドメインアカウントのNTLMハッシュを盗んだ攻撃者が、正規のアカウントになりすましてKDCに認証を行い、Kerberos TGTチケットを取得します。侵害したアカウントの権限によっては、このチケットを使用して、システムや他のネットワークリソースに無制限にアクセスできます。 |
Windowsホストのシステム権限を取得した攻撃者が、メモリーに保存された有効なKerberos TGTとSTを抽出する技法です。侵害されたホスト上で高い権限を持つアカウントがアクティブなセッションを保持している場合、NTLMでのPass The Hash攻撃と似た方法で、メモリーをダンプしてチケットを抽出し、それを使用してネットワーク上のサービスやリソースにアクセスできます。
サーチ名 |
Technique ID |
Tactic |
説明 |
T1550.003 |
ラテラルムーブメント |
この分析では、Pass The Ticket攻撃の実行に用いられるMimikatzコマンドラインパラメーターの使用を検出します。盗み出したKerberosチケットを使用したPass the Ticket攻撃では、レッドチームや攻撃者が、通常のシステムアクセス制御を回避して環境内でラテラルムーブメントを行うことができます。 |
|
T1550.003 |
ラテラルムーブメント |
この分析では、winlogon.exeシステムプロセスにアクセスするプロセスを検出します。Splunk脅威調査チームは、Rubeusツールを使ってKerberosチケットを監視し、メモリーからチケットを抽出した際にこの挙動を発見しました。チケットを抽出するために、RubeusはKerberosチケットの監視前にwinlogon.exeへのハンドルを取得して権限をSYSTEMに昇格しようとします。メモリーからのチケット抽出は、通常、Passing The Ticket攻撃の第1段階です。 |
|
T1550.003 |
ラテラルムーブメント |
この分析では、チケットのエクスポート/インポート、シルバー/ゴールデンチケットの偽造、TGT/TGSの要求、Kerberoasting、パスワードスプレーなど、一般的なKerberos攻撃で用いられるRubeusコマンドライン引数の使用を検出します。 |
2021年11月9日、Microsoft社はWindows Active Directoryドメインコントローラーに影響する2つの脆弱性、sAMAccountNameスプーフィング(CVE-2021–42278)とドメインコントローラーのなりすまし(CVE-2021–42287)に対処するためのパッチをリリースしました。攻撃者はこれらの脆弱性を悪用し、権限の低いドメインユーザーの認証情報を盗んで、ドメインコントローラーのコンピューターアカウントのKerberos STを取得できます。これにより、通常のドメインユーザーがドメインコントローラーを乗っ取れるようになります。
サーチ名 |
Technique ID |
Tactic |
説明 |
T1078.002 |
権限昇格 |
sAMAccountNameスプーフィングとドメインコントローラーのなりすましのエクスプロイトチェーンの一部として、攻撃者は、ドメインコントローラーのコンピューターアカウントをサービス名としてKerberos ST (TGS)を要求、取得します。その後、攻撃の最終段階として、このSTを使ってドメインコントローラーを乗っ取ります。この分析では、イベントID 4769「Kerberosサービスチケットが要求されました」を監視して、チケットを要求するAccount_NameがService_Nameフィールドと一致する異常なTGSリクエストを検出します。 |
|
T1078.002 |
権限昇格 |
sAMAccountNameスプーフィングとドメインコントローラーのなりすましのエクスプロイトチェーンの一部として、攻撃者は、新しく作成して名前を変更した偽装コンピューターアカウントを使ってKerberos TGTを要求する必要があります。そのため、TGTリクエストの前にコンピューターアカウント名のイベントが発生します。この分析では、イベントID 4781「アカウント名が変更されました」とイベントID 4768「Kerberos認証チケット(TGT)が要求されました」を監視して、イベントID 4781の新しいコンピューターアカウントとイベントID 4768のリクエストアカウントが一致する一連のイベントを検出します。 |
2021年6月、Will Schroeder氏とLee Christensen氏がホワイトペーパー「Certified Pre-Owned: Abusing Active Directory Certificate Services」を公開し、その中で、MicrosoftのPKI実装を悪用してActive Directory証明書サービスを呼び出せることを指摘しました。攻撃者は、ネイティブサービスを悪用してWindowsコンピューターに悪質なエンドポイントへの認証を強制するツール、PetitPotamと組み合わせることで、Active Directoryネットワーク内で自らの権限を昇格させることができます。詳しくは、こちらの分析ストーリーを参照してください。
サーチ名 |
Technique ID |
Tactic |
説明 |
T1187 |
認証情報アクセス |
この分析では、イベントコード4768「Kerberos認証チケット(TGT)が要求されました」を監視します。この挙動は、PetitPotam (CVE-2021-36942)を検出する過程で発見されています。攻撃者は、PetitPotamとの組み合わせでActive Directory認証サービスを悪用してコンピューター証明書を取得した後、その証明書を悪質な目的に利用します。その1つが、Rubeusなどのツールを使用したKerberos TGTの要求です。このリクエストでは、環境に応じて一部の異常なフィールドを持つ4768イベントが生成されます。この分析は調整が必要です。Account_Nameをフィルタリングして、環境内のドメインコントローラーを対象にすることをお勧めします。 |
Splunk脅威調査チームは、チームの方法論に従って各分析ストーリーに含める検出方法を作成、テストした後、Attack Rangeで構築したラボ環境で、Kerberosを悪用するすべての攻撃をシミュレートし、収集したテレメトリをAttack Dataプロジェクトに保存しました。
セキュリティチームは、これらのデータセットを利用して検出方法を開発またはテストできます。このセクションでは、特に関連の深いデータセットへのリンクを表に示します。検出のレジリエンスを高めるために同じ技法を複数の方法でシミュレートしているため、一部の攻撃は複数のデータセットに関連します。
攻撃 |
Technique ID |
Tactic |
データセットのリンク |
Kerberosユーザー列挙 |
T1589.002 |
探索 |
|
Kerberos委任の探索 |
T1018 |
探索 |
|
Kerberos事前認証フラグの無効化 |
T1558.004 |
認証情報アクセス |
|
Kerberos事前認証の探索 |
T1558.004 |
認証情報アクセス |
|
Kerberoasting |
T1558.003 |
認証情報アクセス |
|
パスワードスプレー |
T1110.003 |
認証情報アクセス |
|
ゴールデンチケット |
T1558.001 |
認証情報アクセス |
|
Pass The Ticket |
T1078.002 |
権限昇格 |
|
OverPassTheHash |
T1550 |
ラテラルムーブメント |
セキュリティ分析ストーリーの最新コンテンツは、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の協力の下で執筆されました。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。