25 kwetsberens yn RTOS Zephyr, ynklusyf dy eksploitearre fia in ICMP-pakket

Undersikers fan NCC Group publisearre frije projekt audit resultaten Zephyr, ûntwikkeljen in real-time bestjoeringssysteem (RTOS), rjochte op it útstellen fan apparaten dy't foldogge oan it Internet of Things-konsept (IoT, Internet of Things). By de kontrôle die bliken 25 kwetsberens yn Zephyr en 1 kwetsberens yn MCUboot. Zephyr wurdt ûntwikkele mei de dielname fan Intel-bedriuwen.

Yn totaal waarden 6-kwetsberheden identifisearre yn 'e netwurkstapel, 4 yn' e kernel, 2 yn 'e kommando-shell, 5 yn systeemoprophannelers, 5 yn it USB-subsysteem en 3 yn it firmware-fernijingsmeganisme. Twa problemen wurde kritysk beoardiele, twa binne heech, 9 binne matich, 9 binne leech, en 4 binne foar oerweging. Krityske problemen beynfloedzje de IPv4-stapel en de MQTT-parser, gefaarlike problemen beynfloedzje de USB-massa-opslach en USB DFU-bestjoerders. Op it momint fan iepenbiering fan ynformaasje, reparaasjes wiene taret allinnich foar de 15 meast gefaarlik kwetsberens problemen dy't liede ta ûntkenning fan tsjinst of assosjearre mei gebreken yn ekstra kernel beskerming meganismen bliuwe net korrizjearre.

In kwetsberens op ôfstân te eksploitearjen is identifisearre yn 'e IPv4-stapel fan it platfoarm, wat liedt ta ûnthâldkorrupsje by it ferwurkjen fan ICMP-pakketten op in bepaalde manier wizige. In oar serieus probleem waard fûn yn 'e MQTT-protokol-parser, dy't feroarsake wurdt troch in gebrek oan goede kontrôle fan koptekstfjildlange en kin liede ta útfiering fan koade op ôfstân. Minder swiere ûntkenning fan tsjinstproblemen wurde fûn yn 'e IPv6-stapel en de ymplemintaasje fan it CoAP-protokol.

Oare problemen kinne lokaal brûkt wurde om in ûntkenning fan tsjinst te feroarsaakjen of koade út te fieren op kernelnivo. De measte fan dizze kwetsberens binne relatearre oan it ûntbrekken fan juste kontrôles fan arguminten foar systeemoprop, en kinne liede ta willekeurige gebieten fan kernelûnthâld dy't skreaun wurde nei en lêzen wurde. De problemen wreidzje ek út nei de systeemopropferwurkingskoade sels - it neamen fan in negatyf systeemopropnûmer resultearret yn in heule getal oerstreaming. De kearn identifisearre ek problemen yn 'e ymplemintaasje fan ASLR-beskerming (randomisaasje fan adresromte) en it meganisme foar it ynstellen fan kanaryske tekens op' e stapel, wêrtroch dizze meganismen net effektyf binne.

In protte problemen beynfloedzje de USB-stapel en yndividuele bestjoerders. Bygelyks, problemen yn USB massa opslach kinne feroarsaakje in buffer oerstreaming en útfiere koade op de kernel nivo as it apparaat is ferbûn mei in USB host bestjoerd troch de oanfaller. In kwetsberens yn USB DFU, in stjoerprogramma foar it laden fan nije firmware fia USB, lit jo in wizige firmwareôfbylding laden yn 'e ynterne Flash fan' e mikrocontroller sûnder fersifering te brûken en de feilige bootmodus te omgean mei ferifikaasje fan komponinten mei in digitale hantekening. Derneist waard de iepen bootloader-koade studearre MCUboot, wêryn ien goedaardige kwetsberens waard fûn,
wat kin liede ta in buffer oerstreaming by it brûken fan it SMP (Simple Management Protocol) protokol oer de UART.

Tink derom dat yn Zephyr mar ien globale dielde firtuele adresromte (SASOS, Single Address Space Operating System) wurdt levere foar alle prosessen. Applikaasje-spesifike koade wurdt kombinearre mei in applikaasje-spesifike kernel om in monolityske útfierber te foarmjen dy't kin wurde laden en rinne op spesifike hardware. Alle systeemboarnen wurde bepaald op kompilaasjetiid, wêrtroch koadegrutte wurdt fermindere en prestaasjes ferheegje. It systeemôfbylding kin allinich de kernelfunksjes befetsje dy't nedich binne om de applikaasje út te fieren.

It is opmerklik dat ûnder de wichtichste foardielen fan Zephyr neamd ûntwikkeling mei feiligens yn gedachten. Goedkarddat alle stadia fan ûntwikkeling ferplichte stadia ûndergean fan befêstiging fan de feiligens fan 'e koade: fuzzing testen, statyske analyze, penetraasje testen, koade review, analyze fan efterdoar ymplemintaasje en bedriging modellering.

Boarne: opennet.ru

Add a comment