Домой Новости Смартфоны Google перевела часть прошивки радиомодуля Pixel 10 на Rust

Google перевела часть прошивки радиомодуля Pixel 10 на Rust

Разработчики заменили DNS-парсер на библиотеку Hickory-proto, чтобы исключить ошибки памяти и повысить защищенность baseband-модема.

Компания Google внедрила Rust-код в прошивку радиомодуля (baseband) смартфонов Pixel 10. Специалисты заменили реализацию протокола DNS на библиотеку hickory-proto, которая известна по разработке DNS-сервера Hickory, применяемого, в частности, в инфраструктуре Let’s Encrypt.

Безопасность baseband-модема

Внедрение hickory-proto стало частью стратегии по усилению защиты baseband-модема. В современных сотовых сетях этот компонент активно использует DNS, например, при обработке переадресации вызовов. Поскольку DNS — сложный протокол, требующий разбора входящих данных, которым нельзя доверять, он становится потенциальной точкой входа для злоумышленников.

Google уже сталкивалась с серьезными проблемами в этой области. Так, в 2024 году была обнаружена уязвимость CVE-2024–27227, которая позволяла вызвать переполнение буфера при обработке специально подготовленных DNS-ответов.

Преимущества Rust и риски

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

Технические вызовы и оптимизация

Основной проблемой стало увеличение объема кода. Библиотека Hickory-proto изначально не проектировалась для встраиваемых систем:

  • Общий размер интегрированных компонентов составил 371 КБ.
  • Из них 350 КБ приходится на саму Hickory-proto и ее зависимости.
  • 17 КБ заняли вспомогательные функции, извлеченные из стандартной библиотеки.
  • 4 КБ составила прослойка для обработки ответов от DNS-серверов.

Для модемов Pixel текущее увеличение на 300+ КБ допустимо, так как оно укладывается в аппаратные ограничения. Однако для более ограниченных встраиваемых систем Google планирует оптимизировать библиотеку. В будущем разработчики Hickory-proto хотят внедрить флаги компиляции, позволяющие оставлять только необходимый функционал, что поможет существенно уменьшить размер итоговой прошивки.

Источник: http://www.opennet.ru