NCC խմբի հետազոտողները
Ընդհանուր առմամբ, հայտնաբերվել է 6 խոցելիություն ցանցային ստեկում, 4-ը՝ միջուկում, 2-ը՝ հրամանի վահանակում, 5-ը՝ համակարգային զանգերի մշակիչներում, 5-ը՝ USB ենթահամակարգում և 3-ը՝ որոնվածի թարմացման մեխանիզմում։ Երկու հարց գնահատվել է որպես կրիտիկական, երկուսը` բարձր, 9-ը` միջին, 9-ը` ցածր և 4-ը` քննարկման: Կրիտիկական խնդիրները ազդում են IPv4 փաթեթի և MQTT վերլուծիչի վրա, վտանգավորները՝ USB զանգվածային պահեստավորման և USB DFU դրայվերների վրա: Տեղեկատվության բացահայտման պահին ուղղումներ են նախապատրաստվել միայն 15 ամենավտանգավոր խոցելիության համար, սպասարկման մերժման կամ միջուկի պաշտպանության լրացուցիչ մեխանիզմների թերությունների հետ կապված խնդիրները մնում են չշտկված:
Պլատֆորմի IPv4 փաթեթում հայտնաբերվել է հեռակա շահագործվող խոցելիություն, որը հանգեցնում է հիշողության խաթարման՝ որոշակի ձևով փոփոխված ICMP փաթեթների մշակման ժամանակ: Մեկ այլ լուրջ խնդիր է հայտնաբերվել MQTT արձանագրության վերլուծիչում, որն առաջանում է վերնագրի դաշտի երկարության պատշաճ ստուգման բացակայության պատճառով և կարող է հանգեցնել կոդի հեռավոր կատարման: Ծառայության ավելի քիչ լուրջ ժխտման խնդիրներ են հայտնաբերվել IPv6 փաթեթում և CoAP արձանագրության ներդրման մեջ:
Այլ խնդիրներ կարող են օգտագործվել լոկալ՝ ծառայության մերժում առաջացնելու կամ միջուկի մակարդակում կոդը գործարկելու համար: Այս խոցելիությունների մեծ մասը կապված է համակարգային կանչերի արգումենտների պատշաճ ստուգման բացակայության հետ և կարող է հանգեցնել միջուկի հիշողության կամայական տարածքների գրմանը և ընթերցմանը: Խնդիրները տարածվում են նաև համակարգային զանգերի մշակման կոդի վրա՝ բացասական համակարգային զանգի համար կանչելը հանգեցնում է ամբողջ թվի արտահոսքի: Միջուկը նաև հայտնաբերեց խնդիրներ ASLR պաշտպանության (հասցեների տարածության պատահականացում) իրականացման և դեղձանիկի հետքեր տեղադրելու մեխանիզմի հետ կապված՝ այդ մեխանիզմները դարձնելով անարդյունավետ:
Շատ խնդիրներ ազդում են USB փաթեթի և առանձին դրայվերների վրա: Օրինակ, USB զանգվածային պահեստավորման հետ կապված խնդիրները կարող են առաջացնել բուֆերային արտահոսք և կոդի գործարկում միջուկի մակարդակում, երբ սարքը միացված է հարձակվողի կողմից վերահսկվող USB հոսթին: USB DFU-ի խոցելիությունը, որը USB-ով նոր որոնվածը բեռնելու վարորդ է, թույլ է տալիս ներբեռնել փոփոխված որոնվածի պատկերը միկրոկոնտրոլերի ներքին Flash-ում՝ առանց գաղտնագրման և անվտանգ բեռնման ռեժիմը շրջանցելու՝ բաղադրիչների ստուգմամբ՝ օգտագործելով թվային ստորագրությունը: Բացի այդ, ուսումնասիրվել է բաց bootloader կոդը
ինչը կարող է հանգեցնել բուֆերի արտահոսքի UART-ի վրա SMP (Simple Management Protocol) արձանագրությունն օգտագործելիս:
Հիշեցնենք, որ Zephyr-ում բոլոր գործընթացների համար տրամադրվում է միայն մեկ գլոբալ համօգտագործվող վիրտուալ հասցեների տարածք (SASOS, Single Address Space Operating System): Հավելվածին հատուկ կոդը զուգակցվում է հավելվածի հատուկ միջուկի հետ՝ ձևավորելով միաձույլ գործարկվող, որը կարող է բեռնվել և գործարկվել հատուկ սարքաշարի վրա: Համակարգի բոլոր ռեսուրսները որոշվում են կոմպիլյացիայի ժամանակ՝ նվազեցնելով կոդի չափը և մեծացնելով կատարողականը: Համակարգի պատկերը կարող է ներառել միայն միջուկի այն հատկանիշները, որոնք անհրաժեշտ են հավելվածը գործարկելու համար:
Հատկանշական է, որ Zephyr-ի առանցքային առավելություններից
Source: opennet.ru