Metody bezpečné práce s pamětí výrazně snížily počet zranitelností v Androidu

Společnost Google shrnula výsledky iniciativy na zavedení metod bezpečného vývoje do systému Android (Safe Coding), jako je použití programovacích jazyků, které zajišťují bezpečnou práci s pamětí, aplikace statických analyzátorů a plánování API s ohledem na bezpečnost. Změny vedly ke snížení podílu zranitelností spojených s pamětí v systému Android z 76 % v roce 2019 na 24 % v roce 2024, což je výrazně nižší než průměrný ukazatel v odvětví — 70 %.

Inženýři společnosti Google rovněž došli k závěru, že hlavním zdrojem bezpečnostních problémů je nový kód, a proto by se pozornost měla soustředit na modernizaci metod vývoje nového kódu. Již existující kód se časem stává více prověřeným a bezpečným (existuje exponenciální závislost bezpečnosti na čase), což činí investice do projektů přepisování stávajícího kódu méně výhodnými. Například kód starý 5 let má v průměru 3,4krát nižší hustotu zranitelností než nový kód. Pro projekty Android a Chromium díky zavedení metod bezpečné práce s pamětí je tento rozdíl 7,4krát.

Metody bezpečné práce s pamětí výrazně snížily počet zranitelností v Androidu

Takže pokud se zabrání vzniku chyb při práci s pamětí v novém kódu, v průběhu času budou podobné chyby ve starém kódu odhalovány coraz méně často. Obecně Google doporučuje nepřepisovat starý kód, ale soustředit se na psaní nového kódu v bezpečně pracujících jazycích s pamětí a zajištění přenositelnosti mezi novým a starým kódem.

Kromě snížení počtu zranitelností zvyšuje použití bezpečných metod programování produktivitu vývoje, umožňuje dosáhnout vyšší kvality kódu a pozitivně ovlivňuje výkon. Například přepisování kódu pro generování QR kódů v Chromiu v jazyce Rust vedlo k zvýšení jeho výkonu o 95 % díky odstranění režijních nákladů způsobených nutností aplikace dodatečné izolace sandboxu.

Rychlost a kvalita vývoje se zvyšují zjednodušením testování a posunem odhalování chyb do raných fází vývoje, během kterých jsou chyby patrné ještě předtím, než se vývojář pustí do kontroly kódu. Jako příklad jsou uváděny míry rollbacku změn – pro kód v Rustu je počet rollbacků v důsledku odhalení neočekávaných chyb dvakrát nižší než pro kód v C++.

Obecně jsou bezpečné metody programování prezentovány jako nejefektivnější vývojová paradigma dneška, které nahradilo dříve používané tři přístupy:

  • Oprava zranitelností po jejich odhalení. Nákladné, vyžaduje časté vydávání aktualizací a jejich rychlé dodání uživatelům.
  • Proaktivní ochrana zaměřená na používání technik, které ztěžují zneužití zranitelností. Cena této ochrany spočívala ve snížení výkonu a neustále hraní kočky a myši s útočníky.
  • Včasné odhalení zranitelností pomocí fuzzing testování a nástrojů, jako jsou AddressSanitizer a MemorySanitizer. Metoda pouze odstranila symptomy, nikoli příčinu problému, a vyžadovala neustálou práci.

Metody bezpečné práce s pamětí výrazně snížily počet zranitelností v Androidu
Metody bezpečné práce s pamětí výrazně snížily počet zranitelností v Androidu


Zdroj: opennet.ru
Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster