DLLハイジャッキング

DLLハイジャッキング

マルウェアが不正DLLを読み込ませることによって正規プロセスに不正な動作を実行させる。 例)署名のない不正なDLLを読み込んで、不審な外部ドメインへの通信を試みる。 多くのDLLハイジャッキングの手口は、OSやアプリケーションの脆弱性を利用して正規プロセスを乗っ取り攻撃を行う。

Windows限定?

Windowsでは、DLLファイルを相対指定で読み込もうとすると最初にカレントディレクトリを探すという仕様がある。 DLLファイルは、メインのExeファイルから呼び出される関数の塊で、基本的に開発者が明示的にDLLファイル内の関数を呼び出さない限りDLLファイル内のコードは実行されない。 ただし、DLLファイルがロードされるとアプリに制御が戻る前にdllファイル内の初期化関数(DllMain)が呼び出される。 そのため、不正なDLLファイルでは、ロードした時点で実行されるこの初期化関数内に攻撃コードが記述されている。