Спецпроекты

Безопасность Пользователю Стратегия безопасности Техника Маркет

Сотни миллионов ПК под ударом: Их можно взломать софтом, который призван их «лечить»

В Dell SoftwareAssist обнаружилась серьёзная уязвимость, допускающая захват DLL и запуск произвольного кода с высокими привилегиями.

Доктор Зло

Сотни миллионов персональных компьютеров по всему миру могут оказаться под угрозой кибератаки из-за серьёзной уязвимости в ПО, которое многие производители предустанавливают на свои изделия.

Эксперты компании SafeBreach обнаружили «баг» во вспомогательном ПО Dell SupportAssist, предназначенном для поиска и устранения неполадок и предустановленном на большинстве персональных компьютеров Dell (в первую очередь, под Windows).

Инструмент Dell SupportAssist создается компанией PC-Doctor, которая помимо Dell поставляет аналогичное ПО другим производителям ПК.

Уязвимость CVE-2019-12280 допускает перехват DLL (DLL hijacking), что может позволить злоумышленнику с пользовательскими правами в системе запустить произвольный код с куда более высокими привилегиями. Для этого ему потребуется разместить несколько специально подготовленных DLL-файлов в определённых папках на целевом компьютере.

SupportAssist используется для проверки исправности аппаратной и программной составляющей системы, и если выявляется какая-то проблема, то программный пакет отправляет необходимую для её исправления информацию в Dell.

dell600.jpg
В Dell SoftwareAssist нашлась серьёзная уязвимость, допускающая захват DLL и запуск произвольного кода

Проверки подобного рода требуют высоких привилегий в системе просто потому, что многие службы работают с уровнем прав SYSTEM.

Как выяснилось, корень проблем находится в компоненте, который разработан фирмой PC-Doctor. Этот компонент используется как раз для доступа к низкоуровневой аппаратной составляющей компьютера (физической памяти, шине PCI и SMBios).

Шерше ля DLL

Эксперты обнаружили, что сразу после начала работы службы Dell Hardware Support, она запускает файл DSAPI.exe, а тот - pcdrwi.exe. Оба исполняемых файла работают с системными привилегиями.

После этого запускаются несколько исполняемых файлов PC-Doctor - файлы с расширением p5x; они используются для сбора информации о системе.

Три из этих исполняемых файлов ищут с помощью переменной среды PATH (в случае SafeBreach путь выглядел так: C:\python27) следующие DLL-файлы: LenovoInfo.dll, AlienFX.dll, atiadlxx.dll и atiadlxy.dll. Как нетрудно понять из названий, речь идёт о компонентах производства Lenovo, AlienFX и AMD.

«В моей виртуальной машине среда C:\python27 содержит ACL (список контроля доступа), который позволяет авторизованному пользователю вписывать в него файлы. Тем самым оказывается возможной очень простая процедура повышения привилегий, кроме того, обычный пользователь может вписывать недостающие DLL-файлы и производить запуск кода с привилегиями SYSTEM. Важно отметить, что пользователи или процессы с административным доступом должны, во-первых, разрешить доступ к ACL того или иного каталога непривилегированным пользователям, а во-вторых, модифицировать системную переменную PATH так, чтобы она включала этот каталог», - говорится в описании проблемы на сайте Safebreach.

Чтобы проверить возможность повышения привилегий, эксперты скомпилировали DLL-файл (неподписанный), который добавлял к названию текстового файла имя пользователя, запустившего DLL, и название самого DLL-файла. На выходе получались файлы с названием atiadlxx.dll.SYSTEM.txt и LenovoInfo.dll.System.2.txt

После переименования этих файлов в LenovoInfo.dll и atiadlxx.dll, они были загружены и запущены с уровнем привилегий SYSTEM.

По мнению экспертов, ключевая причина проблемы заключается в отсутствии у PC-Doctor функции защиты запуска DLL и отсутствие проверки сертификата у двоичных файлов («переименованных» DLL, в частности).

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

Умелый злоумышленник может использовать эту уязвимость для получения полного контроля над компьютером жертвы.

Проблема затрагивает далеко не только компьютеры Dell: если верить данным с сайта PC-Doctor, разные версии этого пакета установлены более чем на 100 млн компьютеров по всему миру (а с недавних пор диагностические инструменты предлагаются и для устройств под Android).

В числе своих партнёров PC-Doctor называет, в частности, IBM, Fujitsu, ASUS, Samsung, а также Western Digital, MSI, NEC, Hynix Semiconductor и других производителей цифровых компонентов.

Проблемный компонент PC-Doctor, по данным SafeBreach, используется не только в Dell SupportAssist, но и в диагностических инструментах CORSAIR Diagnostics, Staples EasyTech Diagnostics, Tobii I-Series и Dynavox.

Таким образом, проблема потенциально имеет глобальные масштабы.

«Самые острые проблемы составляют, как правило, популярные низкоуровневые компоненты, запрятанные глубоко в системе, - считает Михаил Зайцев, эксперт по информационной безопасности компании SEC Consult Services. - Чем они популярнее, тем большую угрозу они могут представлять в случае выявления в них серьёзных ошибок. В данном случае уязвимость не критическая, но тем не менее, последствия её эксплуатации могут быть весьма угрожающими уже потому, сколько систем ею затронуты».

Dell внесла соответствующие исправления в конце мая 2019 г., выпустив обновления SupportAssist для бизнеса и для домашних пользователей (под индексами 2.0.1 и 3.2.2, соответственно).

Роман Георгиев

Короткая ссылка