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

Питер Брайт. 18 марта 2019 г. 18:36 UTC

Одной из наиболее заметных особенностей исследования безопасности Google Project Zero (GPZ) является 90-дневная политика раскрытия информации. Как правило, поставщикам предоставляется 90 дней для решения проблем, обнаруженных GPZ, после чего недостатки будут публично раскрыты. Но иногда понимание недостатка и разработка исправлений для него занимает больше 90 дней, а иногда и намного дольше, например, когда обнаруживается новый класс уязвимости. Это то, что произошло в прошлом году с проблемами с процессором Spectre и Meltdown, и это снова произошло с новой проблемой Windows.

Исследователь Google Джеймс Форшоу впервые понял, что может быть проблема пару лет назад, когда он исследовал возможность использования другой проблемы Windows, опубликованной три года назад. При этом он обнаружил сложный способ, которым Windows выполняет проверки разрешений при открытии файлов или других защищенных объектов. При более внимательном рассмотрении участвующих частей было показано, что были все основные элементы для создания атаки с повышением привилегий, позволяющей любой пользовательской программе открывать любой файл в системе, независимо от того, должен ли пользователь иметь разрешение на это. Главный вопрос заключался в том, могут ли эти элементы быть собраны правильным образом, чтобы вызвать проблему, или удача сделает проблему просто теоретической?

Основное правило достаточно простое: когда запрос на открытие файла делается из пользовательского режима, система должна проверить, имеет ли пользователь, запускающий приложение, пытающееся открыть файл, разрешение на доступ к файлу. Система делает это путем изучения списка контроля доступа к файлу (ACL) и сравнения его с идентификатором пользователя и членством в группах. Однако, если запрос выполняется из режима ядра, проверки разрешений должны быть пропущены. Это потому, что ядру, как правило, нужен свободный и беспрепятственный доступ к каждому файлу.

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

Соответственно, API ядра, используемый для открытия файлов в компоненте диспетчера ввода-вывода NT, проверяет, вызывает ли вызывающая сторона пользовательский режим или режим ядра. Затем API передает эту информацию следующему уровню системы: диспетчеру объектов, который проверяет имя файла и выясняет, соответствует ли оно локальной файловой системе, сетевой файловой системе или где-то еще. Затем диспетчер объектов вызывает диспетчер ввода-вывода, направляя запрос на открытие файла конкретному драйверу, который может его обработать. При этом указание на исходный источник запроса. режим ядра или пользователя. сохраняется и передается. Если вызов поступает из пользовательского режима, каждый компонент должен выполнить строгую проверку параметров и проверку полного доступа; если это происходит из режима ядра, они должны быть пропущены.

Читайте так же
Microsoft Surface Hub 2S готов к работе в вашем оф... Превосходный компьютер для совместной работы с сенсорным экраном от Microsoft, наконец, готов к поставке. и за это время заработал S. Почти год назад Microsoft дебютировала со своим фантастическим Surface Hub 2, по сути, 50-дюймовым планшетом Surface, разработанным специально для совместной работы в офисе, но с небольшим количеством деталей и толь...
Microsoft Windows 10 Октябрь 2018 Обновление досту... Обновление Windows 10 октября 2018 теперь доступно для загрузки Особенности Microsoft выпускает обновление для Windows 10 октября 2018 года Это шестое крупное обновление для Windows 10 Его глобальное развертывание начнется в ближайшие несколько недель Microsoft объявила, что ее Windows 10 октября 2018 теперь доступна для всех пользов...
Бывший исполнительный директор Mozilla Google года... Бывшие и нынешние инженеры Mozilla достигают точки кипения. Каталин Cimpanu для между линиями | 15 апреля 2019. 19:06 GMT (12:06 PDT) | Рубрика: Технологическая индустрия Mozilla-Fenix-новые-андроид-браузеры-intri-5c49ab7860b2b586408754da-1-января-24-2019-12-14-06-poster.jpg Бывший высокопоставленный руководитель Mozilla обвинил Google в умыш...

Google и Microsoft работают вместе в течение года, чтобы выяснить новый тип недостатков Windows

К сожалению, этого основного правила недостаточно, чтобы справиться с любой ситуацией. По разным причинам Windows допускает исключения из базового режима пользователя / режима ядра. Допускаются оба вида исключений: код ядра может заставить драйверы выполнять проверку разрешений, даже если попытка открыть файл произошла из режима ядра, и наоборот, код ядра может сказать драйверам пропустить проверку параметров, даже если попытка открыть файл возник из пользовательского режима.

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

Ничто не так просто, как кажется

В качестве еще одной дополнительной тонкости и диспетчер ввода-вывода, и диспетчер объектов могут направлять базовые компоненты для выполнения проверки разрешений, а два разных флага используются для обозначения того, какой компонент отвечает за принудительное выполнение проверки.

Форшоу обнаружил, что есть тонкости в том, как эти различные флаги взаимодействуют, создавая способы, которыми они могут быть неправильно обработаны. Когда диспетчеру ввода-вывода предписывается пропустить проверку параметров, он делает это путем неразборчивого выполнения запроса режима ядра, даже если запрос фактически пришел из пользовательского режима. Таким образом, запрос на пропуск проверки параметров также отключает проверку разрешений. Это должно быть хорошо, потому что отдельный флаг может быть установлен, чтобы заставить проверку разрешений быть выполненной так или иначе. Но заблудший водитель может забыть сделать это.

И наоборот, когда диспетчер объектов принудительно проверяет права доступа, он делает это путем неразборчивой маркировки запроса как поступающего из пользовательского режима. Это включает как проверку параметров, так и проверку разрешений.

Это также создает сценарий потенциальной проблемы: в запросе файла, исходящем из пользовательского режима, может быть установлен флаг для пропуска проверки параметров. Автор драйвера знает, что ему по-прежнему необходимо выполнять проверку разрешений, поэтому он также устанавливает флаг диспетчера ввода-вывода, чтобы принудительно проверять разрешения. Однако они не устанавливают (и технически не должны устанавливать) флаг диспетчера объектов для принудительной проверки разрешений.

Затем диспетчер ввода-вывода преобразует его в запрос, исходящий из режима ядра, но с установленным флагом принудительной проверки разрешений. Ошибочный драйвер может затем проверить запрос, чтобы увидеть, пришел ли он из пользовательского режима или режима ядра, без также глядя на флаг принудительной проверки разрешений. Этот драйвер, видя, что запрос находится в режиме ядра, пропустит как проверку параметров, так и проверку разрешений. При этом он предоставляет программе пользовательского режима доступ к файлу без проверки того, что пользователю разрешен доступ к файлу. Это уязвимость повышения привилегий.

Читайте так же
Google Pixel 3a, Pixel 3a XL с технологией Snapdra... Pixel 3a и Pixel 3a XL предлагают программное обеспечение Google для Pixel, но экономят на оборудовании. Pixel 3a и Pixel 3a XL имеют один вариант ОЗУ / хранилище Смартфоны поступят в продажу в Индии с 15 мая Pixel 3a, Pixel 3a XL выйдет для регистрации с завтрашнего дня Google Pixel 3a, спецификации Pixel 3a XL Google использовал аппар...
Google говорит, что темный режим может помочь увел... Google говорит, что темный режим может помочь увеличить время автономной работы на устройствах Android Особенности Темный режим использует на 43% меньше мощности при полной яркости в приложении YouTube Это существенно изменяет общую цветовую тему ОС на черный Поощрение разработчиков приложений использовать белые ошибки: Google Google ...
Как Работает Смартфон С Двумя Сим Картами... Как работают телефоны на 3.2 сим-карты Содержание статьи Как работают телефоны на 3.5 сим-карты Какие бывают виды сим-карт чем они отличаются Как включить вторую линию Механизм работы Количество доступных для использования радиомодулей в мобильном телефоне определяется производителем мобильного устройства. В двухсимочном телефоне, использующ...

Google и Microsoft работают вместе в течение года, чтобы выяснить новый тип недостатков Windows

Чтобы использовать это, необходимы две отдельные части. Первый. то, что Форшоу называет Инициатором: компонент ядра, который открывает файл от имени программы пользовательского режима, которая устанавливает флаги для пропуска проверки параметров, а также устанавливает флаг диспетчера ввода-вывода для принудительной проверки разрешений, но без установки Флаг диспетчера объектов для принудительной проверки разрешений. Вторая часть Forshaw вызывает Receiver: драйвер, который проверяет, поступает ли вызов из пользовательского режима или режима ядра, но не проверяет отдельный флаг диспетчера ввода-вывода для принудительной проверки разрешений.

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

Используйте источник, Люк

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

После всей этой работы Microsoft в конечном итоге не нашла проблемных пар Инициаторов и Получателей. Компания, однако, сделала ряд исправлений для этих потенциальных Инициаторов и Приемников, которые будут поставляться как часть выпуска Windows 10 версии 1903 года. Исправление стороны инициатора означает настройку диспетчера ввода-вывода а также флаги диспетчера объектов для принудительной проверки разрешений; исправление Receivers означает проверку как ядра, так и пользовательского индикатора. а также флаг принудительной проверки диспетчера ввода-вывода.

Microsoft настоятельно рекомендует, чтобы сторонние разработчики драйверов вносили те же изменения, и компания рассматривала возможность сделать это так, чтобы сама Windows автоматически устанавливала флаг Object Manager всякий раз, когда установлен флаг I / O Manager. Однако Microsoft была обеспокоена проблемами совместимости, которые это может вызвать.

Windows 10 версии 1903 с большинством этих исправлений, скорее всего, выйдет в следующем месяце. Microsoft утверждает, что некоторые исправления были отложены в ожидании дополнительного тестирования совместимости или потому, что они включены в устаревшие компоненты по умолчанию. Поскольку код Microsoft по существу исправлен, возможности стороннего драйвера для формирования опасной пары инициатор / получатель становятся намного ниже.

Читайте так же
Google Фото теперь будет искать текст в ваших фото... Возможность быстрого поиска картинок на основе комбинации знаков или слов огромна, и вы сможете копировать и вставлять текст для загрузки. Не теряйте голову в поисках того скриншота, который вы сделали. Прокрутка 2567 фотографий, чтобы найти точное изображение, которое вы хотите, может стать кошмаром. Теперь новая функция в Google Фото позволит в...
Рекламные приложения по-прежнему распространены в ... Avast обнаруживает 50 рекламных приложений в магазине Play Store с более чем 30-минутной установкой Используя свою мобильную платформу для анализа угроз apklab.io, Avast обнаружила в магазине Google Play 50 рекламных приложений, которые были установлены в любом месте от 5 до 5 миллионов раз. Охранная фирма назвала рекламное ПО TsSdk, потому что э...
Как Работает Смартфон С Двумя Сим Картами... Как работают телефоны на 3.2 сим-карты Содержание статьи Как работают телефоны на 3.5 сим-карты Какие бывают виды сим-карт чем они отличаются Как включить вторую линию Механизм работы Количество доступных для использования радиомодулей в мобильном телефоне определяется производителем мобильного устройства. В двухсимочном телефоне, использующ...