25 yn RTOS Zephyr, gan gynnwys y rhai y manteisir arnynt trwy becyn ICMP

Ymchwilwyr o Grŵp NCC cyhoeddwyd canlyniadau archwiliad prosiect am ddim Zephyr, datblygu system weithredu amser real (RTOS), gyda'r nod o gyfarparu dyfeisiau sy'n cydymffurfio â chysyniad Rhyngrwyd Pethau (IoT, Internet of Things). Yn ystod yr archwiliad fe'i datgelwyd 25 bregusrwydd yn Zephyr a bregusrwydd 1 yn MCUboot. Mae Zephyr yn cael ei ddatblygu gyda chyfranogiad cwmnïau Intel.

Yn gyfan gwbl, nodwyd gwendidau 6 yn y pentwr rhwydwaith, 4 yn y cnewyllyn, 2 yn y plisgyn gorchymyn, 5 yn trinwyr galwadau system, 5 yn yr is-system USB a 3 yn y mecanwaith diweddaru firmware. Mae dau fater wedi'u graddio'n hollbwysig, dau yn uchel, 9 yn gymedrol, 9 yn isel, a 4 i'w hystyried. Mae problemau critigol yn effeithio ar y pentwr IPv4 a'r parser MQTT, mae rhai peryglus yn effeithio ar storio màs USB a gyrwyr USB DFU. Ar adeg datgelu gwybodaeth, dim ond ar gyfer 15 o'r gwendidau mwyaf peryglus yr oedd atebion wedi'u paratoi;

Mae bregusrwydd y gellir ei ecsbloetio o bell wedi'i nodi yn stack IPv4 y platfform sy'n arwain at lygredd cof wrth brosesu pecynnau ICMP a addaswyd mewn ffordd benodol. Canfuwyd problem ddifrifol arall yn y parser protocol MQTT, a achosir gan ddiffyg gwirio hyd maes pennawd priodol a gall arwain at weithredu cod o bell. Mae problemau llai difrifol o ran gwrthod gwasanaeth i'w cael yn y stac IPv6 a gweithrediad protocol CoAP.

Gellir manteisio ar broblemau eraill yn lleol i achosi gwrthod gwasanaeth neu weithredu cod ar lefel y cnewyllyn. Mae'r rhan fwyaf o'r gwendidau hyn yn gysylltiedig â diffyg gwiriadau cywir o ddadleuon galwadau system, a gallant arwain at ysgrifennu at feysydd mympwyol o gof cnewyllyn a darllen ohonynt. Mae'r problemau hefyd yn ymestyn i'r cod prosesu galwadau system ei hun - mae galw rhif ffôn system negyddol yn arwain at orlif cyfanrif. Nododd y cnewyllyn hefyd broblemau wrth weithredu amddiffyniad ASLR (hapiad gofod cyfeiriad) a'r mecanwaith ar gyfer gosod marciau caneri ar y pentwr, gan wneud y mecanweithiau hyn yn aneffeithiol.

Mae llawer o broblemau yn effeithio ar y pentwr USB a gyrwyr unigol. Er enghraifft, gall problemau mewn storio màs USB achosi gorlif byffer a gweithredu cod ar lefel y cnewyllyn pan fydd y ddyfais wedi'i chysylltu â gwesteiwr USB a reolir gan yr ymosodwr. Mae bregusrwydd yn USB DFU, gyrrwr ar gyfer llwytho firmware newydd trwy USB, yn caniatáu ichi lwytho delwedd firmware wedi'i addasu i mewn i Flash fewnol y microreolydd heb ddefnyddio amgryptio a osgoi'r modd cychwyn diogel gyda dilysu cydrannau gan ddefnyddio llofnod digidol. Yn ogystal, astudiwyd y cod cychwynnydd agored MCUboot, ym mha un y canfuwyd un bregusrwydd anfalaen,
a all arwain at orlif byffer wrth ddefnyddio protocol SMP (Simple Management Protocol) dros yr UART.

Dwyn i gof mai dim ond un gofod cyfeiriad rhithwir byd-eang a rennir yn Zephyr (SASOS, System Weithredu Gofod Cyfeiriad Sengl) a ddarperir ar gyfer pob proses. Mae cod sy'n benodol i'r cais wedi'i gyfuno â chnewyllyn cais-benodol i ffurfio gweithredadwy monolithig y gellir ei lwytho a'i redeg ar galedwedd penodol. Mae holl adnoddau'r system yn cael eu pennu ar amser llunio, gan leihau maint y cod a chynyddu perfformiad. Gall delwedd y system gynnwys y nodweddion cnewyllyn hynny sy'n ofynnol i redeg y rhaglen yn unig.

Mae'n werth nodi bod ymhlith manteision allweddol Zephyr crybwyllwyd datblygiad gyda diogelwch mewn golwg. Cymeradwybod pob cam datblygu yn mynd trwy gamau gorfodol o gadarnhau diogelwch y cod: profion niwlog, dadansoddiad statig, profion treiddiad, adolygiad cod, dadansoddiad o weithrediad drws cefn a modelu bygythiad.

Ffynhonnell: opennet.ru

Ychwanegu sylw