Исследователь Google Project Zero нашел новый класс багов в Windows

Исследователь Google Project Zero нашел новый класс багов в Windows

Исследователь Google Project Zero нашел новый класс багов в Windows

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

Уязвимости присутствуют из-за отсутствия необходимых проверок во время обработки специфических запросов. Windows использует поля PreviousMode для установки UserMode или KernelMode — следовательно, определяет, поступили ли аргументы вызова от надежного или ненадежного источника.

Этот же механизм используется для создания и открытия файлов, где код уровня ядра может выбрать из различных функций API, включая функцию IopCreateFile. В этом случае PreviousMode назначается специальной переменной, чтобы определить, проверять ли параметры на валидность.

Windows также использует эту переменную для проверки привилегий, если это UserMode. Таким образом, параметр Options в IopCreateFile становится доступным для API-функций, которые могут быть вызваны только из режима ядра — это позволяет установить KernelMode в качестве AccessMode.

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

Microsoft в курсе данной проблемы, разработчики пообещали устранить ее в будущих наборах патчей для Windows.

Новые файлы в Windows могут наследовать дату старых, но это не баг

Создали новый файл, открыли его свойства, а Windows уверяет, что он появился вчера? Нет, система не сошла с ума. Это File System Tunnelling — файловое туннелирование, которое Windows использует уже несколько десятилетий, объяснил один из специалистов Microsoft.

Как выяснили в Windows Latest, после удаления или переименования файла система ненадолго сохраняет его метаданные в специальном кеше.

Если в той же папке быстро создать новый файл с прежним именем, он может унаследовать дату создания предшественника и соответствие между длинным и коротким именами.

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


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

Вторая причина тянется прямиком из эпохи DOS и 16-битных приложений. Старые программы работали с короткими именами формата 8.3, поэтому Windows требовалось сохранять связь между ними и привычными длинными названиями файлов.

Туннелирование срабатывает при определённых сочетаниях удаления, создания и переименования файлов в одной папке. Кеш временный и постепенно очищается, поэтому документ, удалённый месяц назад, внезапно не передаст свою дату новому тёзке.

Так что если свежий файл приписывает себе чужой возраст, Проводник не обязательно врёт. Возможно, Windows просто снова тащит за собой совместимость времён, когда длинное имя файла уже считалось роскошью.

RSS: Новости на портале Anti-Malware.ru