Перехоплення DLL (DLL hijacking) — техніка, за якої зловмисник змушує програму Windows завантажити шкідливу DLL замість легітимної бібліотеки, щоб його код виконувався всередині довіреного процесу.
Як працює перехоплення DLL
Програми Windows завантажують динамічні бібліотеки (DLL) за іменем. Якщо повний шлях не вказано, Windows шукає бібліотеку в низці місць: каталозі застосунку, системних папках, поточному каталозі та папках зі змінної PATH. Зловмисник, який може записувати в розташування, що перевіряється раніше за легітимне, підкладає DLL з тим самим іменем. Різновиди:
- Перехоплення порядку пошуку — розміщення DLL у каталозі, який перевіряється раніше за справжній.
- Phantom DLL hijacking — підсовування DLL, яку програма намагається завантажити, але якої в системі немає.
- Заміна DLL — перезапис легітимної DLL у папці, доступній для запису.
Близька техніка — DLL sideloading, коли зловмисники приносять власний легітимний підписаний виконуваний файл разом зі шкідливою DLL. MITRE ATT&CK об’єднує ці методи в Hijack Execution Flow (T1574), а відповідна вада — CWE-427 (Uncontrolled Search Path Element).
Чому перехоплення DLL важливе
Шкідливий код працює в легітимній, часто цифрово підписаній програмі, що допомагає йому уникати засобів захисту. Зловмисники застосовують перехоплення DLL для закріплення в системі, маскування та підвищення привілеїв, коли служба, що працює від імені SYSTEM, завантажує бібліотеку з папки, доступної звичайним користувачам для запису. Проблема давня: 2010 року Microsoft опублікувала Security Advisory 2269637 про небезпечне завантаження бібліотек після того, як дослідники показали, що багато популярних застосунків можна змусити завантажувати DLL із мережевих папок.
Як захиститися від перехоплення DLL
- Розробникам — завантажувати бібліотеки за повними шляхами й використовувати API на кшталт SetDefaultDllDirectories, щоб обмежити порядок пошуку.
- Не вимикати Safe DLL Search Mode і не дозволяти користувачам без прав адміністратора записувати в папки програм і PATH.
- Використовувати контроль застосунків (WDAC, AppLocker) із правилами для DLL.
- Відстежувати непідписані DLL, які завантажують підписані процеси або які завантажуються з незвичних шляхів.





