Google добавя код на Rust към модема на Pixel 10

Стефан Николов Последна промяна на 18 April 2026 в 10:36 403 0

Google добавя код на Rust към модема на Pixel 10

Снимка RealToughCandy.com/Pexels

Google добавя код на Rust към модема на Pixel 10

Google насочи вниманието си директно към една от най-незащитените части на съвременните смартфони: модемът за мобилна връзка. Компанията обаче не се опитва да пренапише натрупания в продължение на десетилетия фърмуер за модема. Вместо това тя добавя DNS-парсер, написан на Rust, към модема на Pixel 10, за да засили защитата на една уязвима зона, която традиционните защитни механизми на операционната система не покриват напълно. Работата е резултат от години на проучвания, показващи, че след като атакуващият достигне модема, обичайните за операционната система мерки за изолиране в пясъчник и ограничаване на експлойтите вече на практика нямат значение.

Проблемът със сигурността започва от начина, по който са изградени клетъчните модеми. Безжичната част на телефона на практика си има собствена операционна система, обикновено написана на C и C++, и изпълнява десетки мегабайта предимно фирмен код, който се занимава с всичко – от обработката на сигнала до договарянето на протоколите.

Управлението на паметта в тази среда е трудно, а резултатът е фърмуер, който е небезопасен за нея по начини, които отварят вратата за проблеми като препълване на буфера, бъгове при използване след нейното освобождаване и изтичане на информация, които могат да бъдат верижно свързани чрез отдалечено изпълнение на код.

Екипът на Project Zero на Google вече демонстрира дистанционно стартиране на код срещу Exynos-базирания модем на Pixel през интернет и е каталогизирал повече от две дузини уязвимости в Exynos модемите, 18 от които са класифицирани като сериозни. Коригирането на тези конкретни бъгове не промени основния риск: кодовата база остава сложна, затворена и силно уязвима.

Езикът за програмиране Rust дава на Google една нова възможност. Този език осигурява безопасността на паметта по време на компилирането. При Rust някои класове грешки в паметта просто не могат да се компилират, което го прави подходящ за критични за производителността елементи, които обаче се нуждаят от гаранции за безопасност. Вместо да пренапише всичко, Google идентифицира една особено уязвима и ясно дефинирана подсистема: DNS парсинга в модема.

Тъй като функциите на клетъчните мрежи се прехвърлиха към IP мрежите за данни, DNS се превърна в основна зависимост за това как телефоните намират услугите и маршрутизират функции като пренасочване на обажданията. В тази ситуация DNS парсерите се налага да използват ненадеждни пакети и да декодират доста сложен протокол, което ги превръща в повтарящ се източник на използваеми грешки, когато са реализирани на C или C++.

За да подсигури този процес, Google избра DNS библиотеката hickory-proto Rust, която е широко използвана в екосистемата Rust и има обширни тестове и активна поддръжка. Модемът на Pixel не е изправен пред екстремни ограничения по отношение на паметта, така че екипът може да интегрира орязана, no_std версия на hickory-proto директно във фърмуера на модема.

Компонентите на Rust добавят около 371 KB към фърмуера, след като екипът премахна зависимостите от стандартните библиотеки, за да отговори на ограниченията на модема.

    За писането на коментар е необходима регистрация.
    Моля, регистрирайте се от TУК!
    Ако вече имате регистрация, натиснете ТУК!

    Няма коментари към тази новина !