25 ranjivosti u RTOS Zephyr, uključujući one iskorištene putem ICMP paketa

Istraživači iz NCC grupe objavljen besplatni rezultati revizije projekta Lahor, razvijanje operativni sustav u stvarnom vremenu (RTOS), namijenjen opremanju uređaja koji su u skladu s konceptom Internet of Things (IoT, Internet of Things). Tijekom revizije otkriveno je 25 ranjivosti u Zephyru i 1 ranjivost u MCUbootu. Zephyr se razvija uz sudjelovanje Intelovih tvrtki.

Ukupno je identificirano 6 ranjivosti u mrežnom skupu, 4 u kernelu, 2 u naredbenoj ljusci, 5 u rukovateljima sistemskim pozivima, 5 u USB podsustavu i 3 u mehanizmu ažuriranja firmvera. Dva su problema ocijenjena kao kritična, dva su visoka, 9 je umjerena, 9 je niska, a 4 su za razmatranje. Kritični problemi utječu na IPv4 stog i MQTT parser, opasni problemi utječu na USB masovnu pohranu i USB DFU upravljačke programe. U vrijeme otkrivanja informacija, popravci su bili pripremljeni samo za 15 najopasnijih ranjivosti; problemi koji dovode do odbijanja usluge ili povezani s nedostacima u dodatnim mehanizmima zaštite kernela ostaju neispravljeni.

Ranjivost koja se može daljinski iskoristiti identificirana je u IPv4 skupu platforme, što dovodi do oštećenja memorije prilikom obrade ICMP paketa modificiranih na određeni način. Još jedan ozbiljan problem pronađen je u parseru MQTT protokola, koji je uzrokovan nedostatkom ispravne provjere duljine polja zaglavlja i može dovesti do daljinskog izvršavanja koda. Manje ozbiljni problemi uskraćivanja usluge nalaze se u IPv6 stogu i implementaciji CoAP protokola.

Ostali problemi mogu se iskoristiti lokalno da izazovu uskraćivanje usluge ili izvrše kod na razini kernela. Većina ovih ranjivosti povezana je s nedostatkom odgovarajućih provjera argumenata sistemskog poziva i može dovesti do proizvoljnih područja memorije kernela koja se upisuju i čitaju iz njih. Problemi se protežu i na sam kod za obradu sistemskog poziva—pozivanje negativnog broja sistemskog poziva rezultira prekoračenjem cijelog broja. Kernel je također identificirao probleme u implementaciji ASLR zaštite (randomizacije adresnog prostora) i mehanizma za postavljanje oznaka Canary na stogu, čineći te mehanizme neučinkovitima.

Mnogi problemi utječu na USB stog i pojedinačne upravljačke programe. Na primjer, problemi u USB masovnoj pohrani mogu uzrokovati prekoračenje međuspremnika i izvršavanje koda na razini kernela kada je uređaj spojen na USB host kojim upravlja napadač. Ranjivost u USB DFU, upravljačkom programu za učitavanje novog firmvera putem USB-a, omogućuje učitavanje modificirane slike firmvera u interni Flash mikrokontrolera bez korištenja enkripcije i zaobilaženja načina sigurnog pokretanja uz provjeru komponenti pomoću digitalnog potpisa. Dodatno, proučavan je kod otvorenog bootloadera MCUboot, u kojem je pronađena jedna benigna ranjivost,
što može dovesti do prekoračenja međuspremnika pri korištenju SMP (Simple Management Protocol) protokola preko UART-a.

Podsjetimo da je u Zephyru za sve procese osiguran samo jedan globalni dijeljeni virtualni adresni prostor (SASOS, Single Address Space Operating System). Kod specifične za aplikaciju kombinira se s jezgrom specifičnom za aplikaciju kako bi se formirala monolitna izvršna datoteka koja se može učitati i pokrenuti na određenom hardveru. Svi resursi sustava određuju se tijekom kompajliranja, smanjujući veličinu koda i povećavajući performanse. Slika sustava može uključivati ​​samo one značajke jezgre koje su potrebne za pokretanje aplikacije.

Važno je napomenuti da je među ključnim prednostima Zephyra spominje razvoj imajući na umu sigurnost. Odobrenoda sve faze razvoja prolaze obvezne faze potvrde sigurnosti koda: fuzzing testiranje, statička analiza, penetracijsko testiranje, pregled koda, analiza backdoor implementacije i modeliranje prijetnji.

Izvor: opennet.ru

Dodajte komentar