Security Joesはこのほど、「Hide and Seek in Windows' Closet: Unmasking the WinSxS Hijacking Hideout」において、ダイナミックリンクライブラリ(DLL: Dynamic Link Library)の検索順序ハイジャックを介してWindowsのWinSxSフォルダに存在する実行可能ファイルを悪用する攻撃手法を明らかにした。この攻撃はWindows10および11を標的としており、悪意のあるコードを実行するため特権昇格を行う。
DLL検索順序ハイジャック攻撃の手法
DLLの検索順序ハイジャックとは、Windowsがプログラムを実行する際に読み込むDLLの検索ディレクトリを操作して、本来とは異なる悪意のあるDLLを読み込ませる攻撃手法。Windowsは一般的に、次のフォルダの順序で、ダイナミックリンクライブラリを検索して読み込む。
- アプリケーションの起動フォルダ
- C:\Windows\System32
- C:\Windows\System
- C:\Windows
- 現在の作業ディレクトリ
- システム環境変数PATHにリストされているフォルダ
- ユーザー環境変数PATHにリストされているフォルダ
WinSxSフォルダを悪用するメリット
WinSxS(Windows Side by Side)フォルダはWindowsのメンテナンスと回復における重要なコンポーネント。通常は「C:\Windows\WinSxS」に存在し、さまざまなバージョンのシステムファイルが保存されている。Windowsのアップデートを実行すると、以前のバージョンのコンポーネントがこのフォルダに保存される。
今回、Security Joesが明らかにした攻撃手法では、このフォルダに保存されている古い実行可能ファイルを悪用する。このため、脅威アクターには、次のような利点があるとされる。
- Windowsフォルダ内のアプリケーションから悪意のあるコードを実行するため、特権昇格が不要になる
- 検出される可能性のある実行可能ファイルをインストールする必要がない
- WinSxSフォルダから実行されるアプリケーションのメモリ空間内で悪意のあるコードが実行されるため、セキュリティソリューションに検出される可能性が低下する
WinSxSフォルダ悪用を検証
Security Joesは実際に上記の「5.現在の作業ディレクトリ」を標的とした検証を実施しており、その手順を詳細に解説している。検証では「ngentask.exe」や「aspnet_wp.exe」といった悪用可能な実行可能ファイルを発見しており、「webengine4.dll」と「mscorsvc.dll」がハイジャック可能であることを明らかにしている。
Windowsをアップデートするとその度に新しい脆弱な実行可能ファイルがWinSxSフォルダに追加される可能性がある。Security Joesはこの攻撃を検出する手法として、実行中のプロセスの中に「WinSxS」から起動されたプロセスがないか確認する方法を提案している。WinSxSはメンテナンスと回復を目的としたフォルダであり、通常はこのフォルダから直接アプリケーションが起動されることはない。
特にWinSxSから起動されたプロセスがリモートサーバと接続したり、一般的ではないフォルダからダイナミックリンクライブラリなどの外部リソースを読み込んだりしている場合は、危険な兆候を示しているとして、それらプロセスの活動を注意深く分析することを推奨している。