Часть кода WhatsApp переписали на языке Rust
Разработчики Meta* рассказали, что они переписали часть кода WhatsApp на языке Rust, чтобы внедрить новый уровень безопасности. Так, на нём написана функция предупреждения об опасных вложениях, таких как изображения или видео.
Такое решение было принято после обнаружения уязвимости на уровне ОС Android 2015 года. Тогда устройства Android и работающие на них приложения стали уязвимы для атак Stagefright, которые эксплуатировали ошибку в обработке медиафайлов библиотеками, предоставляемыми операционной системой.
Уже тогда в мессенджере поняли, что кроссплатформенная библиотека C++ «wamedia», разработанная WhatsApp для отправки и согласованного форматирования файлов MP4, может быть модифицирована для обнаружения файлов, не соответствующих стандарту, а это, в свою очередь, может вызывать ошибки в уязвимой библиотеке ОС на стороне получателя. Внедрение такой проверки помогло защитить пользователей WhatsApp от уязвимости Stagefright гораздо быстрее, чем если бы они ждали обновления ОС.
Тогда в мессенджере разработали версию wamedia на Rust параллельно с оригинальной версией на C++. Разработчики использовали дифференциальное фаззинг-тестирование, а также обширные интеграционные и модульные тесты для обеспечения совместимости между двумя реализациями. Двумя основными препятствиями стали первоначальное увеличение размера бинарного файла из-за внедрения стандартной библиотеки Rust и поддержка системы сборки для различных платформ. В итоге разработчики заменили 160 тысяч строк кода на C++ (без тестов) на 90 тысяч строк кода на Rust (с тестами). Версия на Rust продемонстрировала преимущества в производительности и использовании памяти во время выполнения. Тогда Rust внедрили для всех пользователей WhatsApp и на многих платформах:
Читать на habr.com

