Az NCC Group kutatói
Ö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
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
Forrás: opennet.ru