Peneliti saka perusahaan NCC Group nerbitake bubar asil audit proyek Zephyr, yaiku sistem operasi nyata-wektu (RTOS), sing dirancang kanggo nglengkapi piranti miturut konsep "Internet of Things" (IoT). Zephyr lagi dikembangake kanthi partisipasi Intel.
Zephyr nyedhiyakake siji alamat alamat virtual kanggo kabeh proses global bareng (SASOS, Sistem Operasi Ruang Alamat Single). Kode khusus aplikasi dikombinasikake karo kernel sing dirancang kanggo aplikasi tartamtu lan mbentuk file sing bisa dieksekusi monolitik kanggo didownload lan mbukak ing komputer tartamtu.
Kabeh sumber daya sistem ditemtokake ing tahap kompilasi, sing nyuda ukuran kode lan nambah produktivitas. Mung fitur kernel sing dibutuhake kanggo mbukak aplikasi sing bisa dilebokake ing gambar sistem.
Elinga yen ing antarane kaluwihan utama Zephyr kasebut pembangunan kanthi mripat aman. Disebataken bilih Kabeh tahapan pangembangan lumantar tataran wajib saka konfirmasi keamanan kode: tes kabur, analisis statis, tes penetrasi, review kode, analisis penyebaran mburi, lan pemodelan ancaman.
Babagan kerentanan
Audit mbukak 25 kerentanan ing Zephyr lan 1 kerentanan ing MCUboot. Secara total, dheweke diidentifikasi 6 kerentanan ing tumpukan jaringan, 4 ing kernel, 2 ing cangkang komando, 5 ing pawang panggilan sistem, 5 ing subsistem USB lan 3 ing mekanisme nganyari firmware.
Rong masalah diwenehi level bahaya kritis, loro: dhuwur, 9 moderat, 9 - endhek lan 4 - kudu dipikirake. Masalah kritis mengaruhi tumpukan IPv4 lan MQTT parser, dene apaSing mbebayani kalebu panyimpenan massal USB lan driver USB DFU.
Ing wektu pambocoran informasi, perbaikan wis disiapake mung kanggo 15 kerentanan luwih mbebayani, isih ana masalah sing wis dirampungake, nyebabake penolakan layanan utawa kegagalan mekanisme sing gegandhengan kanggo nglindhungi kernel tambahan.
Kerentanan sing dieksploitasi saka jarak adoh wis diidentifikasi ing tumpukan IPv4 platform, sing nyebabake korupsi memori nalika ngolah paket ICMP sing diowahi kanthi cara tartamtu.
Masalah serius liyane ditemokake ing parser protokol MQTT, qIki disebabake amarga ora ana verifikasi sing tepat babagan dawa kolom ing header lan bisa nyebabake eksekusi kode jarak jauh. Masalah penolakan layanan sing kurang mbebayani ditemokake ing tumpukan IPv6 lan implementasi protokol CoAP.
Masalah liyane bisa dimanfaatake kanthi lokal kanggo nyebabake penolakan layanan utawa eksekusi kode ing level kernel. Umume kerentanan kasebut ana gandhengane karo kekurangan cek argumen panggilan sistem, lan bisa nyebabake nulis lan maca area memori kernel sing ora kasepakatan.
Masalah kasebut uga nutupi kode pamrosesan panggilan sistem dhewe: ngakses nomer telpon sistem negatif bakal nyebabake overload integer. LANKernel uga ngidentifikasi masalah nalika ngetrapake perlindungan ASLR (alamat acak papan) lan mekanisme kanggo masang label kenari ing tumpukan, nggawe mekanisme kasebut ora efektif.
Akeh masalah sing nyebabake tumpukan USB lan driver individu. Contone, masalah panyimpenan massal USB ngidini sampeyan nyebabake buffer kebanjiran lan mbukak kode ing level kernel nalika sampeyan nyambungake piranti menyang host serangan USB sing dikontrol.
Kerentanan ing USB DFU, driver kanggo ndownload firmware anyar liwat USB, ngidini sampeyan mbukak gambar firmware sing wis dimodifikasi menyang Flash internal mikrokontrol tanpa nggunakake enkripsi lan ngliwati mode boot aman kanthi verifikasi teken digital komponen. Kajaba iku, kode bootloader mbukak MCUboot diteliti, ing endi kerentanan sing ora mbebayani ditemokake sing bisa nyebabake buffer overflow nalika nggunakake Simple Management Protocol (SMP) liwat UART.
Dadi pisanan komentar