Jedna od temeljnih komponenti svakog računala dizajniranog za korištenje operacijskog sustava, bez obzira na njegovog razvojnog programera, je CPU ili procesor koji je napredovao ogromnim koracima nudeći nam nove brzine obrade, nove tehnologije, više jezgri i sve to kako bismo optimizirati i poboljšati pokretanje sustava i izvršavanje programa koje smo tamo instalirali.
Sve je to inovativno i ispunjava nas emocijama kada kupujemo računalo s izvrsnim procesorom jer smo sigurni da će to biti dobra investicija, ali što će se dogoditi ako procesor, bio to Intel, AMD ili neki drugi, u svom dizajnu predstavi sigurnosne ranjivosti da ugrožavaju naše podatke i našu povjerljivost, tu tema mijenja kurs i tjera nas na razmišljanje o tome kako se ovakva situacija može dogoditi u poznatim prerađivačima i velikim tvrtkama u svijetu.
Pa, ta je ranjivost stvarnost koja je otkrivena prije nekoliko dana, 4. siječnja, gdje su otkrivene ranjivosti Spectre i Meltdown, koje su povezane s dizajnom procesora gdje je napadaču dopušten pristup informacijama o sustavu i memoriji gdje je od vitalnog značaja smješteni su elementi poput ključeva za šifriranje ili lozinki.
Najgore u cijelom ovom pitanju je to što te ranjivosti utječu na Intelove, ARM i AMD procesore, zbog čega smo svi otvoreni da budemo žrtve tih ranjivosti i zato ćemo danas u Solveticu temeljito analizirati koje su to ranjivosti, kako se napada i kako možemo zaštititi naše poslužitelje i opremu od njih.
Podsjetimo se da će ove ranjivosti napasti sve vrste opreme, kako na kućnoj razini, tako i na razini tvrtke, a trenutno programeri operativnih sustava i aplikacija objavljuju zakrpe koje će nas zaštititi od Spectre i Meltdown.
Što je Spectre
Spectre je ranjivost koja ima sposobnost prevariti procesor u pokretanju špekulativnog procesa izvođenja jer moderni procesori koriste predviđanje grana, a spekulativno izvršavanje omogućuje maksimiziranje performansi procesora.
Užasni napadi omogućuju žrtvi da spekulativno izvrši određene operacije koje se ne bi dogodile tijekom ispravnog izvođenja programa, a to omogućuje da se na vrlo jednostavan način propuštaju povjerljive informacije kroz sporedni kanal.
Obavijesti o otkrivanju ovih ranjivosti otkrile su dvije varijante s različitim razinama složenosti i utjecaja Spectrea na procesor, a time i na sigurnost korisnika.
Ove varijante su:
Varijanta 1 (CVE-2017-5753)Ova ranjivost utječe na procesore Intel, AMD i ARM, dopuštajući napadaču da prevari programe bez ikakve greške, slijedeći najbolje prakse, da filtrira sve korisničke podatke pohranjene na računalu.
To je otkrio 3. siječnja ove godine tim Google Project Zero i ova varijanta pretjerano koristi spekulativno izvršavanje kako bi izvršila zadatke zaobilaženja provjere ograničenja, što dovodi do preusmjeravanja koda jezgre uz kontrolu napadača spekulativno.
Popis sustava koji se mogu napasti ovom varijantom su:
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 7
- RHEV-M 4.0
- RHEV-M za poslužitelje
- Red Hat Enterprise Linux OpenStack platforma 7.0 (Kilo) za RHEL 7
- Red Hat Enterprise Linux OpenStack platforma 6.0 (Juno) za RHEL 7
- Red Hat Enterprise MRG 2
- Red Hat OpenStack platforma v. 8/9/10/11/12
- Debian Linux hripav
- Debian Linux jessie
- Debian Linux rastezanje
- Debian Linux buster, sid
- SUSE Linux Enterprise Server za Raspberry Pi 12 SP2
- SUSE OpenStack Cloud 6
- Orkestracija Openstack Cloud Magnum 7
- SUSE spremnik kao servisna platforma SVE
- SUSE Linux Enterprise High Availability 12 SP2 / SP3
- SUSE Linux Enterprise Live Patching 12
- SUSE Linux Enterprise Module za javni oblak 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 za SAP 12 SP1
- SUSE Linux Enterprise 11
- SUSE Linux Enterprise 12
- OpenSuse Linux temeljen na SUSE 12/11
- Fedora Linux 26
- Fedora Linux 27
- Amazon Linux AMI
Varijanta 2 (CVE-2017-5715)Ova je varijanta odgovorna za pokretanje spekulativne izvedbe upotrebom ubrizgavanja ciljne grane. Temelji se na prisutnosti specifičnog, točno definiranog slijeda instrukcija u privilegiranom kodu, kao i na situaciji da pristup memoriji može uzrokovati predmemoriranje podataka mikroprocesora uključujući spekulativno izvedene upute koje nikada neće biti ugrožene.
Zahvaljujući ovoj varijanti, napadač bez ikakvih privilegija imao bi mogućnost prijeći granice sustava i računala za čitanje privilegirane memorije izvođenjem ciljanih napada predmemorije bočnih kanala i tako vidjeti sigurnost korisnika.
Pogođeni sustavi su isti kao i gore navedeni.
Kako bismo spriječili ove varijante u Linuxu, možemo provesti sljedeći proces.
U CentOS ili RedHat okruženjima prije svega izvršavamo sljedeće retke:
uname -r sudo yum ažuriranje
Nakon ažuriranja sustava nastavljamo ponovno pokretanje sustava izvršavanjem retka:
sudo ponovno podizanje sustavaZatim potvrđujemo da je jezgra ažurirana pomoću naredbe ponovo:
uname -rNa kraju provjeravamo primjenjuju li se varijante u sustavu izvršavanjem sljedećeg:
rpm -q -kernel izmjene | egrep 'CVE-2017-5715 | CVE-2017-5753 | CVE-2017-5754'
POVEĆAJTE
U slučaju korištenja Ubuntua ili Debiana možemo izvršiti sljedeće retke:
sudo apt-get update sudo apt-get upgrade sudo shutdown -r 0
Oblici sablasnog napadaSpectre koristi neke tehnike napada kao što su:
- Iskorištavanje špekulativne egzekucije. Ovom tehnikom Spectre napada zadatak procesora na razini spekulativnih uputa za izvršavanje sa sekvencama koje se nisu trebale izvršiti tijekom ispravnog izvođenja programa, a ti će se nizovi na kraju preokrenuti stvarajući prijelazne upute koje napadač koristi kako bi filtrirao korisnika informacije. pogođene.
- Napadi pomoću izvornog koda:. Ovaj napad stvara program koji u svojoj pristupnoj memoriji sadrži tajne podatke, a nakon što se ovaj program sastavi, binarne datoteke i zajedničke knjižnice u sustavu se analiziraju kako bi se filtrirale korisničke informacije.
Konačno, napisan je još jedan napadni program koji iskorištava špekulativnu izvršnu funkciju CPU -a za izvršavanje prethodno nađenih sekvenci kao prolaznih uputa.
- Napadi pomoću JavaScripta. Ovaj se napad koristi za probijanje pješčanika u pregledniku postavljanjem prijenosnog JavaScript koda kroz njega.
Hardver na koji utječe SpectreTrenutno je otkriveno da je Spectre sposoban narušiti hardver kao što su:
- Procesori bazirani na Ivy Bridgeu
- AMD Ryzen
- Intelovi procesori
- Qualcomm procesori
Ukratko, napad Spectre sastoji se od sljedećih faza:
- Faza 1. Prvo, napad počinje fazom konfiguracije, gdje protivnik izvodi operacije koje uzrokuju kvarove procesora, tako da se zatim može izvršiti pogrešno spekulativno iskorištavanje.
Tijekom ove faze napadač može pripremiti bočni kanal koji će se koristiti za izvlačenje informacija o žrtvi.
- Faza 2. U ovoj fazi procesor spekulativno izvršava jednu ili više uputa koje prenose povjerljive informacije iz konteksta žrtve u mikroarhitekturu bočnog kanala.
To omogućuje napadaču da izvrši radnju, kao što je syscall, utičnica, au drugim slučajevima napadač može iskoristiti prednosti spekulativnog izvršavanja vlastitog koda kako bi od istog procesa od korisnika dobio osjetljive podatke.
- Faza 3. U ovoj fazi, povjerljivi podaci se oporavljaju iz Specttera tehnikama kao što su ispiranje + ponovno učitavanje ili iseljenje + ponovno učitavanje. Ovaj proces oporavka sastoji se od mjerenja koliko je vremena potrebno za čitanje memorijskih adresa u predmemoriji koje se povremeno nadzire.
Što je Meltdown
Drugi napad koji utječe na sigurnost korisnika je Meltdown koji napadaču omogućuje pristup privatnim podacima korisnika putem instaliranog operacijskog sustava, kao što su Microsoft Windows ili High Sierra.
Ime mu je dodijeljeno zbog mogućnosti kršenja sigurnosnih ograničenja koja uobičajeno nameće hardver sustava.
Meltdown ranjivost je katalogizirana kao CVE-2017-5754 gdje se spominje da Meltdown ima sposobnost prodiranja u osnovnu izolaciju između korisničkih aplikacija i operacijskog sustava, bez obzira na to o čemu se radi. Ovaj napad omogućuje programu pristup memoriji, a s njim i povjerljivim podacima drugih programa i samog operacijskog sustava.
Tu su grešku 3. siječnja također otkrili tim Google Project Zero i drugi dodatni timovi.
Ova ranjivost utječe na procesore Intel x86-64, ali ne i na procesore AMD x86-64.
Topljenje može utjecati na sustav poput:
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux
- Debian Linux hripav
- Debian Linux jessie
- Debian Linux rastezanje
- Deiban Linux buster, sid
- SUSE Linux Enterprise 11
- SUSE Linux Enterprise 12
- OpenSuse Linux temeljen na 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 [ažuriranje na tekuću verziju]
- Gentoo Linux [ažuriranje na tekuću verziju]
- Ubuntu Linux v16.04 [4.4.0-109-generički ili 4.13.0-26-generički] /v17.10 [4.13.0-25-generički] /14.04 [3.13.0-139-generički]
- 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]
Kako bismo se zaštitili od ove ranjivosti CVE-2017-5754, možemo izvršiti sljedeće:
- Na CentOS -u i RedHatu:
uname -r sudo yum ažuriranje sudo ponovno podizanje sustava
- U Fedori:
sudo dnf -osvježi jezgru ažuriranja
- Na Debianu i Ubuntuu:
uname -r sudo apt-get update sudo apt-get dist-upgrade sudo shutdown -r 0
Kako funkcionira MeltdownSjetimo se da je jedna od središnjih sigurnosnih značajki na radnoj razini u modernim operativnim sustavima izolacija memorije, koja osigurava da korisničke aplikacije nemaju pristup sjećanjima drugih korisnika i programa te na taj način sprečavaju aplikacije korisnika da čitaju ili pišu u memoriju jezgre.
U modernim procesorima izolaciju između jezgre i korisničkih procesa obično izvodi monitor procesora koji definira ima li memorija mogućnost pristupa stranici jezgre ili ne.
Meltdown je razvijen kao novi napad koji ima moć u potpunosti prevladati izolaciju memorije pružajući jednostavan način za bilo koji korisnički proces da pročita memoriju jezgre pokrenutog stroja, uključujući svu fizičku memoriju dodijeljenu na području jezgre.
Meltdown danas radi na svim većim operativnim sustavima, a ta ranjivost iskorištava informacije o sporednim kanalima dostupne na većini modernih procesora kao što su Intel ili AMD.
Meltdown daje napadaču mogućnost pokretanja koda na ranjivom procesoru kako bi izbacio cijelo jezgro u adresni prostor, uključujući dodijeljenu fizičku memoriju.
Uzrok Meltdownove jednostavnosti i opsega su nuspojave uzrokovane izvršavanjem izvan reda, odnosno, to je značajka trenutnih procesora koja je razvijena za prevladavanje latencija zauzetih izvršnih jedinica.
Radne faze topljenja su:
- Faza 1. U ovoj fazi upućuje se zahtjev za nedopuštenu memorijsku lokaciju u jezgri procesora.
- Faza 2. U ovoj fazi provodi se drugi zahtjev za uvjetno čitanje valjane memorijske lokacije samo ako prvi zahtjev sadrži određenu aktivnu vrijednost.
- Faza 3. U ovoj fazi, izvodi se spekulativni zadatak izvršenja gdje procesor dovršava pozadinske radove za dva prethodna zahtjeva prije nego što provjeri da li je početni zahtjev nevažeći. Čim procesor shvati da zahtjevi uključuju memoriju izvan granica, odbija oba zahtjeva.
- Faza 4. Tamo se postavlja novi zahtjev za valjanu memorijsku lokaciju.
Dakle, s ranjivošću Meltdown možemo definirati sljedeće:
Sadržaj memorijskog mjesta koje je odabrao napadač, a koji je napadaču nedostupan, učitava se u registar sustava.
Prolazna instrukcija pristupa liniji predmemorije na temelju tajnog sadržaja registra.
Napadač koristi Flush + Reload kako bi odredio pristup liniji predmemorije i tako pristupio podacima pohranjenim na odabranom memorijskom mjestu.
Nakon što shvatimo kako ove ranjivosti funkcioniraju, vidjet ćemo kako ćemo zaštititi svoja računala od njih, iako moramo pojasniti da do danas nije prijavljen nijedan napad koji uključuje i korisnike i administratore.
1. Kako se zaštititi od Spectre i Meltdown na Linux sustavima
U slučaju Linuxa, upotrijebit ćemo specter-meltdown-checker.sh koji je ljuska skripta kako bismo utvrdili je li jezgra Linuxa ranjiva na 3 CVE-a koja smo spomenuli o tim ranjivostima.
BilješkaOva skripta mora biti pokrenuta kao root korisnik.
Korak 1
Da bismo instalirali ovu skriptu, prvo ćemo otići u / tmp direktorij ovako:
cd / tmp /Korak 2
Nakon što smo u navedenom direktoriju, nastavljamo s dobivanjem skripte izvršavanjem sljedećeg retka:
wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
BilješkaDruga mogućnost za dobivanje je izvršavanjem sljedeće linije:
git klon https://github.com/speed47/spectre-meltdown-checker.git
Kako provjeriti jesmo li ranjivi na Spectre ili MeltdownKako bismo provjerili sigurnost naše distribucije, možemo izvršiti sljedeći redak:
sudo sh specter-meltdown-checker.sh
To je tako jednostavno. Možemo provjeriti je li naš sustav osjetljiv na ove nove prijetnje.
2. Kako se zaštititi od Spectre i Meltdown na Windows sustavima
U ovom slučaju koristit ćemo Windows 10, a za to moramo pristupiti Windows PowerShell-u kao administratori desnim klikom na aplikaciju i odabirom opcije "Pokreni kao administrator".
Korak 1
Nakon što je terminal PowerShell otvoren, nastavljamo s izvršavanjem sljedeće linije:
Instalacija-Modul SpeculationControlKorak 2
U prikazana pitanja unijet ćemo slovo S za potvrdu:
POVEĆAJTE
Korak 3
Standardna politika izvođenja sustava Windows neće nam dopustiti izvršavanje ove skripte, zato da bismo izvršili skriptu, moramo spremiti trenutnu konfiguraciju kako bi se kasnije mogla vratiti, a zatim promijeniti politiku izvođenja kako bi se mogla pokrenuti skripta. Za to ćemo izvršiti sljedeće dvije naredbe:
$ SaveExecutionPolicy = Get-ExecutionPolicy Set-ExecutionPolicy RemoteSigned -Scope Currentuser
POVEĆAJTE
Korak 4
Sada možemo pokrenuti skriptu izvršavanjem sljedećeg:
Uvozni modul SpeculationControl Get-SpeculationControlSettings
POVEĆAJTE
Korak 5
Možemo vidjeti detaljne informacije o sustavu, a posebno moramo pogledati dvije linije:
Podrška za Windows OS za ublažavanje ubrizgavanja ciljne graneOvaj redak označava ažuriranje Microsoftovog softvera i njegovu vrijednost pravi znači da je računalo zaštićeno od napada Meltdown i Spectre.
Hardverska podrška za ublažavanje ubrizgavanja ciljne graneOva linija odnosi se na ažuriranje firmvera ili BIOS -a / UEFI -a koje je potrebno od proizvođača računala ako je njegova vrijednost pravi to znači da ćemo biti zaštićeni od ranjivosti Spectre.
Korak 6
Za vraćanje politike izvođenja u izvornu konfiguraciju nakon provjere sigurnosti sustava možemo izvršiti sljedeći redak:
Set -ExecutionPolicy $ SaveExecutionPolicy -Scope Currentuser
POVEĆAJTE
Korak 7
Vrijedno je zapamtiti važnost ažuriranja operacijskog sustava jer će programeri objavljivati sigurnosne zakrpe kako bi spriječili ove sigurnosne nedostatke:
3. Službeni podaci o spektru i otapanju proizvođača
Na sljedećim vezama možemo pronaći informacije o tim ranjivostima na svakoj od glavnih razvojnih stranica i tako imati detaljnije informacije o tome kako spriječiti i biti korak ispred problema:
- Intel
- RUKA
- AMD
- NVIDIA
- Microsoft Windows
- Windows poslužitelj
- Amazon
- Android
- Manzana
- Lenovo
- HP
- Huawei
- Cisco
- Mozilla
- Crveni šešir
- Debian
- Ubuntu
- Fedora
- VMWare
Kao što vidimo, iako će ranjivosti uvijek biti prisutne, možemo poduzeti potrebne mjere kako bismo bili pažljivi na svaki kvar i tako spriječili utjecaj na naše podatke.