Onderzoekers van NCC Group resultaten van de audit van het vrije project , een real-time besturingssysteem (RTOS) gericht op het uitrusten van apparaten die aansluiten bij het Internet of Things (IoT). Tijdens de audit zijn in Zephyr en 1 kwetsbaarheid in MCUboot ontdekt. De ontwikkeling van Zephyr wordt uitgevoerd met medewerking van bedrijven zoals Intel.
In totaal zijn er 6 kwetsbaarheden in de netwerstack ontdekt, 4 in de kernel, 2 in de shell, 5 in de systeemaanroep-behandelaars, 5 in de USB-subsystemen en 3 in het firmware-updatemechanisme. Twee problemen zijn geclassificeerd als kritisch, twee als hoog, 9 als gemiddeld, 9 als laag en 4 als voor overweging. De kritische problemen raken de IPv4-stack en de MQTT-parser, terwijl de gevaarlijke problemen betrekking hebben op de USB mass storage- en USB DFU-drivers. Op het moment van openbaarmaking waren er alleen oplossingen voorbereid voor de 15 meest gevaarlijke kwetsbaarheden, en blijven de problemen die leiden tot denial-of-service of verband houden met gebreken in de extra beveiligingsmechanismen van de kernel onopgelost.
In de IPv4-stack van het platform is een extern exploiteerbare kwetsbaarheid ontdekt die leidt tot geheugenbeschadiging bij het verwerken van bepaalde gemanipuleerde ICMP-pakketten. Een ander ernstig probleem is gevonden in de MQTT-protocolparser, dat wordt veroorzaakt door het ontbreken van een juiste lengtevalidatie van de header-velden en kan leiden tot remote code execution. Minder ernstige problemen die leiden tot denial-of-service zijn aangetroffen in de IPv6-stack en de implementatie van het CoAP-protocol.
De overige problemen kunnen lokaal worden geƫxploiteerd om denial-of-service of kernel-level code-executie te veroorzaken. De meeste van deze kwetsbaarheden zijn gerelateerd aan het ontbreken van adequate argumentcontroles voor systeemaanroepen, wat kan leiden tot het lezen en schrijven van willekeurige gebieden in de kernel-geheugen. Deze problemen omvatten ook de code die systeemaanroepen verwerkt - het aanroepen van een negatieve systeemaanroepnummmer leidt tot een integer overflow. In de kernel zijn ook problemen ontdekt in de implementatie van ASLR (Address Space Layout Randomization) en het mechanisme voor het instellen van canary-waarden op de stack, waardoor deze mechanismen ineffectief worden.
Veel problemen hebben betrekking op de USB-stack en afzonderlijke stuurprogramma's. Bijvoorbeeld, een probleem met USB-massastorage kan een buffer-overloop veroorzaken en code op het niveau van de kernel uitvoeren wanneer een apparaat op een door de aanvaller gecontroleerde USB-host wordt aangesloten. Een kwetsbaarheid in USB DFU, de driver voor het uploaden van nieuwe firmware via USB, maakt het mogelijk om een gewijzigd firmware-image in het interne Flash-geheugen van de microcontroller te laden zonder gebruik te maken van versleuteling en om de modus voor veilige opstarten te omzeilen waar componenten worden gecontroleerd door digitale handtekeningen. Daarnaast is de code van de open bootloader bestudeerd. , waarin een niet-gevaarlijke kwetsbaarheid is gevonden,
die kan leiden tot een buffer-overloop bij gebruik van het SMP (Simple Management Protocol) via UART.
Ter herinnering, in Zephyr wordt voor alle processen slechts ƩƩn globale gedeelde virtuele adresruimte (SASOS, Single Address Space Operating System) verstrekt. Toepassingsspecifieke code wordt gecombineerd met een aangepast kernel voor een specifieke toepassing en vormt een monolitisch uitvoerbaar bestand voor het laden en starten op specifieke hardware. Alle systeemspecifieke middelen worden gedefinieerd tijdens het compileren, wat de codegrootte verkleint en de prestaties verhoogt. Slechts de kernelcapaciteiten die nodig zijn voor de uitvoering van de toepassing kunnen in het systeembestand worden opgenomen.
Opvallend is dat een van de belangrijkste voordelen van Zephyr is de ontwikkeling met oog voor veiligheid. , wat betekent dat alle fasen van de ontwikkeling verplichte stappen ondergaan voor de bevestiging van de veiligheid van de code: fuzzing-tests, statische analyse, penetratietests, code-review, analyse van backdoor-injecties en bedreigingsmodellering.
Bron: opennet.ru
