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 mass storage ΠΈ USB DFU. На ΠΌΠΎΠΌΠ΅Π½Ρ‚ раскрытия ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ исправлСния Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для 15 Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ опасных уязвимостСй, нСисправлСнными ΠΏΠΎΠΊΠ° ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, приводящиС ΠΊ ΠΎΡ‚ΠΊΠ°Π·Ρƒ Π² обслуТивании ΠΈΠ»ΠΈ связанныС с Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ°ΠΌΠΈ Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°Ρ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ядра.

Π’ IPv4 стСкС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ выявлСна ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎ эксплуатируСмая ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ, приводящая ΠΊ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ памяти ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ICMP-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π°ΠΉΠ΄Π΅Π½Π° Π² парсСрС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT, которая Π²Ρ‹Π·Π²Π°Π½Π° отсутствиСм Π΄ΠΎΠ»ΠΆΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄Π»ΠΈΠ½Ρ‹ ΠΏΠΎΠ»Π΅ΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°. МСнСС опасныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, приводящиС ΠΊ ΠΎΡ‚ΠΊΠ°Π·Ρƒ Π² обслуТивании, Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ Π² IPv6-стСкС ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° CoAP.

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ эксплуатированы локально для Π²Ρ‹Π·ΠΎΠ²Π° ΠΎΡ‚ΠΊΠ°Π·Π° Π² обслуТивании ΠΈΠ»ΠΈ выполнСния ΠΊΠΎΠ΄Π° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… уязвимостСй связана с отсутствиС Π΄ΠΎΠ»ΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π² записи ΠΈ чтСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… областСй памяти ядра. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΈ нСпосрСдствСнно ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² — ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ Π½ΠΎΠΌΠ΅Ρ€Ρƒ систСмного Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ цСлочислСнному ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ. Π’ ядрС Ρ‚Π°ΠΊΠΆΠ΅ выявлСны ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ASLR (рандомизация адрСсного пространства) ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° установки ΠΊΠ°Π½Π°Ρ€Π΅Π΅Ρ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ Π² стСкС, Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ нСэффСктивными.

Много ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‚ USB-стСк ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹. НапримСр, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² USB mass storage ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π° ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ устройства ΠΊ ΠΏΠΎΠ΄ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰Π΅ΠΌΡƒ USB-хосту. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π² USB DFU, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΏΠΎ USB, позволяСт Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Flash ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π±Π΅Π· примСнСния ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ обойдя Ρ€Π΅ΠΆΠΈΠΌ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» ΠΈΠ·ΡƒΡ‡Π΅Π½ ΠΊΠΎΠ΄ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° MCUboot, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»Π° Π½Π°ΠΉΠ΄Π΅Π½Π° ΠΎΠ΄Π½Π° нСопасная ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ,
которая ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Π±ΡƒΡ„Π΅Ρ€Π° ΠΏΡ€ΠΈ испльзовании ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° SMP (Simple Management Protocol) Ρ‡Π΅Ρ€Π΅Π· UART.

Напомним, Ρ‡Ρ‚ΠΎ Π² Zephyr для всСх процСссов прСдоставляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ глобальноС совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ адрСсноС пространство (SASOS, Single Address Space Operating System). Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½Ρ‹ΠΉ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠ΄ комбинируСтся с Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ядром ΠΈ ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹ΠΉ исполняСмый Ρ„Π°ΠΉΠ» для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ запуска Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ. ВсС систСмныС рСсурсы ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π° этапС компиляции, Ρ‡Ρ‚ΠΎ сокращаСт Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π’ систСмный ΠΎΠ±Ρ€Π°Π· ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ возмоТности ядра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для выполнСния прилоТСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ срСди ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… достоинств Zephyr упоминаСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с оглядкой Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ. УтвСрТдаСтся, Ρ‡Ρ‚ΠΎ всС стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ проходят ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ этапы подтвСрТдСния бСзопасности ΠΊΠΎΠ΄Π°: fuzzing-тСстированиС, статичСский Π°Π½Π°Π»ΠΈΠ·, испытания Π½Π° ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅, Ρ€Π΅Ρ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, Π°Π½Π°Π»ΠΈΠ· внСдрСния бэкдоров ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΠ³Ρ€ΠΎΠ·.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ