25 de vulnerabilități în RTOS Zephyr, inclusiv cele exploatate prin pachetul ICMP

Cercetători de la NCC Group publicat rezultate gratuite ale auditului proiectului zefir, în curs de dezvoltare un sistem de operare în timp real (RTOS), care vizează echiparea dispozitivelor care respectă conceptul Internet of Things (IoT, Internet of Things). În timpul auditului a fost dezvăluit 25 vulnerabilități în Zephyr și 1 vulnerabilitate în MCUboot. Zephyr este dezvoltat cu participarea companiilor Intel.

În total, au fost identificate 6 vulnerabilități în stiva de rețea, 4 în kernel, 2 în shell-ul de comandă, 5 în gestionarea apelurilor de sistem, 5 în subsistemul USB și 3 în mecanismul de actualizare a firmware-ului. Două probleme sunt evaluate critice, două sunt ridicate, 9 sunt moderate, 9 sunt scăzute și 4 sunt de luat în considerare. Problemele critice afectează stiva IPv4 și parserul MQTT, cele periculoase afectează stocarea în masă USB și driverele USB DFU. La momentul dezvăluirii informațiilor, soluțiile au fost pregătite doar pentru 15 dintre cele mai periculoase vulnerabilități; problemele care duc la refuzul serviciului sau asociate cu defecte ale mecanismelor suplimentare de protecție a nucleului rămân necorectate.

În stiva IPv4 a platformei a fost identificată o vulnerabilitate exploatabilă de la distanță, ceea ce duce la coruperea memoriei la procesarea pachetelor ICMP modificate într-un anumit mod. O altă problemă serioasă a fost găsită în analizatorul de protocol MQTT, care este cauzată de lipsa verificării adecvate a lungimii câmpului antetului și poate duce la executarea codului de la distanță. Probleme mai puțin severe de denial of service se găsesc în stiva IPv6 și implementarea protocolului CoAP.

Alte probleme pot fi exploatate local pentru a provoca o refuz de serviciu sau pentru a executa cod la nivel de kernel. Cele mai multe dintre aceste vulnerabilități sunt legate de lipsa verificărilor adecvate ale argumentelor apelurilor de sistem și pot duce la scris și citire din zone arbitrare ale memoriei kernelului. Problemele se extind și la codul de procesare a apelurilor de sistem în sine - apelarea unui număr de apel de sistem negativ are ca rezultat un depășire a numărului întreg. Nucleul a identificat, de asemenea, probleme în implementarea protecției ASLR (randomizarea spațiului de adrese) și a mecanismului de setare a marcajelor canare pe stivă, făcând aceste mecanisme ineficiente.

Multe probleme afectează stiva USB și driverele individuale. De exemplu, problemele de stocare în masă USB pot provoca o depășire a memoriei tampon și pot executa cod la nivel de kernel atunci când dispozitivul este conectat la o gazdă USB controlată de atacator. O vulnerabilitate în USB DFU, un driver pentru încărcarea unui firmware nou prin USB, vă permite să încărcați o imagine de firmware modificată în flash-ul intern al microcontrolerului fără a utiliza criptarea și ocolirea modului de pornire securizat cu verificarea componentelor folosind o semnătură digitală. În plus, a fost studiat codul de încărcare de pornire deschis MCUboot, în care a fost găsită o vulnerabilitate benignă,
ceea ce poate duce la o depășire a tamponului atunci când se utilizează protocolul SMP (Simple Management Protocol) peste UART.

Reamintim că în Zephyr, pentru toate procesele este furnizat un singur spațiu de adrese virtual partajat (SASOS, Single Address Space Operating System). Codul specific aplicației este combinat cu un nucleu specific aplicației pentru a forma un executabil monolitic care poate fi încărcat și rulat pe hardware specific. Toate resursele sistemului sunt determinate în timpul compilării, reducând dimensiunea codului și crescând performanța. Imaginea sistemului poate include doar acele caracteristici ale nucleului care sunt necesare pentru a rula aplicația.

Este de remarcat faptul că printre avantajele cheie ale Zephyr menționat dezvoltare având în vedere siguranța. Aprobatcă toate etapele de dezvoltare sunt supuse unor etape obligatorii de confirmare a securității codului: testare fuzzing, analiză statică, testare de penetrare, revizuire a codului, analiza implementării backdoor și modelarea amenințărilor.

Sursa: opennet.ru

Adauga un comentariu