Старые причуды Windows помогают обходить современные механизмы защиты администратора

Windows безопасность Uac уязвимость Microsoft патч

Исследователь Google оставил без внимания уязвимость обхода UAC на протяжении многих лет, но она стала реально эксплуатируемой после внедрения новой функции защиты Windows Administrator Protection, которую Microsoft поспешно исправила.

Компания Microsoft устранила целый ряд уязвимостей, которые позволяли обойти защиту прав администратора Windows (Windows Administrator Protection) до того, как эта функция стала общедоступной в текущем месяце.

Джеймс Форшоу, исследователь безопасности из команды Google Project Zero, в декабре сообщил о девяти уязвимостях, которые могли позволить злоумышленникам незаметно для себя получить права администратора на машинах с активированной новой функцией Windows.

Большинство из них были связаны с ранее известными проблемами контроля учётных записей пользователей (User Account Control, UAC), отметил Форшоу, но при эксплуатации они могли полностью свести на нет саму цель защиты прав администратора Windows.

Microsoft пока не открыла доступ к этой функции для общедоступных сборок — на данный момент поэкспериментировать с ней могут только пользователи Insider Canary. Однако идея состоит в том, чтобы гарантировать, что пользователи работают, используя минимально необходимые привилегии.

Пользователь может получить права администратора “на лету”, но они предоставляются только при заранее одобренных обстоятельствах и автоматически отзываются по завершении каждого процесса.

Форшоу сообщил, что самой заметной из девяти уязвимостей, о которых он сообщил, была ошибка сеансов входа (Logon Sessions), использующая пять различных поведенческих особенностей Windows. Он добавил, что, вероятно, обнаружил её лишь потому, что был ранее знаком с “необычным поведением” операционной системы при создании каталога объектов устройств DOS.

Проблема сосредоточена на том, как Windows обрабатывает эти каталоги для конкретных пользовательских сеансов. Поскольку ядро создаёт каталог объектов устройств DOS по требованию, а не при входе в систему, оно не может проверить, является ли пользователь администратором в процессе создания.

В отличие от UAC, защита прав администратора использует скрытую теневую учётную запись администратора, маркер (токен) которой система может вернуть при вызове функции API NtQueryInformationToken.

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

Форшоу написал: “Поскольку проверка доступа отключена, создание всё равно произойдёт; однако после создания ядро выполнит проверку доступа к самому каталогу и завершится неудачей из-за имитируемого идентификационного токена”.

Форшоу рассказал, что обнаружил это поведение в UAC некоторое время назад, но никогда не сообщал о нём, поскольку не мог найти сценарий, при котором ограниченный пользователь мог бы запустить код до создания каких-либо административных процессов.

Введение защиты прав администратора всё изменило, поскольку, в отличие от UAC, оно создаёт новый уникальный сеанс входа каждый раз, когда пользователь запрашивает повышение своих привилегий до уровня администратора.

Кроме того, из-за отдельной меры безопасности, внедрённой Microsoft для предотвращения угона диска C, системная служба, запускающая процесс, игнорирует каталог объектов устройств DOS имитируемого токена. В этом случае злоумышленник может использовать уязвимость, создав каталог объектов устройств DOS и перенаправив диск C процесса, при условии, что он сможет выполнить всё это до того, как процесс получит доступ к файлу.

Microsoft устранила эту проблему, запретив создание каталога объектов устройств DOS при имитации токена теневого администратора на уровне идентификации.

Форшоу подытожил: “Эта проблема интересна не только тем, что позволила мне обойти защиту, но и тем, что это был потенциальный обход UAC, о котором я знал много лет, но который стал практически эксплуатируемым только благодаря внедрению этой функции”. ®

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Похожие новости: