Cine or fi şi aştia, Meltdown şi Spectre ?
Iată că nici nu a început anul bine, şi deja întreaga lume se confruntă cu o nouă ameninţare IT care poate afecta siguranţa datelor prelucrate prin procesoare INTEL, AMD, ARM …, fabricate cel puţin din anul 2011 încoace. Deci cam toate terminalele de calcul, tip PC, LAPTOP, telefon mobil, tabletă, inclusiv APPLE şi indiferent de sistemul de operare utilizat – Windows, Linux, UNIX, MacOS, Android.
Aparent, e o ştire care cam aruncă lumea în haos, nu-i aşa ?
De altfel, nebunia începe deja, actualul CEO Intel şi-a vândut toate acţiunile, ceea ce dă apă la moară celor înnebuniţi după teorii ale conspiraţiei, care acum pot să spună: „uite, dacă până şi mai marii INTEL dau bir cu fugiţii, înseamnă că situaţia e mai gravă decât se spune !”
Cel mai bine e ca fiecare să gândească singur şi să tragă concluziile având toate informaţiile la dispoziţie.
În primul rând ce sunt Meltdown şi Spectre ?
Să ne lămurim de la început, nu sunt nici aplicaţii tip malware, nici arme cibernetice, nici cine ştie ce software-uri capabile să extragă date sensibile (gen date ale unor conturi, parole de acces) şi alte secrete stocate pe PC-ul fiecăruia. Sunt denumiri date pentru două metode care, exploatând nişte facilităţi ale procesoarelor moderne menite să le crească performanţele, pot ajunge să aibă acces la date sensibile de genul celor enumerate mai sus.
Cum şi în ce fel ?
Întrucât blog-ul nu se adresează numai specialiştilor IT, voi încerca o explicaţie mai puţin tehnică a modului de funcţionare a celor două facilităţi, care s-a descoperit că pot fi exploatate prin două metode, botezate de descoperitorul lor, Meltdown şi Spectre, în scopuri mai puţin ortodoxe.
Sunt convins că tu, cititorul acestui blog, în ultimii doi-trei ani ţi-ai cumpărat un PC, laptop, telefon mobil sau tabletă şi ori te-ai documentat singur, ori ai cerut opinia unui prieten, despre procesor, cum e mai bun, să fie quad-core, dual-core, octa-core, apoi, cum e mai bine să aibă memoria cache, cât mai mare, cât mai mică, L1 cache de 512KB şi L2 cache de 2 MB nu cumva sunt prea mici, nu e mai bun altul cu o singură memorie cache, dar de 4 MB ? Şi chiar dacă ai aflat răspunsul în ceea ce priveşte modalitatea de a-ţi folosi cât mai eficient banii, tot ai rămas cu necunoscute în ceea ce priveşte semnificaţia noţiunilor de mai sus.
Single core, înseamnă procesor cu un singur nucelu. Dual Core, Core 2 Duo, Quad Core, Octa Core, etc., înseamnă procesor cu mai multe nuclee. Fiecare nucleu poate procesa date în paralel cu celelalte nuclee, aşa încât se poate considera că un procesor quad – core, reprezintă de fapt un sistem bazat pe patru procesoare. Nu este însă vorba de o arhitectură multiprocesor, întrucât aceste nuclee sunt introduse într-un singur chip (carcasă, ca să mă exprim mai prozaic) şi utilizează în comun resurse care se găsesc în acelaşi chip (memoria cache, canale de comunicaţii de date, etc.).
Care sunt avantajele utilizării mai multor nuclee ? De exemplu, în timp ce utilizatorul foloseşte PC-ul, un nucleu al procesorului se ocupă de ceea ce solicită utilizatorul PC-ului să execute, în timp ce altul, execută în paralel, anticipat, nişte instrucţiuni, speculând posibilitatea ca acestea să fie următoarele care trebuie în fapt excutate. Astfel, dacă se confirmă datele prelucrate astfel vor trebui să fie puse la dispoziţia utilizatorului, acestea vor fi gata de utilizare. În acest fel, performanţele şi vitezele de răspuns ale procesoarelor moderne, au crescut fantastic.
O altă facilitate a procesoarelor moderne, este reprezentată de existenţa acelei memorii cache, de unde nuclele despre care scriam adineauri preiau datele pentru prelucrare.
Calculatoarele (laptop-urile, tabletele sau telefoanele) au o memorie RAM internă de care iarăşi ne lovim întrebând în stânga şi-n dreapta cum e mai bine să fie, şi aflăm că ar trebui să fie „cât mai mare !”, apoi aflăm şi că mai mare, îmseamnă totodată mai scump. Numai că memoria asta nu poate furniza procesorului datele pentru prelucrare, la viteza la care ar putea să le preia procesorul. Atunci, în carcasa lui internă, procesorul poate avea mai multe tipuri de memorie cache, care, cu cât e mai „aproape” de nucleu, cu atât funcţionează la viteză mai mare, apropiată de cea a nucleelor procesorului.
Ei bine, existenţa acestei memorii cache, permite algoritmilor de funcţionare ai procesoarelor să aducă anticipat, fără să aibă garanţia că vor fi şi necesare, date în memoriile cache, urmând ca acestea să fie furnizate spre prelucrare nucleelor, dacă sunt solicitate, sau eliberate din memorie şi aduse alte date, astfel încât nucleele procesorului să nu aibă niciodată de aşteptat după datele care trebuie prelucrate.
Iată deci două caracteristici care cresc performanţele tuturor procesoarelor fabricate după anul 2011, fie că sunt destinate unui PC, unui Laptop, unui telefon mobil, sau unei tablete. Iar aceste facilităţi sunt exploatate atât de Intel. cât şi de AMD, Arm sau Apple. E adevărat, că procesoarele şi implicit driverele Intel, sunt mai agresive în a exploata aceste facilităţi, de aici şi impresia falsă că procesoarele Intel ar fi mai vulnerabile.
Yin şi Yang, sau Meltdown şi Spectre
Dar cum în fiecare bine rezidă şi ceva rău şi invers, iată că de pe la jumătatea anului 2017 s-a descoperit că aceste două minunate facilităţi pot fi exploatate şi în rău, pentru a se obţine date şi informaţii sensibile pe care un utilizator de poate prelucra la un moment dat: parole de acces la diverse conturi, parole de criptare a datelor şi aşa mai departe.
Cum ?
După cum am arătat, avantajul procesoarelor multinucleu e că acestea încep să „speculeze” cu date care vor fi poate necesare, în viitor. Prin metoda Spectre, un atacator, poate rula o aplicaţie cu privilegii reduse de simplu utilizator, aplicaţie care are acces la datele rezultate din aceste coduri rulate speculativ, anticipat. În mod normal, dacă nu se confirmă necesitatea acestor coduri rulate în avans, datele rezultate sunt eliminate iar în continuare se trece la alte coduri rulate anticipat. În cazul în care un calculator este infectat cu o aplicaţie care exploatează această vulnerabilitate, software-ul de tip malware va putea avea acces la datele rezultate din aceste prelucrări speculative, înainte ca ele să fie eliminate din memoria cu care operează la un moment dat un nucleu care rulează aceste coduri în avans.
La fel, prin metoda Meltdown, este exploatată facilitatea de creştere a vitezei de prelucrare a datelor prin memoria cache. Procesorul aduce datele din memoria RAM a sistemului, în memoriile cache. În mod normal, datele sunt izolate prin sistemul de operare, în funcţie de nivelul de accesibilitate al acestora: date publice, date specifice unui utilizator, etc. Numai că la nivel de memorie cache, nivelul de izolare scade, iar exact această vulnerabilitate e exploatată prin metoda Meltdown.
Iar acum, să ne calmăm. Dacă se mai poate.
După cum aţi înţeles sper, aceste metode de extragere a unor date sensibile sunt departe de a fi la fel de simple precum o aplicaţie malware gen virus informatic. E vorba de programare de fineţe, de o cunoaştere foarte bună a microprocesorului care se doreşte a fi atacat, mai ales că o rutină tip Meltdown pentru Intel va funcţiona dacă ajunge şi pe un PC AMD sau o tabletă ARM. Fiecare procesor, e pe limba(jul maşină) proprie. De asemenea, un calculator pe care ajunge să ruleze o astfel de aplicaţie, nu pune la dispoziţia acelei aplicaţii toate datele de pe un hard disk, aşa cum ar extrage un virus clasic datele din hard disc, ci doar datele care ajung să fie accesate de utilizator în timpul sesiunii în care rulează şi aplicaţia malware.
Deci, probabilitatea de a fi extrase „din prima” date sensibile, poate fi considerată destul de scăzută.
Pe de altă parte însă, v-aţi dat seama iarăşi, că aceleaşi metode – numai că în scopuri benefice, de creştere a performanţelor – sunt exploatate de sistemul de operare sau de orice altă aplicaţie normală. Asta înseamnă că un cod malware care foloseşte facilităţile descrise anterior pentru a extrage date, nu poate fi eliminat pur şi simplu de un antivirus, pentru că acelaşi tip de cod e folosit şi de sistemul de operare. Un antivirus nu va putea elimina coduri malware care exploatează aceste vulnerabilităţi decât în baza unor semnături specifice, adică numai după ce astfel de coduri sunt descoperite şi antiviruşii ştiu deja să le recunoască şi să le elimine. Scanarea euristică, în acest caz, nu le va sesiza anticipat, căci nu prea va putea să le distingă de comenzile normale ale sistemului de operare ori ale altor aplicaţii deja autorizate să ruleze pe PC, antiviruşii devenind inutili din acest punct de vedere.
Şi cel mai rău, e că singura metodă să scăpăm de ameninţare, e să schimbăm procesorul cu totul. Dar…ce punem în loc, căci la ora actuală, cu o mică excepţie (procesoarele Intel Itanium, pentru servere şi Intel Atom, fabricate înainte de 2013), tot ce găsim pe piaţă la ora actuală, au aceste facilităţi implementate şi implicit, vulnerabilităţi.
Iată din păcate, că pe cât de greu e să fie exploatate aceste facilităţi în scopuri nocive, pe atât de greu e să fie eliminate, diminuate sau blocate aplicaţiile nocive. Urâtă, situaţie, aşa-i ?
Ce poţi face tu, cel din spatele tastaturii ori al touch-screen-ului ?
În primul rând, actualizări ale sistemelor de operare şi ale driverelor curente (procesor, placă de bază). Dacă ai un sistem de operare cu licenţă, vei primi actualizări automat (dacă nu cumva ai blocat aceste faclilităţi considerându-le sâcâitoare şi inutile) care vor diminua sau chiar elimina în anumite situaţii aceste riscuri. Dar, cu un preţ. Performanţele procesoarelor vor scade cu până la 30%, în funcţie de ce faci la un moment dat. Cel mai probabil nu vei simţi diferenţe, uneori însă, vei descoperi mici întârzieri în afişarea datelor pe ecran în anumite aplicaţii, întârzieri care înainte de aceste update-uri de securitate nu le aveai. E logic, ca să fie eliminate vulnerabilităţi care exploatează facilităţi prin care se creşte viteza de procesare, prin filtre suplimentare şi metode pur software de filtrare a aplicaţiilor care exploatează aceste facilităţi hardware, se întârzie rularea aplicaţiilor chiar la nivel de nuclee ale microprocesorului.
În al doilea rând, nu vă zgârciţi la tărâţe. Dacă de exemplu, o bancă vă solicită câţiva lei în plus pe lună, ca să vă ofere autentificare la serviciile online pe bază de token/calculator de parolă, în schimbul unei parole fixe, care e mai ieftină, cumpăraţi acel token/serviciu. O parolă care se schimbă la câteva minute, e inutilă oricărui atacator care exploatează aceste metode. Gândiţi-vă puţin, dacă nu aveţi ghinionul să fiţi exact ţinta unei astfel de aplicaţii malware, cel care a lansat-o va primi date de la zeci de mii de calculatoare din lume. Până ajunge să testeze şi contul vostru, deja parola generată de token nu mai e valabilă. La fel cum o parolă bazată pe date biometrice (destul da variate la fiecare autentificare) sau pe selecţia unor cifre ori litere într-o pagină WEB, face la fel de inutilă această metodă de atac informatic. Parolele fixe şi neschimbate luni de zile, devin însă portiţe deschise şi altora, către conturile voastre de acces.
Aşadar, veşnicele recomandări de bun simţ, revin în actualitate:
– schimbarea măcar trimestrială a parolelor de acces la conturile importante (bancare, de stocare în cloud, emailuri, etc.)
– refuzul de deschidere a unor programe ataşate de emailuri de la necunoscuţi sau de pagini web dubioase,
– activarea facilităţilor din sistemele de operare moderne prin care sunteţi atenţionaţi asupra oricărui program care solicită privilegii suplimentare, chiar dacă asta înseamnă ca la orice aplicaţie nouă să fiţi nevoiţi să daţi câteva click-uri suplimentare de confirmare a rulării. Iar aceste confirmări daţi-le numai după ce aţi privit şi mai ales, înţeles, detaliile semnificaţiei acceptului ce va fi dat.
Cea mai sigură metodă
Deocamdată nu sunt cunoscute situaţii de atacuri informatice care să exploateze aceste vulnerabilităţi. Şi cel mai probabil, nici nu există. Dar, acum, că metodele au fost descrise cu lux de amănunte, probabil vor apare. Rapid, până ca producătorii de procesoare şi sisteme de operare să implementeze măsuri de protecţie eficiente. Iar singurele porţi de intrare ale unor astfel de aplicaţii malware, sunt site-urile Internet mai mult sau mai puţin dubioase şi porturile USB ale calculatoarelor. Aşa că, cel mai bine ar fi să aveţi un calculator cu un rol bine definit în casă, altul decât cel pe care îl folosiţi în mod curent pentru entertainment, Facebook, filme, torrent, etc.
Un laptop, de exemplu, că-i mai uşor de transportat dintr-o cameră în alta şi ocupă şi puţin spaţiu când nu e folosit, cu performanţe medii de tip office, al cărui preţ nu depăşeşte 1500 lei şi pe care aveţi instalate şi accesaţi doar emailurile strict personale, conturile bancare, descărcaţi pozele personale din diversele gadgeturi strict personale (că dacă veniţi cu vreun stick sau aparat foto de prin afara familiei, nu ştiţi ce aplicaţie se mai lipeşte de pozele alea…). Adică un PC tip office, folosit excusiv la un tip fix de operaţii, la care conectaţi numai aparate cunoscute, cărora nu le pierdeţi controlul niciodată. Va fi aproape imposibil, ca prin aceste metode, Meltdown şi Spectre să vă fie furate date importante. Pentru că un astfel de sistem, va accesa un număr limitat de site-uri, de regulă aceleaşi, de regulă site-uri bancare sau de stocare în cloud ori de servicii email care sunt mai puţin vulnerabile decât site-uri oarecare. Ca să nu mai zic că datele voastre personale, stocate astfel, au şi un nivel de rezistenţă în timp mult sporit, căci un hard disc utilizat odată pe zi câteva ore, cel mult, va trăi cu ani buni mai mult decât un hard disc care descarcă fişiere partajate prin cea mai folosită aplicaţie peer-to-peer: torrente. Poate suficienţi ani, cât să aveţi timp să vă cumpăraţi şi un hard disc extern, unde să vă ţineţi o copie de siguranţă a datelor la care ţineţi.
Concluzii
Veţi citi multe în următoarea perioadă. Şi din motive pur comerciale, veţi citi despre scenarii apocaliptice. Într-un fel, nu e de colea să afli că toate PC-urile, laptop-urile, tabletele sau telefoanele mobile din lume sunt vulnerabile la un atac care nu prea poate fi stopat de actualele aplicaţii antivirus, poate parţial fi oprit de actualizări ale sistemelor de operare, când or veni şi alea şi mai mult, acele actualizări vor micşora şi performanţele pentru care unii, am dat o grămadă de bani. Şi că vom scăpa total de aceste ameninţări odată cu producţia unor noi tipuri de microprocesoare, care vor necesita şi altă placă de bază în mod sigur, şi probabil şi un standard nou de memorie (DDR5, probabil), căci de ce să nu profite la maxim toată lumea din chestia asta ?
Dar, pe de altă parte, nu e la îndemâna oricui să exploateze vulnerabilităţile astea. Probabil, cei care o pot face au ţinte bine stabilite în lume. Şi am convingerea că acele ţinte nu fac parte din cititorii acestui blog. Căci aceste vulnerabilităţi sunt mai degrabă exploatabile prin arme cibernetice, nu prin simple aplicaţii malware. Iar astfel de arme, sunt folosite de actori statali, contra altor actori statali.
Şi să vedem şi partea bună a lucrurilor. Cât costă acum un PC sau laptop echipat cu i5 sau i7 ? Nici nu vă spun, aflaţi singuri. Vă spun doar că în circa 6 luni, preţul unui astfel de PC va scade cu 30% până la 50%. Şi coroborat cu metodele de protecţie de bun simţ, pe care oricine ar trebui să şi le ia, va fi o afacere bună, nu credeţi ?
Câteva date au fost folosite de aici:
şi de aici: