25 осебпазирӣ дар RTOS Zephyr, аз ҷумла онҳое, ки тавассути бастаи ICMP истифода мешаванд

Муҳаққиқон аз NCC Group нашр кардааст натиҷаҳои аудити лоиҳаи ройгон Zephyr, инкишоф ёфта истодааст системаи оператсионии вақти воқеӣ (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 дохилии микроконтроллер бор кунед. Илова бар ин, рамзи кушодаи пурборкунанда омӯхта шуд MCUboot, ки дар он як осебпазирии хуб пайдо шудааст,
ки метавонад ҳангоми истифодаи протоколи SMP (Протоколи идоракунии оддӣ) аз болои UART боиси фаромадани буфер гардад.

Ёдовар мешавем, ки дар Zephyr барои ҳама равандҳо танҳо як фазои суроғаи виртуалии муштарак (SASOS, Single Address Space System) пешбинӣ шудааст. Рамзи мушаххаси барнома бо ядрои мушаххаси барнома муттаҳид карда мешавад, то файли иҷрошавандаи монолитиро ташкил кунад, ки метавонад дар сахтафзори мушаххас бор карда ва кор кунад. Ҳама захираҳои система дар вақти тартибдиҳӣ муайян карда мешаванд, ки андозаи кодро коҳиш медиҳанд ва иҷрои онро афзоиш медиҳанд. Тасвири система метавонад танҳо он хусусиятҳои ядроиро дар бар гирад, ки барои иҷрои барнома заруранд.

Қобили зикр аст, ки дар байни афзалиятҳои асосии Zephyr зикр шудааст инкишоф бо дарназардошти бехатарӣ. тасдик карда шудки тамоми марҳилаҳои рушд марҳилаҳои ҳатмии тасдиқи амнияти кодро мегузаранд: санҷиши фуҷур, таҳлили статикӣ, санҷиши воридшавӣ, баррасии код, таҳлили татбиқи қафо ва моделсозии таҳдид.

Манбаъ: opennet.ru

Илова Эзоҳ