Sistemele embedded trebuie să elimine urgent percepția că sunt o pradă ușoară pentru atacuri. Unul dintre motivele pentru care acestea au căpătat reputația de a fi ușor de atacat (și de compromis) este faptul că multe dintre ele se bazează pe un singur și slab mecanism de protecție împotriva accesului la conținutul și funcțiile lor. Când dispozitivele embedded au început să se conecteze în mod curent la internet, slăbiciunea acestora a devenit rapid vizibilă. Dacă un hacker reușea să găsească codul pentru un dispozitiv, îl putea folosi pe toate dispozitivele de același tip. Hackerii au demonstrat amploarea acestui tip de vulnerabilitate prin înlocuirea firmware-ului în dispozitivele victimă și prin atragerea lor în rețele de roboți.
Deși există un număr foarte mare de furnizori care oferă soluții de securitate embedded, aceștia tind să se concentreze asupra unui anumit aspect al sistemului, iar o securitate reală poate fi obținută numai dacă o soluție acoperă sistemul de la un capăt la altul. Prin urmare, securitatea de la un capăt la altul devine responsabilitatea proiectantului, care trebuie să gândească în mod holistic pentru a se asigura că toate elementele sunt luate în considerare. O cerință de bază pentru toate dispozitivele embedded este aceea de a se asigura că orice acces la funcțiile de întreținere este cel puțin protejat de un cod unic pentru fiecare dispozitiv în parte. Totuși, acesta este minimul absolut. În practică, proiectarea pentru securitate trebuie să fie mult mai granulară și stratificată pentru a preveni diferite tipuri de atacuri care ar putea fi lansate de hackeri.
Protecție împotriva pătrunderii forțate (tamper) și securitatea dispozitivului
Proiectanții de sisteme embedded trebuie să ia în considerare numeroasele puncte de atac care pot apărea. În urma acestei analize, ei trebuie apoi să ia în considerare cel mai bun compromis între protecție, costuri și consum de energie. Atacurile se pot concentra pe obținerea de date pentru utilizare ulterioară sau pe compromiterea funcționalității unui sistem pentru a șantaja operatorul sau pentru a provoca daune în mod direct. Fiecare tip de atac se va concentra asupra unor elemente diferite ale sistemului sau asupra întregului sistem. Din ce în ce mai mult, hackerii implementează strategii hibride. De exemplu, hackerii vor profita la maximum de accesul fizic la unul sau două dispozitive pentru a obține informații despre funcționarea unui sistem înainte de a lansa un atac de la distanță asupra serverelor cloud care le va oferi premiul final. Protecția împotriva acestor amenințări din ce în ce mai sofisticate va implica adesea mai multe componente diferite de la furnizori diferiți.
Toate protecțiile au un cost – luați ca exemplu criptarea datelor. În mod ideal, datele pe care le gestionează un dispozitiv vor fi protejate prin criptare în cele trei faze ale sale: când se află în repaus în memoria flash sau în spațiul de stocare în cloud; când se deplasează printr-o rețea sau chiar de-a lungul unei magistrale interne de sistem; și când sunt utilizate de un procesor. Fiecare ciclu de criptare și decriptare sporește consumul de putere și costurile. În cazul datelor în repaus, ar putea fi tentant să se utilizeze chei foarte lungi pentru a securiza conținutul, deoarece timpul de spargere a unei chei prin forță brută crește exponențial cu lungimea cheii. Cu toate acestea, este foarte posibil ca valoarea datelor în sine să scadă în timp.
Datele temporare de măsurare a temperaturii provenite de la un senzor industrial au o utilitate limitată pentru un atacator, cu excepția cazului în care acesta are acces la întregul istoric din care poate face inginerie inversă pentru un proces de producție. O protecție eficientă ar pune un accent mult mai mare pe protejarea datelor în repaus într-o destinație precum cloud-ul sau într-un gateway utilizat pentru a colecta date de la un număr de dispozitive locale, spre deosebire de protejarea datelor de pe un singur dispozitiv. Pe dispozitiv și pentru livrarea pe internet, o tehnologie de criptare ușoară ar putea fi mai potrivită și va permite dispozitivului să utilizeze un procesor cu un consum mai mic de putere și cu un raport cost-eficiență mai bun. Cu un buget de putere mai mare și o valoare mai mare pentru un atacator, un gateway precum FactoryCast de la Schneider Electric poate cripta datele la un nivel mai ridicat înainte de a le transfera către alte servere, precum și pentru a oferi protecție firewall pentru a bloca încercările de piraterie dintr-o locație la distanță.
Mize mai mari pentru date de mare valoare
În schimb, alte date de pe dispozitiv cu o valoare mai mare, cum ar fi informațiile personale ale unui utilizator sau orice alte date sensibile din punct de vedere comercial sau financiar, trebuie să fie protejate în mod mai extins.
O modalitate de a asigura o protecție granulară a datelor este utilizarea unei rădăcini hardware de încredere. Software-ul în sine nu este suficient pentru a garanta securitatea pe un dispozitiv embedded, deoarece, fără o formă de protecție hardware, este prea ușor pentru un hacker să își încarce propriul software în locul codului original pentru a obține un control mai mare.
O rădăcină de încredere oferă fundația pentru toate protecțiile din cadrul dispozitivului, asigurându-se că numai utilizatorii autorizați pot efectua modificări critice, fie că este vorba de firmware sau de date. În plus, aceasta ar trebui să conțină cheile de bază utilizate pentru criptarea tuturor datelor pe care dispozitivul le stochează sau le transmite și care sunt considerate sensibile în urma evaluării riscurilor. În niciun caz, rădăcina de încredere nu ar trebui să expună cheile private stocate în memoria sa. Modelul de utilizare ar trebui să fie unul în care cheile de sesiune temporare sunt generate și furnizate altor subsisteme, în funcție de necesități, pornind de la premisa că, în cazul în care acestea sunt piratate, datele pe care le protejează nu mai sunt valabile sau utile pentru o parte terță.
Criptare pe cip
Unele sisteme se pot baza pe o rădăcină de încredere cu funcție fixă, adică un element care îndeplinește un set specific de funcții. Un exemplu este motorul securizat implementat într-un număr de microcontrolere din familia ST32 de la STMicroelectronics. Acesta furnizează servicii precum pornirea securizată și actualizările securizate ale firmware-ului, dar și verificări de securitate în timpul execuției și stocarea cheilor. Pornirile securizate devin rapid o componentă vitală a securității sistemelor embedded.
Aceasta facilitează reducerea costurilor, prin utilizarea unei memorii flash standard pentru stocarea programelor, în loc să se ceară ca tot codul să fie păstrat într-o memorie securizată mare și costisitoare. Utilizând hash-uri, un bootloader securizat verifică validitatea codului păstrat în memorie în raport cu cheile private din componenta de securitate.
Numai dacă hash-ul codului este valid, acesta poate fi rulat. În caz de eșec, dispozitivul revine la o copie sigură păstrată în memoria ROM sau nu mai pornește până când o imagine firmware validă este restaurată în memoria flash. Odată pornit, sistemul de operare poate apela la aceleași funcții pentru a autentifica fiecare aplicație înainte de a i se permite să ruleze.
Multe dispozitive bazate pe Arm, inclusiv cele din familia ST32, oferă un motor de securitate programabil sub forma Trustzone, care permite încorporarea unei serii de mecanisme de protecție, cum ar fi criptarea și decriptarea datelor transmise pe magistrala internă a sistemului sau prin intermediul unei conexiuni de rețea.
O altă cerință pentru dispozitivele care sunt instalate pe teren este abilitatea de a rezista la atacuri fizice agresive, care ar putea compromite rădăcina de încredere. În principiu, este posibil să se obțină o rădăcină de încredere care să permită accesul la software nelegitim sau să elibereze chei private prin forțarea acesteia în condiții de eroare neașteptate.
Atacurile pot implica întreruperea semnalelor de alimentare și de ceas pentru a forța aceste erori. Implementările rădăcinii de încredere pot utiliza o serie de contramăsuri pentru a împiedica aceste atacuri să reușească să publice date sensibile sau să compromită funcționalitatea.
Chiar și o rădăcină de încredere bine protejată pe fiecare dispozitiv nu garantează securitatea în contextul unui sistem IoT. Un hacker ar putea, în principiu, să obțină dispozitive care imită funcționarea unor sisteme autentice, să le introducă în rețea și să le facă să submineze funcționarea aplicației IoT în ansamblu. Din acest motiv, securitatea întregului lanț de aprovizionare IoT este vitală. Acest lucru necesită un flux de fabricație și de instalare care să permită dispozitivelor valide să se alăture și să participe la un sistem numai dacă au acreditările corecte. Configurarea unor lanțuri de aprovizionare, care să ofere posibilitatea de a emite certificate pentru dispozitive și de a transfera acreditările complementare în cloud, astfel încât acestea să poată fi verificate, atunci când un dispozitiv este pus în funcțiune, poate fi complexă. Platforma de încredere de la Microchip și hub-ul IoT al Microsoft Azure susțin mecanisme care permit ca astfel de lanțuri de aprovizionare să fie configurate și controlate cu ușurință.
Deși amenințările la adresa sistemelor embedded continuă să crească, inginerii proiectanți au acces la instrumentele cu care le pot apăra. Totuși, pentru a asigura nivelul de apărare necesar, aceștia trebuie să aleagă cu înțelepciune din selecția largă de tehnici, protocoale și produse oferite, în loc să se bazeze pe o singură componentă.
Autor:
Cliff Ortmeyer, Director Global de Marketing Tehnic, Farnell
https://ro.farnell.com