Cercetătorii de la compania NCC Group rezultatele auditului proiectului liber , sistemul de operare în timp real (RTOS), destinat echipării dispozitivelor ce respectă conceptul de „Internetul Lucrurilor” (IoT, Internet of Things). În cursul auditului au fost identificate în Zephyr și 1 vulnerabilitate în MCUboot. Dezvoltarea Zephyr se desfășoară cu implicarea companiilor Intel.
În total, au fost identificate 6 vulnerabilități în stiva de rețea, 4 în nucleu, 2 în shell, 5 în gestionarea apelurilor de sistem, 5 în subsistemul USB și 3 în mecanismul de actualizare a firmware-ului. Două probleme au fost clasificate cu un nivel critic de gravitate, două cu un nivel ridicat, 9 moderat, 9 scăzut și 4 pentru a fi considerate. Problemele critice afectează stiva IPv4 și parserul MQTT, iar cele periculoase sunt driverele pentru stocarea USB și USB DFU. La momentul divulgării informațiilor, remedierile au fost pregătite doar pentru 15 dintre cele mai periculoase vulnerabilități, rămânând necorectate problemele care duc la refuzul serviciului sau sunt legate de deficiențe în mecanismele de protecție suplimentară a nucleului.
În stiva IPv4 a platformei a fost identificată o vulnerabilitate exploatabilă de la distanță, care duce la coruperea memoriei în urma procesării unui anumit tip de pachete ICMP modificate. O altă problemă serioasă a fost găsită în parserul protocolului MQTT, care este cauzată de absența unei verificări adecvate a lungimii câmpurilor din antet și poate duce la executarea de cod de la distanță. Probleme mai puțin periculoase, care duc la refuzul serviciului, au fost identificate în stiva IPv6 și în implementarea protocolului CoAP.
Celelalte probleme pot fi exploatate local pentru a provoca refuzul serviciului sau pentru a executa cod la nivelul nucleului. Marea majoritate a acestor vulnerabilități sunt legate de absența verificărilor adecvate ale argumentelor apelurilor de sistem și pot duce la scrierea și citirea unor zone arbitrare din memoria nucleului. Problemele acoperă și codul de gestionare a apelurilor de sistem – accesarea unui număr negativ al apelului de sistem duce la o depășire de capacitate întreagă. De asemenea, în nucleu au fost identificate probleme în implementarea protecției ASLR (randomizarea spațiului de adrese) și în mecanismul de instalare a etichetelor de canar în stivă, făcând aceste mecanisme ineficiente.
Multe probleme afectează stiva USB și driverele individuale. De exemplu, o problemă cu stocarea în masă USB permite generarea unui overflow de buffer și executarea de cod la nivel de kernel atunci când un dispozitiv este conectat la un gazdă USB controlat de un atacator. O vulnerabilitate în USB DFU, driver-ul pentru încărcarea unei noi firme, permite încărcarea unei imagini modificate a firmware-ului în Flash-ul intern al microcontrolerului fără criptare și ocolind modul de boot protejat cu verificarea componentelor prin semnătura digitală. De asemenea, a fost studiat codul bootloader-ului deschis. , în care a fost găsită o vulnerabilitate nepericuloasă,
care poate duce la overflow de buffer atunci când se utilizează protocolul SMP (Simple Management Protocol) prin UART.
Amintim că, în Zephyr, toate procesele au la dispoziție un singur spațiu de adresare virtual global partajat (SASOS, Single Address Space Operating System). Codul specific aplicațiilor este combinat cu un kernel adaptat pentru aplicația specifică și formează un fișier executabil monolitic pentru a fi încărcat și rulat pe hardware specific. Toate resursele sistemului sunt definite în timpul compilării, ceea ce reduce dimensiunea codului și crește performanța. Sistemul de imagine poate include doar acele funcționalități ale kernel-ului necesare pentru executarea aplicației.
Este demn de remarcat că printre principalele avantaje ale Zephyr se află dezvoltarea având în vedere securitatea. , astfel încât toate etapele de dezvoltare trec prin etape obligatorii de validare a securității codului: testare de fuzzing, analiză statică, teste de penetrare, revizuirea codului, analiza inserției de backdoor-uri și modelarea amenințărilor.
Sursa: opennet.ro
