Operacija uspjela, pacijent umro - Meltdown i Spectre!

securityIntel did it again. Samo što je prošli put (https://en.wikipedia.org/wiki/Pentium_F00F_bug) šteta bila lokalizirana – blokiralo bi se računalo, ali bi korisnički podaci ostali zaštićeni. Ovog puta, iako se još službeno ne zna o čemu je točno riječ, frenetičan rad na izradi sigurnosnih zakrpa za sva tri popularna operacijska sustava (Linux, Mac, Windows) daje naslutiti kako su govorkanja istinita, ili barem blizu istine: hardverski problem u Intelovim procesorima, koji postoji već jedno desetljeće, omogućuje programima u korisničkom prostoru pristup cjelokupnoj memoriji prostora kernela.

Razbijeno na jednostavnije pojmove, podsjetimo se kako je jedna od ključnih značajki modernih operacijskih sustava izolacija procesa, i to ne samo jednog procesa od drugog, već i samog kernela operacijskog sustava od prostora koji je dan na raspolaganje korisničkim programima.

 

Intelovi procesori, nažalost, čini se imaju kobnu hardversku pogrešku u prediktivnom algoritmu zbog koje korisnički procesi mogu pristupiti informacijama koje se nalaze u prostoru kernela, što je iznimno opasan sigurnosni propust. Preciznije detalje o problemu donosi ArsTechnica (https://arstechnica.com/gadgets/2018/01/whats-behind-the-intel-design-flaw-forcing-numerous-patches/).

 

Nažalost, najveći problem ove priče je činjenica da je pogreška u samom hardveru procesora i nije ju moguće promjeniti nadogradnjom mikrokoda ili na bilo koji drugi način osim bacanjem procesora u smeće i kupnjom novog procesora – AMD procesori, primjerice, ne pate od ovog problema.

 

Kako je bacanje procesora u smeće skupo, nepraktično i ekološki štetno, proizvođači operacijskih sustava prionili su na zaobilaženje ovog problema na relativno jednostavan, ali skup način: potpunim razdvajanjem korisničkih od kernelovih tablica, praktički isključivanjem hardverski ubrzanog rješenja na samom čipu.

 

Posljedica toga je, očekivano, pad performansi računala. Kako je za svaki syscall i svaki prekid sad potrebno pozivati softversku rutinu koja u tablici kernela sadrži tek minimalnu količinu informacija nužnu za ispravan rad procesora, to znači da se svaki put kad procesor krene izvršavati korisnički program, podaci za kernelovu tablicu moraju iznova napuniti. To stalno punjenje i pražnjenje tablice ima značajne posljedice po performase računala: prema procjenama, usporavanje rada računala kreće se od 2-3%, pa sve do 60%, ovisno o vrsti posla koje računalo obavlja. Praktična mjerenja performansi pokazala su da usporenje uglavnom nije drastično, ali u nekim slučajevima je osjetno: primjerice, PostgreSQL je izvjestio (https://www.postgresql.org/message-id/20180102222354.qikjmf7dvnjgbkxe@alap3.anarazel.de) o mogućem smanjenju performansi poslužitelja baza podataka od 17-23%.

 

Koliko će se računala usporiti nakon primjene sigurnosne zakrpe ovisi, reklo bi se, o količini sistemskih poziva, pri čemu su I/O pozivi najviše pogođeni. Praktično, to znači da bi uredska i kućna računala trebala biti gotovo beznačajno pogođena, ali poslužitelji sa mnoštvom I/O operacija mogli bi pokazati značajna usporenja u svom radu.

 

Intel (https://www.marketwatch.com/investing/stock/intc) je zanijekao (http://www.tomshardware.com/news/intel-cpu-bug-amd-performance,36213.html) problem, ali ako za nekoliko dana primjetite da se vaši poslužitelji nekako lijeno ponašaju – znat ćete zbog čega.

 

Ovakva je situacija nedopustiva, ali nažalost ne možemo učiniti baš ništa osim konkretne zamjene hardvera; ostaviti sustave nezakrpane bilo bi krajnje neodgovorno, a zakrpa bi mogla “postarati” računalo za cijelu jednu generaciju. Mogli bismo to nazvati Pirovom pobjedom, kad bismo to uopće mogli smatrati pobjedom.

Kategorije: 
Vote: 
5
Vaša ocjena: Nema Average: 5 (1 vote)

Komentari

Evo malo dodatnih linkova o ovim sigurnosnim propustima koji su popularno nazvani Meltdown i Spectre a dobili su oznake CVE-2017-5754, CVE-2017-5715 i CVE-2017-5753.

Prvo od ekipe koja je sudjelovala u otkrivanju propusta:

Evo što predlaže Microsoft za otklanjanje propusta na svojim serverskim i korisničkim sustavima:

Bit će zanimljivo pratiti hoće li propusti biti iskorišteni "in the wild". Hm, a što ako ih neke državne agencije već koriste za svoje interese? Svojedobno sam čitao kako kineska vlada financira neke kineske proizvođače čipova da naprave svoje procesore kako bi bili neovisni o Intelu i drugim američkim proizvođačima. Sada se vidi da to ima neke dodatne prednosti.

Sada vidimo koliko je monopol jednog prozvođača procesora zaslužan za ovu situaciju. Da nije  AMD je jedva ostao u konkurenciji, skoro da ne bi bilo alternative. Kako promijentii procesor da ne promjeniš kompletnu ploču ? Da li je i jedan Intel procesor imun na ovo ? Također su neki mediji prenijeli da  i AMD ima problem ali je teže iskoristiv. Nadalje kako Intel ima primat u serverskom svijetu problem će biti jako velik.

Postoje alternative ali su lošijih performansi ali su razvijeni radi gore navedenog. Postavlja se pitanje da je propust "slučajan".

https://venturebeat.com/2015/09/03/chinas-loongson-makes-a-64-bit-mips-processor-that-can-run-x86-and-arm-code/

 https://thenextweb.com/insider/2017/05/25/russia-showcases-first-computers-based-indigenous-elbrus-8s-processor/

 

Čitam da za Debian još nije napravljena zakrpa.