Forskere fra NCC Group resultaterne af revisionen af det frie projekt , et realtidsoperativsystem (RTOS) designet til at understøtte enheder, der er i overensstemmelse med begrebet 'Internet of Things' (IoT). Under revisionen blev der identificeret i Zephyr og 1 sårbarhed i MCUboot. Udviklingen af Zephyr foregår med deltagelse af virksomhederne Intel.
I alt blev der fundet 6 sårbarheder i netværksstakken, 4 i kernen, 2 i kommandolinjen, 5 i systemkaldshåndterere, 5 i USB-underdelene og 3 i firmwareopdateringsmekanismen. To problemer blev klassificeret som kritiske, to som høje, 9 som moderate, 9 som lave og 4 til overvejelse. De kritiske problemer vedrører IPv4-stakken og MQTT-parseren, mens de farlige påvirker USB-masselagringsdrivere og USB DFU. På tidspunktet for offentliggørelsen var der kun forberedt rettelser til 15 af de mest kritiske sårbarheder, mens problemer, der fører til serviceafbrydelser eller er relateret til mangler i kernebeskyttelsesmekanismer, stadig er uoprettede.
I IPv4-stakken på platformen blev der identificeret en fjernudnyttelig sårbarhed, som kan forårsage hukommelsesskader ved behandling af specielt modificerede ICMP-pakker. Et andet alvorligt problem blev fundet i MQTT-protokolens parser, som skyldes manglende korrekt længdekontrol af felter i overskriften og kan føre til fjernudførelse af kode. Mindre farlige problemer, der fører til serviceafbrydelser, er blevet fundet i IPv6-stakken og implementeringen af CoAP-protokollen.
De øvrige problemer kan udnyttes lokalt til at forårsage serviceafbrydelser eller udføre kode på kerne-niveau. Størstedelen af disse sårbarheder er relateret til manglende passende kontrol af argumenter til systemkald, hvilket kan føre til skrivning og læsning af vilkårlige områder i kernehukommelsen. Problemerne dækker også selve kodehåndteringen af systemkald — adgang til et negativt systemkaldsnummer fører til et heltals-overløb. Der er også opdaget problemer i implementeringen af ASLR-beskyttelse (adresse-rum-randomisering) og mekanismen for indstilling af kanarimærker i stakken, der gør disse mekanismer ineffektive.
Mange problemer påvirker USB-stakken og enkelte drivere. For eksempel tillader et problem med USB-masselagring, at der kan opstå buffer overflow, hvilket kan udføre kode på kerne niveau, når en enhed tilsluttes en USB-vært kontrolleret af en angriber. Sårbarheden i USB DFU, driveren til opdatering af ny firmware via USB, muliggør indlæsning af et modificeret firmwarebillede i den interne Flash-mikrocontroller uden brug af kryptering og omgåelse af den beskyttede opstartstilstand, der kontrollerer komponenter gennem digitale signaturer. Derudover blev koden fra den åbne bootloader undersøgt. , hvor én ukritisk sårbarhed blev fundet,
som kan føre til buffer overflow ved brug af SMP (Simple Management Protocol) via UART.
Vi minder om, at i Zephyr for alle processer er der kun ét globalt delt virtuelt adresserum (SASOS, Single Address Space Operating System). Applikationsspecifik kode kombineres med en tilpasset kerne og danner en monolitisk eksekverbar fil til indlæsning og kørsel på et bestemt udstyr. Alle systemressourcer defineres i kompileringsfasen, hvilket reducerer størrelsen af koden og øger ydeevnen. Kun de kernefunktioner, der kræves for at køre applikationen, kan inkluderes i systembilledet.
Det er bemærkelsesværdigt, at blandt de vigtigste fordele ved Zephyr er udvikling med fokus på sikkerhed. , at alle udviklingsfaser gennemgår obligatoriske sikkerhedsgodkendelsestrin: fuzzing-test, statisk analyse, penetrationstest, kodegennemgang, analyse af bagdørsimplementeringer og trusselsmodellering.
Kilde: opennet.ru
