Az NCC Group kutatói a nyílt forráskódú projekt auditálásának eredményei , valós idejű operációs rendszer (RTOS), amely arra összpontosít, hogy eszközöket lát el az "Internet of Things" (IoT) koncepciójának megfelelően. Az audit során kiderült a Zephyrben és 1 sebezhetőség a MCUbootban. A Zephyr fejlesztése Intel cégek részvételével zajlik.
Összesen 6 sebezhetőséget azonosítottak a hálózati stackben, 4-et a kernelben, 2-t a parancssorban, 5-öt a rendszerhíváskezelőkben, 5-öt az USB alrendszerben és 3-at a firmware frissítési mechanizmusban. Két probléma kritikus szintű, kettő magas, 9 mérsékelt, 9 alacsony és 4 figyelembe vétele ajánlott. A kritikus problémák az IPv4 stacket és az MQTT parserét érintik, míg a veszélyesek az USB tömegtároló és az USB DFU meghajtókat. Az információ nyilvánosságra hozatalakor javításokat csak a 15 legveszélyesebb sebezhetőségre készítettek, a szolgáltatási megszakításhoz vezető problémák vagy a kernel védelmi mechanizmusainak hiányosságai még mindig javítatlanok.
Az IPv4 stackben távolról kihasználható sebezhetőséget találtak, amely memória sérüléshez vezet a bizonyos módon módosított ICMP-csomagok feldolgozása során. Egy másik súlyos probléma az MQTT protokoll parserében található, amely a mezők hosszának megfelelő ellenőrzésének hiányából fakad, és távoli kódvégrehajtáshoz vezethet. Kevésbé veszélyes problémák, amelyek szolgáltatási megszakítást okoznak, az IPv6 stackben és a CoAP protokoll megvalósításában találhatók.
A többi probléma helyben kihasználható a szolgáltatási megszakítások vagy kernel szintű kódvégrehajtás előidézésére. E sebezhetőségek nagy része a rendszerhívások érveinek megfelelő ellenőrzések hiányával függ össze, ami a kernel memória tetszőleges területeinek írásához és olvasásához vezethet. A problémák közé tartozik a rendszerhívások kezelésére szolgáló kód közvetlen hívása - a negatív számú rendszerhívás hívása egész szám túlcsorduláshoz vezet. A kernelben a védelmi ASLR (címtartomány véletlenítése) és a kanárimarkerek beszerelési mechanizmusának megvalósításában is problémák merültek fel, amelyek ezeket a mechanizmusokat hatástalanná teszik.
Sok problémát érintenek az USB stack és az egyes meghajtók. Például az USB mass storage problémája lehetővé teszi a buffer overflow előidézését, és kód végrehajtását a kernel szintjén, amikor az eszközt egy támadó által ellenőrzött USB hosthoz csatlakoztatják. Az USB DFU, az új firmware USB-n keresztüli letöltésére szolgáló meghajtó, lehetővé teszi, hogy titkosítás alkalmazása nélkül módosított firmware képet töltsenek be a belső Flash mikrokontrollerbe, megkerülve az aláírás-ellenőrzés által biztosított védett indulási módot. Ezenkívül áttekintették az open-source bootloader kódját. , amelyben találtak egy nem kritikus sérülékenységet,
ami puffertúlcsorduláshoz vezethet az SMP (Simple Management Protocol) protokoll UART-on keresztüli használata során.
Emlékeztetőül, a Zephyr minden folyamat számára csak egy globális megosztott virtuális címtartományt (SASOS, Single Address Space Operating System) biztosít. Az alkalmazásokra specifikus kód kombinálódik az adott felhasználásra optimalizált maggal, amely monolitikus futtatható fájlt képez a betöltéshez és az adott hardveren történő futtatáshoz. Minden rendszerforrást a fordítási fázisban határoznak meg, ami csökkenti a kód méretét és növeli a teljesítményt. A rendszerkép csak azokat a magfunkciókat tartalmazhatja, amelyek az alkalmazás végrehajtásához szükségesek.
Figyelemre méltó, hogy a Zephyr egyik kulcsfontosságú előnye a biztonságra való tekintettel történő fejlesztés. , hogy a fejlesztés minden szakasza kötelező kódbiztonsági ellenőrzési lépéseken megy keresztül: fuzzing tesztelés, statikus elemzés, penetrációs tesztelés, kódellenőrzés, backdoor beépítések elemzése és fenyegetésmodellezés.
Forrás: opennet.ru
