A Chromium biztonsági problémáinak 70%-a a memória kezelésével kapcsolatos hibákból ered.

A Chromium projekt fejlesztői elemzték 912 veszélyes és kritikus sebezhetőséget fedeztek fel a Chrome stabil verzióiban 2015 óta, és arra a következtetésre jutottak, hogy ezek 70%-a a memória biztonságos kezelésének hiányából (mutatókkal kapcsolatos hibák C/C++ kódban) ered. E problémák fele (36,1%) a memória felszabadítása utáni pufferek használatával hozható összefüggésbe (use-after-free).

A Chromium biztonsági problémáinak 70%-a a memória kezelésével kapcsolatos hibákból ered.

A Chromium tervezésekor eredetileg figyelembe vették, hogy a kódban előfordulhatnak hibák, ezért nagy hangsúlyt fektettek a sandbox-izoláció alkalmazására a sebezhetőségek következményeinek korlátozása érdekében. Jelenleg ennek a technológiának az alkalmazási lehetőségei elérték határvonalukat, és a további folyamatok felosztása nem célszerű erőforrásfogyasztási szempontból.

A Google a kódbázis biztonságának fenntartása érdekében is alkalmazza a "két szabályt", amely szerint bármely újonnan hozzáadott kód nem eshet több mint két feltétel alá a három közül: ellenőrizetlen bemeneti adatok kezelése, nem biztonságos programozási nyelv (C/C++) használata, és emelt szintű jogosultságokkal való futtatás. E szabályból következik, hogy a külső adatok kezelésére szolgáló kódot vagy minimalizálni kell a jogosultságaikat (izolált), vagy biztonságos programozási nyelven kell megírni.

A kódbázis védelmének további javítása érdekében elindították a memória kezelésével kapcsolatos hibák megelőzésére irányuló projektet. Három fő megközelítést emelnek ki: C++ könyvtárak létrehozása a memória biztonságos kezelésére szolgáló funkciókkal és a szemétgyűjtő kiterjesztése, a védelmi mechanizmusok alkalmazása MTE (Memory Tagging Extension) és olyan nyelveken írt komponensek használata, amelyek biztonságos memóriakezelést biztosítanak (Java, Kotlin, JavaScript, Rust, Swift).

A várakozások szerint a munka két irányra összpontosít:

  • Jelentős változás a C++ fejlesztési folyamatában, amely nem zárja ki a teljesítményre gyakorolt negatív hatásokat (további határellenőrzések és szemétgyűjtés). A raw mutatók helyett javasolt, hogy a kódban a MiraclePtr, amely lehetővé teszi az use-after-free hibák biztonsági kockázat nélküli összeomlásra való redukálását, anélkül, hogy érzékelhető negatív hatással lenne a teljesítményre, memóriafogyasztásra és stabilitásra.
  • A memóriabiztonsági ellenőrzéseket végző nyelvek alkalmazása a fordítási időszakban kizárja a kód végrehajtásakor fellépő ellenőrzések miatt bekövetkező teljesítményromlást, de további költségekkel jár a C++-ban írt kód és az új nyelv közötti interakció szervezése.

A memóriabiztonsági könyvtárak használata a legegyszerűbb, de kevésbé hatékony megoldás. A Rust nyelvre való átírás a legnagyobb hatékonyságnak tekinthető, de igen költséges megoldás.

A Chromium biztonsági problémáinak 70%-a a memória kezelésével kapcsolatos hibákból ered.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster