RTOS Zephyr-də ICMP paketi vasitəsilə istifadə edilənlər də daxil olmaqla 25 boşluq

NCC Qrupunun tədqiqatçıları nəşr olundu pulsuz layihə audit nəticələri Zefir, inkişaf edir Əşyaların İnterneti (IoT, Əşyaların İnterneti) konsepsiyasına uyğun cihazları təchiz etməyə yönəlmiş real vaxt rejimində əməliyyat sistemi (RTOS). Audit zamanı üzə çıxıb 25 zəiflik Zephyr-də və MCUboot-da 1 zəiflik. Zephyr Intel şirkətlərinin iştirakı ilə hazırlanır.

Ümumilikdə şəbəkə stekində 6, nüvədə 4, komanda qabığında 2, sistem zənglərinin idarəedicilərində 5, USB altsistemində 5 və mikroproqramın yenilənməsi mexanizmində 3 boşluq müəyyən edilib. İki məsələ kritik, ikisi yüksək, 9-u orta, 9-u aşağı, 4-ü isə baxılmaq üçün nəzərdə tutulub. Kritik problemlər IPv4 yığınına və MQTT təhlilçisinə, təhlükəli olanlar USB yaddaşa və USB DFU sürücülərinə təsir göstərir. Məlumatın açıqlanması zamanı yalnız ən təhlükəli 15 boşluq üçün düzəlişlər hazırlanmışdı; xidmətdən imtinaya səbəb olan problemlər və ya əlavə nüvə mühafizə mexanizmlərindəki çatışmazlıqlar düzəldilməmiş qalır.

Platformanın IPv4 stekində uzaqdan istifadə edilə bilən boşluq müəyyən edilib ki, bu da müəyyən şəkildə dəyişdirilmiş ICMP paketlərinin işlənməsi zamanı yaddaşın pozulmasına gətirib çıxarır. MQTT protokol analizatorunda daha bir ciddi problem tapıldı, bu, başlıq sahəsinin uzunluğunun düzgün yoxlanılmasının olmamasından qaynaqlanır və kodun uzaqdan icrasına səbəb ola bilər. IPv6 yığınında və CoAP protokolunun tətbiqində xidmətdən daha az ciddi imtina problemlərinə rast gəlinir.

Xidmətdən imtinaya və ya nüvə səviyyəsində kodun icrasına səbəb olmaq üçün digər problemlər yerli olaraq istifadə edilə bilər. Bu zəifliklərin əksəriyyəti sistem çağırışı arqumentlərinin düzgün yoxlanılmaması ilə əlaqədardır və nüvə yaddaşının ixtiyari sahələrinə yazılmasına və ondan oxunmasına səbəb ola bilər. Problemlər həmçinin sistemin zəng emalı kodunun özünə də şamil edilir - mənfi sistem zəng nömrəsinə zəng etmək tam ədədin daşması ilə nəticələnir. Nüvə həmçinin ASLR mühafizəsinin (ünvan məkanının təsadüfiləşdirilməsi) və yığında kanareyka işarələrinin qoyulması mexanizminin həyata keçirilməsində problemləri müəyyən etdi və bu mexanizmləri təsirsiz hala gətirdi.

Bir çox problem USB yığınına və fərdi sürücülərə təsir göstərir. Məsələn, USB yaddaşında problemlər cihaz təcavüzkar tərəfindən idarə olunan USB hosta qoşulduqda bufer daşmasına və kodun nüvə səviyyəsində icrasına səbəb ola bilər. USB vasitəsilə yeni proqram təminatının yüklənməsi üçün sürücü olan USB DFU-dakı boşluq şifrələmədən istifadə etmədən və rəqəmsal imzadan istifadə edərək komponentlərin yoxlanılması ilə təhlükəsiz yükləmə rejimindən yan keçmədən dəyişdirilmiş proqram təminatı şəklini mikrokontrolörün daxili Flash-a yükləməyə imkan verir. Bundan əlavə, açıq yükləyici kodu öyrənildi MCUboot, bir xoşagəlməz zəifliyin aşkar edildiyi,
UART üzərində SMP (Sadə İdarəetmə Protokolu) protokolundan istifadə edərkən bufer daşmasına səbəb ola bilər.

Xatırladaq ki, Zephyr-də bütün proseslər üçün yalnız bir qlobal paylaşılan virtual ünvan məkanı (SASOS, Tək Ünvan Məkanı Əməliyyat Sistemi) təmin edilir. Tətbiq üçün xüsusi kod xüsusi aparatda yüklənə və işə salına bilən monolit icra olunan fayl yaratmaq üçün proqrama aid olan ləpə ilə birləşdirilir. Bütün sistem resursları kompilyasiya zamanı müəyyən edilir, kod ölçüsünü azaldır və performansı artırır. Sistem şəklinə yalnız tətbiqi işə salmaq üçün tələb olunan nüvə xüsusiyyətləri daxil ola bilər.

Maraqlıdır ki, Zephyr-in əsas üstünlükləri arasındadır qeyd edildi təhlükəsizliyi nəzərə alaraq inkişaf. Təsdiq edildiinkişafın bütün mərhələləri kodun təhlükəsizliyinin təsdiqinin məcburi mərhələlərindən keçir: fuzzing testi, statik analiz, penetrasiya testi, kodun nəzərdən keçirilməsi, backdoor tətbiqinin təhlili və təhdidlərin modelləşdirilməsi.

Mənbə: opennet.ru

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