Meta heeft een deel van de WhatsApp-messenger herschreven in Rust.

Ingenieurs van Meta* hebben een rapport gepubliceerd over het herwerken van WhatsApp Messenger-componenten met behulp van de programmeertaal Rust. Als onderdeel van het initiatief om de beveiliging van het project te verbeteren, is een nieuwe versie van de wamedia-bibliotheek ontwikkeld. Deze bibliotheek was oorspronkelijk geschreven in C++ en wordt door WhatsApp gebruikt voor het verzenden en verwerken van MP4-mediabestanden.

De herziening werd ingegeven door de ontdekking van bugs in wamedia die optraden bij het verwerken van misvormde MP4-bestanden. Deze bugs werden verholpen en er werden controles op de geldigheid van bestanden toegevoegd, maar de bibliotheek vormde mogelijk een beveiligingsrisico vanwege de potentiële aanwezigheid van vergelijkbare, nog niet ontdekte bugs en het gebruik ervan in de geautomatiseerde verwerking van inkomende gegevens. Misbruik van een niet-gepatchte kwetsbaarheid in wamedia zou kunnen leiden tot het uitvoeren van code door het verzenden van speciaal geprepareerde multimediagegevens, zoals recentelijk is aangetoond in de Dolby Unified Decoder-bibliotheek.

In plaats van wamedia geleidelijk te herschrijven, werd een nieuwe bibliotheekversie in Rust ontwikkeld, parallel aan de originele C++-versie. Uiteindelijk werden ongeveer 160 regels C++-code vervangen door 90 regels Rust-code.

De belangrijkste uitdagingen bij de integratie van Rust-code in WhatsApp waren de toegenomen omvang van het uitvoerbare bestand als gevolg van de integratie van de standaardbibliotheek van Rust en de noodzaak om het buildsysteem aan te passen, terwijl de ondersteuning voor alle ondersteunde platforms behouden bleef. De Rust-versie bood echter niet alleen een aanzienlijke vermindering van het aantal regels code, maar liet ook prestatieverbeteringen en een lager geheugenverbruik zien in vergelijking met de C++-implementatie.

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

Volgens Meta worden de meeste gevaarlijke kwetsbaarheden in producten in ontwikkeling veroorzaakt door problemen met geheugenbeheer in C- en C++-code. Om dergelijke kwetsbaarheden te voorkomen, promoot het bedrijf drie strategieën: het gebruik van geheugenveilige programmeertalen voor nieuwe code; het verkleinen van het aanvalsoppervlak tijdens het ontwerp; en investeren in de ontwikkeling van beveiligingstools voor de resterende C- en C++-code.

Bron: opennet.ru

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster