„Minus 50 000 linii kodu”: Meta przepisała część komunikatora WhatsApp z C++ na Rust

„Minus 50 000 linii kodu”: Meta przepisała część komunikatora WhatsApp z C++ na Rust

Meta poinformowała, że przepisała swoją bibliotekę wamedia z C++ na Rust. Odpowiada ona za przetwarzanie i weryfikację plików multimedialnych wysyłanych przez użytkowników WhatsApp.

Według firmy wamedia przetwarza miliardy plików miesięcznie na różnych platformach: Androidzie, iOS, macOS, w wersji webowej, na urządzeniach typu wearables oraz w przeglądarkach. Zadaniem biblioteki jest sprawdzanie, czy pliki multimedialne spełniają wymagania dotyczące formatu i struktury, oraz blokowanie tych, które mogłyby powodować błędy w podatnych bibliotekach systemowych.

Historia przejścia na Rust sięga 2015 roku, kiedy ujawniono podatność Stagefright. Umożliwiała ona atakowanie użytkowników za pomocą złośliwych plików MP4 i infekowanie urządzeń z Androidem poprzez biblioteki systemowe. Wówczas WhatsApp zaczął chronić użytkowników po stronie aplikacji, weryfikując pliki przed ich przetwarzaniem, zamiast polegać wyłącznie na aktualizacjach systemu operacyjnego.

Migracja biblioteki do Rust odbywała się równolegle z oryginalną implementacją w C++. Zespół testował nową wersję i porównywał wyniki, aby upewnić się, że implementacja w Rust zachowuje się identycznie jak wcześniejsza wersja w C++. W efekcie zamiast 160 000 linii kodu w C++ (bez testów) powstało 90 000 linii kodu w Rust (wraz z testami), co oznacza redukcję kodu o 50 000 linii.

„To największe jak dotąd wdrożenie kodu w Rust na różnorodnych platformach końcowych i w produktach, o jakim wiemy. Nasze doświadczenie potwierdza gotowość Rusta do użycia po stronie klienta oraz jego unikalną wartość” — podkreślają przedstawiciele firmy.

WhatsApp dodał także dodatkowe mechanizmy weryfikacji dla bardziej ryzykownych typów plików, takich jak PDF, oraz plików z fałszywymi rozszerzeniami lub typami MIME. Ten zestaw kontroli otrzymał nazwę Kaleidoscope.

Avatar
Jan 28

Sejm przyjął nowelizację ustawy o Krajowym Systemie Cyberbezpieczeństwa wdrażającą dyrektywę NIS2

Sejm przyjął nowelizację ustawy o Krajowym Systemie Cyberbezpieczeństwa, która dostosowuje polskie prawo do unijnej dyrektywy NIS2 i rozszerza zakres regulacji w obszarze cyberbezpieczeństwa, – informuje Sejm RP. Nowe przepisy obejmują kolejne sektory gospodarki i wprowadzają nowe obowiązki dla firm uznanych za kluczowe lub ważne z punktu widzenia funkcjonowania państwa.
0
Jan 10, 2025

Wybuch w Las Vegas: ChatGPT oskarżany o pomoc w stworzeniu bomby

Rok dla OpenAI nie zaczął się najlepiej. Oprócz zarzutów wobec Sama Altmana, pojawiła się informacja o wybuchu Tesla Cybertruck w Las Vegas 1 stycznia, który niestety pochłonął życie jednej osoby. Według policji Matthew Alan Livelsberger użył ChatGPT do uzyskania informacji na temat ilości materiałów wybuchowych oraz rodzaju pistoletu, który mógłby je zdetonować.
0
Feb 20, 2025

Wprowadzenie Rust do jądra Linux: Oświadczenie Griega Kroaha-Hartmana i Keisa Cooka

Greg Kroah-Hartman, odpowiedzialny za wsparcie stabilnej gałęzi jądra Linux, wyraził poparcie dla rozwoju nowych komponentów jądra w języku Rust. Jako osoba, przez którą przez ostatnie 15 lat przechodziła cała dokumentacja błędów i podatności w jądrze Linux, twierdzi, że większość błędów w jądrze wynika z niewłaściwie obsługiwanych przypadków w języku C (tzw. corner case), które zostałyby całkowicie wykluczone w kodzie napisanym w języku Rust.
0

This site uses cookies to offer you a better browsing experience.

Find out more on how we use cookies and how to change cookie preferences in our Cookies Policy.

Customize
Save Accept all cookies