Una dintre componentele fundamentale ale oricărui computer conceput pentru a utiliza un sistem de operare, indiferent de dezvoltatorul acestuia, este procesorul sau procesorul care avansează în pași gigantici oferindu-ne noi viteze de procesare, noi tehnologii, mai multe nuclee și toate acestea pentru a optimizați și îmbunătățiți pornirea sistemului și execuția programelor pe care le-am instalat acolo.
Toate acestea sunt inovatoare și ne umple de emoție atunci când cumpărăm un computer cu un procesor excelent, deoarece suntem siguri că va fi o investiție bună, dar ce se întâmplă dacă procesorul, fie el Intel, AMD sau altul, prezintă în proiectare vulnerabilități de securitate că ne pun în pericol informațiile și confidențialitatea, subiectul schimbă cursul și ne face să ne gândim la modul în care acest tip de situație se poate întâmpla la procesoare renumite și companii mari din întreaga lume.
Ei bine, această vulnerabilitate este o realitate care a fost descoperită în urmă cu câteva zile, pe 4 ianuarie, unde au fost descoperite vulnerabilitățile Spectre și Meltdown, care sunt legate de proiectarea procesorului în care unui atacator i se permite accesul la informații și memorie de sistem acolo unde este vital sunt adăpostite elemente precum chei de criptare sau parole.
Cel mai rău lucru despre această problemă este că aceste vulnerabilități afectează procesoarele Intel, ARM și AMD, motiv pentru care suntem cu toții deschiși să fim victime ale acestor vulnerabilități și de aceea astăzi, la Solvetic, vom analiza în profunzime care sunt aceste vulnerabilități, cum atac și cum ne putem proteja serverele și echipamentele de acestea.
Să ne amintim că aceste vulnerabilități vor ataca toate tipurile de echipamente atât la nivel de acasă, cât și la nivel de companie, iar în prezent patch-urile care ne vor ajuta să ne protejeze împotriva Specter și Meltdown sunt lansate de către dezvoltatorii de sisteme de operare și aplicații.
Ce este Spectre
Spectre este o vulnerabilitate care are capacitatea de a păcăli procesorul pentru a începe procesul de execuție speculativă, deoarece procesoarele moderne utilizează predicția ramurii, iar execuția speculativă permite maximizarea performanței procesorului.
Atacurile Spectre permit să inducă o victimă să execute speculativ anumite operațiuni care nu ar avea loc în timpul executării corecte a programului și acest lucru permite scurgerea informațiilor confidențiale printr-un canal lateral pentru atacator într-un mod foarte simplu.
Notificările de divulgare a acestor vulnerabilități au descoperit două variante cu niveluri diferite de complexitate și impact ale Specter asupra procesorului și, împreună cu acesta, asupra securității utilizatorului.
Aceste variante sunt:
Varianta 1 (CVE-2017-5753)Această vulnerabilitate afectează procesoarele Intel, AMD și ARM, permițând atacatorului să înșele programele fără niciun fel de eroare, urmând cele mai bune practici, pentru a filtra toate informațiile despre utilizatori stocate pe computer.
Acest lucru a fost descoperit pe 3 ianuarie a acestui an de către echipa Google Project Zero și această variantă folosește excesiv execuția speculativă pentru a efectua sarcini de ocolire a verificării limită, ceea ce face ca codul nucleului să fie redirecționat cu controlul atacatorului în mod speculativ.
O listă a sistemelor care pot fi atacate de această variantă sunt:
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 7
- RHEV-M 4.0
- RHEV-M pentru servere
- Red Hat Enterprise Linux OpenStack Platform 7.0 (Kilo) pentru RHEL 7
- Red Hat Enterprise Linux OpenStack Platform 6.0 (Juno) pentru RHEL 7
- Red Hat Enterprise MRG 2
- Red Hat OpenStack Platform v 8/9/10/11/12
- Debian Linux șuierător
- Debian Linux jessie
- Debian Linux stretch
- Debian Linux buster, sid
- SUSE Linux Enterprise Server pentru Raspberry Pi 12 SP2
- SUSE OpenStack Cloud 6
- Openstack Cloud Magnum Orchestration 7
- SUSE Container ca platformă de servicii TOATE
- SUSE Linux Enterprise High Availability 12 SP2 / SP3
- SUSE Linux Enterprise Live Patching 12
- SUSE Linux Enterprise Module pentru Public Cloud 12
- SUSE Linux Enterprise Server 11 SP3-LTSS
- SUSE Linux Enterprise Server 11 SP4
- SUSE Linux Enterprise Software Development Kit 11/12 SP3 / SP4
- SUSE Linux Enterprise pentru SAP 12 SP1
- SUSE Linux Enterprise 11
- SUSE Linux Enterprise 12
- OpenSuse Linux bazat pe SUSE 12/11
- Fedora Linux 26
- Fedora Linux 27
- Amazon Linux AMI
Varianta 2 (CVE-2017-5715)Această variantă este responsabilă pentru declanșarea execuției speculative prin utilizarea injecției țintă ramură. Se bazează pe prezența unei secvențe specifice, definite cu precizie de instrucțiuni în codul privilegiat, precum și pe situația în care accesele de memorie pot provoca stocarea în cache a datelor microprocesorului, inclusiv instrucțiuni executate speculativ, care nu vor fi niciodată compromise.
Datorită acestei variante, un atacator fără niciun privilegiu ar avea capacitatea de a trece limitele sistemului și computerului de a citi memoria privilegiată prin efectuarea de atacuri de cache laterale țintite și astfel să vadă pătrunsă securitatea utilizatorului.
Sistemele afectate sunt aceleași cu cele enumerate mai sus.
Pentru a preveni aceste variante în Linux putem efectua următorul proces.
În mediile CentOS sau RedHat, în primul rând executăm următoarele linii:
uname -r sudo yum update
Odată ce sistemul este actualizat, continuăm să repornim sistemul executând linia:
sudo rebootApoi confirmăm că nucleul a fost actualizat folosind din nou comanda:
uname -rÎn cele din urmă verificăm dacă variantele sunt aplicate în sistem executând următoarele:
rpm -q - kernelchangelog | egrep 'CVE-2017-5715 | CVE-2017-5753 | CVE-2017-5754'
MARI
În cazul utilizării Ubuntu sau Debian putem executa următoarele linii:
sudo apt-get update sudo apt-get upgrade sudo shutdown -r 0
Forme de atac de spectruSpectre folosește câteva tehnici de atac, cum ar fi:
- Exploatarea execuției speculative. Cu această tehnică, Spectre atacă sarcina procesorului la nivelul instrucțiunilor de execuție speculativă cu secvențe care nu ar fi trebuit executate în timpul executării corecte a programului și aceste secvențe vor fi în cele din urmă inversate creând instrucțiuni tranzitorii de care atacatorul profită pentru a filtra utilizatorul informații.afectate.
- Atacuri folosind codul nativ:. Acest atac creează un program care conține date secrete în memoria sa de acces și, odată ce acest program este compilat, binarele și bibliotecile partajate din sistem sunt analizate pentru a filtra informațiile utilizatorului.
În cele din urmă, este scris un alt program de atac care exploatează funcția de execuție speculativă a procesorului pentru a efectua secvențele întâlnite anterior ca instrucțiuni tranzitorii.
- Atacă folosind JavaScript. Acest atac este folosit pentru a încălca sandbox-ul browserului prin montarea codului JavaScript portabil prin intermediul acestuia.
Hardware afectat de SpectreÎn prezent s-a descoperit că Spectre este capabil să încalce hardware-ul precum:
- Procesoare bazate pe Ivy Bridge
- AMD Ryzen
- Procesoare Intel
- Procesoare Qualcomm
În rezumat, atacul Spectre este alcătuit din următoarele faze:
- Faza 1. În primul rând, atacul începe cu o fază de configurare, în care adversarul efectuează operațiuni care provoacă defecțiuni ale procesorului, astfel încât să poată fi efectuată o exploatare speculativă eronată.
În această fază, atacatorul poate pregăti canalul lateral care va fi folosit pentru a extrage informațiile victimei.
- Etapa 2. În această fază, procesorul execută speculativ una sau mai multe instrucțiuni care transferă informații confidențiale din contextul victimei într-o microarhitectură de canal lateral.
Acest lucru permite atacatorului să efectueze o acțiune, cum ar fi syscall, socket, iar în alte cazuri atacatorul poate profita de execuția speculativă a propriului cod pentru a obține informații sensibile din același proces de către utilizator.
- Etapa 3. În această fază, datele confidențiale sunt recuperate de la Spectre folosind tehnici precum spălare + reîncărcare sau evacuare + reîncărcare. Acest proces de recuperare constă în măsurarea duratei de citire a adreselor de memorie din liniile cache care este monitorizată periodic.
Ce este Meltdown
Celălalt atac care afectează securitatea utilizatorilor este Meltdown, care permite unui atacator să acceseze informațiile private ale utilizatorului prin sistemul de operare instalat, cum ar fi Microsoft Windows sau High Sierra.
Numele său a fost atribuit capacității de a încălca limitele de securitate impuse în mod normal de hardware-ul sistemului.
Vulnerabilitatea Meltdown a fost catalogată ca CVE-2017-5754, unde se face referire la faptul că Meltdown are capacitatea de a pătrunde în izolarea de bază dintre aplicațiile utilizatorului și sistemul de operare, indiferent care este. Acest atac permite unui program să acceseze memoria și, odată cu aceasta, și informațiile confidențiale ale altor programe și ale sistemului de operare în sine.
Acest defect a fost descoperit și pe 3 ianuarie de echipa Google Project Zero și de alte echipe suplimentare.
Această vulnerabilitate afectează procesoarele Intel x86-64, dar nu și procesoarele AMD x86-64.
Topirea poate afecta sistemul, cum ar fi:
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux
- Debian Linux șuierător
- Debian Linux jessie
- Debian Linux stretch
- Deiban Linux buster, sid
- SUSE Linux Enterprise 11
- SUSE Linux Enterprise 12
- OpenSuse Linux bazat pe SUSE 12/11
- Fedora Linux 26
- Fedora Linux 27
- Amazon Linux AMI
- Windows
- RHEL 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
- CentOS 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
- Fedora 26 [4.14.11-200] / 27 [4.14.11-300]
- Debian stretch [4.9.0-5-amd64] / jessie [3.16.0-5-amd6] / wheezy [3.2.0-5-amd64]
- CoreOS [4.14.11-Coreos]
- Arch Linux [actualizare la rulare curentă]
- Gentoo Linux [actualizare la rulare curentă]
- Ubuntu Linux v16.04 [4.4.0-109-generic sau 4.13.0-26-generic] /v17.10 [4.13.0-25-generic] /14.04 [3.13.0-139-generic]
- SUSE - SLES 12 SP3 [4.4.103-6.38.1] / SLES 12 SP2 [4.4.103-92.59.1] / SLES 11 SP4 [3.0.101-108.21.1] / SLES 11 SP3-LTSS [3.0.101 -0.47.106.11.1]
Pentru a ne proteja de această vulnerabilitate CVE-2017-5754 putem executa următoarele:
- Pe CentOS și RedHat:
uname -r sudo yum update sudo reboot
- În Fedora:
sudo dnf --refresh update kernel
- Pe Debian și Ubuntu:
uname -r sudo apt-get update sudo apt-get dist-upgrade sudo shutdown -r 0
Cum funcționează MeltdownSă ne amintim că una dintre caracteristicile centrale de securitate la nivel de funcționare în sistemele de operare moderne este izolarea memoriei, care asigură faptul că aplicațiile utilizatorilor nu au acces la amintirile altor utilizatori și programe și astfel împiedică aplicațiile utilizatorilor să citească sau să scrie la memoria nucleului.
În procesoarele moderne, izolarea dintre nucleu și procesele utilizatorului este executată în mod normal de un monitor de biți de procesor care definește dacă o memorie are capacitatea de a accesa pagina kernelului sau nu.
Meltdown a fost dezvoltat ca un nou atac care are puterea de a depăși complet izolarea memoriei, oferind un mod simplu pentru orice proces de utilizator de a citi memoria kernel a mașinii care rulează, inclusiv toată memoria fizică alocată regiunii kernel.
Meltdown funcționează astăzi pe toate sistemele de operare majore și această vulnerabilitate exploatează informațiile despre canalul lateral disponibile pe majoritatea procesoarelor moderne, cum ar fi Intel sau AMD.
Meltdown oferă atacatorului posibilitatea de a rula codul pe un procesor vulnerabil pentru a arunca întregul nucleu în spațiul de adrese, inclusiv orice memorie fizică alocată.
Cauza simplității și domeniului de aplicare al Meltdown sunt efectele secundare cauzate de execuția în afara ordinii, adică este o caracteristică a procesoarelor actuale care a fost dezvoltată pentru a depăși latențele unităților de execuție ocupate.
Fazele de lucru Meltdown sunt:
- Faza 1. În această fază se solicită o locație de memorie ilegală în nucleul procesorului.
- Faza 2. În această fază se efectuează o a doua cerere pentru a citi condiționat o locație de memorie validă numai dacă prima cerere conține o anumită valoare activă.
- Etapa 3. În această fază, sarcina de execuție speculativă este efectuată în cazul în care procesorul finalizează lucrările de fundal pentru cele două solicitări anterioare înainte de a verifica dacă solicitarea inițială este invalidă. De îndată ce procesorul înțelege că solicitările implică memorie în afara limitelor, acesta respinge ambele solicitări.
- Faza 4. Acolo se face o nouă solicitare pentru locația de memorie validă.
Deci, putem defini următoarele cu vulnerabilitatea Meltdown:
Conținutul unei locații de memorie alese de atacator, care este inaccesibil atacatorului, este încărcat într-un registru de sistem.
O instrucțiune tranzitorie accesează o linie cache pe baza conținutului secret al registrului.
Atacatorul folosește Flush + Reload pentru a determina accesul la linia cache și, astfel, accesul la informațiile stocate în locația de memorie aleasă.
Odată ce am înțeles cum funcționează aceste vulnerabilități, vom vedea cum ne vom proteja computerele de acestea, deși trebuie să clarificăm că până în prezent nu a fost raportat niciun atac care să implice atât utilizatori, cât și administratori.
1. Cum să vă protejați de Spectre și Meltdown pe sistemele Linux
În cazul Linux, vom folosi specter-meltdown-checker.sh, care este un script shell pentru a determina dacă nucleul Linux este vulnerabil la cele 3 CVE-uri pe care le-am menționat despre aceste vulnerabilități.
NotăAcest script trebuie rulat ca utilizator root.
Pasul 1
Pentru a instala acest script, vom merge mai întâi la directorul / tmp astfel:
cd / tmp /Pasul 2
Odată ce suntem în directorul menționat, continuăm să obținem scriptul executând următoarea linie:
wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
NotăO altă opțiune pentru a o obține este executând următoarea linie:
git clone https://github.com/speed47/spectre-meltdown-checker.git
Cum să verificăm dacă suntem sau nu vulnerabili la Spectre sau MeltdownPentru a verifica securitatea distribuției noastre, putem executa următoarea linie:
sudo sh specter-meltdown-checker.sh
Este atât de simplu. Putem verifica dacă sistemul nostru este sau nu vulnerabil la aceste noi amenințări.
2. Cum să vă protejați de Spectre și Meltdown pe sistemele Windows
În acest caz, vom folosi Windows 10 și pentru aceasta trebuie să accesăm Windows PowerShell ca administratori făcând clic dreapta pe aplicație și selectând opțiunea „Rulați ca administrator”.
Pasul 1
Odată ce terminalul PowerShell este deschis, vom continua să executăm următoarea linie:
Install-Module SpeculationControlPasul 2
În întrebările afișate vom introduce litera S pentru a confirma:
MARI
Pasul 3
Politica standard de execuție Windows nu ne va permite să executăm acest script, pentru aceasta, pentru a executa scriptul, trebuie să salvăm configurația curentă astfel încât să poată fi restaurată ulterior și apoi să schimbăm politica de execuție pentru a putea rula scenariu. Pentru aceasta vom executa următoarele două comenzi:
$ SaveExecutionPolicy = Get-ExecutionPolicy Set-ExecutionPolicy RemoteSigned -Scope Utilizator curent
MARI
Pasul 4
Acum, putem rula scriptul executând următoarele:
Import-Module SpeculationControl Get-SpeculationControlSettings
MARI
Pasul 5
Putem vedea informații detaliate despre sistem și trebuie să analizăm în special două linii:
Suport pentru sistemul de operare Windows pentru atenuarea injecției țintă a sucursalelorAceastă linie indică actualizarea software-ului Microsoft și dacă valoarea acestuia este Adevărat înseamnă că computerul este protejat împotriva atacurilor Meltdown și Spectre.
Suport hardware pentru atenuarea injecției țintă a sucursalelorAceastă linie se referă la actualizarea firmware-ului sau BIOS / UEFI care este necesară de la producătorul computerului dacă valoarea acestuia este Adevărat înseamnă că vom fi protejați împotriva vulnerabilității Spectre.
Pasul 6
Pentru a restabili politica de execuție la configurația inițială după verificarea securității sistemului, putem executa următoarea linie:
Set-ExecutionPolicy $ SaveExecutionPolicy -Scope Currentuser
MARI
Pasul 7
Merită să ne amintim importanța menținerii actualizate a sistemului de operare, deoarece dezvoltatorii vor elibera patch-uri de securitate pentru a preveni aceste defecte de securitate:
3. Informații oficiale despre spectru și topire de către producători
În următoarele link-uri putem găsi informații despre aceste vulnerabilități în fiecare dintre principalele site-uri ale dezvoltatorilor și astfel avem informații mai detaliate despre cum să prevenim și să fim cu un pas înaintea problemei:
- Intel
- BRAŢ
- AMD
- NVIDIA
- Microsoft Windows
- Windows Server
- Amazon
- Android
- Manzana
- Lenovo
- HP
- Huawei
- Cisco
- Mozilla
- Palarie rosie
- Debian
- Ubuntu
- Fedora
- VMWare
După cum putem vedea, deși vulnerabilitățile vor fi întotdeauna prezente, putem lua măsurile necesare pentru a fi atenți la orice eșec și a preveni astfel afectarea informațiilor noastre.