Бесплатно Экспресс-аудит сайта:

08.07.2020

Уязвимость в .NET Core позволяет вредоносному ПО обходить обнаружение

Уязвимость обхода каталога в библиотеке .NET Core от компании Microsoft позволяет запускать вредоносные программы, избегая обнаружения решениями безопасности. Проблема затрагивает последний стабильный релиз .NET Core (версии 3.1.x), однако Microsoft не считает ее уязвимостью и не намерена исправлять.

Уязвимость была обнаружена исследователем безопасности из Context Information Security Полем Лини (Paul Laîné). С ее помощью пользователь с низкими привилегиями может загружать вредоносные сборщики мусора (DLL) в обход антивирусного ПО и систем обнаружения атак на конечных точках (EDR).

Как пояснил Лини, уязвимость существует по двум причинам. Во-первых, .NET Core позволяет использовать в качестве сборщиков мусора кастомные DLL. Во-вторых, используемая для определения кастомного сборщика мусора в .NET переменная среды COMPlus_GCName не проверяется должным образом. В результате любые присутствующие в сборщике мусора символы обхода каталога (../) не фильтруются.

Сборщики мусора нужны .NET Core для выделения и высвобождения системной памяти, используемой приложением .NET Core. Однако пользователи могут создавать собственные сборщики мусора в виде библиотек DLL, которые будут загружаться приложением .NET Core. Загружать эти DLL могут даже пользователи с низкими привилегиями, а содержимое библиотек не проверяется и вполне может содержать вредоносный код.

Для эксплуатации уязвимости у атакующего должна быть возможность устанавливать переменные среды на уже скомпрометированной системе, поэтому Microsoft не видит смысла ее исправлять.

«Microsoft Security Response Center не считает это уязвимостью безопасности. Для ее эксплуатации злоумышленник должен модифицировать блок среды, а значит, у него уже и так есть контроль над другими аспектами выполнения приложения», - сообщил представитель Microsoft в ходе обсуждения проблемы на GitHub.