Forskare frÄn NCC Group resultaten av en revision av det fria projektet , ett realtidsoperativsystem (RTOS) som syftar till att utrusta enheter enligt konceptet "Internet of Things" (IoT, Internet of Things). Under revisionen identifierades i Zephyr och 1 sÄrbarhet i MCUboot. Utvecklingen av Zephyr sker i samarbete med företag som Intel.
Totalt identifierades 6 sÄrbarheter i nÀtverksstacken, 4 i kÀrnan, 2 i kommandotolken, 5 i systemanropens hanterare, 5 i USB-underdelarna och 3 i mekanismen för firmwareuppdatering. TvÄ problem tilldelades kritisk farlighet, tvÄ hög, 9 mÄttlig, 9 lÄg och 4 för övervÀgande. De kritiska problemen rör IPv4-stacken och MQTT-parsern, medan de farliga berör USB mass storage- och USB DFU-drivrutiner. Vid tidpunkten för informationens offentliggörande hade ÄtgÀrder endast förberedts för de 15 mest farliga sÄrbarheterna, medan problemen som leder till överbelastning eller Àr relaterade till brister i kÀrnans ytterligare skyddsmekanismer fortfarande Àr oupptÀckta.
I IPv4-stacken pÄ plattformen upptÀcktes en sÄrbarhet som kan utnyttjas pÄ distans och leder till minneskorruption vid behandling av sÀrskilt modifierade ICMP-paket. Ett annat allvarligt problem hittades i MQTT-protokollets parser, vilket orsakas av bristen pÄ korrekt lÀngdkontroll av fÀlten i rubriken och kan leda till fjÀrrkodexekvering. Mindre allvarliga problem som kan leda till överbelastning har upptÀckts i IPv6-stack och implementeringen av CoAP-protokollet.
De resterande problemen kan utnyttjas lokalt för att orsaka överbelastning eller exekvering av kod pĂ„ kĂ€rnnivĂ„. Största delen av dessa sĂ„rbarheter Ă€r kopplade till bristen pĂ„ korrekt argumentkontroll av systemanrop, vilket kan leda till en skrivning och lĂ€sning av slumpmĂ€ssiga omrĂ„den i kĂ€rnans minne. Problemen omfattar ocksĂ„ koden för att hantera systemanrop â anrop av ett negativt systemanropsnummer leder till ett heltalsöverflöde. I kĂ€rnan har ocksĂ„ problem i implementeringen av ASLR-skydd (address space layout randomization) och mekanismen för att sĂ€tta canary-vĂ€rden pĂ„ stacken upptĂ€ckts, vilket gör dessa mekanismer ineffektiva.
MÄnga problem berör USB-stacken och enskilda drivrutiner. Till exempel gör ett problem med USB mass storage det möjligt att orsaka en buffertöverfyllning och köra kod pÄ kernel-nivÄ nÀr en enhet ansluts till en USB-vÀrd som kontrolleras av en angripare. En sÄrbarhet i USB DFU, drivrutinen för att ladda ny firmware via USB, gör det möjligt att ladda en modifierad firmwarebild till den interna Flash-minneskontrollern utan att anvÀnda nÄgon kryptering och kringgÄ skyddat startlÀge med komponentverifiering genom digital signatur. Dessutom har koden för den öppna bootloadern studerats , dÀr en ofarlig sÄrbarhet har hittats,
som kan leda till buffertöverfyllning vid anvÀndning av SMP-protokollet (Simple Management Protocol) via UART.
Vi pÄminner om att Zephyr för alla processer tillhandahÄller endast ett globalt delat virtuellt adressutrymme (SASOS, Single Address Space Operating System). Applikationsspecifik kod kombineras med en anpassad kÀrna och bildar en monolitisk exekverbara fil för laddning och körning pÄ specifik hÄrdvara. Alla systemresurser definieras under kompilering, vilket minskar kodstorleken och ökar prestanda. Endast de funktioner som kÀrnan krÀver för att köra applikationen kan inkluderas i systemavbilden.
Det Àr notabelt att bland Zephyrs nyckelfördelar utvecklingen med fokus pÄ sÀkerhet. , att alla stadier av utvecklingen genomgÄr obligatoriska sÀkerhetsbekrÀftelsesteg: fuzzing-testning, statisk analys, penetrationstester, kodgranskning, analys av bakdörrsintrÀde och hotmodellering.
KĂ€lla: opennet.ru
