ゴールデンチケット【golden ticket】
ゴールデンチケットとは?

Windowsのネットワーク環境では、「Active Directory」と呼ばれる管理システムが用いられ、利用者がサーバや共有フォルダなどのリソースにアクセスする際、「ドメインコントローラ」と呼ばれる管理サーバに「Kerberos」(ケルベロス)というプロトコルで認証を行う必要がある。
利用者が認証に成功すると、ドメインコントローラは「TGT」(Ticket Granting Ticket)というチケットを利用者に発行し、そのチケットを提示することで各種リソースへのアクセスが認められる。このTGTの正当性を保証するために使われる暗号鍵が、ドメインコントローラ上の特別なアカウント「krbtgt」のパスワードから生成されるハッシュ値である。
攻撃者がこのkrbtgtアカウントのハッシュ値を入手すると、任意の内容でTGTを自由に偽造できるようになる。存在しないユーザー名や、実際には付与されていない管理者権限を持つチケットを作り出せてしまう。この偽造チケットをゴールデンチケットという。有効期限を10年以上に設定した偽チケットを生成することも技術的には可能である。
ドメインコントローラは受け取ったTGTをkrbtgtのハッシュ値で検証するが、偽造チケットも同じ鍵で署名されているため、正規のものと区別がつかない。攻撃者はドメイン内のあらゆるリソースに対して事実上無制限にアクセスできる状態になる。パスワードを変更されたアカウントや、無効化されたアカウントになりすますことも可能であるため、被害の検出や遮断は容易ではない。
実際の攻撃では、まず何らかの手段でドメインコントローラへの侵入に成功した後、「Mimikatz」などのツールを使ってkrbtgtのハッシュ値を窃取し、ゴールデンチケットを生成するという手順が用いられることが多い。ドメインコントローラ上で任意のプログラムを実行できる環境が必要であるため、攻撃の難易度は高い。
対策としては、krbtgtアカウントのパスワードを定期的に変更することが有効とされている。ただし、一度変更しただけでは古いハッシュ値が一定期間有効なため、短い間隔で2回連続して変更することが推奨されている。また、特権アカウントへの操作を厳密に監視し、不審なTGTの発行や使用を検知できる体制を整えることも大切である。