Больше никаких вирусов в картинках с «добрым утром». WhatsApp переписал защиту на Rust

leer en español

Больше никаких вирусов в картинках с «добрым утром». WhatsApp переписал защиту на Rust

Разработчики WhatsApp заменили 160 тысяч строк кода на C++ для повышения безопасности мессенджера.

image

В WhatsApp появился новый уровень защиты, который работает незаметно для пользователя, но помогает блокировать скрытые вредоносные файлы. Разработчики внедрили крупный компонент, написанный на языке программирования Rust, чтобы снизить риск атак через изображения, видео и документы.

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

Поводом для пересмотра подхода стала известная уязвимость Android под названием Stagefright, обнаруженная в 2015 году. Тогда проблема находилась в системных средствах обработки медиафайлов, и разработчики приложений не могли быстро её исправить. Обновления операционной системы доходили до пользователей месяцами. В WhatsApp тогда доработали собственную библиотеку обработки MP4, чтобы заранее выявлять подозрительные отклонения в структуре файлов и не допускать их использования. Это позволило защитить людей быстрее, чем ожидание обновлений платформы.

Со временем стало ясно, что такие проверки должны выполняться максимально безопасным кодом, так как они работают с недоверенными данными. Поэтому вместо постепенной переделки старой библиотеки на C++ разработчики создали новую версию параллельно, уже на Rust. Обе реализации долго сравнивали с помощью автоматического тестирования и методов поиска ошибок. В итоге объём кода сократился, а производительность и расход памяти улучшились.

Новая библиотека заменила около 160 000 строк кода на C++ версией примерно из 90 000 строк на Rust вместе с тестами. Сейчас она используется на Android, iOS, macOS, в веб-версии и на носимых устройствах. В компании заявляют, что это одно из самых масштабных внедрений Rust в пользовательских продуктах.

Дополнительно система получила набор проверок под названием «Калейдоскоп». Она выявляет подозрительные структуры в файлах, отслеживает опасные типы документов и случаи, когда один формат выдаётся за другой. Отдельное внимание уделяется PDF, так как они часто используются для распространения вредоносного кода, особенно при наличии встроенных файлов и сценариев. Исполняемые файлы и приложения помечаются как потенциально опасные.

Разработчики подчёркивают, что проверки формата не могут остановить 100% атак, но заметно снижают риск. Ежемесячно эти защитные компоненты доставляются на миллиарды телефонов и компьютеров пользователей сервисов компании.

В WhatsApp отмечают, что большинство критических уязвимостей в отрасли связано с ошибками работы с памятью в программах на C и C++. Поэтому команда делает ставку на языки с встроенной защитой памяти для нового кода, усиливает проверки старых компонентов и сокращает потенциальную поверхность атаки. Ожидается, что доля Rust в инфраструктуре безопасности сервиса будет расти и дальше.