C 言語ファミリをルーツとし、コンポーネント指向プログラミングのサポートを含む、オブジェクト指向およびタイプセーフのプログラミング言語。
チャブーンです。
この件ですが、まず、DLL Search Path Hijackingとは何か、どう対応されるものなのか、に関して、下記の資料を確認してください。JPCERTの情報が信頼度が高く、わかりやすいです。
第8回 WindowsのDLLだけが危ないのか?DLL hijacking vulnerability概説(前編)
第9回 WindowsのDLLだけが危ないのか?DLL hijacking vulnerability概説(後編)
上記を見ていただければわかるのですが、原則的には以下の対応が必要とあります。
- アプリケーションの使用するDLLファイルをカレントディレクトリ以外のフルパス設定する(自動的なDLLサーチルールをアプリ側で使わせないようにする)
- SetDllDirectory()を空文字にするようアプリ側で指定し、カレントディレクトのDLLファイル(攻撃者はここに汚染DLLを置く傾向が高い)を使わせないようにする
- 同時に正規のWindowsディレクトリ/System32ディレクトリ含め怪しいDLLを置かれないよう、アンチウイルスソフトの設定をきちんと行う
上記からわかるように、DLL Serch Path機能そのものを無効化したり、任意のものに付け替えることはできないです。一般論として、うえの対策をおこなっていれば、防げる内容です。要するにアプリ側のつくりを、変えるようにしてください。