1769526674
2026-01-27 15:01:00
- WhatsApp принял и развернул новый уровень безопасности для пользователей, созданный с помощью Rust, в рамках усилий по усилению защиты от угроз вредоносного ПО.
- Опыт WhatsApp по созданию и распространению нашей библиотеки согласованности мультимедиа на Rust на миллиардах устройств и браузеров доказывает, что Rust готов к производству в глобальном масштабе.
Наша стратегия работы со СМИ
WhatsApp обеспечивает сквозное шифрование по умолчанию для более чем 3 миллиардов человек, чтобы они могли безопасно обмениваться сообщениями каждый день. Интернет-безопасность — это пространство состязательности, и, чтобы продолжать обеспечивать пользователям возможность безопасного обмена сообщениями, мы постоянно адаптируем и развиваем нашу стратегию борьбы с угрозами кибербезопасности, одновременно поддерживая инфраструктуру WhatsApp, чтобы помочь людям общаться.
Например, WhatsApp, как и многие другие приложения, позволяет пользователям обмениваться медиафайлами и другими типами документов. WhatsApp помогает защитить пользователей, предупреждая об опасных вложениях, таких как APK-файлы, однако редкие и сложные вредоносные программы могут быть спрятаны в таких, казалось бы, безобидных файлах, как изображение или видео. Эти вредоносные файлы могут быть нацелены на неисправленные уязвимости в операционной системе, библиотеках, распространяемых операционной системой, или в самом приложении.
Чтобы защититься от таких потенциальных потоков, WhatsApp все чаще использует язык программирования Rust, в том числе в нашей функции обмена мультимедиа. Rust — это безопасный для памяти язык, предлагающий множество преимуществ в области безопасности. Мы считаем, что это крупнейшее в мире внедрение любой библиотеки, написанной на Rust.
Чтобы объяснить, почему и как мы внедрили это, нам следует сначала оглянуться назад на ключевую уязвимость на уровне ОС, которая послала WhatsApp важный сигнал об усилении защиты при совместном использовании мультимедиа.
Уязвимость Android 2015 года: тревожный сигнал для защиты медиафайлов
В 2015 году устройства Android и приложения, работающие на них, стали уязвимы для «Уязвимость «страха сцены». Ошибка заключалась в обработке медиафайлов библиотеками операционной системы, поэтому WhatsApp и другие приложения не смогли исправить основную уязвимость. Поскольку зачастую людям требуются месяцы для обновления своего программного обеспечения до последней версии, мы решили найти решения, которые обеспечат безопасность пользователей WhatsApp даже в случае уязвимости операционной системы.
В то время мы поняли, что кроссплатформенная библиотека C++, уже разработанная WhatsApp для отправки и согласованного форматирования файлов MP4 (называемая «wamedia»), может быть модифицирована для обнаружения файлов, которые не соответствуют стандарту MP4 и могут вызывать ошибки в уязвимой библиотеке ОС на стороне получателя, что подвергает риску безопасность цели. Мы внедрили эту проверку и смогли защитить пользователей WhatsApp от уязвимости Stagefright гораздо быстрее, чем если бы пользователи сами обновляли ОС.
Но поскольку проверки мультимедиа выполняются автоматически при загрузке и обработке ненадежных входных данных, мы сразу определили, что wamedia является основным кандидатом на использование языка, безопасного для памяти.
Наше решение: ржавчина в больших масштабах
Вместо постепенного переписывания мы разработали версию wamedia для Rust параллельно с исходной версией C++. Мы использовали дифференциальный фаззинг, а также обширную интеграцию и модульные тесты, чтобы гарантировать совместимость между двумя реализациями.
Двумя основными препятствиями были первоначальное увеличение размера двоичного файла из-за внедрения стандартной библиотеки Rust и поддержка системы сборки, необходимая для различных платформ, поддерживаемых WhatsApp. WhatsApp сделал долгосрочную ставку на создание такой поддержки. В итоге мы заменили 160 000 строк C++ (без учета тестов) на 90 000 строк Rust (включая тесты). Версия Rust продемонстрировала преимущества в производительности и использовании памяти во время выполнения по сравнению с C++. Учитывая этот успех, Rust был полностью доступен всем пользователям WhatsApp и многим платформам: Android, iOS, Mac, Интернет, носимые устройства и другие. Имея эти положительные доказательства, языки, безопасные для памяти, будут играть все возрастающую роль в общем подходе WhatsApp к безопасности приложений и пользователей.
Со временем мы добавили больше проверок на несоответствующие структуры в определенных типах файлов, чтобы помочь защитить последующие библиотеки от попыток дифференциального использования парсера. Кроме того, мы проверяем типы файлов с более высоким риском, даже если они структурно соответствуют, на предмет индикаторов риска. Например, PDF-файлы часто являются средством распространения вредоносных программ, а более конкретно, наличие встроенных файлов и элементов сценариев в PDF-файле еще больше повышает риски. Мы также обнаруживаем, когда один тип файла маскируется под другой с помощью поддельного расширения или типа MIME. Наконец, мы единообразно помечаем известные опасные типы файлов, такие как исполняемые файлы или приложения, для специальной обработки в пользовательском интерфейсе приложения. В целом мы называем этот ансамбль проверок «Калейдоскоп». Эта система защищает пользователей WhatsApp от потенциально вредоносных неофициальных клиентов и вложений. Хотя проверки формата не остановят каждую атаку, этот уровень защиты помогает смягчить многие из них.
Каждый месяц эти библиотеки распространяются на миллиарды телефонов, ноутбуков, настольных компьютеров, часов и браузеров, работающих на нескольких операционных системах, для людей, пользующихся WhatsApp, Messenger и Instagram. Это крупнейшее за всю историю развертывание кода Rust на разнообразном наборе платформ и продуктов для конечных пользователей, о которых нам известно. Наш опыт говорит о готовности к производству и уникальном ценностном предложении Rust на стороне клиента.
Как Rust вписывается в подход WhatsApp к безопасности приложений
Это лишь один пример многочисленных инвестиций WhatsApp в безопасность. Именно поэтому мы создали сквозное шифрование по умолчанию для личных сообщений и звонков, предлагаем сквозное шифрование резервные копии и использовать ключевая технология прозрачности для проверки безопасного соединения, обеспечения дополнительной защиты вызовов и многого другого.
WhatsApp имеет успешный опыт громкого разговора, когда мы обнаруживаем проблемы, и работы по привлечению злоумышленников к ответственности. Например, WhatsApp сообщает о CVE для важных проблем, которые мы обнаруживаем в наших приложениях, даже если мы не находим доказательств эксплуатации. Мы делаем это, чтобы дать пользователям WhatsApp лучший шанс защитить себя, просматривая рекомендации по безопасности и быстро обновляя их.
Чтобы обеспечить безопасность приложений, мы сначала должны выявить и количественно оценить источники риска. Мы делаем это посредством внутренних и внешних аудитов, таких как Общественная оценка Группы NCC сквозных зашифрованных резервных копий WhatsApp, фаззинга, статического анализа, управления цепочками поставок и автоматического анализа поверхностей атак. Мы также недавно расширили нашу Программа вознаграждения за ошибки представить Исследовательский прокси WhatsApp – инструмент, который делает исследование сетевого протокола WhatsApp более эффективным.
Далее мы снижаем выявленный риск. Как и многие другие специалисты в отрасли, мы обнаружили, что большинство опубликованных нами уязвимостей высокой степени серьезности были связаны с проблемами безопасности памяти в коде, написанном на языках программирования C и C++. Чтобы бороться с этим, мы инвестируем в три параллельные стратегии:
- Спроектируйте продукт так, чтобы свести к минимуму ненужное воздействие на поверхность атаки.
- Инвестируйте в обеспечение безопасности оставшегося кода C и C++.
- По умолчанию для нового кода выбраны безопасные для памяти языки, а не C и C++.
В WhatsApp добавлены средства защиты, такие как CFI, усиленные распределители памяти, более безопасные API-интерфейсы обработки буферов и многое другое. Разработчики C и C++ проходят специализированное обучение по безопасности, получают рекомендации по разработке и автоматический анализ безопасности своих изменений. У нас также есть строгие соглашения об уровне обслуживания для устранения проблем, выявленных в процессе выявления рисков.
Ускорение внедрения Rust для повышения безопасности
Rust позволил команде безопасности WhatsApp разработать безопасную, высокопроизводительную, кроссплатформенную библиотеку, обеспечивающую единообразие и безопасность мультимедиа, передаваемого на платформе, на всех устройствах. Это важный шаг вперед в обеспечении дополнительной скрытой безопасности для пользователей и часть нашего постоянного подхода к глубокоэшелонированной защите. Команды безопасности в WhatsApp и Meta подчеркивают возможности эффективного внедрения Rust для заинтересованных команд, и мы ожидаем ускорения внедрения Rust в ближайшие годы.
#Rust #масштабе #дополнительный #уровень #безопасности #для #WhatsApp
Продолжение темы

