Зловмисне програмне забезпечення

Атаки, запобігання та виявлення вразливостей DLL

Атаки, запобігання та виявлення вразливостей DLL

DLL розшифровується як Dynamic Link Libraries і є зовнішніми частинами програм, що працюють в Windows або будь-якій іншій операційній системі. Більшість програм самі по собі не є повноцінними і зберігають код у різних файлах. Якщо код потрібен, відповідний файл завантажується в пам’ять і використовується. Це зменшує розмір файлу програми, одночасно оптимізуючи використання оперативної пам'яті. Ця стаття пояснює, що таке Викрадення DLL і як це виявити та запобігти.

Що таке файли DLL або бібліотеки динамічних посилань

Файли DLL є бібліотеками Dynamic Link і, як видно з назви, є розширеннями різних програм. Будь-яка програма, яку ми використовуємо, може або не може використовувати певні коди. Такі коди зберігаються в різних файлах і викликаються або завантажуються в оперативну пам’ять лише тоді, коли потрібний відповідний код. Таким чином, він економить файл програми, щоб він не став занадто великим, а також запобігає примусовому застосуванню ресурсів.

Шлях до файлів DLL встановлюється операційною системою Windows. Шлях встановлюється за допомогою глобальних змінних середовища. За замовчуванням, якщо програма вимагає файл DLL, операційна система переглядає ту саму папку, в якій зберігається програма. Якщо його там не знайти, він переходить до інших папок, встановлених глобальними змінними. До шляхів прикріплені пріоритети, і це допомагає Windows визначити, які папки шукати DLL-файли. Тут виникає викрадення DLL.

Що таке викрадення DLL

Оскільки бібліотеки DLL є розширеннями і необхідні для використання майже всіх програм на ваших машинах, вони присутні на комп'ютері в різних папках, як пояснено. Якщо оригінальний файл DLL замінено на підроблений файл DLL, що містить шкідливий код, він відомий як Викрадення DLL.

Як зазначалося раніше, існують пріоритети щодо того, де операційна система шукає файли DLL. Спочатку він переглядає ту саму папку, що і папка програми, а потім переходить до пошуку на основі пріоритетів, встановлених змінними середовища операційної системи. Таким чином, якщо добре.dll знаходиться в папці SysWOW64, і хтось ставить погане.dll у папці, яка має вищий пріоритет порівняно з папкою SysWOW64, операційна система буде використовувати погану.dll, оскільки він має те саме ім'я, що і DLL, яку вимагає програма. Потрапивши в оперативну пам’ять, він може виконати шкідливий код, що міститься у файлі, і може скомпрометувати ваш комп’ютер або мережі.

Як виявити викрадення DLL

Найпростіший спосіб виявити та запобігти викраденню DLL - це використання сторонніх інструментів. На ринку є кілька хороших безкоштовних інструментів, які допомагають виявити спробу зламу DLL та запобігти цьому.

Однією з таких програм є DLL Hijack Auditor, але вона підтримує лише 32-розрядні програми. Ви можете встановити його на свій комп’ютер і просканувати всі свої програми Windows, щоб побачити, які всі програми вразливі до викрадення DLL. Інтерфейс простий і зрозумілий. Єдиним недоліком цієї програми є те, що ви не можете сканувати 64-розрядні програми.

Інша програма для виявлення викрадення DLL, DLL_HIJACK_DETECT, доступна через GitHub. Ця програма перевіряє програми, щоб дізнатись, чи є хтось із них вразливим до викрадення DLL. Якщо це так, програма інформує користувача. Додаток має дві версії - x86 та x64, так що ви можете використовувати кожну для сканування як 32-розрядних, так і 64-розрядних програм відповідно.

Слід зазначити, що вищезазначені програми просто сканують програми на платформі Windows на наявність уразливостей і фактично не перешкоджають викраденню файлів DLL.

Як запобігти викраденню DLL

Проблема повинна вирішуватися в першу чергу програмістами, оскільки ви не можете багато чого зробити, окрім як покращити свої системи безпеки. Якщо замість відносного шляху програмісти почнуть використовувати абсолютний шлях, вразливість зменшиться. Читаючи абсолютний шлях, Windows або будь-яка інша операційна система не буде залежати від системних змінних шляху і перейде прямо до передбачуваної DLL, тим самим втрачаючи шанс завантаження однойменної DLL у шлях із більш високим пріоритетом. Цей метод теж не є надійним, оскільки, якщо система зламана і кіберзлочинці знають точний шлях DLL, вони замінять оригінальну DLL на підроблену DLL. Це було б перезаписом файлу, щоб оригінальна DLL була змінена на зловмисний код. Але знову ж таки, кіберзлочинці повинні знати точний абсолютний шлях, згаданий у програмі, яка вимагає DLL. Цей процес важкий для кіберзлочинців, а отже, на нього можна розраховувати.

Повертаючись до того, що ви можете зробити, просто спробуйте розширити свої системи безпеки, щоб краще захистити вашу систему Windows. Використовуйте хороший брандмауер. Якщо можливо, використовуйте апаратний брандмауер або увімкніть брандмауер маршрутизатора. Використовуйте хороші системи виявлення вторгнень, щоб ви знали, чи хтось намагається грати з вашим комп’ютером.

Якщо ви займаєтесь усуненням несправностей комп’ютерів, ви також можете виконати наступні дії для підвищення рівня безпеки:

  1. Вимкніть завантаження DLL із віддалених мережевих спільних ресурсів
  2. Вимкнути завантаження файлів DLL із WebDAV
  3. Повністю відключіть службу WebClient або встановіть її як ручну
  4. Заблокуйте порти TCP 445 та 139, оскільки вони використовуються найбільше для компрометації комп’ютерів
  5. Встановіть останні оновлення операційної системи та програмного забезпечення безпеки.

Microsoft випустив інструмент для блокування атак викрадення навантаження DLL. Цей інструмент зменшує ризик викрадення атак DLL, запобігаючи тим, що програми не надійно завантажують код із файлів DLL.

Якщо ви хочете щось додати до статті, будь ласка, коментуйте нижче.

Як використовувати Xdotool для стимулювання клацань миші та натискань клавіш у Linux
Xdotool - це безкоштовний інструмент командного рядка з відкритим кодом для імітації клацань миші та натискань клавіш. У цій статті буде розглянуто ко...
Топ 5 ергономічних продуктів для комп'ютерної миші для Linux
Чи викликає тривале використання комп’ютера біль у зап’ясті або пальцях? Ви страждаєте від ригідності суглобів і вам постійно доводиться трясти руки? ...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...