25 zraniteľností v RTOS Zephyr, vrátane tých, ktoré sa využívajú prostredníctvom paketu ICMP

Výskumníci z NCC Group uverejnené bezplatné výsledky projektového auditu vánok, rozvíjanie operačný systém v reálnom čase (RTOS), zameraný na vybavenie zariadení, ktoré sú v súlade s konceptom internetu vecí (IoT, Internet of Things). Počas auditu to vyšlo najavo 25 zraniteľností v Zephyr a 1 zraniteľnosť v MCUboot. Zephyr je vyvíjaný za účasti spoločností Intel.

Celkovo bolo identifikovaných 6 zraniteľností v sieťovom zásobníku, 4 v jadre, 2 v príkazovom prostredí, 5 v obsluhe systémových volaní, 5 v podsystéme USB a 3 v mechanizme aktualizácie firmvéru. Dva problémy sú hodnotené ako kritické, dva sú vysoké, 9 stredných, 9 nízkych a 4 sú na zváženie. Kritické problémy ovplyvňujú zásobník IPv4 a analyzátor MQTT, nebezpečné problémy ovplyvňujú veľkokapacitné úložisko USB a ovládače USB DFU. V čase zverejnenia informácií boli pripravené opravy iba pre 15 najnebezpečnejších zraniteľností; problémy vedúce k odmietnutiu služby alebo spojené s chybami v dodatočných mechanizmoch ochrany jadra zostávajú neopravené.

V zásobníku IPv4 platformy bola identifikovaná vzdialene zneužiteľná zraniteľnosť, ktorá vedie k poškodeniu pamäte pri spracovaní ICMP paketov upravených určitým spôsobom. Ďalší vážny problém sa zistil v analyzátore protokolu MQTT, ktorý je spôsobený nedostatočnou kontrolou dĺžky poľa hlavičky a môže viesť k vzdialenému spusteniu kódu. Menej závažné problémy s odmietnutím služby sa nachádzajú v zásobníku IPv6 a implementácii protokolu CoAP.

Iné problémy možno zneužiť lokálne na odmietnutie služby alebo spustenie kódu na úrovni jadra. Väčšina týchto zraniteľností súvisí s nedostatočnou kontrolou argumentov systémových volaní a môže viesť k zápisu a čítaniu ľubovoľných oblastí pamäte jadra. Problémy sa týkajú aj samotného kódu spracovania systémových hovorov – volanie záporného čísla systémového hovoru má za následok pretečenie celého čísla. Jadro tiež identifikovalo problémy pri implementácii ochrany ASLR (náhodnosť adresného priestoru) a mechanizmus nastavenia kanárskych značiek na zásobníku, čím sa tieto mechanizmy stali neúčinnými.

Mnoho problémov ovplyvňuje zásobník USB a jednotlivé ovládače. Napríklad problémy s veľkokapacitnou pamäťou USB môžu spôsobiť pretečenie vyrovnávacej pamäte a spustiť kód na úrovni jadra, keď je zariadenie pripojené k hostiteľovi USB ovládanému útočníkom. Zraniteľnosť v USB DFU, ovládač pre načítanie nového firmvéru cez USB, umožňuje načítať upravený obraz firmvéru do interného Flash mikrokontroléra bez použitia šifrovania a obídenia režimu bezpečného spustenia s overením komponentov pomocou digitálneho podpisu. Okrem toho sa študoval kód otvoreného zavádzača MCUboot, v ktorom sa našla jedna neškodná zraniteľnosť,
čo môže viesť k pretečeniu vyrovnávacej pamäte pri použití protokolu SMP (Simple Management Protocol) cez UART.

Pripomeňme, že v Zephyr je pre všetky procesy poskytovaný iba jeden globálny zdieľaný virtuálny adresný priestor (SASOS, Single Address Space Operating System). Kód špecifický pre aplikáciu je kombinovaný s jadrom špecifickým pre aplikáciu, aby sa vytvoril monolitický spustiteľný súbor, ktorý možno načítať a spustiť na špecifickom hardvéri. Všetky systémové prostriedky sú určené v čase kompilácie, čím sa znižuje veľkosť kódu a zvyšuje sa výkon. Obraz systému môže obsahovať iba tie funkcie jadra, ktoré sú potrebné na spustenie aplikácie.

Je pozoruhodné, že medzi kľúčové výhody Zephyr spomínané vývoj s ohľadom na bezpečnosť. Schválenéže všetky fázy vývoja prechádzajú povinnými fázami potvrdenia bezpečnosti kódu: fuzzing testovanie, statická analýza, penetračné testovanie, kontrola kódu, analýza implementácie backdoor a modelovanie hrozieb.

Zdroj: opennet.ru

Pridať komentár