Google и Microsoft находят прибежище в лучшей безопасности языка Rust

Google и Microsoft находят прибежище в лучшей безопасности языка Rust

Когда Fortanix был запущен в 2016 году, компания приняла решение: она выберет язык программирования Rust, которому исполнился год, чтобы извлечь выгоду из его сильных сторон безопасности и производительности.

Семь лет спустя приверженность Fortanix Rust оказалась успешной. Компания внедрила поддержку Intel Software Guard Extensions (SGX), которая позволяет использовать безопасные анклавы для пользовательских данных и извлекает выгоду из способности компилятора Rust избегать некоторых классов уязвимостей, особенно проблем с безопасностью памяти, — говорит Джетро Бикман, вице-президент. технологии и CISO на фирма по защите данных.

«Были некоторые первые последователи, которые действительно увидели этот потенциал, и после тщательного исследования и получения некоторого практического опыта мы решили пойти ва-банк», — говорит он. «Инструменты и компилятор действительно помогают избежать ошибок».

Спустя восемь лет после выпуска версии 1.0 язык Rust и платформы разработки продолжают набирать популярность среди разработчиков и компаний. сосредоточен на безопасном коде. В то время как у Rust гораздо ниже рейтинг TIOBE, чем C или C++, этот язык из года в год получает значительно больше пользователей. У Rust также есть преданные поклонники: хотя только 12% программистов использовали эту технологию в прошлом году, почти 85% этих разработчиков хотят продолжать использовать этот язык, что делает его «самым почитаемым» языком программирования, согласно данным. Stack Overflow «Опрос разработчиков 2023».

Графики, показывающие рост популярности языка программирования Rust

Принятие Rust продолжает расти в геометрической прогрессии. Источник: Lib.rs (https://lib.rs/stats)

Например, в рамках усилий по устранению классов ошибок Microsoft переписывает части ядра с помощью Rust, сказал Дэвид Уэстон, вице-президент Microsoft по корпоративной безопасности и безопасности ОС, во время BlueHat Israel в марте. Компания создала DWriteCore на Rust, чтобы превратить синтаксический анализ шрифтов в функцию безопасности памяти, и в настоящее время работает над экспериментами с написанием частей интерфейса графического драйвера (GDI) на Rust. Компания добилась увеличения производительности на 5-15% в ранних версиях кода.

«Я бы сказал, что мы находимся на этапе сканирования… для Rust в Windows», — сказал Уэстон в видеозапись его выступления. «Мы экспериментируем с цепочкой инструментов; мы смотрим на генерацию кода и пытаемся выяснить, стоит ли это тех затрат, которые стоит изучить Rust».

Однако Microsoft, спонсор Rust Foundation, взяла на себя обязательства по языку. «На самом деле у вас будет загрузка Windows с Rust в ядре», — говорит Уэстон.

Google, 1Password и другие на борту

Google также является основным сторонником Rust. Компания связывает снижение доли уязвимостей безопасности памяти в Android с переходом на Rust, Kotlin (функциональный язык программирования) и Java с C и C++. В 2022 году уязвимости безопасности памяти, такие как переполнение буфера, приходится менее половины всех уязвимостей в Android.

«Мы обычно рекомендуем использовать Rust везде, где вы планируете писать новый код C [или] C++», — говорит Ларс Бергстром, директор по разработке языков программирования для Android в Google и председатель совета директоров Rust Foundation. «Поэтому Rust часто является хорошим выбором, когда вам нужен жесткий контроль над базовой системой и ее ресурсами, такими как память».

Агентство национальной безопасности также рекомендует что разработчики ищут альтернативы C и C++ для критически важного с точки зрения безопасности кода, потому что эти языки слишком полагаться на то, что разработчик не сделает ошибок.

В то время как Fortanix взяла на себя обязательство широко использовать Rust, другие компании более тактичны в отношении того, как они внедряют язык в свои кодовые базы. Компания по управлению паролями и идентификацией 1Password, которой требуется надежная защита для защиты хранилищ паролей пользователей, приняла Rust в качестве платформы для разработки своих основных компонентов безопасности данных, используя другие языки для внешнего интерфейса в различных операционных системах. компания заявила в своем блоге.

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

«Мне неприятно говорить вам — я знаю поклонников Rust — переписывание Windows на Rust, вероятно, не произойдет в ближайшее время», — сказал он участникам конференции BlueHat Israel. «Хотя мы любим Rust, нам нужна стратегия, которая также включает в себя защиту нашего нативного кода».

Кривая обучения не такая крутая

По словам Ребекки Рамбул, исполнительного директора и Генеральный директор Rust Foundation.

«Такого рода организации были одними из… первых, помимо крупных технологических организаций, которые действительно увидели потенциал Rust. не только из-за безопасности, но и из-за скорости и производительности," она говорит. «Вы получаете такой уровень безопасности благодаря безопасности памяти, но ничего не теряете с точки зрения производительности».

Когда появился Fortanix, каждый программист должен был изучить Rust. Хотя общеизвестно, что этот язык сложен для изучения, более двух третей программистов, изучающих Rust, заявили, что чувствуют себя уверенно, участвуя в проекте в течение двух месяцев. опрос внутренних программистов Google.

В то время как новые программисты быстро освоили Rust, компилятор продолжает работать медленнее, чем многим хотелось бы, также показал опрос.

Язык действительно требует некоторой корректировки, признает Майкл Эркуитт, старший инженер по безопасности в фирме по обучению безопасному кодированию Security Journey. Кроме того, программисты должны разработать собственное представление о том, какие функции и приложения выиграют от использования языка.

«При выборе языков программирования и инструментов всегда приходится идти на компромиссы», Эркитт говорит. «Rust как современный язык программирования можно использовать для широкого круга проектов, но в конечном итоге выбор сводится к тому, что лучше всего соответствует функциональным требованиям вашего проекта/требованиям заказчика».

Отметка времени:

Больше от Темное чтение