Организация ISRG (Internet Security Research Group), которая является учредителем проекта Let’s Encrypt и способствует развитию технологий для повышения защищённости интернета, опубликовала первый стабильный выпуск проекта Sudo-rs, развивающего написанные на языке Rust варианты утилит sudo и su, предназначенные для выполнения команд от имени других пользователей. Код проекта распространяется под лицензиями Apache 2.0 и MIT. Разработка Sudo-rs ведётся инженерами из компаний Ferrous Systems и Tweede Golf на средства, предоставленные Google, Cisco и Amazon Web Services. В сентябре для подтверждения качества реализации планируется провести независимый аудит кодовой базы sudo-rs.
В утилитах по возможности обеспечена совместимость с классическими утилитами sudo и su, позволяющая использовать sudo-rs в качестве прозрачной замены sudo в типовых сценариях, соответствующих конфигурации /etc/sudoers по умолчанию в Ubuntu и Debian.
Инструментарий sudo-rs уже задействован вместо традиционного пакета sudo в дистрибутиве Wolfi Linux, нацеленном на предоставление максимального уровня безопасности.
Предполагается, что использование языка Rust для разработки su и sudo позволит снизить риск появления уязвимостей, вызванных небезопасной работой с памятью, и исключить появление таких ошибок, как обращение к области памяти после её освобождения и выход за границы буфера (по данным компаний Microsoft и Google около 70% уязвимостей вызваны небезопасной работой с памятью).
Кроме того, для обеспечения должного уровня безопасности в рамках проекта разработан расширенный набор тестов, который также позволяет контролировать поддержание необходимого уровня совместимости с оригинальной утилитой sudo. Для сокращения поверхности атак и уменьшения числа потенциально уязвимых мест в sudo-rs решено отказаться от реализации редко используемой функциональности sudo.
Из отличий от sudo отмечается включение по умолчанию режима use_pty, игнорирование настроек env_reset, verifypw и visiblepw, которые всегда включены (например, пароль запрашивается всегда, независимо от значения verifypw). Среди принципиально не реализованной функциональности можно отметить настройки mail_badpass, always_set_home, always_query_group_plugin и match_group_by_gid, а также поддержку sendmail. Возможности которые пока не реализованы, но будут добавлены в будущем: утилита sudoedit, режимы NOEXEC и NOINTERCEPT, поддержка привязки к блоков конфигурации “Defaults” к отдельным пользователям и командам, возможность аутентификации без использования PAM.
Во втором релизе планируется добавить средства для работы в многопользовательских окружениях, такие как режим NOEXEC, добавить ведение логов аудита, предоставить в sudoers возможность сопоставления хостов и реализовать поддержку до 16 групп пользователей. В третьем выпуске намечено обеспечение совместимости с настройками sudoers, применяемыми в Fedora Linux, а также добавление утилиты sudoedit и задействование механизмов SELinux и AppArmor для усиления защиты.