Спецпроекты

В ПО «Касперского» и Trend Micro найдена «дыра» для захвата ПК

Безопасность Администратору Пользователю Маркет

В программах «Лаборатории Касперского», Trend Micro и Autodesk обнаружились уязвимости класса «захват DLL», позволяющие запускать произвольные DLL-библиотеки в контексте высокопривилегированных процессов и тем самым компрометировать всю систему.

На перехват

Эксперты компании SafeBreach обнаружили целый ряд уязвимостей класса «захват DLL» (Dynamic Link Library, библиотека динамической компоновки для многократного использования программными приложениями) в разработках «Лаборатории Касперского», Trend Micro, а также Autodesk, поставщика решений САПР и пакетов, связанных с компьютерной графикой.

Первая уязвимость — CVE-2019-15689 — выявлена в VPN-клиенте Kaspersky Secure Connection (KSDE); злоумышленники могут воспользоваться ею для запуска неавторизованного исполняемого файла без цифровой подписи.

За последние несколько месяцев эксперты SafeBreach обнаруживали сходные проблемы в разработках McAfee, Symantec, Avast и Avira. Во всех случаях привилегированные процессы этих решений пытались загружать библиотеки, чье реальное местоположение отличалось от ожидаемого. Тем самым злоумышленники имели возможность размещать в нужном каталоге поддельный файл и обеспечивать его запуск. Проверки аутентичности загружаемой DLL не производилось.

KSDE, в свою очередь, также является привилегированным процессом: он запускается при загрузке системы с высшим уровнем полномочий — SYSTEM. Служба пытается загрузить целый ряд отсутствующих DLL, так что локальный злоумышленник с административными привилегиями может запускать собственные произвольные библиотеки с высшими системными привилегиями в контексте ksde.exe.

haker600.jpg
Уязвимости в разработках «Касперского», Trend Micro и Autodesk позволяют запускать произвольный код

Эксперты отметили, что процесс пытается загрузить библиотеку, используя только имя файла, без учета точного, «абсолютного» месторасположения. Таким образом, злоумышленник получает возможность запускать произвольный код в контексте авторизованного процесса.

Информация об уязвимостях была передана в соответствующие компании еще в июле 2019 г., и к настоящему времени они все исправлены.

Без проверки

Интересно, что очень похожая проблема была выявлена в Autodesk Desktop Application, менеджере обновлений для разработок фирмы Autodesk, «главного в мире» поставщика пакетов САПР и работы с трехмерной графикой. Уязвимость CVE-2019-7365 пытается загрузить отсутствующий DLL-файл из нескольких каталогов, перечисленных в переменной среды PATH.

Поскольку некоторые службы Autodesk Desktop Application функционируют в системе с уровнем привилегий SYSTEM, злоумышленник также может воспользоваться им для загрузки произвольного кода в контексте привилегированного легитимного процесса.

Сходная история наблюдается с разработкой Trend Micro — Maximum Security. Уязвимость с перехватом DLLCVE-2019-15628 может быть использована для обхода средств защиты (в том числе, самозащиты антивируса), обеспечения устойчивого присутствия в атакуемой системе и, при некоторых условиях, повышения привилегий — с помощью загрузки произвольного неподписанного DLL-файла во множественные службы, запускаемые с привилегиями NTAUTHORITY\SYSTEM.

Причиной уязвимости стало отсутствие в некоторых процессах обязательного механизма проверки целостности кода, что позволяет подгружать неавторизованные файлы. Даже пользователь с обычными привилегиями может записать в нужное местоположение произвольный DLL-файл и добиться его запуска в контексте привилегированного процесса.

Эксперты произвели над антивирусом Trend Micro такой же опыт, как минувшим летом с разработками BitDefender. Антивирус был запущен на виртуальной машине. Один из ключевых для него DLL-файлов был специально удален, и Trend Micro Maximum Security начал искать его в папках, перечисленных в его переменной PATH. Как и в случае с BitDefender, оказалось, что одной из этих папок является C:\python27, папка, в которую устанавливается ПО, относящееся к языку Python 2.7. Несмотря на то, что на данной конкретной виртуальной машине список ACL (контроля доступа) для этой папки разрешал доступ для любого авторизованного пользователя, Maximum Security спокойно загружал даже поддельные DLL-файлы с нужным ему наименованием без проверки аутентичности.

«Приходится в очередной раз констатировать, что и антивирусы, и специализированные программы, предполагающие повышенный уровень защищенности, далеко не всегда соответствуют пользовательским ожиданиям в плане своей собственной безопасности, — говорит Анастасия Мельникова, эксперт по информационной безопасности компании SEC Consult Services. — Уязвимости захвата DLL встречаются нередко. Ну, а идентичность ошибок в BitDefender и Trend Micro, из-за которых становится возможна подгрузка DLL из незащищенной папки C:\python27, заставляет предположить, что программисты в обоих случаях использовали один и тот же сторонний код, реализующий процедуру поиска нужного файла, не проверяя его загодя».