Výskumníci z firmy NCC Group výsledky auditu voľného projektu , operačný systém reálneho času (RTOS), zameraný na vybavenie zariadení, ktoré spĺňajú koncept "Internet vecí" (IoT, Internet of Things). Počas auditu sa zistilo v Zephyr a 1 zraniteľnosť v MCUboot. Vývoj Zephyr prebieha za účasti spoločností Intel.
Spolu bolo identifikovaných 6 zraniteľností v sieťovom stacku, 4 v jadre, 2 v príkazovom riadku, 5 v spracovateľoch systémových volaní, 5 v subsystéme USB a 3 v mechanizme aktualizácie firmvéru. Dve zraniteľnosti boli klasifikované ako kritické, dve ako vysoké, 9 ako stredné, 9 ako nízke a 4 na zváženie. Kritické problémy sa týkajú IPv4 stacku a MQTT parsera, zatiaľ čo nebezpečné sú ovládače USB mass storage a USB DFU. K dátumu správy bol opravený iba 15 najnebezpečnejších zraniteľností, problémom spôsobujúcim DoS alebo súvisiacim s nedostatkami v mechanizmoch dodatočnej ochrany jadra zatiaľ neboli poskytnuté žiadne opravy.
V IPv4 stacku platformy bola objavená diaľkovo zneužiteľná zraniteľnosť, ktorá spôsobuje poškodenie pamäte pri spracovaní špeciálne upravených ICMP paketov. Ďalší vážny problém bol nájdený v parseri protokolu MQTT, ktorý je spôsobený nedostatočnou kontrolou dĺžky polí v hlavičke a môže viesť k diaľkovému vykonávaniu kódu. Menej závažné problémy vyvolávajúce DoS boli zistené v IPv6 stacku a implementácii protokolu CoAP.
Ostatné problémy môžu byť zneužité lokálne na vyvolanie DoS alebo vykonanie kódu na úrovni jadra. Väčšina týchto zraniteľností súvisí s nedostatočnými kontrolami argumentov systémových volaní, čo môže viesť k zápisu a čítaniu ľubovoľných oblastí pamäte jadra. Problémy pokrývajú aj samotný kód spracovania systémových volaní — prístup k zápornému číslu systémového volania spôsobuje celočíselné pretečenie. V jadre boli tiež zistené problémy v implementácii ochrany ASLR (náhodizácia adresného priestoru) a mechanizmu inštalácie kanárikových značiek v zásobníku, čo robí tieto mechanizmy neefektívnymi.
Mnoho problémov sa týka USB stohu a jednotlivých ovládačov. Napríklad problém v USB mass storage umožňuje spôsobiť pretečenie vyrovnávacej pamäte a vykonať kód na úrovni jadra pri pripojení zariadenia k USB hostu pod kontrolou útočníka. Zraniteľnosť v USB DFU, ovládači na nahrávanie novej firmvéru cez USB, umožňuje nahrávanie modifikovaného obrazu firmvéru do vnútornej Flash pamäte mikrokontroléra bez použitia šifrovania a obídením režimu zabezpečeného spúšťania s kontrolou komponentov pomocou digitálneho podpisu. Dodatočne bol študovaný kód otvoreného bootloadera , v ktorom bola nájdená jedna nezávažná zraniteľnosť,
ktorá môže viesť k pretečeniu vyrovnávacej pamäte pri používaní protokolu SMP (Simple Management Protocol) cez UART.
Pripomeňme, že v Zephyre majú všetky procesy k dispozícii iba jeden globálny zdieľaný virtuálny adresný priestor (SASOS, Single Address Space Operating System). Špecifický kód aplikácií sa kombinuje s jadrom prispôsobeným na konkrétne použitie a vytvára monolitický spustiteľný súbor na načítanie a spustenie na konkrétnom hardvéri. Všetky systémové zdroje sú definované v štádiu kompilácie, čo znižuje veľkosť kódu a zvyšuje výkon. Do systémového obrazu môžu byť zahrnuté iba tie funkcie jadra, ktoré sú potrebné na vykonanie aplikácie.
Pozoruhodné je, že medzi kľúčovými výhodami Zephyru vývoj so zreteľom na bezpečnosť. , že všetky fázy vývoja prechádzajú povinnými etapami potvrdenia bezpečnosti kódu: fuzzing-testovanie, statická analýza, testovanie na prienik, preskúmanie kódu, analýza vkladania backdoorov a modelovanie hrozieb.
Zdroj: opennet.ru
