AhnLab SEcurity intelligence Center(ASEC)は、「ドメイン環境における EDR を活用した資格情報窃取段階の検知」 [1] ブログにて攻撃者がアクティブディレクトリ環境に属しているシステムを掌握したあと、資格情報を窃取する様々な方式を紹介した。この記事では、資格情報を窃取する方式のうち、LSASS プロセスのメモリに保存されている NT Hash(NTLM 認証プロトコルで使用するハッシュ)をダンプする様々な手法についてより詳細に紹介する。
LSASS プロセスのメモリには資格情報が保存されており、攻撃者はこのプロセスのメモリをダンプし、資格情報を抽出することができる。そのため、LSASS プロセスのメモリをダンプする振る舞いは、セキュリティ製品によって疑わしい振る舞いと見なされ、このような機能を担当する Mimikatz のようなハッキングツールはセキュリティ製品の主な検知対象となっている。
攻撃者もこのような事実を認知しているため、最近はハッキングツールを直接利用するより、様々な正常なツールを悪用して LSASS プロセスのメモリをダンプする傾向にある。過去のブログでは、最も代表的な方式である Sysinternals の ProcDump を利用する例を紹介したが、その他にも Process Explorer、タスクマネージャーなど、セキュリティ製品の検知を回避するために様々な手法を使用することができる。
このような方式は、正常なツールを利用する方式なだけに、正常な目的による振る舞いである可能性もあるため、AntiVirus 製品単独ではこれを完璧にブロックすることに限界がある。AhnLab EDR(Endpoint Detection and Response)は、韓国国内で唯一の振る舞いベース解析エンジンをもとにエンドポイント領域に対して強力な脅威モニタリングと解析、対応力を提供する次世代エンドポイント脅威検知および対応ソリューションである。AhnLab EDR は、疑わしい振る舞いに関するタイプ別情報を常時収集し、検知および解析、対応の観点からユーザーが脅威を正確に認識できる機能を提供し、これによって総合的な解析を通じ原因把握と適切な対応、再発防止プロセスを確立できる。
1. LSASS プロセス
NTLM 認証は、ローカルユーザーがログインする場合に使用される認証方式で、セキュリティパッケージの「msv1_0.dll」に実装されている。「msv1_0.dll」は、LSASS すなわち lsass.exe プロセスにロードされて動作し、ログイン時にユーザーが入力したパスワードに対する NT Hash と SAM(Security Accounts Manager)データベースに保存されている NT Hash を比較する方式で認証する。そのため、lsass.exe プロセスのメモリ内部にも NT Hash が存在する。
これはハッシュアルゴリズムを利用して作成されたハッシュ値であるため、攻撃者は NT Hash で平文パスワードを獲得することはできない。もちろん、攻撃者は様々な辞書攻撃ツールを利用して平文パスワードを獲得することができ、Mimikatz で提供する機能を利用して直接平文パスワードを獲得することもできる。
もし、平文パスワードを獲得できないとしても、別のシステムに存在するアカウントに対する NT Hash を知ることができれば、攻撃者はこれを利用して窃取したアカウントの NT Hash で該当のシステムにログインすることができる。これを Pass the Hash 攻撃と言うが、NTLM プロトコルではこのような攻撃が可能であるため、あえて平文パスワードを獲得できなくても、「ラテラルムーブメント」に問題はない。
2. Mimikatz
Mimikatz は、Windows OS 環境で資格情報を抽出する機能を持つプログラムである。Mimikatz は基本的なコマンドだけで LSASS プロセスのメモリをダンプしたあと、NT Hash を抽出して表示する機能をサポートする。そのため、攻撃者は GitHub に公開されたオープンソースツールであると同時に、簡単に資格情報を抽出してくれる Mimikatz をよく攻撃に使用している。
もちろん、多くの攻撃に使用されているため、大半のセキュリティ製品がこれを主要な脅威として検知している。そのため、攻撃者は LSASS プロセスのメモリをダンプするために、様々な正常なツールを使用しており、それぞれの事例は後述することにする。
Mimikatz の「sekurlsa::logonpasswords」コマンドは、直接 LSASS プロセスのメモリをダンプし、ダンプした情報から NT Hash を抽出して出力し、表示する全体プロセスを担当するコマンドだ。しかし、「sekurlsa::minidump」コマンドを一緒に使用する場合、直接 LSASS プロセスにアクセスしないでシステムに保存されているメモリダンプファイルを読み込み、資格情報を抽出することもできる。すなわち、攻撃者が LSASS プロセスのメモリを正常なツールでダンプし、これを窃取して自身の環境で「sekurlsa::minidump」コマンドを通して NT Hash を抽出する場合、攻撃対象システムに Mimikatz をインストールしなくても資格情報を獲得することができる。
3. ProcDump
Sysinternals の ProcDump は、特定のプロセスのメモリをダンプする機能をサポートするコマンドラインツールである。現在、Sysinternals は Microsoft 社に所属しており、そのため ProcDump ツールは Windows OS のファイルと同じく Microsoft の認証書で署名されている正常なファイルだ。
ProcDump は、過去に多数の ASEC ブログでも紹介したぐらい、攻撃者が LSASS プロセスのメモリをダンプする目的でよく使用するツールである。以下は ProcDump を利用したダンププロセスと、これによって作成されたメモリダンプファイルから Mimikatz を利用して資格情報を抽出し、窃取するプロセスを AhnLab EDR 製品で検知した画面だ。
AhnLab EDR は、正常なプログラムである Sysinternals の ProcDump を利用して LSASS プロセスのメモリをダンプする振る舞いを脅威として検知する。よって、管理者がこれを認知して原因を把握し、適切な対応ができるようにサポートする。
4. Process Explorer
Process Explorer もまた Sysinternals で開発したツールで、名前の通り、現在実行中のプロセスリストを表示し、関連情報の照会およびプロセスの制御のような様々な機能を提供する。特徴としては、Process Explorer がサポートする機能の中に以下のような特定プロセスのメモリをダンプする機能が存在するという点がある。そのため、LSASS プロセスのメモリもダンプでき、攻撃者が資格情報の抽出に Process Explorer を悪用することになる。
AhnLab EDR は、正常なプログラムである Sysinternals の Process Explorer を利用して LSASS プロセスのメモリをダンプする振る舞いを脅威として検知する。よって、管理者がこれを認知して原因を把握し、適切な対応ができるようにサポートする。
5. タスクマネージャー
ProcDump と Process Explorer は Microsoft の認証書で署名された正常なファイルではあるが、基本的に Windows OS で提供するツールではない。もし、Windows 環境に基本的にインストールされているツールを利用するなら、外部から追加のツールをインストールする振る舞いのような目立つ疑わしい振る舞いがなくても、資格情報を窃取することができるはずである。
Windows OS は基本的に「タスクマネージャー(taskmgr.exe)」というツールをサポートするが、これは Process Explorer と同じく現在実行中のプロセスリストの照会および制御のような機能を提供する。それだけでなく、インストールされたサービスやスタートアッププログラム、ユーザー情報など、様々な機能を提供する。タスクマネージャーの特徴の一つは、実行中のプロセスに対するメモリダンプを作成する機能も提供するという点である。たとえば、以下のように LSASS プロセスに対するメモリダンプを作成する場合、「TEMP%」パスに「lsass.DMP」というファイル名でダンプファイルが作成される。
AhnLab EDR は、Windows 環境で基本的に提供するタスクマネージャーを利用して LSASS プロセスのメモリをダンプする振る舞いを脅威として検知する。よって、管理者がこれを認知して原因を把握し、適切な対応ができるようにサポートする。
6. Comsvcs.dll
「comsvcs.dll」は、COM+ サービス機能を担当する DLL ファイルであり、Windows 環境に基本的にインストールされているシステムファイルの一つである。「comsvcs.dll」の特徴の一つは、特定プロセスに対するメモリダンプ機能をサポートする「MiniDump」関数をエクスポートするという点である。すなわち、これを利用すると LSASS プロセスに対するメモリダンプが可能になる。
「comsvcs.dll」は DLL ファイルであるため、一般的に rundll32.exe プロセスを利用して実行できる。LSASS プロセスのメモリをダンプするためには、SeDebugPrivilege というデバッグ権限が追加的に必要であるが、この権限は管理者権限で実行中の場合、簡単に有効化することができる。
AhnLab EDR は、Windows 環境で基本的に提供する「comsvcs.dll」を利用してメモリをダンプする振る舞いを脅威として検知する。よって、管理者がこれを認知して原因を把握し、適切な対応ができるようにサポートする。
7. 結論
特定のネットワークに属しているシステムを攻撃した攻撃者は、そのシステムだけでなく、最終的にはそれが属しているネットワーク全体を掌握することが目標であるだろう。そのためには、最終的に管理サーバーおよび主なシステムまでのラテラルムーブメントプロセスが必要になる。資格情報は、このようなラテラルムーブメント攻撃に必須な情報だ。
攻撃者は、不適切に管理されている情報を活用することが一般的で、Mimikatz などのハッキングツールを利用して資格情報を抽出する。資格情報を窃取する代表的な方式は、LSASS プロセスのメモリをダンプし、そこから NT Hash を抽出する方法である。しかし、ハッキングツールを利用して LSASS プロセスのメモリをダンプする振る舞いは、セキュリティ製品によって簡単に検知できる。そのため、攻撃者はハッキングツールではない正常なツールを悪用して LSASS プロセスのメモリをダンプしている。
このようにセキュリティ製品の検知を回避する目的で正常なツールを利用する場合、AntiVirus 製品単独では検知およびブロックに限界がある。AhnLab EDR は、特定のシステムを掌握した攻撃者がその後にドメイン全体を掌握しようと資格情報を窃取する攻撃手法を検知し、管理者が原因を把握して適切な対応および再発防止プロセスを確立できるようにサポートする。
振る舞い検知
– Execution/EDR.Mimikatz.M11444
– Execution/EDR.Behavior.M10484
– CredentialAccess/EDR.ProcExp.M11597
– CredentialAccess/EDR.Event.M11566
– CredentialAccess/EDR.Comsvcs.M11596
振る舞い情報検知および解析を通じたエンドポイント可視性を提供し、脅威を能動的に追跡する AhnLab EDR についての詳しい情報は AhnLab の公式 HP で確認できる。
Categories: AhnLab 検知