25 kwesbaarhede in RTOS Zephyr, insluitend dié wat deur 'n ICMP-pakkie uitgebuit word

Navorsers van NCC Groep gepubliseer gratis projek oudit resultate Zephyr, ontwikkel 'n intydse bedryfstelsel (RTOS), wat daarop gemik is om toestelle toe te rus wat aan die Internet of Things-konsep (IoT, Internet of Things) voldoen. Tydens die oudit is dit aan die lig gebring 25 kwesbaarhede in Zephyr en 1 kwesbaarheid in MCUboot. Zephyr word ontwikkel met die deelname van Intel-maatskappye.

In totaal is 6 kwesbaarhede in die netwerkstapel geïdentifiseer, 4 in die kern, 2 in die opdragdop, 5 in stelseloproephanteerders, 5 in die USB-substelsel en 3 in die firmware-opdateringsmeganisme. Twee kwessies word as krities gegradeer, twee is hoog, 9 is matig, 9 is laag en 4 is vir oorweging. Kritieke probleme beïnvloed die IPv4-stapel en die MQTT-ontleder, gevaarlike probleme beïnvloed die USB-massaberging en USB DFU-bestuurders. Ten tyde van die openbaarmaking van inligting was regstellings slegs vir 15 van die gevaarlikste kwesbaarhede voorberei; probleme wat tot diensweiering lei of geassosieer word met foute in bykomende kernbeskermingsmeganismes, bly nie reggestel nie.

'n Kwesbaarheid wat op afstand ontgin kan word, is in die platform se IPv4-stapel geïdentifiseer, wat lei tot geheuekorrupsie wanneer ICMP-pakkies verwerk word wat op 'n sekere manier gewysig is. Nog 'n ernstige probleem is gevind in die MQTT-protokol-ontleder, wat veroorsaak word deur 'n gebrek aan behoorlike kopveldlengtekontrolering en kan lei tot die uitvoering van afstandkode-uitvoering. Minder ernstige diensweieringskwessies word gevind in die IPv6-stapel en die implementering van die CoAP-protokol.

Ander probleme kan plaaslik uitgebuit word om 'n ontkenning van diens te veroorsaak of kode op kernvlak uit te voer. Die meeste van hierdie kwesbaarhede hou verband met die gebrek aan behoorlike kontrole van stelseloproepargumente, en kan daartoe lei dat arbitrêre areas van kerngeheue na geskryf en gelees word. Die probleme strek ook uit na die stelseloproepverwerkingskode self - om 'n negatiewe stelseloproepnommer te bel lei tot 'n heelgetaloorloop. Die kern het ook probleme geïdentifiseer in die implementering van ASLR-beskerming (adresruimte-randomisering) en die meganisme om kanariemerke op die stapel te stel, wat hierdie meganismes ondoeltreffend maak.

Baie probleme raak die USB-stapel en individuele drywers. Byvoorbeeld, probleme in USB-massaberging kan 'n bufferoorloop veroorsaak en kode op kernvlak uitvoer wanneer die toestel gekoppel is aan 'n USB-gasheer wat deur die aanvaller beheer word. 'n Kwesbaarheid in USB DFU, 'n drywer vir die laai van nuwe firmware via USB, laat jou toe om 'n gewysigde firmware-beeld in die interne flits van die mikrobeheerder te laai sonder om enkripsie te gebruik en die veilige selflaaimodus te omseil met verifikasie van komponente met 'n digitale handtekening. Daarbenewens is die oop selflaaiprogramkode bestudeer MCUboot, waarin een goedaardige kwesbaarheid gevind is,
wat kan lei tot 'n buffer oorloop wanneer die SMP (Simple Management Protocol) protokol oor die UART gebruik word.

Onthou dat in Zephyr slegs een globale gedeelde virtuele adresruimte (SASOS, Single Address Space Operating System) vir alle prosesse voorsien word. Toepassingspesifieke kode word gekombineer met 'n toepassingspesifieke kern om 'n monolitiese uitvoerbare lêer te vorm wat op spesifieke hardeware gelaai en uitgevoer kan word. Alle stelselhulpbronne word tydens samestellingstyd bepaal, wat die kodegrootte verminder en werkverrigting verhoog. Die stelselbeeld kan slegs die kernkenmerke insluit wat nodig is om die toepassing te laat loop.

Dit is opmerklik dat een van die belangrikste voordele van Zephyr genoem ontwikkeling met veiligheid in gedagte. Goedgekeurdat alle stadiums van ontwikkeling verpligte stadiums ondergaan om die sekuriteit van die kode te bevestig: fuzzing-toetsing, statiese analise, penetrasietoetsing, kode-hersiening, analise van agterdeur-implementering en bedreigingsmodellering.

Bron: opennet.ru

Voeg 'n opmerking