Эксплойт LPE позволяет получить root-доступ на macOS

06 января 2018 г., суббота

Использование давнего бага локального повышения привилегий требует предварительного проникновения в систему.

Исследователь, использующий псевдоним Siguza, раскрыл подробности использования локального повышения привилегий на macOS — уязвимости, существующей с 2002 года. В случае успешной атаки ее автор сможет получить полноценный root-доступ к системе.

О возможности атаки типа LPE (local privilege escalation — локальное повышение привилегий) Siguza сообщил 31 декабря в Твиттере, поздравив своих читателей с Новым Годом и присовокупив ссылку на техническое описание уязвимости.

Согласно этой публикации, LPE-атака на macOS требует предварительного проникновения в систему. По этой причине уязвимости такого типа обычно не считаются критическими.

«Чтобы воспользоваться этой уязвимостью, атакующий должен вначале обеспечить себе присутствие в системе, — комментирует Джазиель Спелман (Jasiel Spelman), занимающийся исследованием уязвимостей в рамках проекта Zero Day Initiative (ZDI). — Это можно сделать, заразив целевую систему через удаленно эксплуатируемую уязвимость, такую как баг в Safari, или посредством физического доступа, если система работает наподобие информационного киоска».

Джейсона Хаддикса (Jason Haddix) из Bugcrowd больше всего беспокоит тот факт, что данная уязвимость существует уже много лет. «Известны случаи, когда баг скрывался в системе годами и никто его не обнаружил — или мы надеялись, что это так, — говорит эксперт. — По крайней мере, его наличие показывает, что автоматизированные средства, которые Apple без сомнения использует, не являются универсальным решением по отлову багов».

На запрос Threatpost о комментарии Apple не ответила.

Уязвимость, выявленная Siguza, позволяет скомпрометировать драйвер ядра IOHIDFamily из процесса с ограниченными привилегиями. IOHIDFamily — это расширение ядра, обеспечивающее интерфейс с HID-устройствами (устройствами с человеко-машинным интерфейсом), такими как клавиатура и мышь.

Эксплуатация уязвимости может осуществляться несколькими способами — в зависимости от уровня доступа, полученного злоумышленником. «Даже в том крайнем случае, когда злоумышленнику вначале придется скомпрометировать непривилегированный процесс, пользователь сможет обнаружить свидетельства атаки, — пишут исследователи из ZDI. — В частности, чтобы баг сработал, нужно осуществить выход — это принудительно делает атакующий или сам пользователь вручную, пока вредоносный код ждет подходящего момента. В случае успеха автор атаки сможет повысить привилегии до уровня ядра».

По словам Спелмана, уязвимости этого типа, позволяющие злоупотреблять доверием к данным из пространства пользователя, существуют издавна. «Предположение о том, что лишь доверенный процесс может получить доступ к уязвимой ветви кода, было введено, но, к сожалению, не стало требованием, — сетует эксперт. — В итоге исследователю удалось нарушить это условие посредством принудительного выхода».

В Твиттере Siguza пишет, что не стал посылать в Apple отчет об исследовании, а решил сразу опубликовать его, чтобы привлечь всеобщее внимание к проблеме. «Я прежде всего хотел обнародовать свое открытие, — гласит твит исследователя. — «Черным» хакерам я его бы не продал, так как не хочу им помогать. Можно было, конечно, представить его в Apple, если бы их bug bounty распространялась на macOS или уязвимость допускала удаленный эксплойт».

Ожидается, что заплатку для данной бреши Apple выпустит в текущем месяце в составе накопительного обновления для macOS.

Threatpost