25 sårbarheder i RTOS Zephyr, inklusive dem, der udnyttes via en ICMP-pakke

Forskere fra NCC Group offentliggjort gratis projektrevisionsresultater Zephyr, udvikler sig et real-time operativsystem (RTOS), der har til formål at udstyre enheder, der overholder Internet of Things-konceptet (IoT, Internet of Things). Under revisionen blev det afsløret 25 sårbarheder i Zephyr og 1 sårbarhed i MCUboot. Zephyr udvikles med deltagelse af Intel-virksomheder.

I alt blev 6 sårbarheder identificeret i netværksstakken, 4 i kernen, 2 i kommandoskallen, 5 i systemopkaldsbehandlere, 5 i USB-undersystemet og 3 i firmwareopdateringsmekanismen. To problemer vurderes som kritiske, to er høje, 9 er moderate, 9 er lave og 4 er til overvejelse. Kritiske problemer påvirker IPv4-stakken og MQTT-parseren, farlige påvirker USB-masselageret og USB DFU-driverne. På tidspunktet for offentliggørelse af oplysninger var der kun udarbejdet rettelser til 15 af de farligste sårbarheder; problemer, der fører til lammelsesangreb eller forbundet med fejl i yderligere kernebeskyttelsesmekanismer, forbliver ukorrigerede.

En sårbarhed, der kan udnyttes eksternt, er blevet identificeret i platformens IPv4-stak, hvilket fører til hukommelseskorruption ved behandling af ICMP-pakker ændret på en bestemt måde. Et andet alvorligt problem blev fundet i MQTT-protokolparseren, som er forårsaget af en mangel på korrekt kontrol af headerfeltlængde og kan føre til fjernudførelse af kode. Mindre alvorlige lammelsesangrebsproblemer findes i IPv6-stakken og implementeringen af ​​CoAP-protokollen.

Andre problemer kan udnyttes lokalt til at forårsage lammelsesangreb eller kodeudførelse på kerneniveau. De fleste af disse sårbarheder er relateret til manglen på korrekt kontrol af systemkaldsargumenter og kan føre til, at vilkårlige områder af kernehukommelsen bliver skrevet til og læst fra. Problemerne omfatter også selve systemopkaldsbehandlingskoden - at ringe til et negativt systemopkaldsnummer resulterer i et heltalsoverløb. Kernen identificerede også problemer i implementeringen af ​​ASLR-beskyttelse (address space randomization) og mekanismen til at sætte kanariemærker på stakken, hvilket gør disse mekanismer ineffektive.

Mange problemer påvirker USB-stakken og individuelle drivere. For eksempel kan problemer i USB-masselager forårsage et bufferoverløb og eksekvere kode på kerneniveau, når enheden er forbundet til en USB-vært, der styres af angriberen. En sårbarhed i USB DFU, en driver til indlæsning af ny firmware via USB, giver dig mulighed for at indlæse et ændret firmwarebillede i den interne Flash på mikrocontrolleren uden at bruge kryptering og omgå den sikre boot-tilstand med verifikation af komponenter ved hjælp af en digital signatur. Derudover blev den åbne bootloader-kode undersøgt MCUboot, hvor der blev fundet en godartet sårbarhed,
hvilket kan føre til et bufferoverløb ved brug af SMP (Simple Management Protocol) protokollen over UART.

Husk, at i Zephyr er der kun et globalt delt virtuelt adresserum (SASOS, Single Address Space Operating System) til rådighed for alle processer. Applikationsspecifik kode kombineres med en applikationsspecifik kerne for at danne en monolitisk eksekverbar, der kan indlæses og køres på specifik hardware. Alle systemressourcer bestemmes på kompileringstidspunktet, hvilket reducerer kodestørrelsen og øger ydeevnen. Systembilledet kan kun indeholde de kernefunktioner, der er nødvendige for at køre programmet.

Det er bemærkelsesværdigt, at blandt de vigtigste fordele ved Zephyr nævnt udvikling med sikkerhed for øje. godkendtat alle udviklingsstadier gennemgår obligatoriske stadier af bekræftelse af kodens sikkerhed: fuzzing-test, statisk analyse, penetrationstest, kodegennemgang, analyse af bagdørsimplementering og trusselsmodellering.

Kilde: opennet.ru

Tilføj en kommentar