Metódy bezpečnej práce s pamäťou umožnili výrazne znížiť počet zraniteľností v Androide.

Spoločnosť Google zhrnula výsledky iniciatívy na zavedenie metód bezpečného vývoja (Safe Coding) do systému Android, ako sú použitie programovacích jazykov, ktoré zabezpečujú bezpečnú prácu s pamäťou, aplikácia statických analyzátorov a navrhovanie API s ohľadom na bezpečnosť. Zmeny umožnili znížiť podiel zraniteľností súvisiacich s pamäťou v systéme Android z 76 % v roku 2019 na 24 % v roku 2024, čo je výrazne nižšie než priemerný ukazovateľ v odvetví - 70 %.

Inžinieri Googlu taktiež dospeli k záveru, že hlavným zdrojom problémov so zabezpečením je nový kód, a preto by sa pozornosť mala sústrediť na modernizáciu metód vývoja nového kódu. Už existujúci kód sa časom stáva spoľahlivejším a bezpečnejším (pozoruje sa exponenciálna závislosť bezpečnosti od času), čo robí investície do projektov prepisovania existujúceho kódu menej atraktívnymi. Napríklad 5-ročný kód má v priemere 3,4-krát nižšiu hustotu zraniteľností než nový kód. Pre projekty Android a Chromium sa vďaka zavádzaniu metód bezpečnej práce s pamäťou rozdiel zvyšuje na 7,4-krát.

Metódy bezpečnej práce s pamäťou umožnili výrazne znížiť počet zraniteľností v Androide.

Týmto spôsobom, ak sa podarí zabrániť vzniku chýb pri práci s pamäťou v novom kóde, s časom sa podobné chyby v starom kóde budú zisťovať čoraz menej často. Vo všeobecnosti Google odporúča neprepísať starý kód, ale sústrediť sa na písanie nového kódu v jazykoch, ktoré bezpečne manipulujú s pamäťou, a zabezpečiť prenosnosť medzi novým a starým kódom.

Okrem zníženia počtu zraniteľností používanie bezpečných metód programovania zvyšuje produktivitu vývoja, umožňuje dosiahnuť vyššiu kvalitu kódu a pozitívne vplýva na výkon. Napríklad prepisovanie kódu na generovanie QR kódov v Chromium v jazyku Rust umožnilo dosiahnuť zvýšenie jeho výkonu o 95 % vďaka zbaveniu sa režijných nákladov spôsobených potrebou aplikácie dodatočnej izolácie sandbox.

Rýchlosť a kvalita vývoja sa zvyšuje zjednodušením testovania a presunutím zisťovania chýb na skoré štádiá vývoja, v ktorých sú chyby rozpoznané ešte predtým, než sa vývojár pustí do overovania kódu. Ako príklad sú uvedené ukazovatele návratu zmien — pre kód v Rust je počet návratov zmien v dôsledku zistenia nepredvídaných chýb dvakrát nižší ako pre kód v C++.

Vo všeobecnosti sa aplikuje bezpečných metód programovania, ktoré predstavujú najúčinnejšiu paradigmou vývoja v súčasnosti, ktorá nahradila predtým používané tri prístupy:

  • Oprava zraniteľností po ich zistení. Nákladné, vyžaduje časté uvoľňovanie aktualizácií a ich rýchle doručovanie používateľom.
  • Predchádzajúca ochrana, zameraná na aplikáciu techník, ktoré sťažujú využívanie zraniteľností. Cena takejto ochrany bola pokles výkonu a neustála hra s útočníkmi.
  • Skoré zistenie zraniteľností pomocou fuzzing testovania a nástrojov ako AddressSanitizer a MemorySanitizer. Metóda iba odstraňovala symptómy, nie príčinu choroby, a vyžadovala neustálu prácu.

Metódy bezpečnej práce s pamäťou umožnili výrazne znížiť počet zraniteľností v Androide.
Metódy bezpečnej práce s pamäťou umožnili výrazne znížiť počet zraniteľností v Androide.


Zdroj: opennet.ru
Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster