Meta har omskrevet en del af WhatsApp-messengeren til Rust.

Ingeniører fra Meta* har udgivet en rapport om omarbejdning af WhatsApp messenger-komponenter ved hjælp af Rust-sproget. Som en del af projektets sikkerhedsforbedringsinitiativ blev der udviklet en ny version af wamedia-biblioteket, oprindeligt skrevet i C++ og brugt af WhatsApp til at sende og behandle MP4-mediefiler.

Redesignet blev foranlediget af opdagelsen af ​​fejl i wamedia, der opstod under behandling af misdannede MP4-filer. Disse fejl blev rettet, og der blev tilføjet filvaliditetskontroller, men biblioteket udgjorde potentielt en sikkerhedsrisiko på grund af den potentielle tilstedeværelse af lignende, endnu ikke opdagede fejl og dets brug i automatiseret behandling af indgående data. Udnyttelse af en ikke-opdateringssårbarhed i wamedia kunne føre til kodeudførelse ved at sende specialfremstillede multimediedata, som for nylig demonstreret i Dolby Unified Decoder-biblioteket.

I stedet for gradvist at omskrive wamedia, blev en ny biblioteksversion oprettet i Rust, udviklet parallelt med den originale C++-version. I sidste ende blev cirka 160 linjer C++-kode erstattet med 90 linjer Rust-kode.

De største udfordringer ved at integrere Rust-kode i WhatsApp var den øgede størrelse på eksekverbare filer på grund af integrationen af ​​Rust-standardbiblioteket og behovet for at tilpasse byggesystemet, samtidig med at understøttelsen af ​​alle understøttede platforme blev opretholdt. Rust-versionen indeholdt dog ikke kun en betydelig reduktion i antallet af kodelinjer, men demonstrerede også ydeevneforbedringer og reduceret hukommelsesforbrug sammenlignet med C++-implementeringen.

В настоящее время версия WhatsApp с кодом на Rust доведена до пользователей Android, IOS, macOS, Web, носимых устройств и некоторых других платформ. Утверждается, что опыт внедрения Rust в WhatsApp и распространение новой библиотеки wamedia на миллиарды устройств и браузеров показывает готовность к применению языка Rust в глобальном масштабе.

Ifølge Meta skyldes størstedelen af ​​farlige sårbarheder i produkter under udvikling problemer med hukommelsesstyring i C- og C++-kode. For at forhindre sådanne sårbarheder promoverer virksomheden tre strategier: brug af hukommelsessikre sprog til ny kode; reduktion af angrebsfladen under design; og investering i udvikling af sikkerhedsværktøjer til den resterende C- og C++-kode.

Kilde: opennet.ru

Køb pålidelig hosting til websteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster