25 kerentanan dina RTOS Zephyr, kalebet anu dieksploitasi ku pakét ICMP

Panalungtik ti Grup NCC diterbitkeun bebas hasil Inok proyék Zephyr, ngembang sistem operasi real-time (RTOS), ditujukeun pikeun ngalengkepan alat anu saluyu sareng konsép Internet of Things (IoT, Internet of Things). Salila Inok eta kaungkap 25 karentanan di Zephyr sareng 1 kerentanan dina MCUboot. Zephyr dikembangkeun sareng partisipasi perusahaan Intel.

Dina total, kerentanan 6 diidentifikasi dina tumpukan jaringan, 4 dina kernel, 2 dina cangkang paréntah, 5 dina panangan panggero sistem, 5 dina subsistem USB sareng 3 dina mékanisme update firmware. Dua masalah dipeunteun kritis, dua luhur, 9 sedeng, 9 handap, jeung 4 keur tinimbangan. Masalah kritis mangaruhan tumpukan IPv4 sareng parser MQTT, anu bahaya mangaruhan panyimpenan massal USB sareng supir USB DFU. Dina waktos panyingkepan inpormasi, perbaikan parantos disiapkeun ngan pikeun 15 tina kerentanan anu paling bahaya; masalah anu nyababkeun panolakan jasa atanapi aya hubunganana sareng cacad dina mékanisme panyalindungan kernel tambahan tetep teu dilereskeun.

Kerentanan jarak jauh anu tiasa dieksploitasi parantos diidentifikasi dina tumpukan IPv4 platform, anu nyababkeun korupsi mémori nalika ngolah pakét ICMP anu dirobih ku cara anu tangtu. Masalah serius anu sanés kapanggih dina parser protokol MQTT, anu disababkeun ku kurangna pamariksaan panjang lapangan header anu leres sareng tiasa nyababkeun palaksanaan kode jauh. Kurang parna panolakan masalah jasa kapanggih dina tumpukan IPv6 jeung palaksanaan protokol CoAP.

Masalah sanésna tiasa dieksploitasi sacara lokal pikeun nyababkeun panolakan jasa atanapi ngaéksekusi kode dina tingkat kernel. Kalolobaan kerentanan ieu patali jeung kurangna cék ditangtoskeun tina argumen panggero sistem, sarta bisa ngakibatkeun wewengkon sawenang memori kernel keur ditulis jeung maca tina. Masalahna ogé ngalegaan kana kode pamrosésan sauran sistem sorangan - nyauran nomer telepon sistem négatip nyababkeun limpahan integer. Kernel ogé ngaidentipikasi masalah dina palaksanaan panyalindungan ASLR (alamat spasi randomization) jeung mékanisme pikeun nyetel tanda kenari dina tumpukan, sahingga mékanisme ieu teu epektip.

Seueur masalah mangaruhan tumpukan USB sareng supir individu. Contona, masalah dina panyimpenan massal USB bisa ngabalukarkeun overflow panyangga sarta ngaéksekusi kode dina tingkat kernel lamun alat disambungkeun ka host USB dikawasa ku lawan. Kerentanan dina USB DFU, supir pikeun ngamuat firmware anyar liwat USB, ngamungkinkeun anjeun pikeun ngamuat gambar firmware anu dirobih kana Flash internal mikrokontroler tanpa nganggo enkripsi sareng ngalangkungan modeu boot aman kalayan verifikasi komponén nganggo tanda tangan digital. Salaku tambahan, kodeu bootloader kabuka ditaliti MCUboot, dimana aya hiji kerentanan benign,
nu bisa ngakibatkeun mudal panyangga lamun ngagunakeun SMP (Manajemén Basajan Protocol) protokol leuwih UART.

Émut yén di Zephyr, ngan ukur hiji rohangan alamat virtual anu dibagi global (SASOS, Sistem Operasi Spasi Alamat Tunggal) anu disayogikeun pikeun sadaya prosés. Kode husus aplikasi digabungkeun jeung kernel husus aplikasi pikeun ngabentuk laksana monolithic nu bisa dimuat tur ngajalankeun on hardware husus. Sadaya sumber sistem ditangtukeun dina waktos kompilasi, ngirangan ukuran kode sareng ningkatkeun kinerja. Gambar sistem tiasa kalebet ngan ukur fitur kernel anu diperyogikeun pikeun ngajalankeun aplikasi.

Éta noteworthy yén diantara kaunggulan konci Zephyr disebatkeun ngembangkeun kalawan kaamanan dina pikiran. Disatujuanyén sakabéh tahapan ngembangkeun ngalaman tahap wajib confirming kaamanan kode: nguji fuzzing, analisis statik, nguji penetrasi, review kode, analisis palaksanaan backdoor sarta modeling ancaman.

sumber: opennet.ru

Tambahkeun komentar