WhatsApp práve spravil zásadnú zmenu bez upozornenia používateľov. Rust má obmedziť jeden z najnebezpečnejších typov útokov

WhatsApp prešiel z programovacieho jazyka C++ na efektívnejší jazyk Rust, ktorý markantne zvyšuje ochranu aplikácie.

WhatsApp titulka_3
Zdroj: Vosveteit.sk

WhatsApp nedávno predstavil Prísne nastavenia účtu, funkciu, ktorá rieši to, kto a ako sa k tebe cez WhatsApp môže priblížiť. V pozadí však prebehla ešte zásadnejšia zmena. Meta potichu zasiahla priamo do technických základov aplikácie. Bez oznamov, bez novej ikonky a bez tlačidla v menu. WhatsApp totiž prestal dôverovať starým programátorským zvykom a kritické časti aplikácie presunul do jazyka Rust, ktorý výrazne sťažuje život malvéru ešte skôr, než stihne zareagovať používateľ.

Táto zmena nadväzuje presne tam, kde končí používateľské nastavenie. End-to-end šifrovanie síce chráni správy pred cudzími očami, no zároveň znamená, že WhatsApp nevidí, čo sa skrýva v obrázku, videu či PDF, ktoré ti niekto pošle. Obsah sa „rozbalí“ až v tvojom telefóne. A práve tam sa v minulosti odohrávali najnebezpečnejšie útoky. Prechod z C++ na Rust tak predstavuje tichú, ale zásadnú druhú líniu obrany. Ak sa k tebe škodlivý súbor dostane, aplikácia ho má šancu zastaviť skôr, než sa premení na reálny problém, informuje Meta.

Odoberaj Vosveteit.sk cez Telegram a prihlás sa k odberu správ

WhatsApp denne spracuje obrovské množstvo súborov. Fotografie, videá, PDF dokumenty či hlasové správy sa sťahujú a otvárajú automaticky. Práve tu vzniká priestor pre útok. Aj súbor, ktorý vyzerá úplne nevinne, môže obsahovať škodlivý kód. Stačí chyba v systéme alebo v knižnici a útočník získa prístup tam, kam nemal nikdy vojsť.

Potreba lepšej ochrany

Zlom prišiel v roku 2015. Android vtedy zasiahla zraniteľnosť známa ako Stagefright. Chyba sa nachádzala priamo v systémových knižniciach na spracovanie médií. Aplikácie ju nemohli opraviť. Používatelia čakali na aktualizácie celé mesiace. WhatsApp si vtedy uvedomil, že spoliehať sa výlučne na operačný systém znamená vystaviť ľudí zbytočnému riziku.

spehovanie whatsapp
Zdroj: WhatsApp, Vosveteit, pngping

Firma preto rozšírila vlastnú knižnicu na spracovanie MP4 súborov o kontroly, ktoré odhalili neštandardné a podozrivé dáta ešte pred ich odoslaním. Tento krok ochránil používateľov rýchlejšie než akákoľvek systémová záplata.

Lenže objavil sa ďalší problém. Táto knižnica vznikla v C++. A práve tu sa začína končiť stará „C++ kultúra“.

V C++ sa bezpečnosť tradične riešila disciplínou programátora. Vývojár musel dodržiavať stovky pravidiel, dávať si pozor na každý ukazovateľ a veriť, že neurobil chybu. Pri malom projekte to ešte fungovalo. Pri kóde, ktorý beží na miliardách zariadení, sa tento model rozpadol. WhatsApp týmto krokom nepriamo priznal, že ani špičkovo platené tímy nedokázali pri takom rozsahu písať C++ kód bez pamäťových chýb.

Rust ponúkol iný prístup. Disciplínu nevymáhal človek, ale kompilátor.

„Keďže kontroly médií spracúvajú nedôveryhodné vstupy automaticky, identifikovali sme ich ako ideálne miesto pre pamäťovo bezpečný jazyk,“ uviedol WhatsApp.

Firma sa nepustila do pomalého prepisovania. Vyvinula Rust verziu paralelne s pôvodnou C++ knižnicou, porovnávala ich správanie a testovala ich proti sebe. Výsledok prekvapil aj samotných autorov. WhatsApp nahradil približne 160-tisíc riadkov C++ kódu za 90-tisíc riadkov v Ruste, tentoraz vrátane testov. Nová verzia dosiahla lepší výkon a nižšiu spotrebu pamäte.

„Naša skúsenosť s vytvorením a distribúciou tejto knižnice v Ruste miliardám zariadení dokazuje, že Rust je produkčne pripravený v globálnom meradle,“ konštatuje spoločnosť.

Tento krok má aj menej viditeľný politický rozmer. Začiatkom roka 2024 vydal Úrad Bieleho domu pre kybernetickú bezpečnosť (ONCD) memorandum, v ktorom vyzval technologické firmy, aby prestali používať C a C++ v kritickej infraštruktúre a prešli na pamäťovo bezpečné jazyky. WhatsApp sa tak ocitol v pozícii „vzorného žiaka“ novej globálnej bezpečnostnej stratégie, ktorú dnes presadzujú vlády aj regulátori.

Do celej rovnice vstupuje ešte jeden paradox, ktorý si veľa ľudí neuvedomuje. Koncové šifrovanie je dvojsečná zbraň. Chráni súkromie, no zároveň znemožňuje serverom analyzovať obsah správ. Ak ti niekto pošle škodlivý obrázok, WhatsApp ho nemôže odfiltrovať. Obsah sa rozbalí až v tvojom telefóne. Poslednou líniou obrany sa preto stáva kód v zariadení používateľa.

WhatsApp potichu zmenil základy, na ktorých stojí aplikácia, malvér sa už do nej tak ľahko nedostane
Zdroj: Meta

Práve tu zohráva Rust kľúčovú úlohu

WhatsApp postupne rozšíril systém kontrol, ktorý dnes nesie názov Kaleidoscope. Overuje štruktúru súborov, odhaľuje maskovanie jedného typu súboru za iný, kontroluje rizikové prvky v PDF dokumentoch a jasne označuje nebezpečné prílohy. Nejde o všemocný štít, ale o ďalšiu vrstvu, ktorá výrazne znižuje šance úspešného útoku.

Treba dodať, že tento posun neprišiel zadarmo. Rust má strmú učiacu krivku. Pre vývojárov zvyknutých na C++ znamená boj s tzv. Borrow Checkerom frustráciu a pomalší vývoj. Skutočnosť, že WhatsApp do tohto prechodu investoval, ukazuje, že cena jednej bezpečnostnej chyby dnes často prevýši náklady na drahší a náročnejší vývoj.

„Najvážnejšie zraniteľnosti, ktoré sme publikovali, pochádzali z problémov s pamäťovou bezpečnosťou v C a C++,“ priznáva WhatsApp.

Rust sa tak stal tichou, no dôležitou súčasťou aplikácie, ktorú denne používa viac než tri miliardy ľudí. Bez marketingu a bez veľkých vyhlásení. Skôr ako systematická snaha spevniť miesto, kde sa bezpečnosť láme najčastejšie, priamo v zariadení používateľa.

Google News Pridaj si Vosveteit.sk medzi obľúbené zdroje v Google News Pridať