Microsoft выпустила официальные Coreutils для Windows: Rust-утилиты снижают риски от сторонних аналогов

microsoft

Microsoft выпустила собственные Coreutils для Windows - набор базовых консольных команд, заимствованных из Unix-подобных систем. О новинке сообщил GitHub-репозиторий корпорации, а сама сборка доступна для установки через встроенный менеджер пакетов Windows - winget (команда winget install Microsoft.Coreutils) или через установщик на GitHub. До сих пор специалисты использовали неофициальные сборки GnuWin32, которые не обновлялись годами и представляли угрозу безопасности.

Сама по себе техника портирования *nix-утилит на Windows не нова. Проект GnuWin32 существовал с конца 1990-х, однако его последний релиз датирован 2017 годом. Отсутствие обновлений - серьёзный фактор риска. Устаревшие сборки часто содержат неисправленные уязвимости, а их репозитории могут быть скомпрометированы злоумышленниками для распространения троянизированных версий. Регулярные атаки на цепочки поставок через подмену популярных open-source инструментов (как в случае с проникновением через библиотеки npm или PyPI) подтверждают эту угрозу.

Microsoft пошла другим путём. Весь набор компилируется в один исполняемый файл на языке Rust - coreutils.exe, который размещается в папке Program Files. Каждая команда (например, cp, mv, cat, ls) представляет собой жёсткую ссылку на этот файл. Такой подход упрощает контроль версий и аудит: администратор видит только одну сущность, а не десятки бинарников. Rust, благодаря своей системе владения памятью, исключает целые классы уязвимостей, связанные с переполнением буфера и одновременным доступом к данным, что делает этот код значительно надёжнее аналогов на C или C++.

Под ударом могут оказаться прежде всего ИТ-специалисты, которые используют командную строку Windows для автоматизации задач. Однако новость важна и для команд информационной безопасности, так как упрощает внедрение политик управления инструментарием. Вместо того чтобы разрешать или блокировать десятки копий утилит из недоверенных источников, можно легитимизировать один цифровой артефакт, подписанный Microsoft. Регуляторные требования, например, импортозамещение или стандарты NIST, часто требуют контроля над используемым ПО.

Публикация указывает на системную тенденцию: Microsoft всё активнее встраивает в ОС инструменты, которые раньше считались уделом энтузиастов. Наличие официальной сборки Coreutils закрывает дыру, через которую в корпоративные сети могли проникать вредоносные программы, замаскированные под утилиты GnuWin32. Кроме того, Rust-версия снижает нагрузку на службу эксплуатации: меньше вероятность аварийных остановок скриптов из-за неожиданного поведения команды.

Однако есть и обратная сторона. Злоумышленники тоже получат доступ к единому инструменту с предсказуемым поведением. Например, в вредоносном коде теперь можно ссылаться на легитимный coreutils.exe вместо сомнительного бинарника, что усложнит детекцию на основе хэшей. Методы живучести и бокового перемещения в атаках на Windows традиционно опираются на встроенные утилиты - PowerShell, certutil, bitsadmin. Coreutils может пополнить этот список.

Исследование подтверждает долгосрочный тренд: консолидация инструментов под эгидой вендора сокращает поверхность атаки, но одновременно стандартизирует векторы. Специалистам по безопасности стоит заранее включить coreutils.exe в проактивный мониторинг и тестировать поведение скриптов, использующих новые утилиты. В документации Microsoft подчёркивает, что проект находится на ранней стадии, и допускает обратную совместимость не со всеми флагами.

Цитата из официального описания на GitHub: "Microsoft.Coreutils - это портированная версия популярных утилит командной строки Unix, реализованная на Rust. Она предоставляет такие команды, как cat, cp, cut, echo, head, ls, mkdir, mv, rm, sleep, sort, touch, tr, uniq, wc и другие. Установка осуществляется через winget или скачиванием установщика". Прямого упоминания безопасности в документации нет, но выбор Rust и размещение в Program Files - очевидный сигнал о намерении снизить риски.

Регуляторный шаг давно ожидался рынком: крупные компании, использующие гибридные среды, годами жаловались на необходимость ставить Cygwin или WSL только ради простого grep или sed. Теперь часть этих задач может выполняться нативно, без монтирования виртуального окружения и лишних привилегий. Для SOC-аналитиков это означает сокращение времени на развёртывание автоматизации: сценарии реагирования можно писать на привычном языке команд без оглядки на совместимость.

Если говорить о последствиях, то миграция с GnuWin32 на Microsoft.Coreutils должна быть включена в план инвентаризации ПО. Старые утилиты стоит удалить, чтобы не создавать путаницу в системных путях. Исполняемый файл coreutils.exe имеет подпись Microsoft, что упрощает контроль через AppLocker или WDAC. Для пентестеров и исследователей появление официального набора означает, что кейлоггеры и бекдоры, маскирующиеся под утилиты, станут более заметны - фейковый бинарник, не подписанный Microsoft, будет сразу вызывать подозрения.

Выпуск Coreutils от Microsoft - не просто удобство для админов, а часть стратегии по очищению экосистемы Windows от неконтролируемых исполняемых файлов. Rust снижает техническую вероятность уязвимостей, жёсткие ссылки упрощают управление, а цифровая подпись даёт возможность легитимизировать инструмент в политиках безопасности. Следующим логичным шагом может стать интеграция этих утилит в образ Windows Server по умолчанию - тогда вопрос об установке GnuWin32 отпадёт совсем. Однако пока проект свежий, специалистам стоит провести аудит зависимостей своих скриптов и проверить, не сломается ли автоматизация после перехода на новую сборку. Тенденция ясна: Microsoft берёт под контроль не только операционную систему, но и инструментарий, которым пользуются её самые требовательные клиенты.

Комментарии: 0