RTOS Zephyr-ում 25 խոցելիություն, ներառյալ ICMP փաթեթի միջոցով շահագործվողները

NCC խմբի հետազոտողները հրատարակված անվճար ծրագրի աուդիտի արդյունքներ Զեփյուռ, զարգացող իրական ժամանակի օպերացիոն համակարգ (RTOS), որն ուղղված է սարքերի համալրմանը, որոնք համապատասխանում են Իրերի ինտերնետ հայեցակարգին (IoT, Internet of Things): Աուդիտի ընթացքում պարզվել է 25 խոցելիություն Zephyr-ում և 1 խոցելիություն MCUboot-ում: Zephyr-ը մշակվում է Intel ընկերությունների մասնակցությամբ։

Ընդհանուր առմամբ, հայտնաբերվել է 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 կոդը MCUboot, որի մեջ հայտնաբերվել է մեկ բարենպաստ խոցելիություն,
ինչը կարող է հանգեցնել բուֆերի արտահոսքի UART-ի վրա SMP (Simple Management Protocol) արձանագրությունն օգտագործելիս:

Հիշեցնենք, որ Zephyr-ում բոլոր գործընթացների համար տրամադրվում է միայն մեկ գլոբալ համօգտագործվող վիրտուալ հասցեների տարածք (SASOS, Single Address Space Operating System): Հավելվածին հատուկ կոդը զուգակցվում է հավելվածի հատուկ միջուկի հետ՝ ձևավորելով միաձույլ գործարկվող, որը կարող է բեռնվել և գործարկվել հատուկ սարքաշարի վրա: Համակարգի բոլոր ռեսուրսները որոշվում են կոմպիլյացիայի ժամանակ՝ նվազեցնելով կոդի չափը և մեծացնելով կատարողականը: Համակարգի պատկերը կարող է ներառել միայն միջուկի այն հատկանիշները, որոնք անհրաժեշտ են հավելվածը գործարկելու համար:

Հատկանշական է, որ Zephyr-ի առանցքային առավելություններից նշված զարգացումը՝ հաշվի առնելով անվտանգությունը: Հաստատված էոր մշակման բոլոր փուլերն անցնում են կոդի անվտանգությունը հաստատելու պարտադիր փուլեր՝ լղոզված փորձարկում, ստատիկ վերլուծություն, ներթափանցման փորձարկում, կոդի վերանայում, հետնախորշի ներդրման վերլուծություն և սպառնալիքների մոդելավորում։

Source: opennet.ru

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