25 ahultasun RTOS Zephyr-en, ICMP pakete bidez ustiatutakoak barne

NCC Taldeko ikertzaileak argitaratuko doako proiektuen auditoretzaren emaitzak Zephyr, garatzen denbora errealeko sistema eragilea (RTOS), Gauzen Internet kontzeptua (IoT, Internet of Things) betetzen duten gailuak hornitzera zuzendua. Ikuskaritzan zehar agerian geratu zen 25 ahultasun Zephyr-en eta 1 ahultasun MCUboot-en. Zephyr Intel enpresen parte-hartzearekin garatzen ari da.

Guztira, 6 ahultasun identifikatu dira sareko pilan, 4 nukleoan, 2 komando-shellean, 5 sistema-deien kudeatzaileetan, 5 USB azpisisteman eta 3 firmware eguneratzeko mekanismoan. Bi gai kritiko baloratzen dira, bi altuak, 9 moderatuak, 9 baxuak eta 4 kontuan hartzekoak. Arazo larriek IPv4 pilari eta MQTT analizatzaileari eragiten diote, arriskutsuek USB biltegiratze masiboari eta USB DFU kontrolatzaileei eragiten diete. Informazioa ezagutzera emateko garaian, konponketak ahultasun arriskutsuenetako 15entzat bakarrik prestatu ziren; zerbitzua ukatzea eragiten duten arazoak edo nukleoaren babeserako mekanismo osagarrien akatsekin lotutako arazoak konpondu gabe jarraitzen dute.

Plataformaren IPv4 pilan urrunetik ustia daitekeen ahultasun bat identifikatu da, eta horrek memoria hondatzea dakar modu jakin batean aldatutako ICMP paketeak prozesatzen dituenean. Beste arazo larri bat aurkitu zen MQTT protokoloaren analizatzailean, goiburuko eremuaren luzera egoki ezaren egiaztapenak eragindakoa eta urruneko kodea exekutatzeko. Zerbitzuaren ukapen-arazo larriagoak IPv6 pilan eta CoAP protokoloaren ezarpenean aurkitzen dira.

Beste arazo batzuk lokalean ustiatu daitezke zerbitzuaren ukapena eragiteko edo kernel mailan kodea exekutatzeko. Ahultasun horietako gehienak sistema-deien argumentuen egiaztapen egokirik ezarekin lotuta daude, eta nukleoaren memoriaren eremu arbitrarioak idaztea eta bertatik irakurtzea ekar dezakete. Arazoak sistema-deien prozesatzeko kodea bera ere zabaltzen dira; sistema-dei-zenbaki negatiboa deitzeak osoko gainezka eragiten du. Nukleoak ASLR babesaren (helbide-espazioaren aleatorizazioa) eta pilan kanariar markak ezartzeko mekanismoan ere arazoak identifikatu zituen, mekanismo horiek eraginkorrak izan gabe.

Arazo askok USB pilari eta kontrolatzaile indibidualei eragiten diete. Adibidez, USB biltegiratze masiboko arazoek buffer gainezka egin dezakete eta kernel mailan kodea exekuta dezakete gailua erasotzaileak kontrolatzen duen USB ostalari batera konektatuta dagoenean. USB DFUren ahultasun batek, firmware berria USB bidez kargatzeko kontrolatzaile batek, mikrokontrolagailuaren barneko Flashean aldatutako firmwarearen irudia kargatzeko aukera ematen du enkriptatzea erabili gabe eta abio modu segurua saihestuz osagaiak sinadura digitala erabiliz egiaztatuz. Gainera, irekitako abiarazlearen kodea aztertu zen MCUboot, zeinetan ahultasun onbera aurkitu zen,
eta horrek buffer gainezkatzea ekar dezake SMP (Simple Management Protocol) protokoloa UART-en gainean erabiltzean.

Gogoratu Zephyr-en, partekatutako helbide birtual-espazio global bakarra (SASOS, Single Address Space Operating System) prozesu guztietarako eskaintzen dela. Aplikazioaren berariazko kodea aplikazioaren kernel espezifiko batekin konbinatzen da hardware zehatz batean kargatu eta exekutatu daitekeen exekutagarri monolitiko bat osatzeko. Sistemaren baliabide guztiak konpilazio garaian zehazten dira, kodearen tamaina murriztuz eta errendimendua handituz. Sistemaren irudiak aplikazioa exekutatzeko beharrezkoak diren nukleoaren ezaugarriak soilik izan ditzake.

Azpimarratzekoa da Zephyr-en abantail nagusien artean aipatu garapena segurtasuna kontuan hartuta. Onartuagarapen-fase guztiek kodearen segurtasuna berresteko derrigorrezko faseak jasaten dituztela: fuzzing probak, analisi estatikoak, sartze-probak, kodearen berrikuspena, backdoor-en ezarpenaren azterketa eta mehatxuen modelizazioa.

Iturria: opennet.ru

Gehitu iruzkin berria