Какви са уязвимостите Spectre и Meltdown?

Две от най-разгласените уязвимости през 2010-те бяха много тясно свързани помежду си. Вместо да бъдат уязвимости в сигурността в софтуера, Spectre и Meltdown са уязвимости в основния дизайн на процесорите, което прави проблема по-труден за разрешаване. Самите проблеми са особено сериозни, позволявайки разкриване на паметта от други приложения и операционната система.

Общ преглед

Процесорите използват невероятно усъвършенствани дизайни за постигане на най-висока производителност, включително техники, включително спекулативно изпълнение и прогнозиране на клонове. Спекулативното изпълнение е мястото, където процесорът започва да изпълнява процес, преди да разбере дали има нужда, в опит да спести време, когато реши, че трябва. Прогнозата за клонове е подмножество от спекулативно изпълнение, което се опитва да предвиди резултата от процес и след това започва да изчислява следващата стъпка въз основа на тази прогнозирана стойност, позволявайки на процесора да изпълни серия от инструкции от поръчка.

Уязвимостта Spectre идва от внедряването на тези две функции. Той позволява на приложение да наруши техниките за изолиране на паметта, вградени в повечето съвременни софтуери, позволяващи разкриването на памет, включително тайни като пароли и ключове за криптиране. Един от проблемите със Spectre е, че данните могат да бъдат достъпни от приложения, които нямат никакви уязвимости в сигурността, тъй като се изисква само злонамерена програма.

Уязвимостта Meltdown се основава на някои техники за памет, както и на системата за спекулативно изпълнение, спомената по-горе. Той използва „състояние на състезание“ между изпълнението на процеса и проверката на привилегиите и позволява на злонамерена програма да получи достъп до паметта на други приложения и операционната система.

Съвет: „Състояние на състезанието“ е проблем, при който се предполага, че една задача трябва да разчита на друга, но правилният ред за изпълнение не се прилага. Това може да доведе до това, че „вторият“ процес стартира първи и използва неинициализирана памет, която би трябвало да съдържа резултата от „първия“ процес, изпускайки предишното съдържание на тази памет. В този конкретен случай процесът не трябва да се изпълнява, докато проверката на разрешенията не потвърди, че е разрешена, но проверката на разрешенията може да се случи на второ място поради оптимизации на производителността.

Ефекти

В средата на 2017 г. множество екипи независимо откриха и докладваха както Meltdown, така и Spectre частно на производителите на процесори, които разработиха пачове. Поради пачовете, насочени към оптимизиране на производителността, в крайна сметка те намалиха производителността на процесорите с до 30% в най-лошия случай, като намалението на производителността с 2-14% е по-представително за хората преживявания.

Уязвимостите засегнаха много процесори x86, процесори IBM POWER и някои ARM-базирани процесори. Сривът засяга хардуера, който обикновено се намира в персоналните компютри, както и в облачните сървъри. Spectre засяга персонални компютри, облачни сървъри и мобилни устройства. Всички процесори на Intel от 1995 г. до средата на 2018 г. бяха уязвими към проблемите (с изключение на линиите Itanium и Atom преди 2013 г.). Процесорите на AMD не бяха засегнати от Meltdown, но бяха уязвими към Spectre.

Бяха разработени и пуснати софтуерни корекции за смекчаване чрез доставчици на операционни системи, които разрешават по-голямата част от проблемите. От средата на 2018 г. Intel актуализира дизайна на процесора си, за да включи хардуерни смекчавания за проблемите.

И двата проблема могат да бъдат използвани чрез злонамерени уеб страници с изработен JavaScript, така че е наистина важно да се направи уверете се, че корекциите за сигурност са инсталирани на всяка система, дори ако загубата на производителност ще бъде тежък. За съжаление, проблемите не могат да бъдат отстранени с една корекция, тъй като те са изключително сложни проблеми с дълбоки интегриране в хардуера, корекциите за сигурност ще продължат да се разпространяват с течение на времето, както и по-новите варианти открити.