Aká bezpečnosť je už dostatočná?

Bezpečnosť je v jednom dôležitom ohľade ako kvalita – nemôžete ju pridať na konci projektu a nemôžete ju „otestovať“; musí byť súčasťou celej štruktúry návrhu a musí byť bezproblémová. Návrhári zabudovaných systémov čelia čoraz väčšej výzve, pretože vytvárajú produkty, ktoré musia fungovať v čoraz prepojenejšom a potenciálne nepriateľskom prostredí.

Vzhľadom na rastúcu prepojenosť zariadení a systémov je tradičné pravidlo o tom, že bezpečnosť je vtedy „primeraná“, ak si zo strany narušiteľa vyžaduje takmer nedosiahnuteľné úsilie na prelomenie systému, problematické. Útočníkovi stačí len málo na získanie prístupu k základnej funkcii zabudovaného systému, ktorého cieľom môže byť riadenie niečoho relatívne nepodstatného. Takéto systémy však môžu byť pre tých so zlým úmyslom veľmi zaujímavé, pretože sú zraniteľnými bránami, ktoré môžu poskytnúť prístup k širšej infraštruktúre.

„V nasledujúcich piatich rokoch
považujem bezpečnosť
za hlavnú výzvu pre odvetvie.“

Laurent Vera, STMicroelectronics

  

Problém bezpečnosti sa stal viacrozmerným. Vynára sa otázka bezpečnosti internetového protokolu (IP); ako chrániť samotný návrh zabudovaného systému pred krádežou a kopírovaním; ako zabrániť kopírovaniu programov a klonovaniu konceptu. Potom treba chrániť zamýšľanú funkčnosť systémov; návrh by mal byť zabezpečený proti tomu, aby bol narušený a nestal sa ovládateľný zvonku. Samozrejme údaje, na prácu s ktorými je systém primárne určený, by mali byť chránené proti kopírovaniu, podobne ako aj podrobnosti (ak sú relevantné) všetkých používateľov systému. Ako bolo uvedené vyššie, útočník by nemal byť schopný použiť zabudovaný systém ako vstupný bod na získanie prístupu k širšej IT infraštruktúre.

„Teraz, keď je pripojenie všadeprítomné,
sú nevyhnutné údaje a zabezpečenie siete.“

Jack Ogawa, Cypress Semiconductor

  

K tomu všetkému sa nedávno pridala nová hrozba – možnosť ukradnutia výpočtových cyklov zo systémov (zabudovaných alebo iných). Ide o fenomén nazývaný cryptojacking, pri ktorom sa k normálnemu fungovaniu cieľového systému pridáva skript a na pozadí bežia algoritmy „dolovania“ kryptomien, ktoré ticho hlásia svoje výsledky prostredníctvom ľubovoľného otvoreného portu, ku ktorému môžu pristupovať ich autori. Následky môžu byť dosť zákerné; žiadne údaje nie sú odcudzené, nedošlo k ohrozeniu ochrany osobných údajov, nezačali sa žiadne škodlivé akcie: jediný výsledok je, že cykly procesora „chýbajú“. Pre zabudovaný systém, ktorý musí vykazovať odpoveď v reálnom čase alebo takmer v reálnom čase, sa to môže javiť ako nedostatok výkonu v kritickom momente. Nie je však ťažké predstaviť si zabudovaný systém založený na Linuxe, ktorý by sa neúmyselne nechal s nechráneným internetovým pripojením, ktorý by bolo možné odhaliť a zneužiť. Podobne systémy s pripojením na internet sú otvorené na prevzatie ako „roboty“ a stávajú sa motormi útokov tretích strán.

Návrhári zabudovaných systémov sú už veľmi dobre oboznámení s hlasmi, ktoré tvrdia, že „bezpečnosť je problém“. Menej jasné je však to, čo by s tým mali robiť. Softvérový základ zabudovaných systémov často obsahuje programy vytvorené z rôznych zdrojov. Existujú tu programy vytvorené špeciálne pre projekt, ale aj pre znova použité bloky z predchádzajúcich projektov. Môžu existovať segmenty odvodené od dodávateľov hardvéru systému, ako sú periférne ovládače funkcií na čipoch: môžu sa tam nachádzať aj otvorené zdrojové bloky programu importované do návrhu. Tí, ktorí tvrdia, že dôkladne overili integritu vloženého programu, tvrdia, že prinajmenšom všetky časti softvérovej aplikácie by mali byť dostupné v zdrojovej forme.

„Potrebujeme aj certifikáciu.
Dnes sú poskytovateľmi cloudu
definované minimálne požiadavky,
napríklad pre autentifikáciu.
Toto by sa malo strážiť prísnejšie.“

Geoff Les, NXP

  

Prostredie kancelárskych aplikácií je už mnoho rokov bojovým priestorom, pričom tu sa už vyvinul ekosystém, ktorý čelí bezpečnostným hrozbám. Najlepším príkladom je systém Windows a pokračujúci program aktualizácií a záplat spoločnosti Microsoft. Základným bodom je to, že spoločnosť Microsoft prijíma zodpovednosť za prebiehajúcu odolnosť svojho produktu, analyzuje hrozby, ktoré vzniknú, a poskytuje príslušné záplaty. V zabudovaných systémoch neexistujú žiadne také oporné štruktúry. Keďže v prípade väčšiny zabudovaných systémov ide program do prevádzky vo forme jedného binárne spustiteľného súboru, možno len ťažko uplatniť záplaty ako vo vyššie spomenutom prípade. Jedinou možnosťou je kompletná aktualizácia, ktorá vo väčšine prípadov vyžaduje zásah používateľa/operátora, zvyčajne prostredníctvom načítania novej konfigurácie. Aj v tomto prípade musí byť mechanizmus, ako to spraviť, bezpečný a stáva sa teda predmetom samotného návrhu. To znamená, že by mala existovať nejaká odolná prihlasovacia bariéra umožňujúca prístup na úrovni administrátora ešte predtým, ako systém prijme overovanú aktualizáciu. Jedným z dodávateľov, ktorý sa tejto problematike venuje, je spoločnosť STMicroelectronics, ktorá uviedla, že pracuje na balíku na bezpečnú inováciu firmvéru, ktorý má byť súčasťou ich portfólia v celom rade metód kódovania a overovania.

„V oblasti internetu vecí je bezpečnosť hlavným faktorom.
V nasledujúcich piatich rokoch sa bude klásť
veľký dôraz na bezpečnosť, najmä pokiaľ ide o bezpečnosť
počas celej životnosti produktu.“

Tom Pannell, Silicon Labs

  

Existuje množstvo predpisov pre opatrenia, ktoré treba podniknúť na zabezpečenie produktu, ale podstatou je začať od základu a neváhať požiadať o pomoc. Ani samotnému vývojárovi sa nemusí podariť vychytať všetky spôsoby, akými môže byť projekt zraniteľný, najmä ak v menšom podniku technici už riešia rôzne prepojené úlohy súvisiace s hardvérovými a softvérovými aspektmi produktu. Vyčlenenie finančných zdrojov na externého odborného konzultanta môže priniesť užitočný vstup a (ako bolo uvedené vyššie) je pravdepodobne najlepšie vykonať takéto hodnotenie ešte vo fáze návrhu, ako riešiť retrospektívny audit.

Pokiaľ ide o softvér, malo by mať dodržiavanie prijatých noriem dlhodobý základ, aby sa zabezpečila ochrana proti známym metódam útoku. Dodávatelia špecializovaných softvérových nástrojov ponúkajú nástroje využívajúce technológie ako statická analýza, ktoré možno použiť, pretože softvér je napísaný a vyvinutý tak, aby spĺňal požiadavky noriem, ako je MISRA, JSF alebo HIC++. Program, ktorý je v súlade s týmito normami, by mal byť odolný proti cieleným útokom, ako je napr. vynútenie pretečenia zásobníkov. Rovnakí dodávatelia však varujú, že zatiaľ čo takéto dodržiavanie pomáha zaistiť bezpečnosť, samo osebe nestačí; je to potrebné, ale nie dostačujúce.

Spoločnosť Arm rozšírila svoju technológiu TrustZone na ochranu mikroprocesorových jednotiek (MCU) Cortex-M vrátane série jadier Cortex-A. TrustZone vytvára dôveryhodné prostredie výkonu od dôveryhodného spustenia; predstavuje koncept paralelných, dôveryhodných a nedôveryhodných súvislostí v rámci jediného systému. Zabezpečené a nezabezpečené domény sú oddelené hardvérom, pričom nezabezpečený softvér nemá priamy prístup k bezpečným zdrojom. Spoločnosť Arm konštatuje, že „TrustZone pre Cortex-M sa používa na ochranu firmvéru, periférnych zariadení a V/V, ako aj oddelenie s cieľom bezpečného nábehu, dôveryhodnej aktualizácie a implementácie dôveryhodnosti, a zároveň poskytuje očakávanú odpoveď pre zabudované riešenia v reálnom čase“. (viac informácií o technológii Arm Trustzone)

Mikroprocesor pre zabudované aplikácie zvyčajne obsahuje funkcie na zjednodušenie implementácie bezpečnostných funkcií, ako je napr. hardvér optimalizovaný na spustenie šifrovacích algoritmov. Spoločnosť Texas Instruments v súvislosti so svojím mikrokontrolérom CC3220, WiFi SoC využívajúcim Arm procesor demonštruje zameranie na bezpečnosť medzi koncovými zariadeniami. „V oblasti internetu vecí to znamená bezpečnosť na úrovni čipu, bezdrôtového prenosu, na serveri až po cloud. Spoločnosť zdôrazňuje, že bezpečnosť v rámci samotného návrhu (vrátane bezdrôtového pripojenia) musí následne pokračovať pri overovaní identity a ochrane kľúčov, integrite údajov, ako aj samotnom programe, ktorý ja základom návrhu.

„Jedna chyba/porucha môže byť
bezpečnostným problémom… “

Jack Ogawa, Cypress Semiconductor

  

Mnohé prieniky a narušenia sú veľmi jednoduché. Povolenie alebo dosiahnutie prístupu sa uskutoční tak, že ľudia jednoducho zabudli aktivovať bezpečnostné prvky – alebo použili predvolené heslo. Triviálne veci zohrávajú pri zaisťovaní bezpečnosti dôležitú úlohu. Ak je váš produkt chránený administrátorským heslom alebo je na ňom spustiteľný režim údržby, prinajmenšom sa uistite, že každá dodávaná jednotka je prednastavená s jedinečným a odolným heslom. Zatiaľ čo váš návrh riešenia môže „len“ ovládať osvetlenie alebo monitorovať parametre HVAC, pri záškodníckej činnosti sa môže stať miestom prístupu aj do firemného IT systému klienta. Zodpovedný technik môže túto skutočnosť prehliadnuť a ak sa k tomu pridá skutočnosť, že inštaláciu ponechal s heslom „pa55word“, je to prvý krok k bezpečnostným problémom.

„Máme bohatý súbor bezpečnostných IP,
ktoré sa selektívne zavádzajú
do našich mikroprocesorových jednotiek,
a to na základe požiadaviek aplikácií.“

Andy Harding, Renesas Electronics

  

Problematika bezpečnosti je v mnohých ohľadoch pre technikov nočnou morou. Neexistuje jediný, jednoduchý spôsob posúdenia bezpečnosti a jediná identifikácia „nepriestrelných“ nápravných opatrení. Mechanizmy aktualizácie sú fragmentárne, no vývojári vytvárajú systémy, ktoré sa nasadzujú teraz, no ktoré budú v prevádzke desať a viac rokov. Koľko pozornosti ohľadom bezpečnosti možno považovať za „nevyhnutné“, „primerané“ alebo „dostatočné“ v čoraz prepojenejšom svete?

Pomoc je však dostupná a výrobcovia mikroprocesorov si uvedomujú, že musia poskytovať nielen kryptografické a iné hardvérové prvky bezpečných riešení, ale že musia tiež pomôcť svojim zákazníkom pri kompletizácii celého riešenia.

Cliff Ortmeyer
globálny vedúci vývoja riešení
Farnell
Farnell element14
https://sk.farnell.com/
https://uk.farnell.com/
https://www.element14.com