午前I問題

シングルサインオン(SSO)を実現する認証プロトコルに関する記述のうち、適切なものはどれか。

ア)SSOはネットワーク上に一度もパスワードを流さない認証方式の総称であり、Kerberosはその代表例である イ)Kerberos認証では、クライアントは認証サーバから発行されたチケットを提示することで、パスワードを再入力せずに複数のサービスを利用できる ウ)SSOを導入すると、1つの認証情報が侵害された場合の影響範囲は縮小される エ)Kerberos認証はパスワードをネットワーク上に平文で送信するため、TLSによる保護が必須である

午前I の解答・解説を見る

正解:

解説:

  • ア)不正解。SSOは「一度の認証で複数サービスを利用できる」仕組みの総称であり、パスワードを流さないことを定義とするものではありません。SAMLベースのSSOなど実装は多様です。
  • イ)正解。Kerberos認証では、利用者は最初に認証サーバ(KDC内のAS)でチケット(TGT)を取得し、以降はそのチケットを提示することでサービスごとの再入力なしにアクセスできます。これがKerberosによるSSOの本質です。
  • ウ)不正解。SSOは利便性を高める一方、1つの認証情報(や発行されたチケット)が侵害されると、連携している複数のサービスすべてに不正アクセスされるリスクがあり、影響範囲はむしろ拡大します。
  • エ)不正解。Kerberosはチャレンジレスポンス型の仕組みと共通鍵暗号(対称鍵暗号)を用いており、パスワードそのものをネットワーク上に平文で送信する設計にはなっていません。パスワードから導出した鍵で暗号化されたやり取りが行われます。

午前II問題

Kerberos認証プロトコルの動作に関する記述のうち、最も適切なものはどれか。

ア)TGT(Ticket Granting Ticket)はサービスチケット(STチケット)の発行を受けるためにTGS(Ticket Granting Service)へ提示するチケットであり、KDC内のASによって発行される イ)サービスチケットはクライアントの公開鍵で暗号化されており、対応する秘密鍵を持つクライアントのみが復号できる ウ)Kerberoasting攻撃は、KDCの秘密鍵(krbtgtアカウントのハッシュ)を窃取することで、任意のTGTを偽造する攻撃である エ)Kerberos認証はデフォルトで相互認証(クライアントとサーバの双方向認証)を提供しないため、常にPKINITによる拡張が必要である

午前II の解答・解説を見る

正解:

解説:

  • ア)正解。KDC(Key Distribution Center)はAS(Authentication Service)とTGS(Ticket Granting Service)から構成されます。クライアントはまずASにログインしTGT(Ticket Granting Ticket)を取得し、その後TGTをTGSへ提示してサービスごとのSTチケット(Service Ticket)を取得します。
  • イ)不正解。サービスチケットはクライアントの公開鍵ではなく、**対象サービスアカウントのパスワードから導出した共通鍵(またはサービスアカウントの鍵)**で暗号化されます。Kerberosは基本的に共通鍵暗号方式で構成されています。
  • ウ)不正解。それはGolden Ticket攻撃の説明です。Kerberoasting攻撃は、SPN(Service Principal Name)が設定されたサービスアカウントのサービスチケットをTGSから正規に要求し、そのチケットに含まれる暗号化部分(サービスアカウントのパスワードハッシュで暗号化されている)をオフラインでブルートフォース・辞書攻撃してパスワードを割り出す攻撃です。
  • エ)不正解。Kerberosは設計上、クライアント・サーバ間の相互認証(Mutual Authentication)を標準で提供します。サーバもチケット内の情報を用いてクライアントに対して自身を証明できます。PKINITは公開鍵基盤を用いた初期認証の拡張機能であり、相互認証自体の必須要件ではありません。

午後問題

製造業C社は、社内システムの認証基盤としてActive Directory(AD)を運用し、Kerberos認証によるドメイン内SSOを実現している。あるとき、EDR(Endpoint Detection and Response)が、一般社員のPCから複数のSPN付きサービスアカウントに対して短時間に大量のサービスチケット要求(TGS-REQ)が発生している異常を検知した。

セキュリティ部門が調査したところ、以下が判明した。

  • 攻撃者は一般社員の端末に侵入後、ドメイン内のSPN一覧をLDAPクエリで列挙し、複数のサービスアカウントに対するサービスチケットを要求していた
  • 取得したサービスチケットはオフラインに持ち出され、パスワードの辞書攻撃・ブルートフォースが試みられた形跡がある
  • 対象サービスアカウントの1つは、10年以上前に設定されたまま変更されていない弱いパスワードを使用しており、権限昇格が可能な高い権限(ドメイン管理者相当)を保持していた
  • 幸い、多層防御により当該アカウントの侵害前に検知・対応が完了したが、セキュリティ部門は再発防止策の検討と、より深刻な攻撃(Golden Ticket攻撃等)への備えを求められている

設問1

本事象で観測された攻撃手法の名称を挙げ、その攻撃が成立する技術的な理由を、Kerberosのチケット発行の仕組みに触れながら説明しなさい。また、この攻撃に対して有効な対策を2つ挙げなさい。(220字程度)

設問1の解答・解説を見る

正解例: 攻撃手法はKerberoasting攻撃である。TGSはサービスチケットを発行する際、対象サービスアカウントのパスワードから導出した鍵でチケットの一部を暗号化するが、この要求は認証されたドメインユーザーであれば誰でもSPNを指定して行うことができ、権限昇格やアラートなしに正規の手順でチケットを取得できてしまう。取得したチケットはオフラインで無制限に解析でき、パスワードが弱い場合は解読される。対策として、①サービスアカウントに長く複雑なランダムパスワード(25文字以上等)を設定し辞書攻撃を困難にすること、②可能であればgMSA(group Managed Service Account)を利用してパスワードを自動的に定期ローテーションすることが有効である。

解説・採点基準(計15点):

採点項目キーワード配点
攻撃名の特定Kerberoasting3点
攻撃成立の技術的理由SPNへのTGS-REQは認証済みユーザーなら誰でも可能・オフライン解析可能6点
有効な対策2つ強力なランダムパスワード・gMSA・パスワードローテーション のいずれか2つ6点

部分点: 攻撃名のみ正解で理由の説明が不十分→3点。対策が1つのみの場合は3点。

設問2

Golden Ticket攻撃とは何か、Kerberoasting攻撃との違いを踏まえて説明しなさい。また、Golden Ticket攻撃が成立した場合に組織が取るべき根本的な対応(単なるパスワード変更では不十分な理由を含む)を述べなさい。(220字程度)

設問2の解答・解説を見る

正解例: Golden Ticket攻撃は、ドメイン内のすべてのKerberosチケットの暗号化・署名に使われるkrbtgtアカウントのパスワードハッシュを窃取し、それを用いて任意のユーザー・任意の権限(ドメイン管理者を含む)のTGTを偽造する攻撃である。Kerberoastingが個々のサービスアカウントのパスワードをオフライン解読する攻撃であるのに対し、Golden TicketはKDC自体の鍵を奪い、認証基盤そのものを偽装できる点で被害範囲がはるかに大きい。対応として、krbtgtアカウントのパスワードを2回連続でリセットする必要がある(1回のリセットでは旧パスワードとの世代管理により偽造チケットが有効なままとなるため)。単なる侵害アカウントのパスワード変更では、krbtgtの鍵自体は変わらず偽造TGTが有効であり続けるため不十分であり、ドメイン全体の信頼基盤を再構築する対応が求められる。

解説・採点基準(計15点):

採点項目キーワード配点
Golden Ticket攻撃の説明krbtgtハッシュ窃取・任意のTGT偽造5点
Kerberoastingとの違い個別サービスアカウント窃取 vs KDC鍵自体の窃取・被害範囲の差4点
根本対応とその理由krbtgtパスワードの2回リセット・単純なパスワード変更では不十分な理由6点

部分点: krbtgtリセットの必要性のみ言及(「2回」の言及なし)→3点。

重要キーワード

用語説明
Kerberos認証KDC(AS+TGS)を中核とするチケットベースの認証プロトコル。共通鍵暗号を用い、SSOと相互認証を実現する。Active Directoryの標準認証方式
TGT(Ticket Granting Ticket)ASによって発行される、TGSにサービスチケットを要求するための「チケットを得るためのチケット」。krbtgtアカウントの鍵で暗号化される
Kerberoasting攻撃認証済みユーザーがSPN付きサービスアカウントのサービスチケットを正規手順で要求し、オフラインでパスワードを解読する攻撃。弱いパスワードのサービスアカウントが標的になりやすい
Golden Ticket攻撃krbtgtアカウントのパスワードハッシュを窃取し、任意のユーザー・権限のTGTを偽造する攻撃。KDC自体の信頼基盤を偽装できるため被害が甚大
SPN(Service Principal Name)Active Directoryでサービスアカウントを一意に識別する名前。SPNが設定されたアカウントはKerberoastingの標的となり得る
gMSA(group Managed Service Account)Active Directoryが提供する、パスワードを自動生成・定期的に自動ローテーションするサービスアカウントの仕組み。Kerberoasting対策として有効

まとめ

  • 午前I視点: Kerberosによる SSO の本質は「チケットの提示によりパスワード再入力を不要にする」仕組みであり、パスワードを流さない仕組みとは異なる。相互認証を標準で提供する点も重要。
  • 午前II視点: AS→TGT→TGS→STチケットというKerberosのチケット発行フローを正確に理解すること。Kerberoasting(個別サービスアカウントの弱いパスワード窃取)とGolden Ticket(krbtgt自体の鍵窃取)の違いが頻出。
  • 午後視点: Kerberoastingの対策(強固なパスワード・gMSA)とGolden Ticket攻撃発覚時の根本対応(krbtgtパスワードの2回リセット)は、単純な個別アカウントのパスワード変更では不十分である理由まで説明できることが採点の鍵。