25 RTOS Zephyr pažeidžiamumas, įskaitant tuos, kurie išnaudojami per ICMP paketą

NCC grupės mokslininkai paskelbtas nemokami projekto audito rezultatai zefyras, besivystantis realaus laiko operacinė sistema (RTOS), skirta aprūpinti daiktų interneto koncepciją (IoT, Internet of Things) atitinkančius įrenginius. Per auditą paaiškėjo 25 pažeidžiamumų Zephyr ir 1 pažeidžiamumas MCUboot. „Zephyr“ kuriamas dalyvaujant „Intel“ įmonėms.

Iš viso buvo identifikuoti 6 pažeidžiamumai tinklo krūvoje, 4 branduolyje, 2 komandų apvalkale, 5 sistemos skambučių tvarkyklėse, 5 USB posistemyje ir 3 programinės įrangos atnaujinimo mechanizme. Dvi problemos įvertintos kritinėmis, dvi – didelės, 9 – vidutinės, 9 – žemos ir 4 – svarstytinos. Kritinės problemos turi įtakos IPv4 kaminui ir MQTT analizatoriui, pavojingos – USB talpyklai ir USB DFU tvarkykles. Informacijos atskleidimo metu buvo parengti tik 15 pavojingiausių spragų pataisymai; problemos, dėl kurių buvo atsisakyta teikti paslaugą arba susijusios su papildomų branduolio apsaugos mechanizmų trūkumais, lieka neištaisytos.

Platformos IPv4 dėtuvėje aptiktas nuotoliniu būdu išnaudojamas pažeidžiamumas, dėl kurio sugadinama atmintis apdorojant tam tikru būdu modifikuotus ICMP paketus. Kita rimta problema buvo rasta MQTT protokolo analizatoriuje, kurią sukelia tinkamo antraštės lauko ilgio patikrinimo trūkumas ir gali būti vykdomas nuotolinis kodas. Mažiau rimtų paslaugų atsisakymo problemų randama IPv6 dėtuvėje ir CoAP protokolo įgyvendinime.

Kitos problemos gali būti išnaudotos vietoje, kad būtų atsisakyta teikti paslaugą arba būtų vykdomas kodas branduolio lygiu. Dauguma šių pažeidžiamumų yra susiję su netinkamu sistemos iškvietimo argumentų patikrinimu ir gali sukelti savavališkų branduolio atminties sričių įrašymą ir nuskaitymą iš jų. Problemos taip pat apima patį sistemos skambučių apdorojimo kodą – iškvietus neigiamą sistemos skambučio numerį atsiranda sveikojo skaičiaus perpildymas. Branduolys taip pat nustatė problemas, susijusias su ASLR apsaugos (adresų erdvės atsitiktinės atrankos) diegimu ir kanarinių ženklų nustatymo ant kamino mechanizmu, todėl šie mechanizmai tapo neveiksmingi.

Daugelis problemų turi įtakos USB kaminui ir atskiroms tvarkyklėms. Pavyzdžiui, USB didelės talpos atminties problemos gali sukelti buferio perpildymą ir vykdyti kodą branduolio lygiu, kai įrenginys prijungtas prie USB pagrindinio kompiuterio, kurį valdo užpuolikas. USB DFU, naujos programinės įrangos įkėlimo per USB tvarkyklės, pažeidžiamumas leidžia įkelti modifikuotą programinės aparatinės įrangos vaizdą į vidinę mikrovaldiklio „Flash“ nenaudojant šifravimo ir apeinant saugaus įkrovos režimą tikrinant komponentus naudojant skaitmeninį parašą. Be to, buvo ištirtas atvirojo įkrovos įkrovos kodas MCUboot, kuriame buvo rastas vienas gerybinis pažeidžiamumas,
o tai gali sukelti buferio perpildymą naudojant SMP (Simple Management Protocol) protokolą per UART.

Prisiminkite, kad Zephyr visiems procesams suteikiama tik viena visuotinė bendrinama virtualioji adresų erdvė (SASOS, vienos adresų erdvės operacinė sistema). Konkrečios programos kodas derinamas su konkrečios programos branduoliu, kad būtų sudarytas monolitinis vykdomasis failas, kurį galima įkelti ir paleisti konkrečioje aparatinėje įrangoje. Visi sistemos ištekliai nustatomi kompiliavimo metu, sumažinant kodo dydį ir padidinant našumą. Sistemos vaizdas gali apimti tik tas branduolio funkcijas, kurios reikalingos programai paleisti.

Pažymėtina, kad vienas iš pagrindinių Zephyr privalumų minimas plėtra turint omenyje saugumą. Patvirtintakad visuose kūrimo etapuose būtų atliekami privalomi kodo saugumo patvirtinimo etapai: fuzzing testavimas, statinė analizė, įsiskverbimo testavimas, kodo peržiūra, backdoor diegimo analizė ir grėsmių modeliavimas.

Šaltinis: opennet.ru

Добавить комментарий