Výskumníci z NCC Group
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
č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
Zdroj: opennet.ru