25 sebezhetőség az RTOS Zephyrben, beleértve azokat is, amelyeket ICMP-csomagon keresztül használnak ki

Az NCC Group kutatói közzétett ingyenes projektellenőrzési eredmények Zefír, fejlesztés valós idejű operációs rendszer (RTOS), amelynek célja a tárgyak internete koncepciójának (IoT, Internet of Things) megfelelő eszközök felszerelése. Az ellenőrzés során kiderült 25 sebezhetőség Zephyrben és 1 biztonsági rést az MCUbootban. A Zephyr fejlesztése az Intel cégek részvételével zajlik.

Összesen 6 sebezhetőséget azonosítottak a hálózati veremben, 4-et a kernelben, 2-t a parancshéjban, 5-öt a rendszerhívás-kezelőkben, 5-öt az USB-alrendszerben és 3-at a firmware-frissítési mechanizmusban. Két probléma kritikus, kettő magas, 9 közepes, 9 alacsony és 4 megfontolandó. A kritikus problémák az IPv4-vermet és az MQTT-elemzőt érintik, a veszélyesek az USB-háttértárat és az USB DFU-illesztőprogramokat érintik. Az információ nyilvánosságra hozatalakor a legveszélyesebb sérülékenységek közül csak 15 esetében készültek javítások; a szolgáltatásmegtagadáshoz vezető vagy a kernel további védelmi mechanizmusainak hibáihoz kapcsolódó problémák továbbra sem javítottak.

A platform IPv4-vermében távolról kihasználható biztonsági rést azonosítottak, amely bizonyos módon módosított ICMP-csomagok feldolgozása során memóriasérüléshez vezet. Egy másik komoly problémát találtak az MQTT protokollelemzőben, amit a megfelelő fejlécmező-hossz-ellenőrzés hiánya okoz, és távoli kódvégrehajtáshoz vezethet. Kevésbé súlyos szolgáltatásmegtagadási problémák találhatók az IPv6 veremben és a CoAP protokoll megvalósításában.

Más problémák helyileg kihasználhatók szolgáltatásmegtagadás előidézésére, vagy kód futtatására a kernel szintjén. Ezeknek a sebezhetőségeknek a többsége a rendszerhívási argumentumok megfelelő ellenőrzésének hiányával kapcsolatos, és a kernelmemória tetszőleges területére való íráshoz és olvasáshoz vezethet. A problémák kiterjednek magára a rendszerhívás-feldolgozó kódra is – egy negatív rendszerhívási szám hívása egész szám túlcsordulást eredményez. A kernel problémákat azonosított az ASLR védelem (címterület véletlenszerűsítése) megvalósításában és a veremben a kanári jelek beállításának mechanizmusában is, ami hatástalanná tette ezeket a mechanizmusokat.

Számos probléma érinti az USB-vermet és az egyes illesztőprogramokat. Például az USB-háttértár problémái puffertúlcsordulást okozhatnak, és a rendszermag szintjén kódot hajthatnak végre, amikor az eszköz a támadó által vezérelt USB-állomáshoz csatlakozik. Az USB DFU, az új firmware USB-n keresztüli betöltésére szolgáló illesztőprogram biztonsági rése lehetővé teszi, hogy egy módosított firmware-képet töltsön be a mikrokontroller belső Flash-jébe titkosítás nélkül, és a biztonságos rendszerindítási mód megkerülésével az összetevők digitális aláírással történő ellenőrzésével. Ezenkívül tanulmányozták a nyitott rendszerbetöltő kódot MCUboot, amelyben egy jóindulatú sebezhetőséget találtak,
ami puffertúlcsorduláshoz vezethet az SMP (Simple Management Protocol) protokoll használatakor az UART felett.

Emlékezzünk vissza, hogy a Zephyrben minden folyamathoz csak egy globális megosztott virtuális címtér (SASOS, Single Address Space Operating System) van biztosítva. Az alkalmazás-specifikus kód egy alkalmazás-specifikus kernellel kombinálva monolitikus végrehajtható fájlt alkot, amely betölthető és adott hardveren futtatható. Az összes rendszererőforrást a fordításkor határozzák meg, csökkentve a kód méretét és növelve a teljesítményt. A rendszerkép csak azokat a kernelfunkciókat tartalmazhatja, amelyek az alkalmazás futtatásához szükségesek.

Figyelemre méltó, hogy a Zephyr legfontosabb előnyei közé tartozik említett fejlesztés a biztonságot szem előtt tartva. Jóváhagyotthogy a fejlesztés minden szakasza átesik a kód biztonságának megerősítésének kötelező szakaszain: fuzzing tesztelés, statikus elemzés, penetrációs tesztelés, kód felülvizsgálata, a hátsó ajtó megvalósításának elemzése és a fenyegetés modellezése.

Forrás: opennet.ru

Hozzászólás