Недавно появилась новость о том, что ИСРГ (Internet Security Research Group), которая является основателем проекта Let’s Encrypt и продвигает HTTPS и разработку технологий для повышения безопасности в Интернете, представил проект sudo-rs.
sudo-rs позиционируется как проект по созданию реализаций утилит sudo и su, написано на языке программирования Ржавчина и это позволяет вам выполнять команды от имени других пользователей.
Сейчас, работа направлена на реализацию функции в sudo-rs, которые позволяют его использовать как прозрачная замена sudo в типичных случаях использования (настройки sudoers по умолчанию в Ubuntu, Fedora и Debian).
Sudo был впервые разработан в 1980-х годах и за несколько десятилетий стал важным инструментом для внесения изменений и минимизации рисков для операционной системы. Но поскольку он написан на C, sudo имеет множество уязвимостей, связанных с проблемами безопасности памяти.
В будущем планируется создать библиотеку, позволяющую встраивать функциональность sudo в другие программы. и предоставить альтернативный метод настройки, который позволяет избежать анализа синтаксиса файла конфигурации sudoers. В зависимости от реализованной функциональности sudo также будет подготовлен вариант утилиты su. Кроме того, в планах упоминается поддержка SELinux, AppArmor, LDAP, инструментов аудита, возможность аутентификации без использования PAM и реализация всех параметров командной строки sudo.
По данным Microsoft и Google, около 70% уязвимостей вызваны небезопасным управлением памятью.. Ожидается, что использование языка Rust для сборки su и sudo снизит риск уязвимостей. вызванные небезопасной обработкой памяти, и устранить возникновение ошибок, таких как доступ к области памяти после ее освобождения и переполнение буфера.
Sudo-rs разрабатывается инженерами Ferrous Systems и Tweede Golf при финансовой поддержке таких компаний, как Google, Cisco, Amazon Web Services.
Когда мы думаем о том, в какое программное обеспечение мы хотим инвестировать, мы в основном думаем о четырех критериях риска:
Широко используется (почти все серверы и/или клиенты)
На критическом пределе
Играя решающую роль
Написано на языках, которые не являются безопасными для памяти (например, C, C++, asm)
Sudo идеально соответствует этому критерию риска. Важно, чтобы мы защищали наше наиболее важное программное обеспечение, особенно от уязвимостей безопасности памяти. Трудно представить себе программное обеспечение, которое намного важнее, чем sudo и su.
Безопасная обработка памяти обеспечивается в Rust во время компиляции путем проверки ссылок, отслеживания владения объектом и времени жизни объекта (область действия), а также оценки правильности доступа к памяти во время выполнения кода. Rust также обеспечивает защиту от целочисленного переполнения, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемых переменных и ссылок по умолчанию, предлагает строгую статическую типизацию для минимизации логических ошибок.
Стоит отметить, что sudo-rs в настоящее время уже находится в активной разработке. и он не подходит для любой производственной среды. Использование sudo-rs рекомендуется только для целей разработки и тестирования, поэтому упоминается, что для производства и разработки, если sudo-rs реализован, это почти наверняка любая система, которая легко взломана и небезопасна.
sudo-rs распространяется под лицензиями Apache 2.0 и MIT, и, как уже упоминалось, уже выпущена предварительная версия sudo-rs, которая еще не готова для общего использования. Проект, работа над которым началась в декабре 2022 года, планируется завершить в сентябре 2023 года.
Наконец, если вам интересно узнать об этом больше, вы можете ознакомиться с подробностями По следующей ссылке.