Уязвимости DLL, атаки, предотвращение и обнаружение уязвимостей

Вредоносные программы

DLL обозначает Dynamic Link Libraries и является внешней частью приложений, которые работают в Windows или любых других операционных системах. Большинство приложений не являются завершенными сами по себе и хранят код в разных файлах. Если код нужен, соответствующий файл загружается в память и используется. Это уменьшает размер файла приложения при оптимизации использования оперативной памяти. В этой статье объясняется, что такое угон DLL и как его обнаружить и предотвратить.

Что такое DLL-файлы или библиотеки динамических ссылок

Файлы DLL являются библиотеками динамических ссылок и, как видно из названия, являются расширениями различных приложений. Любое приложение, которое мы используем, может использовать или не использовать определенные коды. Такие коды хранятся в разных файлах и вызываются или загружаются в ОЗУ только тогда, когда требуется соответствующий код. Таким образом, он сохраняет файл приложения от слишком большого размера и предотвращает захват ресурсов приложением.

Путь к файлам DLL задается операционной системой Windows. Путь задается с помощью глобальных переменных среды. По умолчанию, если приложение запрашивает файл DLL, операционная система просматривает ту же папку, в которой хранится приложение. Если он там не найден, он переходит в другие папки, установленные глобальными переменными. К путям прикреплены приоритеты, и это помогает Windows определить, в каких папках искать библиотеки DLL. Вот тут и начинается угон DLL.

Что такое угон DLL

Поскольку библиотеки DLL являются расширениями и необходимы для использования практически всех приложений на ваших машинах, они находятся на компьютере в разных папках, как объяснено. Если исходный файл DLL заменяется поддельным файлом DLL, содержащим вредоносный код, он называется DLL Hijacking .

Как упоминалось ранее, существуют приоритеты относительно того, где операционная система ищет файлы DLL. Сначала он просматривает ту же папку, что и папка приложения, а затем начинает поиск, основываясь на приоритетах, установленных переменными среды операционной системы. Таким образом, если файл good.dll находится в папке SysWOW64 и кто-то помещает bad.dll в папку с более высоким приоритетом по сравнению с папкой SysWOW64, операционная система будет использовать файл bad.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-файлов приложениями.

Если вы хотите что-то добавить в статью, оставьте комментарий ниже.

Оцените статью
TechArks.Ru
Добавить комментарий