Viac informácií o systéme DDS a jeho zabezpečení. Ak v súčasnosti používate operačný systém pre robotov 2 (ROS 2), tento materiál je obzvlášť dôležitý pre zabezpečenie vašich robotov. Pred niekoľkými mesiacmi výskumný tím objavil 13 bezpečnostných chýb, ktoré ovplyvňujú niektoré z hlavných implementácií DDS, predvoleného middlewaru používaného v ROS 2.
Čo je DDS?
Služba distribúcie dát (DDS) je určená pre systémy reálneho času a je to otvorený middleware protokol a štandard API vytvorený skupinou Object Management Group (OMG). Implementuje komunikačnú schému publish-subscribe pre systémy reálneho času a vstavané systémy, ktorá umožňuje účastníkom odosielať a prijímať údaje, udalosti a príkazy. K dnešnému dňu existuje viac ako tucet rôznych implementácií DDS, niektoré s otvorenou verziou a niektoré bez nej.
Systém DDS bol vytvorený na základe potrieb priemyslu a jeho výsledkom je široko podporovaný štandard s dlhou prevádzkovou históriou. V súčasnosti sa využíva v mnohých priemyselných odvetviach: v autonómnych vozidlách, vo vesmírnych technológiách, v riadení letovej prevádzky, v zdravotníckych zariadeniach a, ako vieme, v ROS 2.
Predtým, ako sa dostaneme k známym problémom a rizikám, pripomeňme si, že DDS sa zaoberá bezpečnosťou od svojho vzniku; v štandardnom chápaní má stanovené bezpečnostné prvky, ako napríklad týchto 5 základných prvkov:
- Kryptografia: Umožňuje šifrovanie, dešifrovanie, hashovanie a používanie digitálnych podpisov;
- Overovanie: vykonáva overenie identity všetkých používateľov siete;
- Riadenie prístupu: určuje, ku ktorým prostriedkom môže daný používateľ pristupovať a upravovať ich;
- Zaznamenávanie bezpečnostných údajov: zachytáva všetky udalosti súvisiace so zabezpečením.
- Označovanie údajov: poskytuje bezpečnostné značky na údaje, ktoré umožňujú určitú úroveň klasifikácie a lepšiu kontrolu prístupu.
Čo je nové v oblasti zabezpečenia?
Odborníci analyzovali middleware platformu DDS a jej najbežnejšie implementácie z hľadiska bezpečnostných zraniteľností. O svoje zistenia sa prvýkrát podelili na konferencii Black Hat Europe 2021, na ktorej sa zúčastnil aj tím Canonical Robotics.
V rámci projektu bolo identifikovaných 12 slabých miest v šiestich analyzovaných implementáciách DDS, ako aj jedna slabá stránka v štandardnej špecifikácii. Tieto zraniteľnosti sa našli v implementáciách viacerých vývojárov. V nadväznosti na tieto správy vydala americká Agentúra pre kybernetickú bezpečnosť a bezpečnosť infraštruktúry (CISA) bezpečnostné odporúčanie, v ktorom upozorňuje na riziká ich kybernetickej bezpečnosti.
Aká bola povaha problémov?
Aké boli niektoré zistené problémy a čo sa s nimi urobilo?
Stručne povedané, tieto zraniteľnosti možno zhruba rozdeliť do dvoch tried: problémy súvisiace so sieťou a hrozby súvisiace s konfiguráciou.
Zraniteľnosti súvisiace so sieťou
Vzhľadom na to, že DDS je sieťový protokol, bezpečnostné problémy sa zjavne vyskytujú v postupoch interpretácie správ (ako sú povolené dĺžky polí, kde je možné napríklad pretečenie). V tejto súvislosti odborníci rozobrali a preskúmali základný prvok ekosystému DDS. Prvým problémom, ktorý stojí za zmienku, bola zraniteľnosť sieťového odrazu/posilnenia, ktorá ovplyvňuje všetky implementácie, čo naznačuje problém v samotnom štandarde DDS.
Pomocou tejto zraniteľnosti môže útočník prenášať nesprávne vytvorené pakety RTPS, čo spôsobí zahltenie cieľového hostiteľa zbytočnou prevádzkou a tým vedie k potenciálnemu útoku na odmietnutie služby alebo k odhaleniu systémových informácií.
Ďalším problémom zisteným v špecifikácii DDS bola nedostatočná sanitizácia adries IP, čo znamená, že do poľa IP bolo možné zapísať ľubovoľnú adresu IP (bez kontroly integrity alebo bezpečného zoznamu adries).
Zraniteľnosť založená na konfigurácii
V konfiguráciách DDS sa vo veľkej miere používajú formáty XML, JSON, YAML alebo podobné formáty, takže konfiguračné súbory sú ďalším cieľom útoku, ktorý možno analyzovať. V jednej implementácii bola objavená zraniteľnosť "write-what-where", ktorá umožňuje útočníkovi zapísať ľubovoľné hodnoty do analyzátora XML v prípade pretečenia buffera. Zistilo sa, že tá istá implementácia nesprávne spracúva aj syntakticky neplatné štruktúry, ktoré sa dajú použiť aj na zápis ľubovoľných hodnôt do analyzátora XML. Spracovanie takýchto údajov by mohlo viesť k nedefinovanému správaniu a zlyhaniu systému.
Niektoré ďalšie zraniteľnosti pri analyzovaní sa týkali nesprávneho výpočtu veľkosti vyrovnávacej pamäte a pretečenia zásobníka.
Nakoniec sa zistilo, že ďalšia implementácia používa zastaranú, nepodporovanú a zraniteľnú knižnicu XML, čo útočníkovi umožňuje získať počiatočný prístup prostredníctvom škodlivého konfiguračného súboru.
Všimnite si, že mnohí výrobcovia DDS uverejnili bezpečnostné aktualizácie alebo inak opravili tieto zraniteľnosti. Ak používate ROS 2 s niektorou z uvedených implementácií DDS, čo najskôr aplikujte všetky bezpečnostné záplaty poskytované dodávateľom.