DLL hijacking, також відомий як "вставка бінарного файлу", є технікою кібер-атаки, яка використовує процес пошуку та завантаження динамічних бібліотек (DLL) у Windows. У цій атаці зловмисник стратегічно розміщує підробний DLL-файл, часто замаскований під легітимний файл, у місці, де операційна система віддасть йому пріоритет над справжнім DLL. У результаті, коли система намагається завантажити DLL, вона ненавмисно виконує неавторизований код, вбудований зловмисником.
Процес DLL hijacking зазвичай включає наступні кроки:
Виявлення вразливих додатків: Зловмисники проводять розвідку, щоб виявити додатки, які не вказують повний шлях до необхідних DLL. Ці додатки залежать від порядку пошуку системи для знаходження та завантаження необхідних DLL.
Розміщення шкідливих DLL: Як тільки вразливий додаток виявлено, зловмисник розміщує шкідливий DLL з таким же ім'ям, як і легітимний DLL, у місці, яке має пріоритет у порядку пошуку системи. Звичайні місця включають каталог програми, системні каталоги Windows або поточний робочий каталог.
Запуск виконання: Коли вразливе додаток запускається, операційна система ініціює пошук та завантаження DLL згідно з порядком пошуку. На жаль, через місце розміщення шкідливого DLL, система ненавмисно завантажує та виконує код зловмисника замість запланованого легітимного DLL.
Цей метод атаки може використовуватися загрозливими акторами для виконання довільного коду в контексті цільового додатку, обходу заходів безпеки та можливого компрометації цілісності і конфіденційності системи.
Щоб знизити ризик атак DLL hijacking, розгляньте наступні заходи профілактики:
Повна специфікація шляху: Розробники повинні явно вказувати повний шлях до завантажуваного DLL, а не покладатися на порядок пошуку системи. Вказуючи повний шлях, розробники забезпечують завантаження запланованого DLL, усуваючи можливість перенаправлення системи на шкідливий DLL.
Підписання коду: Реалізація практик підписання коду підвищує цілісність та автентичність DLL, завантажених додатками. Підписання коду передбачає цифрове підписання DLL довіреним сертифікаційним органом (CA), що дозволяє системі перевірити цілісність та походження DLL перед завантаженням. Ця практика допомагає запобігти виконанню змінених або шкідливих DLL.
Права користувачів: Обмеження прав користувачів відіграє важливу роль у запобіганні неавторизованого маніпулювання DLL або їх розміщення у вразливих місцях, які можуть бути захоплені. Впроваджуючи належні засоби контролю доступу, організації можуть знизити ризик атак DLL hijacking.
Відключення автоматичного завантаження: Відключення функції автоматичного пошуку та завантаження DLL може бути ефективним захистом від DLL hijacking. Це можна досягти шляхом видалення поточного робочого каталогу з пошуку шляхів системи. Таким чином, система завантажуватиме лише DLL, явно вказані з повним шляхом, мінімізуючи ризик ненавмисного виконання DLL.
Організаціям важливо надавати пріоритет захисту своїх додатків та систем від DLL hijacking і впроваджувати ці профілактичні заходи для зниження потенційних ризиків.
Пов'язані терміни
DLL Injection: DLL Injection — це примусове завантаження процесом динамічної бібліотеки (DLL). Ця техніка може використовуватися для легітимних цілей, таких як розширення функціональності, але також може служити методом для кібер-атак.
Rootkit: Rootkit — це тип шкідливого програмного забезпечення, призначеного для несанкціонованого доступу та контролю над комп'ютерною системою з уникненням виявлення. Rootkits працюють з підвищеними привілеями, дозволяючи приховувати свою присутність і забезпечувати таємну платформу для зловмисників для компрометації систем або збору конфіденційної інформації.