25 vulnerabilidades en RTOS Zephyr, incluídas as explotadas mediante un paquete ICMP

Investigadores do Grupo NCC publicado resultados gratuítos da auditoría do proxecto Zéfiro, desenvolvendo un sistema operativo en tempo real (RTOS), destinado a equipar dispositivos que cumpran co concepto de Internet das Cousas (IoT, Internet of Things). Durante a auditoría revelouse 25 vulnerabilidades en Zephyr e 1 vulnerabilidade en MCUboot. Zephyr estase a desenvolver coa participación de empresas Intel.

En total, identificáronse 6 vulnerabilidades na pila de rede, 4 no núcleo, 2 no shell de comandos, 5 nos controladores de chamadas do sistema, 5 no subsistema USB e 3 no mecanismo de actualización de firmware. Dous problemas son considerados críticos, dous son altos, 9 son moderados, 9 son baixos e 4 son para consideración. Os problemas críticos afectan á pila IPv4 e ao analizador MQTT, os perigosos afectan ao almacenamento masivo USB e aos controladores USB DFU. No momento da divulgación da información, só se prepararon correccións para 15 das vulnerabilidades máis perigosas; os problemas que levaban á denegación de servizo ou asociados a fallos nos mecanismos adicionais de protección do núcleo seguen sen corrixirse.

Identificouse unha vulnerabilidade explotable de forma remota na pila IPv4 da plataforma, que leva á corrupción da memoria ao procesar paquetes ICMP modificados de determinada maneira. Atopouse outro problema grave no analizador do protocolo MQTT, que é causado pola falta de comprobación adecuada da lonxitude do campo de cabeceira e pode levar á execución remota de código. Atópanse problemas de denegación de servizo menos graves na pila IPv6 e na implementación do protocolo CoAP.

Outros problemas poden ser explotados localmente para causar unha denegación de servizo ou executar código a nivel do núcleo. A maioría destas vulnerabilidades están relacionadas coa falta de comprobacións adecuadas dos argumentos das chamadas do sistema, e poden levar a que se escriban e lean áreas arbitrarias da memoria do núcleo. Os problemas tamén se estenden ao propio código de procesamento de chamadas do sistema: chamar a un número de chamada do sistema negativo provoca un desbordamento de números enteiros. O núcleo tamén identificou problemas na implementación da protección ASLR (aleatorización do espazo de enderezos) e no mecanismo para establecer marcas canarias na pila, facendo que estes mecanismos sexan ineficaces.

Moitos problemas afectan á pila USB e aos controladores individuais. Por exemplo, os problemas no almacenamento masivo USB poden provocar un desbordamento do búfer e executar código a nivel do núcleo cando o dispositivo está conectado a un host USB controlado polo atacante. Unha vulnerabilidade en USB DFU, un controlador para cargar firmware novo a través de USB, permítelle cargar unha imaxe de firmware modificada no Flash interno do microcontrolador sen usar o cifrado e ignorando o modo de arranque seguro coa verificación dos compoñentes mediante unha sinatura dixital. Ademais, estudouse o código do cargador de arranque aberto MCUboot, no que se atopou unha vulnerabilidade benigna,
o que pode provocar un desbordamento do búfer ao utilizar o protocolo SMP (Simple Management Protocol) sobre o UART.

Lembre que en Zephyr, só se proporciona un espazo de enderezos virtuais compartido global (SASOS, Single Address Space Operating System) para todos os procesos. O código específico da aplicación combínase cun núcleo específico da aplicación para formar un executable monolítico que se pode cargar e executar en hardware específico. Todos os recursos do sistema determínanse no momento da compilación, reducindo o tamaño do código e aumentando o rendemento. A imaxe do sistema pode incluír só as funcións do núcleo que son necesarias para executar a aplicación.

Cabe destacar que entre as principais vantaxes de Zephyr mencionado desenvolvemento tendo en conta a seguridade. Aprobadoque todas as fases de desenvolvemento pasan por etapas obrigatorias de confirmación da seguridade do código: probas de fuzzing, análise estática, probas de penetración, revisión de código, análise da implementación de portas traseiras e modelado de ameazas.

Fonte: opennet.ru

Engadir un comentario