Microsoft начала переводить код Windows на Rust для защиты памяти

Microsoft начала переводить код Windows на Rust для защиты памяти

Microsoft начала переводить код Windows на Rust для защиты памяти

Microsoft переписывает системные библиотеки Windows на Rust, чтобы обеспечить лучшую защищённость памяти софта. Об этом заявил один из представителей руководства, отвечающий за безопасность операционной системы.

Дэвид Уэстон, также известный под ником «dwizzle», на мероприятии BlueHat IL 2023 (прошло в марте в Тель-Авиве) впервые рассказал о готовящемся переводе ключевых компонентов Windows на Rust.

«На деле уже через несколько недель или месяцев вы сможете получить ядро Windows на Rust. Наша основная задача — конвертировать отдельные “внутренности“ операционной системы с C++ на Rust», — объяснил Уэстон.

Более безопасный язык программирования привлёк команду Microsoft несколько лет назад. Тогда разработчики увидели возможность устранить ряд багов памяти с помощью с его помощью. Именно такой класс уязвимостей составил около 70% от всех пропатченных CVE-дыр с 2006 года.

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

Rust не раз хвалили такие гиганты, как Google. При этом авторы вредоносов тоже не гнушаются адаптировать свои программы: например, Linux-версию шифровальщика RansomExx под конец прошлого года переписали на Rust.

Критическая уязвимость в TLP позволяет обойти защиту Linux

В популярной утилите TLP, которую многие владельцы ноутбуков на Linux используют для управления энергопотреблением, обнаружили критическую уязвимость. Причём проблема нашлась во время обычной проверки пакета командой SUSE Security Team и располагается во вполне штатном коде.

Брешь получила идентификатор CVE-2025-67859 и затрагивает версию TLP 1.9.0, где появился новый profiles daemon.

Этот демон работает с root-правами и управляет профилями питания через D-Bus. Задумка хорошая, но реализация подвела: в механизме аутентификации Polkit нашлась логическая ошибка, которая фактически позволяет обойти проверку прав.

Как объясняют исследователи, демон должен был строго проверять, кто именно отправляет команды. Но из-за ошибки любой локальный пользователь мог взаимодействовать с ним без должной аутентификации — а значит, менять системные настройки питания от имени root.

На этом сюрпризы не закончились. В ходе анализа специалисты SUSE нашли ещё несколько проблем, уже связанных с исчерпанием ресурсов. В частности, механизм profile hold, который позволяет временно «зафиксировать» профиль питания, оказался совершенно без валидации. Локальный пользователь мог создавать неограниченное количество таких блокировок, причём без прав администратора.

В итоге это открывает прямую дорогу к DoS-атаке: демон начинает захлёбываться от бесконечных записей в структуре данных, куда попадают числа, строки с причиной и идентификаторы приложений — всё это полностью контролируется клиентом.

Любопытно, что SUSE вспомнила похожую историю с демоном управления питанием в GNOME: аналогичную проблему находили ещё несколько лет назад. Отдельно исследователи отметили вопросы к механизму «куки», которыми отслеживаются profile hold. Формально речь шла о предсказуемости значений, но в сочетании с отсутствием лимитов это лишь расширяло поверхность атаки.

К счастью, реакция была быстрой. SUSE сообщила об уязвимостях разработчикам ещё в декабре, и в версии TLP 1.9.1 проблема уже закрыта. В частности, число одновременных profile hold теперь жёстко ограничено числом 16, что убирает риск истощения ресурсов.

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