Rūdys: papildomas „WhatsApp“ saugos sluoksnis

  • Siekdama sustiprinti apsaugą nuo kenkėjiškų programų, „WhatsApp“ priėmė ir išleido naują vartotojų apsaugos sluoksnį, sukurtą naudojant „Rust“.
  • „WhatsApp“ patirtis kuriant ir platinant medijos nuoseklumo biblioteką „Rust“ milijardams įrenginių ir naršyklių įrodo, kad „Rust“ yra paruošta gamybai pasauliniu mastu.

Mūsų žiniasklaidos valdymo strategija

„WhatsApp“ teikia numatytąjį šifravimą nuo galo iki galo, kad daugiau nei 3 milijardai žmonių galėtų saugiai siųsti pranešimus kiekvieną dieną. Internetinė sauga yra priešiška erdvė, todėl norėdami ir toliau užtikrinti, kad vartotojai galėtų saugiai siųsti pranešimus, nuolat pritaikome ir tobuliname savo strategiją kovai su kibernetinio saugumo grėsmėmis – visa tai palaikome WhatsApp infrastruktūrą, kad padėtų žmonėms prisijungti.

Pavyzdžiui, „WhatsApp“, kaip ir daugelis kitų programų, leidžia vartotojams bendrinti mediją ir kitų tipų dokumentus. WhatsApp padeda apsaugoti vartotojus įspėdama apie pavojingus priedus, pvz., APK, tačiau retos ir sudėtingos kenkėjiškos programos gali būti paslėptos iš pažiūros nepiktybiniame faile, pvz., paveikslėlyje ar vaizdo įraše. Šie kenkėjiškai sukurti failai gali būti nukreipti į nepataisytas operacinės sistemos, operacinės sistemos platinamų bibliotekų ar pačios programos spragas.

Siekdama apsisaugoti nuo tokių galimų gijų, „WhatsApp“ vis dažniau naudoja „Rust“ programavimo kalbą, įskaitant mūsų žiniasklaidos bendrinimo funkciją. Rust yra atmintį sauganti kalba, turinti daugybę saugumo pranašumų. Manome, kad tai yra didžiausias išleidimas pasaulyje iš bet kurios „Rust“ kalba parašytos bibliotekos.

Norėdami paaiškinti, kodėl ir kaip tai išleidome, pirmiausia turėtume pažvelgti į pagrindinį OS lygio pažeidžiamumą, kuris „WhatsApp“ atsiuntė svarbų signalą apie žiniasklaidos bendrinimo apsaugos stiprinimą.

2015 m. „Android“ pažeidžiamumas: pažadinimo skambutis dėl medijos failų apsaugos

2015 m. „Android“ įrenginiai ir juose veikiančios programos tapo pažeidžiami „Stagefright“ pažeidžiamumas. Klaida slypi medijos failų apdorojime operacinės sistemos teikiamose bibliotekose, todėl WhatsApp ir kitos programos negalėjo pataisyti pagrindinės pažeidžiamumo. Kadangi dažnai gali prireikti mėnesių, kol žmonės atnaujina savo programinę įrangą į naujausią versiją, siekėme rasti sprendimų, kurie apsaugotų „WhatsApp“ naudotojus net ir operacinės sistemos pažeidžiamumo atveju.

Tuo metu supratome, kad „WhatsApp“ jau sukurta kelių platformų C++ biblioteka, skirta siųsti ir nuosekliai formatuoti MP4 failus (vadinamą „wamedia“), kad būtų galima aptikti failus, kurie neatitinka MP4 standarto ir gali sukelti klaidas pažeidžiamoje OS bibliotekoje imtuvo pusėje, todėl kyla pavojus tikslo saugumui. Išleidome šį patikrinimą ir galėjome apsaugoti „WhatsApp“ vartotojus nuo „Stagefright“ pažeidžiamumo daug greičiau, nei atsižvelgdami į tai, kad vartotojai atnaujins pačią OS.

Tačiau kadangi medijos patikrinimai vykdomi automatiškai atsisiunčiant ir apdoroja nepatikimus įvestis, anksti nustatėme, kad „wamedia“ yra pagrindinis kandidatas naudoti atmintį saugančią kalbą.

Mūsų sprendimas: didelio masto rūdys

Vietoj laipsniško perrašymo mes sukūrėme Wamedia Rust versiją lygiagrečiai su originalia C++ versija. Naudojome diferencialinį sumaišymą ir platų integravimą bei vienetų testus, kad užtikrintume abiejų diegimų suderinamumą.

Dvi pagrindinės kliūtys buvo pradinis dvejetainio dydžio padidėjimas dėl standartinės Rust bibliotekos įtraukimo ir kūrimo sistemos palaikymas, reikalingas įvairioms platformoms, kurias palaiko WhatsApp. „WhatsApp“ padarė ilgalaikį statymą, kad sukurtų šią paramą. Galiausiai 160 000 C++ eilučių (išskyrus testus) pakeitėme 90 000 Rust eilučių (įskaitant testus). „Rust“ versija parodė našumo ir vykdymo laiko atminties naudojimo pranašumus, palyginti su C++. Atsižvelgiant į šią sėkmę, „Rust“ buvo visiškai įdiegta visiems „WhatsApp“ vartotojams ir daugeliui platformų: „Android“, „iOS“, „Mac“, žiniatinklio, nešiojamų ir kt. Turint šiuos teigiamus įrodymus, atmintį saugančios kalbos vaidins vis didesnį vaidmenį bendrame WhatsApp požiūryje į programų ir vartotojų saugumą.

Laikui bėgant pridėjome daugiau tikrinimų, ar nėra tam tikrų tipų failų neatitinkančių struktūrų, kad padėtume apsaugoti paskesnes bibliotekas nuo analizatoriaus diferencinio išnaudojimo bandymų. Be to, tikriname didesnės rizikos failų tipus, net jei jie struktūriškai atitinka rizikos rodiklius. Pavyzdžiui, PDF failai dažnai yra kenkėjiškų programų priemonė, o konkrečiau, PDF faile esantys įterptieji failai ir scenarijų elementai dar labiau padidina riziką. Taip pat aptinkame, kai vienas failo tipas užmaskuotas kaip kitas, naudodami suklastotą plėtinį arba MIME tipą. Galiausiai vienodai pažymime žinomus pavojingus failų tipus, tokius kaip vykdomieji failai arba programos, kad būtų galima specialiai tvarkyti programos UX. Iš viso šį čekių ansamblį vadiname „Kaleidoskopu“. Ši sistema apsaugo žmones „WhatsApp“ nuo galimai kenkėjiškų neoficialių klientų ir priedų. Nors formato patikrinimai nesustabdys kiekvienos atakos, šis apsaugos lygis padeda sušvelninti daugelį jų.

Kiekvieną mėnesį šios bibliotekos platinamos milijardams telefonų, nešiojamųjų kompiuterių, stalinių kompiuterių, laikrodžių ir naršyklių, veikiančių keliose operacinėse sistemose, skirtos žmonėms, naudojantiems „WhatsApp“, „Messenger“ ir „Instagram“. Tai didžiausias kada nors „Rust“ kodo diegimas įvairioms galutinio vartotojo platformoms ir produktams, apie kuriuos žinome. Mūsų patirtis byloja apie „Rust“ pasirengimą gamybai ir unikalų vertės pasiūlymą kliento pusėje.

Kaip Rust tinka „WhatsApp“ požiūriui į programų saugumą

Tai tik vienas iš daugelio WhatsApp investicijų į saugumą pavyzdys. Štai kodėl sukūrėme numatytąjį tiesioginį šifravimą asmeniniams pranešimams ir skambučiams, siūlome šifruotą nuo galo iki galo atsargines kopijasir naudoti pagrindinė skaidrumo technologija Norėdami patikrinti saugų ryšį, pateikite papildomų iškvietimas apsaugosir dar daugiau.

„WhatsApp“ turi didelę patirtį, kai randa problemų, ir stengiamasi, kad blogi veikėjai būtų atsakingi. Pavyzdžiui, WhatsApp praneša CVE dėl svarbių problemų, kurias randame savo programose, net jei nerandame išnaudojimo įrodymų. Tai darome tam, kad suteiktume WhatsApp žmonėms geriausią galimybę apsisaugoti, matydami saugos įspėjimą ir greitai atnaujindami.

Norėdami užtikrinti programos saugumą, pirmiausia turime nustatyti ir kiekybiškai įvertinti rizikos šaltinius. Mes tai darome per vidinį ir išorinį auditą, pvz NCC grupės viešas vertinimas „WhatsApp“ nuo galo iki galo užšifruotų atsarginių kopijų, neaiškumų, statinė analizėtiekimo grandinės valdymas ir automatizuota atakų paviršiaus analizė. Taip pat neseniai išplėtėme savo Bug Bounty programa pristatyti WhatsApp tyrimų tarpinis serveris – įrankis, kuris leidžia efektyviau tyrinėti „WhatsApp“ tinklo protokolą.

Toliau sumažiname nustatytą riziką. Kaip ir daugelis kitų pramonės atstovų, nustatėme, kad didžioji dalis mūsų paskelbtų didelio pažeidžiamumų atsirado dėl atminties saugos problemų kode, parašytame C ir C++ programavimo kalbomis. Siekdami kovoti su tuo, investuojame į tris lygiagrečias strategijas:

  1. Sukurkite gaminį taip, kad būtų sumažintas nereikalingas atakos paviršiaus poveikis.
  2. Investuokite į likusio C ir C++ kodo saugumo užtikrinimą.
  3. Naujam kodui pasirinkite saugias atmintyje kalbas, o ne C ir C++.

„WhatsApp“ pridėjo apsaugos priemonių, pvz., CFI, sustiprintus atminties skirstytuvus, saugesnes buferio tvarkymo API ir kt. C ir C++ kūrėjai turi specializuotus saugumo mokymus, kūrimo gaires ir automatizuotą pakeitimų saugos analizę. Taip pat turime griežtus SLA, skirtus rizikos nustatymo proceso metu atskleistoms problemoms spręsti.

Spartesnis rūdžių pritaikymas siekiant padidinti saugumą

Rust leido WhatsApp saugos komandai sukurti saugią, didelio našumo, kelių platformų biblioteką, kad platformoje bendrinama medija būtų nuosekli ir saugi visuose įrenginiuose. Tai svarbus žingsnis į priekį, siekiant užtikrinti papildomą vartotojų saugumą užkulisiuose ir mūsų nuolatinio gilios gynybos metodo dalis. „WhatsApp“ ir „Meta“ saugos komandos atkreipia dėmesį į galimybes suinteresuotoms komandoms pasiekti didelį „Rust“ pritaikymą, ir mes tikimės, kad ateinančiais metais „Rust“ bus pritaikytas sparčiau.

Nuoroda į informacijos šaltinį

Draugai: - Marketingo agentūra - Teisinės konsultacijos - Skaidrių skenavimas - Klaipedos miesto naujienos - Miesto naujienos - Saulius Narbutas - Įvaizdžio kūrimas - Veidoskaita - Teniso treniruotės - Pranešimai spaudai - Kauno naujienos - Regionų naujienos - Palangos naujienos