Netwrix 1Secureは、データとアイデンティティ全体にわたる統合された可視性を提供します。14日間の無料トライアルでフルアクセス可能です。無料トライアルを開始

サイバーセキュリティ用語集攻撃カタログ

Pass-the-Cookie 攻撃で MFA を回避する

Pass-the-Cookie 攻撃で MFA を回避する

多要素認証(MFA)は、オンプレミス環境とクラウド環境の両方のセキュリティを高める優れた方法です。MFA を導入すると、ユーザーがログオンする際に、ユーザーIDとパスワードだけでなく、電話に送られるコードなどの別の認証要素を提示する必要があります。このプロセスにより、盗まれたユーザー資格情報を持つ攻撃者がログオンできないようにして、攻撃対象領域(アタックサーフェス)を減らします。

しかし、MFA はサイバーセキュリティの万能薬ではありません。特に、攻撃者は Pass-the-Cookie 攻撃を使用してブラウザーの Cookie を活用し、MFA を回避してクラウドサービスにアクセスすることができます。この記事では、この攻撃がどのように機能するのか、そしてそれに対抗するための最善のセキュリティ手法を解説します。

ブラウザー Cookie により、Web アプリケーションはユーザーの認証情報を保存できるため、ユーザーは Web サイト上の新しいページに移動するたびにユーザー名とパスワードを毎回提示する代わりに、ログインした状態を維持できます。(これは、Kerberos や NTLM の認証と同様で、アーティファクトがユーザーのシステムにローカル保存され、将来の認証で使用されます。)

MFA が有効になっている場合、ユーザーはモバイル デバイスでプッシュ通知を受け入れるなどして、追加の本人確認を行う必要があります。ユーザーが MFA を通過すると、ブラウザー Cookie が作成され、あなたの Web セッション用に保存されます。

Cookie はユーザー体験を簡単にしますが、明白な脆弱性もあります。つまり、誰かが正しいブラウザー Cookie を抽出できれば、別のシステム上のまったく別の Web ブラウザー セッションで、別のユーザーとして認証されてしまう可能性があります。要するに、Cookie を使って MFA 経由の認証をバイパスできるということです。(これは Pass the Hash attackActive Directory に対して行われるのと類似しています。)

Google Chrome ブラウザーの例を使って、攻撃者がどのように Cookie を抽出できるのかを見てみましょう。Chrome は Cookie を SQLite データベースの次の場所に保存します:

      %localappdata%GoogleChromeUser DataDefaultCookies

The cookies for a given user are encrypted using keys tied to that user via the Microsoft Data Protection API (DPAPI). To access the cookie database and decrypt the cookies, an adversary can use the following mimikatz command:

dpapi::chrome /in:"%localappdata%GoogleChromeUser DataDefaultCookies" /unprotect

Alternatively, they could execute the following from the command line:

mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%googlechromeUSERDA~1defaultcookies /unprotect" exit
      

これらのいずれかのオプションを使用すると、ブラウザの Cookie が提供されます:

a screen shot of a command line program that says ' privilege ' on it

実際のシナリオで Pass-the-Cookie 攻撃がどのように機能するのか、順を追って見ていきましょう。

ユーザーの Tobias が IT 管理者だとします。Tobias が定期的に利用している Web アプリケーションの 1 つが Microsoft Azure 管理ポータルです。MFA が有効になっているため、Tobias が Azure にログインするときは、以下に示すように、モバイル端末の認証アプリからコードを入力(提示)する必要があります。

a microsoft azure login page asking for a code

つまり、誰も彼の iPhone を盗まない限り、彼の Azure の認証情報は安全なはずですよね? ところが、そうはいきません。Tobias がフィッシングメールをクリックした、または何らかの別の手段で彼のシステムが侵害され、その結果、攻撃者が Tobias のユーザーコンテキスト内でコードを実行できるようになったとします。Tobias はノートパソコン上で管理者ではないので、被害は封じ込められるはずですよね?

見てみましょう。

ステップ 1. Cookie を抽出します。

前に見たとおり、Tobias のブラウザー Cookie を取得するには、Tobias として実行しているときにこのコマンドを実行するだけです:

      mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%googlechromeUSERDA~1defaultcookies /unprotect" exit
      

この場合、注目するのは ESTSAUTH、ESTSAUTHPERSISTENT、ESTSAUTHLIGHT を含む Azure 認証 Cookie です。 これらの Cookie は、最近 Tobias が Azure 上で活動しているため、手に入れやすい状態になっています:

a screenshot of a web page that says login.microsoftonline.com

Tobias のユーザーIDやパスワードが分からず、さらに彼のモバイル端末にもアクセスできないので、Tobias として Azure のようなWebアプリにログインできないように思えるかもしれません。

しかし、彼のクッキーを入手しているので、それらを別のセッションに渡すだけで Tobias のアカウントを乗っ取れます。これは簡単です。別のサーバーで Chrome を開き、「Inspect(検証)」インターフェースを使ってクッキーを挿入するだけです。

2.1. まず、盗まれたセッションを確認します:

a computer screen with a sign in with github button

2.2. 次に、Application > Cookiesに移動します。ご覧のとおり、現在のクッキーには ESTSAUTH または ESTSAUTHPERSISTENT は含まれていません”:

Image

2.3. ESTSAUTH または ESTSAUTHPERSISTENT のクッキーを追加します。(ESTSAUTHPERSISTENT が利用可能であれば、それは「Stay Signed In(サインインしたままにする)」オプションによって生成されるため、こちらを優先します。)

a screenshot of a web page showing a list of logins

2.4. ページを更新すると、Tobias として Azure にログインできました——MFA は不要です!

Image

リスクを軽減する

Pass-the-Cookie 攻撃は、いくつかの理由で深刻な脅威です。まず、Pass-the-Cookie 攻撃には管理者権限は必要ありません。作業用ワークステーションで特権権限を持っているかどうかに関係なく、すべてのユーザーは自分のブラウザー Cookie を読み取り、復号できます。次に、攻撃者は侵害されたアカウントのユーザー ID やパスワードを知る必要がないため、最小限の情報でこの攻撃が可能です。第三に、ブラウザーを閉じた後でも Pass-the Cookie 攻撃を完了できました。

Cookie の盗難リスクを最小限に抑える方法の一つは、ユーザーの Cookie をより頻繁に削除することです。 ただし、これによりユーザーはサイトを閲覧するたびに再認証を行う必要が生じ、ユーザーの不満につながり、Cookie を失わないためにブラウザーを閉じないようにする原因にもなります。

より良い戦略は、認証の監視と、これらの脅威検知製品を導入することです。 Netwrix Threat Manager は、予期しない方法で使用されているアカウントをすぐに検出できるため、悪意のあるアクティビティを迅速に停止できます。

よくある質問

共有する

Entra ID アプリケーション権限の悪用—仕組みと防御戦略

AdminSDHolder の改変――仕組みと防御戦略

AS-REP Roasting 攻撃—仕組みと防御戦略

Hafnium 攻撃—仕組みと防御戦略

DCSync 攻撃の解説:Active Directory セキュリティへの脅威

パス・ザ・ハッシュ(PtH)攻撃を理解する

Golden Ticket 攻撃とは?仕組み、検知、予防

gMSA の悪用攻撃と Golden gMSA 攻撃の解説

DCShadow 攻撃—仕組み、実例、そして防御戦略

ChatGPT プロンプトインジェクション:リスクの理解、例、予防

NTDS.dit 抽出攻撃の解説

Kerberoasting 攻撃—仕組みと防御戦略

Pass-the-Ticket 攻撃の解説:リスク、例、そして防御戦略

パスワードスプレー攻撃を理解する

平文パスワードの抽出(Plaintext Password Extraction)解説:リスク、例、予防

Zerologon 脆弱性を解説:リスク、悪用、緩和策

ランサムウェア攻撃の完全ガイド

Skeleton Key 攻撃:仕組みと検知方法

ラテラルムーブメント(Lateral Movement):それは何か、仕組み、予防策

中間者(MITM)攻撃:それが何で、どうやって防ぐのか

Silver Ticket 攻撃

サービスアカウント攻撃と、その防御方法(4選)

なぜ攻撃者は PowerShell をこれほどまでに好むのでしょうか?

ビジネスへのマルウェア攻撃の影響を防ぐ方法

PowerUpSQL で SQL Server を侵害する

Mousejacking(マウス・ジャッキング)攻撃とは?そして防御方法

Security Support Provider(SSP)を使った認証情報の窃取

レインボーテーブル攻撃:仕組みと防御方法

パスワード攻撃を総合的に理解し、止める方法

LDAP Reconnaissance

クレデンシャルスタッフィング(Credential Stuffing)とは?

Golden SAML 攻撃の究極ガイド