Meltdown i Spectre na Linuxu - Pakleni dvojac
Dva najteža sigurnosna propusta u posljednje vrijeme malo koga štede. Kako se Linux drži i što očekivati od zakrpi?

Panika se počela širiti i prije službene objave. Skupina austrijskih studenata iz Graza, njemačkih sigurnosnih istraživača, i zasebno Googleov stručnjak, već su početkom 2017. otkrili nevjerojatne propuste u modernim operacijskim sustavima i procesorskim arhitekturama, koji pogađaju najširi raspon korisnika.
Prve glasine i blogovi o potencijalnim propustima pojavili su se 3. siječnja 2018. godine, uglavnom od ljudi koji su spojili točke poput javnih doprinosa developera open source kôdu i dovoljno detaljno pratili njihove mailing liste. Jednom kada je službeni embargo prošao, 9. siječnja, panika je već bila dovoljno raširena da je malo tko mogao predvijeti koji je sljedeći korak.
Oba tipa napada koriste ranjivosti u načinu na koji moderni procesori (većina proizvedenih nakon 1995.) koriste spekulativno izvršavanje radnji, odnosno “pogađaju” koju sljedeću radnju procesor mora izvršiti, pa tako Meltdown omogućuje čitanje sadržaja privatne memorije, što u praksi znači da u okruženju virtualnih strojeva netko na istom hipervizoru može čitati tuđu memoriju. Ranjivi su svi Intelovi procesori i dio ARM-ovih.
Mitigacija za Linux dostupna je pomoću KPTI nadogradnje, koja bolje izolira kernelski prostor, i uvrštena je u kernel 4.15, s backportom u verzije 4.14.11, 4.9.75 i 4.4.110, no boljka joj je pad performansi koje variraju od minimalne do osjetne, ovisno o radnjama. Unatoč tome, Google je najavio skori izlazak svoje nadogradnje Retpoline, koja ne bi trebala utjecati na performanse.
Spectre, s druge strane, pogađa gotovo sve moderne procesore pa tako i AMD, i iako je teži za izvršavanje, također omogućuje čitanje podataka drugih aplikacija koje se izvršavaju na istom sustavu.
Google i Mozilla potvrdili su da se oba propusta mogu izvršiti kroz browser, poglavito maliciozni JavaScript kôd, s najavom mitigacija u sljedećim verzijama oba pretraživača.
Nedostižna sigurnost
Dva mjeseca nakon otkrivanja, svijet Linuxa još uvijek odzvanja od posljedica Meltdown/Spectre ranjivosti, s nepoznatim postotkom nezaštićenih sustava.
Pošteđenih je malo – dok se Meltdown može ublažiti raznim softverskim intervencijama, Spectre je primarno problem u samom centralnom procesoru, odnosno potrebna je microcode zakrpa, tako da je trenutačno jedina sigurna opcija fizička zamjena ranjivog procesora neranjivim.
Najveći problem s na KPTI-ju baziranim zakrpama za Linux su rano najavljena smanjenja performansi – prve glasine tvrdile su pad od 25%, drugi su najavljivali i apokaliptičnih 50% utjecaja na radnu sposobnost procesora. Dodatne komplikacije stvorile su loše zakrpe, koje su sa sobom donosile i druge probleme, poput aplikacija koje nisu radile s njima.
Intelove zakrpe mnoge su tvrtke i zajednice jednostavno odbacile, s time da je Linuxov tvorac Linus Torvalds koristio i karakteristično grub jezik opisujući ih, a Microsoft ih je obrisao sa svojom sljedećom zakrpom, ocjenjujući ih nedovoljno dobrim za Windowse. Kulminiralo je u Intelovoj najavi da se zakrpe ne preuzimaju zbog “problema sa stabilnošću sustava” i “nasumičnim rebootom” računala. AMD je doživio slične poteškoće u svom pokušaju patchanja.
“Vaše iskustvo može varirati”
Nakon instalacije zakrpi najveće penale doživjeli su servisi poput baza podataka, virtualizirane okoline, aplikacije koje ovise o pisanju na disk i koje izvršavaju više sistemskih poziva, a pošteđene su one koje se vrte u korisničkom prostoru, dalje od kernela.
Prilično je teško doći do konkretnih brojki koje se mogu prenijeti u razlike u produkciji zbog različitih metodologija i specifičnosti upletenog softvera, no neke su tvrtke bile izravne oko pada performansi i nisu se ustručavale optužiti Spectre i Meltdown za pad razine kvalitete na njihovim uslugama. Među prvim su bili Epic Games, koji su probleme sa stabilnošću online usluga u nekim igrama opravdavali instalacijom patcheva za Meltdown, i grafovima koji su pokazivali osjetan rast utilizacije procesora.
Najviše su pogođeni razni servisi koji ovise o performansama čitanja i pisanja na disk i čestih syscallovima, među kojima su prijavljeni padovi i do 50%, koji se trenutačno mogu popraviti samo povećanjem kapaciteta i skaliranjem sustava.
U produkcijskim okolinama rezultati mogu varirati, no mnogi korisnici su prijavili konkretne postotke pada performansi: često korištena caching rješenja poput memcacheda i redisa doživjeli su 20-40%, baza podataka Postgres 20%, data pipeline Kafka 40% a pretraživački engine Elasticsearch 30%.
Izvan radikalnih slučajeva, tipični web-servisi i alati koji nemaju potrebu toliko komunicirati s kernelom, nisu zabilježili tako visoku razinu poteškoća pa se svrstavaju tek u umjereno rizičnu skupinu – do 7% pada performansi.
Ispit za cloud
Javni embargo istekao je početkom godine, no veliki igrači cloud industrije prve su reakcije na Meltdown imali već na ljeto 2017. Google, Microsoft i Amazon vremensku su prednost iskoristili za stvaranje i instaliranje zakrpi u svojim virtualiziranim okolinama, kako bi se spriječilo iskorištavanje slabosti koja bi omogućila korisnicima da pristupaju adresnom prostoru “susjedne” virtualke, bilo na Googleovom Cloud Engineu, Microsoftovom Azureu ili Amazonovom Web Servicesu.
Drugi ešalon providera nije imao taj luksuz, no Scaleway, DigitalOcean, Packet, Vultr, Linode i OVH, koji predstavljaju manji dio tržišta od giganata poput Amazona, morali su djelovati samostalno i stvorili su neformalni konzorcij, kroz koji su dijelili podatke potrebne za popravak ranjivosti.
Cloud servisi su obećavali “asistenciju” i razumijevanje za naglo povećanje hardverskih zahtjeva za klijentske aplikacije, no pitanje je koliko će ova kriza naštetiti tim platformama, kada znamo da će korisnici koji žele održati istu razinu usluge jednostavno biti prisiljeni plaćati za više resursa.
Katalizator promjena
Iako se radi o najvećim sigurnosnim propustima u proteklih nekoliko godina, Meltdown i Spectre pokrenuli su vrlo potrebne rasprave o mnogim temama u IT-u, koje su godinama bile zanemarivane ili smatrane nedovoljno važnima. Intelov praktičan monopol na serverskom tržištu pokazao je duboku manu korištenja jednog vendora za kritičan komad hardvera, koji je usput vrlo zatvoren i slabo podložan recenzijama koje bi omogućile ranije sprečavanje takvih propusta.
Proof of concept i praktični primjeri izvršavanja obje ranjivosti javno su dostupni, no čak i u trenucima panike važno je sjetiti se da još nema prijavljenih slučajeva njihova korištenja u maliciozne svrhe. Pesimisti bi rekli da je tako zbog manjka logova i niske razine djelovanja, no nije za odbaciti odlučnost i brzinu da se zakrpe dostave najvećim platformama i krajnjim korisnicima. Kako smo na nekoliko primjera vidjeli, čak i po cijenu stabilnosti.
NAPOMENA: Ovaj tekst je izvorno objavljen u časopisu Mreža.