RTOS Zephyr-ийн 25 эмзэг байдал, үүнд ICMP пакетаар ашигладаг.

NCC группын судлаачид Нийтлэгдсэн үнэ төлбөргүй төслийн аудитын үр дүн Zephyr, хөгжиж байна Интернэт зүйлсийн (IoT, Internet of Things) үзэл баримтлалд нийцсэн төхөөрөмжүүдийг тоноглоход чиглэсэн бодит цагийн үйлдлийн систем (RTOS). Шалгалтын явцад энэ нь илэрсэн 25 эмзэг байдал Zephyr болон MCUboot-ийн 1 эмзэг байдал. Zephyr-ийг Intel компаниудын оролцоотойгоор боловсруулж байна.

Нийтдээ сүлжээний стект 6, цөмд 4, командын бүрхүүлд 2, системийн дуудлагын зохицуулагчд 5, USB дэд системд 5, програм хангамжийн шинэчлэлтийн механизмд 3 сул тал илэрсэн. Хоёр асуудал шүүмжлэлтэй, хоёр нь өндөр, 9 нь дунд, 9 нь бага, 4 нь хэлэлцэхээр байна. Чухал асуудал нь IPv4 стек болон MQTT задлагч, аюултай асуудал нь USB масс санах ой болон USB DFU драйверуудад нөлөөлдөг. Мэдээллийг задруулах үед зөвхөн хамгийн аюултай 15 эмзэг байдлын засварыг бэлтгэсэн байсан бөгөөд үйлчилгээ үзүүлэхээс татгалзахад хүргэдэг эсвэл цөмийн хамгаалалтын нэмэлт механизмын дутагдалтай холбоотой асуудлууд засварлагдаагүй хэвээр байна.

Платформын IPv4 стекээс алсаас ашиглах боломжтой эмзэг байдал илэрсэн бөгөөд энэ нь тодорхой аргаар өөрчилсөн ICMP пакетуудыг боловсруулах үед санах ойн эвдрэлд хүргэдэг. MQTT протокол задлагчаас өөр нэг ноцтой асуудал илэрсэн бөгөөд энэ нь толгойн талбарын уртыг зөв шалгаагүйгээс үүдэлтэй бөгөөд кодыг алсаас гүйцэтгэхэд хүргэдэг. IPv6 стек болон CoAP протоколын хэрэгжилтэд үйлчилгээ үзүүлэхээс бага зэрэг татгалзсан асуудал гардаг.

Бусад асуудлуудыг дотооддоо ашиглаж, цөмийн түвшинд үйлчилгээ үзүүлэх эсвэл кодыг гүйцэтгэхээс татгалзахад хүргэж болно. Эдгээр сул талуудын ихэнх нь системийн дуудлагын аргументуудыг зохих ёсоор шалгаагүйтэй холбоотой бөгөөд цөмийн санах ойн дурын хэсгүүдийг бичих, уншихад хүргэдэг. Асуудал нь системийн дуудлагыг боловсруулах кодтой холбоотой байдаг - сөрөг системийн дуудлагын дугаарыг дуудах нь бүхэл тоон халихад хүргэдэг. Цөм нь мөн ASLR хамгаалалт (хаяг орон зайн санамсаргүй хуваарилалт) болон стек дээр канарын тэмдэг тавих механизмыг хэрэгжүүлэхэд тулгарч буй бэрхшээлүүдийг илрүүлж, эдгээр механизмыг үр дүнгүй болгожээ.

Олон асуудал нь USB стек болон тусдаа драйверуудад нөлөөлдөг. Жишээлбэл, USB масс санах ойн асуудал нь халдагчийн удирддаг USB хосттой холбогдсон үед цөмийн түвшний кодыг ажиллуулж, буфер дүүрэхэд хүргэдэг. USB-ээр шинэ програм хангамжийг ачаалах драйвер болох USB DFU-ийн эмзэг байдал нь шифрлэлт ашиглахгүйгээр, дижитал гарын үсэг ашиглан бүрэлдэхүүн хэсгүүдийг баталгаажуулах замаар аюулгүй ачаалах горимыг алгасахгүйгээр микроконтроллерийн дотоод Flash-д өөрчилсөн програмын дүрсийг ачаалах боломжийг олгодог. Нэмж дурдахад нээлттэй ачаалагч кодыг судалсан MCUboot, нэг хоргүй эмзэг байдал илэрсэн,
Энэ нь UART дээр SMP (Simple Management Protocol) протоколыг ашиглах үед буфер халихад хүргэж болзошгүй.

Zephyr-д бүх процесст зориулж зөвхөн нэг дэлхийн хуваалцсан виртуал хаягийн орон зай (SASOS, Single Address Space Operating System) өгдөг гэдгийг санаарай. Аппликейшний тусгай кодыг програмын тусгай цөмтэй нэгтгэж, тодорхой техник хангамж дээр ачаалж, ажиллуулж болох цул гүйцэтгэх файлыг бүрдүүлдэг. Системийн бүх нөөцийг эмхэтгэх үед тодорхойлж, кодын хэмжээг багасгаж, гүйцэтгэлийг нэмэгдүүлдэг. Системийн зураг нь зөвхөн програмыг ажиллуулахад шаардлагатай цөмийн функцуудыг агуулж болно.

Zephyr-ийн гол давуу талуудын нэг нь анхаарал татаж байна дурдсан аюулгүй байдлыг харгалзан хөгжүүлэх. ЗөвшөөрсөнХөгжлийн бүх үе шатууд нь кодын аюулгүй байдлыг баталгаажуулах зайлшгүй үе шатуудыг дамждаг: бүдгэрсэн туршилт, статик шинжилгээ, нэвтрэлтийн тест, кодыг хянах, арын хаалганы хэрэгжилтийн дүн шинжилгээ, аюулын загварчлал.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх