25 уязвимостей в RTOS Zephyr, включително експлоатирани чрез ICMP пакети

Изследователи от NCC Group публикуваха резултати от одит на свободен проект Zephyr, развиваеща операционна система в реално време (RTOS), насочена към оборудване на устройства, съответстващи на концепцията за „Интернет на нещата“ (IoT, Internet of Things). По време на одита бяха открити 25 уязвимости в Zephyr и 1 уязвимост в MCUboot. Разработката на Zephyr се осъществява с участието на компании като Intel.

Общо бяха открити 6 уязвимости в мрежовия стек, 4 в ядрото, 2 в командния интерпретатор, 5 в обработчиците на системни повиквания, 5 в подсистемата USB и 3 в механизма за актуализиране на фърмуера. На две от проблемите е присвоен критичен ниво на опасност, на две – високо, 9 – умерено, 9 – ниско и 4 – за внасяне в разглеждане. Критираните проблеми засягат стека IPv4 и парсера MQTT, докато опасните – драйверите на USB mass storage и USB DFU. По време на разкритията, корекции бяха подготвени само за 15 от най-опасните уязвимости, а проблемите, водещи до отказ на обслужване или свързани с недостатъци в механизмите на допълнителна защита на ядрото, остават неотстранени.

В IPv4 стека на платформата е открита уязвимост, която може да бъде експлоатирана дистанционно, водеща до повреда на паметта при обработка на определено модифицирани ICMP пакети. Друга сериозна проблема е открита в парсера на протокола MQTT, която произтича от липсата на подходяща проверка на дължината на полетата в заглавката и може да доведе до дистанционно изпълнение на код. По-малко опасни проблеми, водещи до отказ на обслужване, са открити в IPv6 стека и реализацията на протокола CoAP.

Останалите проблеми могат да бъдат експлоатирани локално за причиняване на отказ на обслужване или изпълнение на код на ниво ядро. По-голямата част от тези уязвимости са свързани с липсата на подходящи проверки на аргументите на системните повиквания и могат да доведат до запис и четене на произволни области от паметта на ядрото. Проблемите обхващат и самия код за обработка на системните повиквания – извикването с отрицателен номер води до цялочислено препълване. В ядрото също са открити проблеми в реализирането на защита ASLR (разпределение на адресното пространство) и механизма за задаване на канарени метки в стека, правещи тези механизми неефективни.

Много проблем засягат USB стек и отделни драйвери. Например, проблемата с USB mass storage позволява да се предизвика overflow и да се изпълни код на ниво ядро при свързването на устройството към контролирания от атакуващия USB хост. Уязвимостта в USB DFU, драйвера за зареждане на нов фърмуер през USB, позволява да се зареди модифициран образ на фърмуера во вътрешната Flash микроконтролера без прилагане на криптиране и заобикаляйки режима на защитено зареждане с проверка на компонентите по цифрова подпис. Допълнително бе проучен кодът на отворения зареждач MCUboot, в който беше намерена една неопасна уязвимост,
която може да доведе до overflow при използването на протокола SMP (Simple Management Protocol) през UART.

Напомняме, че в Zephyr за всички процеси се предоставя само едно глобално споделено виртуално адресно пространство (SASOS, Single Address Space Operating System). Специфичният за приложения код се комбинира с адаптирано под конкретно приложение ядро и образува монолитен изпълним файл за зареждане и стартиране на определено оборудване. Всички системни ресурси се определят на етапа на компилиране, което намалява размера на кода и увеличава производителността. В системния образ могат да бъдат включени само тези възможности на ядрото, които са необходими за изпълнение на приложението.

Забележително е, че сред ключовите предимства на Zephyr се споменава разработката с оглед на безопасността. Утвърдило се, че всички етапи на разработката преминават през задължителни етапи на потвърждение на безопасността на кода: fuzzing тестване, статичен анализ, тестове за проникване, рецензиране на кода, анализ на внедряване на backdoors и моделиране на заплахи.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster