パス・ザ・ハッシュ攻撃の概要
パス・ザ・ハッシュ攻撃(Pass the Hash、略称PtH)は、攻撃者がユーザーアカウントのパスワードハッシュを使用して、リモートサーバーやサービスに不正にアクセスする手法です。この手法は、
平文パスワードを盗むことなく、NTLMやLanManのハッシュを悪用することにより行います。通常、パスワードは
ドメインコントローラにハッシュ形式で送信され、
平文はネットワーク上に出回りません。このため、攻撃者がハッシュを取得した場合、対処する必要がなく、
平文パスワードを取得せずとも認証を行うことが可能となります。
攻撃のメカニズム
NTLM認証を利用する場合、ユーザーがログインすると、システムは入力されたパスワードをハッシュに変換し、リモートサーバーと通信を行います。例えば、Windowsアプリケーションでは、LsaLogonUser APIを呼び出してパスワードハッシュを送信します。攻撃者がユーザーのハッシュを持っていれば、そのハッシュを使ってサーバーに再ログインでき、対象のユーザーになりすますことができます。このメカニズムは、ハッシュが元のパスワードと同等の機能を持つことを示しています。
歴史的背景
パス・ザ・ハッシュ技術は1997年にPaul Ashtonによって最初に導入され、その後
SambaのSMBクライアントに組み込まれました。この技術は、サードパーティによるSMB実装に依存しており、Windowsの新しいバージョンに適応させるために
リバースエンジニアリングが必要とされました。このことから、攻撃者が利用するためのツールの機能は常に不足している闘いの場となり、最新の攻撃方法への対応が遅れることがありました。2008年には、Hernan Ochoaによって「パス・ザ・ハッシュToolkit」が公開され、Windows上でのネイティブなPtH実行が可能になりました。このツールにより、標準的なアプリケーションを利用してハッシュを使用した攻撃が行えるようになり、セキュリティ機構の
脆弱性を突く手段が増えました。
ハッシュの収集手法
攻撃者がパス・ザ・ハッシュ攻撃を実行する前に、ターゲットのパスワードハッシュを収集する必要があります。これにはいくつかの方法が存在します。例えば、管理者権限を持つユーザーがログインしたマシンから、ハッシュを抽出することができます。また、クライアントとサーバー間の認証ダイアログをスニッフィングすることにより、ハッシュをキャプチャし、後でブルートフォース攻撃を用いて解析することも可能です。さらに、lsass.exeプロセスのメモリに保存された資格情報をダンプして、ログインしたユーザーのハッシュを得ることもできます。このように、攻撃者は多様な方法を用いてハッシュを収集することができます。
対策と防御
LMやNTLM認証を用いたシステムは、パス・ザ・ハッシュ攻撃のリスクにさらされています。この攻撃に対抗するための単一の防御策は存在せず、多層的な防御が必要です。具体的には、
ファイアウォールや侵入防止システムの導入、特権を持つユーザー数の減少、そして定期的なセキュリティパッチの適用などが効果的です。特に、Windowsのキャッシュ機能を無効にすることで、攻撃者がメモリからハッシュを取得するのを防げます。また、管理者のログインを信頼できる
ドメインコントローラに制限することも重要です。これらの対策を講じることで、攻撃の機会を減少させることが可能です。
結論
パス・ザ・ハッシュ攻撃は、その高い効率性と攻撃方法の多様性から、特にNTLM認証を使用するシステムにおいて深刻な脅威となります。適切なセキュリティ対策を講じ、
脆弱性を意識したシステム設計を行うことで、この攻撃のリスクを大幅に低減することが可能となります。