25 dobësi në RTOS Zephyr, duke përfshirë ato të shfrytëzuara nëpërmjet një pakete ICMP

Studiuesit nga NCC Group botuar rezultatet e auditimit të projektit falas Erë e lehtë, duke u zhvilluar një sistem operativ në kohë reale (RTOS), që synon pajisjen e pajisjeve që përputhen me konceptin e Internetit të Gjërave (IoT, Internet of Things). Gjatë kontrollit u zbulua 25 dobësi në Zephyr dhe 1 cenueshmëri në MCUboot. Zephyr po zhvillohet me pjesëmarrjen e kompanive Intel.

Në total, 6 dobësi u identifikuan në grupin e rrjetit, 4 në kernel, 2 në guaskën e komandës, 5 në mbajtësit e thirrjeve të sistemit, 5 në nënsistemin USB dhe 3 në mekanizmin e përditësimit të firmuerit. Dy çështje janë vlerësuar si kritike, dy janë të larta, 9 janë të moderuara, 9 janë të ulëta dhe 4 janë për shqyrtim. Problemet kritike prekin grupin IPv4 dhe analizuesin MQTT, ato të rrezikshme ndikojnë në ruajtjen masive USB dhe drejtuesit USB DFU. Në kohën e zbulimit të informacionit, rregullimet ishin përgatitur vetëm për 15 nga dobësitë më të rrezikshme; problemet që çojnë në mohimin e shërbimit ose të lidhura me të metat në mekanizmat shtesë të mbrojtjes së kernelit mbeten të pakorrigjuara.

Një cenueshmëri e shfrytëzuar nga distanca është identifikuar në stakun IPv4 të platformës, e cila çon në dëmtim të kujtesës kur përpunohen paketat ICMP të modifikuara në një mënyrë të caktuar. Një problem tjetër serioz u gjet në analizuesin e protokollit MQTT, i cili shkaktohet nga mungesa e kontrollit të duhur të gjatësisë së fushës së kokës dhe mund të çojë në ekzekutimin e kodit në distancë. Çështjet më pak të rënda të mohimit të shërbimit gjenden në pirgun IPv6 dhe zbatimin e protokollit CoAP.

Probleme të tjera mund të shfrytëzohen në nivel lokal për të shkaktuar një mohim të shërbimit ose për të ekzekutuar kodin në nivelin e kernelit. Shumica e këtyre dobësive janë të lidhura me mungesën e kontrolleve të duhura të argumenteve të thirrjes së sistemit dhe mund të çojnë në zona arbitrare të kujtesës së kernelit që shkruhen dhe lexohen nga. Problemet shtrihen edhe në vetë kodin e përpunimit të thirrjeve të sistemit - thirrja e një numri telefonik negativ të sistemit rezulton në një tejkalim të numrit të plotë. Kerneli identifikoi gjithashtu probleme në zbatimin e mbrojtjes ASLR (randomizimi i hapësirës së adresave) dhe mekanizmi për vendosjen e shenjave të kanarinës në pirg, duke i bërë këta mekanizma joefektiv.

Shumë probleme prekin pirgun USB dhe drejtuesit individualë. Për shembull, problemet në ruajtjen masive USB mund të shkaktojnë një tejmbushje buferi dhe të ekzekutojnë kodin në nivelin e kernelit kur pajisja lidhet me një pritës USB të kontrolluar nga sulmuesi. Një dobësi në USB DFU, një drejtues për ngarkimin e firmuerit të ri përmes USB, ju lejon të ngarkoni një imazh të modifikuar të firmuerit në Flashin e brendshëm të mikrokontrolluesit pa përdorur enkriptim dhe duke anashkaluar modalitetin e sigurt të nisjes me verifikimin e komponentëve duke përdorur një nënshkrim dixhital. Për më tepër, u studiua kodi i hapur i ngarkuesit MCUboot, në të cilën u gjet një cenueshmëri beninje,
e cila mund të çojë në një tejmbushje buferi kur përdoret protokolli SMP (Simple Management Protocol) mbi UART.

Kujtojmë se në Zephyr, për të gjitha proceset sigurohet vetëm një hapësirë ​​globale e përbashkët e adresave virtuale (SASOS, Single Address Space Operating System). Kodi specifik për aplikacionin kombinohet me një kernel specifik të aplikacionit për të formuar një ekzekutues monolit që mund të ngarkohet dhe ekzekutohet në një pajisje specifike. Të gjitha burimet e sistemit përcaktohen në kohën e përpilimit, duke zvogëluar madhësinë e kodit dhe duke rritur performancën. Imazhi i sistemit mund të përfshijë vetëm ato veçori të kernelit që kërkohen për të ekzekutuar aplikacionin.

Vlen të përmendet se ndër avantazhet kryesore të Zephyr i përmendur zhvillim duke pasur parasysh sigurinë. Miratuarqë të gjitha fazat e zhvillimit t'i nënshtrohen fazave të detyrueshme të konfirmimit të sigurisë së kodit: testimi i fuzzimit, analiza statike, testimi i penetrimit, rishikimi i kodit, analiza e zbatimit të backdoor dhe modelimi i kërcënimit.

Burimi: opennet.ru

Shto një koment