Quantcast
Channel: sys.portal
Viewing all articles
Browse latest Browse all 594

Operacija uspjela, pacijent umro!

$
0
0

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: 
0
No votes yet

Viewing all articles
Browse latest Browse all 594