A Google megosztotta tapasztalatait a Pixel 10 okostelefonokban található alapsávi modem firmware-jében található Rust kóddal kapcsolatban. A firmware DNS-protokoll kódját a hickory-proto Rust könyvtár váltotta fel, amelyet a Let's Encrypt infrastruktúra részét képező Hickory DNS-kiszolgáló fejlesztői fejlesztettek ki.
A Hickory protokoll firmware-be való integrálása egy olyan kezdeményezés része, amelynek célja az alapsávi modem biztonságának javítása. Az alapsávi modem firmware-je tartalmaz egy DNS-kezelőt, mivel ezt a protokollt használják a modern mobilhálózatokban, beleértve a hívásátirányítást is. A DNS egy összetett protokoll, amely megköveteli a nem megbízható külső adatok elemzését. A Google korábban már azonosított sebezhetőségeket a Pixel eszközök alapsávi modem firmware-jében. Például 2024-ben felfedezték a CVE-2024-27227 sebezhetőséget, amely puffer túlcsordulást okoz a speciálisan létrehozott DNS-válaszok feldolgozásakor.
A Rustban használt DNS-protokoll-elemző várhatóan csökkenti a támadási felületet, és mérsékli a DNS-alapú kihasználás kockázatát az alacsony szintű memóriakezelési hibák által okozott sebezhetőségek egész osztálya esetében. A projektet a memóriabiztos nyelveken írt más kódkomponensekben való szélesebb körű elterjedés alapjának is tekintik.
Az egyik problémás szempont a kapott kód viszonylag nagy mérete volt, mivel a Hickory-proto könyvtárat eredetileg nem beágyazott eszközökben való használatra tervezték. Az integrált komponensek összesen 371 KB-ot tettek ki, amelyből 350 KB a Hickory-proto kód és függőségei, 17 KB a standard könyvtárból kinyert segédfüggvények, 4 KB pedig egy réteg volt, amely a könyvtárat a DNS-kiszolgáló válaszainak feldolgozására használja.
Megjegyzendő, hogy a Pixel eszközmodem esetében a további 300 KB belefér a meglévő memóriakorlátokba, de az igényesebb beágyazott eszközök esetében optimalizálásra van szükség a kód méretének csökkentése érdekében. A Hickory-proto a jövőben olyan jelzőket tervez bevezetni, amelyek a fordítás során csak a szükséges funkciókat engedélyezik.
Forrás: opennet.ru
