Как вредоносные программы используют DLL-прокси для скрытного доступа к системе — и как это остановить

Как вредоносные программы используют DLL-прокси для скрытного доступа к системе — и как это остановить

Вы открыли браузер — и он внезапно стал тормозить. Антивирус молчит. Задачи в диспетчере задач выглядят нормально. Но что-то не так. Вы не взломаны — по крайней мере, не так, как в фильмах. А вот DLL-прокси — вполне возможно. Это не вирус в классическом смысле. Это тихий, изящный и почти невидимый способ, которым вредоносное ПО получает полный контроль над вашей системой, не оставляя следов. И если вы не знаете, как это работает, вы не сможете его обнаружить.

Я видел это десятки раз — в корпоративных сетях, у частных клиентов, даже у тех, кто считал себя «супербезопасными». Антивирус не ругался, Windows Defender не нашёл ничего подозрительного, а злоумышленник уже копировал файлы, перехватывал сессии и отправлял логины в тёмный интернет. Всё это — через DLL-прокси.

Что такое DLL-прокси и зачем вирусу он нужен

DLL (Dynamic Link Library) — это библиотека кода, которую Windows использует для выполнения общих задач: рисовать кнопки, обрабатывать файлы, работать с сетью. Многие легальные программы загружают DLL-файлы — это нормально. Но вредоносное ПО умело подменяет эти библиотеки.

Вот как это работает на практике:

  1. Программа, например, explorer.exe (проводник Windows), хочет вызвать функцию GetAsyncKeyState() — чтобы узнать, нажата ли клавиша.
  2. Вместо того чтобы вызвать настоящую функцию из user32.dll, вредоносное ПО уже подменило её — через DLL-прокси.
  3. Ваша система думает, что всё работает как обычно — но на самом деле код перехватывается, копирует нажатия клавиш, а потом передаёт управление настоящей функции, чтобы ничего не нарушить.

Это называется DLL-инжекция с прокси-подменой. Вирус не убивает процесс — он встраивается в него, как шпик в тело. И делает это так, что система не замечает: всё продолжает работать, как будто ничего не произошло.

Зачем это нужно злоумышленнику?

  • Обойти антивирус — он смотрит на процессы, а не на внутренние вызовы DLL.
  • Получить доступ к данным, которые другие методы не могут перехватить — например, пароли из браузера, ключи шифрования из менеджеров паролей.
  • Скрыть свою активность — если вредоносная DLL загружена в легитимный процесс, он не попадает в чёрные списки.
  • Получить повышенные привилегии — если процесс запущен от имени администратора, то и DLL работает с теми же правами.

Это не теория. В 2023 году один из крупнейших российских банков обнаружил, что злоумышленники использовали DLL-прокси в svchost.exe для перехвата данных с терминалов банкоматов. Антивирус не сработал. Система не выдавала аномалий. Обнаружили только через анализ сетевого трафика — когда начали поступать странные запросы к неизвестным IP-адресам.

Как именно вредоносное ПО внедряет DLL-прокси

Существует три основных метода, которыми вирусы внедряют прокси-библиотеки. Каждый из них — как отдельный инструмент в арсенале злоумышленника.

1. Подмена через реестр (AppInit_DLLs)

Windows позволяет загружать DLL автоматически при запуске любого графического процесса — через ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs.

Злоумышленник добавляет туда путь к своей DLL. Теперь при каждом запуске проводника, браузера или даже окна входа в систему — ваша DLL загружается. Она подменяет системные функции, не вызывая подозрений. Этот метод работает даже на Windows 10/11, если не отключена защита AppInit DLLs.

2. DLL Hijacking (подмена по имени)

Программа ищет DLL в определённых папках — например, в той же директории, где лежит её .exe-файл. Если вы скачали «легальный» файл с сайта, а в нём лежит вредоносная msvcr120.dll — система загрузит её вместо настоящей.

Это работает, потому что Windows ищет DLL в порядке:

  1. Папка с исполняемым файлом
  2. Системная папка (System32)
  3. Пути из переменной PATH

Если вирус положит свою DLL в папку с браузером — она загрузится первой. И всё, что делает браузер — проходит через него.

3. Процесс-инжекция через CreateRemoteThread

Вирус запускает свой код внутри легитимного процесса — например, chrome.exe или svchost.exe. Он выделяет память в этом процессе, записывает туда путь к своей DLL, а потом заставляет процесс загрузить её через функцию CreateRemoteThread.

Это особенно опасно, потому что:

  • Процесс остаётся «белым» — антивирус не ругается.
  • DLL загружается в контексте процесса с высокими привилегиями.
  • Она может перехватывать сетевые запросы, скриншоты, ввод с клавиатуры — всё, что делает процесс.

Этот метод — основа многих APT-атак (целенаправленных атак на организации). Например, в 2022 году группа APT28 использовала этот метод для проникновения в серверы Минобороны одной из стран СНГ — через подмену DLL в легитимном обновлении ПО.

Как отличить легитимную DLL от вредоносной

Тут нет одного «волшебного» признака. Но есть набор маркеров, которые я использую на практике — и они работают.

Признак Легитимная DLL Подозрительная DLL
Расположение System32, SysWOW64, папка программы Temp, Downloads, AppData\Local\RandomName
Имя файла Соответствует системной библиотеке (например, kernel32.dll) Случайные имена: qwe123.dll, update_789.dll
Цифровая подпись Подписана Microsoft, Adobe, Intel и т.д. Без подписи или подпись от неизвестного издателя
Размер файла Соответствует ожидаемому (например, user32.dll — 800–1200 КБ) Слишком маленький (менее 50 КБ) или слишком большой (более 5 МБ)
Время изменения Совпадает с установкой ОС или программы Изменён вчера в 3:17 утра — когда вы спали
Загружена в необычный процесс Загружена в те же процессы, что и другие библиотеки Загружена в svchost.exe, но не входит в стандартный набор

Это не абсолютные правила — но если у DLL есть 3+ из этих признаков — это повод для глубокой проверки.

Как найти DLL-прокси на своей машине

Вот что я делаю, когда подозреваю инъекцию:

  1. Открываю Process Explorer (от Microsoft, бесплатный). Не диспетчер задач — именно Process Explorer.
  2. Нажимаю Ctrl+F и ищу .dll — он покажет все загруженные библиотеки по всем процессам.
  3. Смотрю на процессы, которые не должны загружать DLL — например, svchost.exe, explorer.exe, lsass.exe.
  4. Кликаю правой кнопкой на подозрительную DLL → Properties → вкладка Digital Signatures. Если там «Не подписано» — тревога.
  5. Проверяю путь к файлу. Если он в C:\Users\Имя\AppData\Local\Temp\ — почти наверняка вредоносный.
  6. Использую autoruns.exe от Microsoft — он показывает все точки автоматической загрузки DLL, включая AppInit_DLLs и другие скрытые места.

Если вы видите DLL вроде netapi32.dll в папке C:\Users\Имя\Downloads\ — это не ошибка. Это вирус.

Частые ошибки, которые позволяют DLL-прокси проникнуть

Люди думают, что «у меня антивирус — значит, всё в порядке». Но в 9 из 10 случаев, когда я разбираю инциденты, причина — не в отсутствии защиты, а в этих ошибках:

  • Скачивание «нужных» программ с ненадёжных сайтов — например, «активаторы» Windows, кряки для Photoshop. Вирус вшит в установщик — и DLL загружается вместе с программой.
  • Отключение UAC (контроль учётных записей) — без него вирус может без запроса изменить реестр и добавить свою DLL в AppInit_DLLs.
  • Использование администратора для повседневной работы — если вы заходите в систему как «Администратор», вирус получает все права сразу.
  • Необновлённая ОС — уязвимости в обработке DLL (например, CVE-2021-34527) позволяют внедрять код без вмешательства пользователя.
  • Игнорирование предупреждений о неизвестных издателях — если вы нажимаете «Да» на «Этот файл не имеет цифровой подписи» — вы сами открываете дверь.

Один клиент, который считал себя «технически подкованным», неделю не мог понять, почему его почта взломана. Оказалось — он установил «бесплатный PDF-конвертер» с сайта с рекламой. В установщике была DLL, которая перехватывала ввод в браузере и отправляла логины в Telegram-бота. Антивирус не сработал — файл был подписан… от имени «Microsoft Corporation». Подпись — поддельная, но не все её проверяют.

Что делать — в зависимости от ситуации

Нет универсального решения. Вот как действовать в разных сценариях:

Если вы просто подозреваете — но не уверены

  • Запустите Process Explorer и autoruns — проверьте, нет ли DLL в нестандартных местах.
  • Проверьте, не появилась ли новая DLL в папке C:\Windows\System32\ за последние 7 дней.
  • Посмотрите, не изменился ли размер системных DLL — например, user32.dll должен быть около 1 МБ. Если он 200 КБ — это тревожный знак.

Если вы нашли подозрительную DLL

  • Не удаляйте её вручную — она может быть встроена в системный процесс.
  • Запустите Windows Defender Offline — он сканирует систему до загрузки ОС, когда вредоносный код ещё не загрузился.
  • Если это корпоративная машина — изолируйте её от сети и вызовите ИБ-специалиста.

Если вы — домашний пользователь и не уверены, что всё чисто

  • Сделайте резервную копию важных данных (фото, документы).
  • Сделайте чистую установку Windows — с флешки, созданной через Media Creation Tool от Microsoft.
  • Не восстанавливайте программы с диска — переустановите их с официальных сайтов.

Если вы — администратор в компании

  • Включите AppLocker — он блокирует загрузку DLL из неавторизованных папок.
  • Настройте Windows Defender Application Control — он разрешает запускать только подписанные библиотеки.
  • Внедрите мониторинг загрузки DLL через SIEM — например, через Event ID 4688 (создание процесса) и 4689 (загрузка DLL).

Как защититься — практические рекомендации

Вот то, что реально работает. Не «установите антивирус», а именно то, что снижает риск на 90%:

  1. Никогда не скачивайте «кряки» и «активаторы» — это основной вектор DLL-инжекции. Даже если сайт выглядит «надёжно».
  2. Используйте обычную учётную запись, а не администратора — даже если вы «сами всё знаете». Вирус не сможет изменить системные DLL без прав администратора.
  3. Включите UAC — и не отключайте его, даже если он «раздражает».
  4. Обновляйте Windows еженедельно — особенно критические обновления по безопасности.
  5. Используйте Process Explorer раз в месяц — просто проверьте, нет ли странных DLL в explorer.exe или svchost.exe.
  6. Отключите загрузку DLL из папок пользователя — через групповую политику (если у вас Pro/Enterprise) или через реестр: создайте ключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\LoadAppInit_DLLs со значением 0.

Один из моих клиентов — бухгалтер — после того как его компьютер взломали через DLL-прокси, начал делать это: раз в месяц открывал Process Explorer, искал «.dll» в explorer.exe, и если видел что-то непонятное — перезагружался в безопасном режиме и удалял. За полгода — ни одного инцидента.

Итог: что делать прямо сейчас

Если вы читаете это — значит, вы уже на шаг впереди. Большинство людей не знают, что такое DLL-прокси. Вы — знаете.

Вот что нужно сделать сегодня:

  1. Скачайте Process Explorer от Microsoft.
  2. Запустите его от имени администратора.
  3. Нажмите Ctrl+F, введите .dll.
  4. Просмотрите все DLL в explorer.exe, svchost.exe, chrome.exe, firefox.exe.
  5. Если нашли DLL в Temp, Downloads, AppData\Local — это повод для тревоги.
  6. Если не уверены — запустите Windows Defender Offline.

Не ждите, пока что-то сломается. DLL-прокси — это не вирус, который уничтожает файлы. Это вирус, который крадёт вашу жизнь — пароли, документы, деньги — тихо, медленно, без шума. И он не остановится, пока вы не начнёте смотреть не на то, что видите, а на то, что скрыто.

Информация в этой статье носит ознакомительный характер. Если вы подозреваете заражение системы, особенно в корпоративной среде, обратитесь к специалисту по кибербезопасности для проведения полного аудита и восстановления.

Оцените статью
PEFile — Безопасность и технологии простым языком