Защитете Linux или Windows от уязвимости на Spectre и Meltdown

Един от основните компоненти на всеки компютър, проектиран да използва операционна система, независимо от нейния разработчик, е процесорът или процесорът, който напредва с гигантски стъпки, предлагайки ни нови скорости на обработка, нови технологии, повече ядра и всичко това, за да оптимизираме и подобряваме стартирането на системата и изпълнението на програмите, които сме инсталирали там.

Всичко това е иновативно и ни изпълва с емоции, когато купуваме компютър с отличен процесор, тъй като сме сигурни, че това ще бъде добра инвестиция, но какво ще стане, ако процесорът, било то Intel, AMD или друг, представи в рамките на своя дизайн уязвимости в сигурността че излагат на риск нашата информация и поверителността ни, темата променя курса и ни кара да мислим как този тип ситуация може да се случи в известни преработватели и големи компании по света.

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

Най -лошото в целия този въпрос е, че тези уязвимости засягат процесорите Intel, ARM и AMD, поради което всички сме отворени да бъдем жертви на тези уязвимости и затова днес в Solvetic ще анализираме подробно какви са тези уязвимости, как те атака и как можем да защитим нашите сървъри и оборудване от тях.

Нека си припомним, че тези уязвимости ще атакуват всички видове оборудване както на домашно ниво, така и на ниво компания и в момента пластирите, които ще служат за защита срещу Spectre и Meltdown, се пускат от разработчиците на операционни системи и приложения.

Какво е Spectre

Spectre е уязвимост, която има способността да подмами процесора да стартира спекулативния процес на изпълнение, тъй като съвременните процесори използват предвиждането на клони и спекулативното изпълнение позволява да се увеличи максимално производителността на процесора.

Призрачните атаки позволяват да се накара жертвата спекулативно да изпълни определени операции, които не биха се случили по време на правилното изпълнение на програмата и това позволява да се изтече поверителна информация през страничен канал за нападателя по много прост начин.

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

Тези варианти са:

Вариант 1 (CVE-2017-5753)Тази уязвимост засяга процесорите Intel, AMD и ARM, като позволява на нападателя да измами програмите без никакъв вид грешка, следвайки най -добрите практики, за да филтрира цялата потребителска информация, съхранявана на компютъра.

Това беше открито на 3 януари тази година от екипа на Google Project Zero и този вариант използва прекомерно спекулативно изпълнение, за да изпълнява задачи за заобикаляне на проверка на ограничение, което води до пренасочване на кода на ядрото с контрола на нападателя спекулативно.

Списък на системите, които могат да бъдат атакувани от този вариант, са:

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • RHEV-M 4.0
  • RHEV-M за сървъри
  • Red Hat Enterprise Linux OpenStack платформа 7.0 (Kilo) за RHEL 7
  • Red Hat Enterprise Linux OpenStack платформа 6.0 (Juno) за RHEL 7
  • Red Hat Enterprise MRG 2
  • Red Hat OpenStack Platform v 8/9/10/11/12
  • Debian Linux хрипове
  • Debian Linux jessie
  • Разтягане на Debian Linux
  • Debian Linux buster, sid
  • SUSE Linux Enterprise Server за Raspberry Pi 12 SP2
  • SUSE OpenStack Cloud 6
  • Openstack Cloud Magnum Orchestration 7
  • Контейнер SUSE като сервизна платформа ВСИЧКИ
  • SUSE Linux Enterprise High Availability 12 SP2 / SP3
  • SUSE Linux Enterprise Live Patching 12
  • SUSE Linux Enterprise Модул за публичен облак 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 за SAP 12 SP1
  • SUSE Linux Enterprise 11
  • SUSE Linux Enterprise 12
  • OpenSuse Linux, базиран на SUSE 12/11
  • Fedora Linux 26
  • Fedora Linux 27
  • Amazon Linux AMI

Вариант 2 (CVE-2017-5715)Този вариант е отговорен за задействане на спекулативно изпълнение, като използва инжектиране на клонова цел. Тя се основава на наличието на специфична, точно определена последователност от инструкции в привилегирования код, както и на ситуацията, че достъпът до паметта може да причини кеширане на данни на микропроцесора, включително спекулативно изпълнени инструкции, които никога няма да бъдат компрометирани.

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

Засегнатите системи са същите като изброените по -горе.

За да предотвратим тези варианти в Linux, можем да извършим следния процес.

В средите CentOS или RedHat първо изпълняваме следните редове:

 uname -r sudo yum актуализация

След като системата се актуализира, продължаваме да рестартираме системата, като изпълним реда:

 sudo рестартиране
След това потвърждаваме, че ядрото е актуализирано с помощта на командата отново:
 uname -r
Накрая проверяваме дали вариантите са приложени в системата, като изпълним следното:
 rpm -q -ядро наchangelog | egrep 'CVE-2017-5715 | CVE-2017-5753 | CVE-2017-5754' 

Увеличете

В случай на използване на Ubuntu или Debian можем да изпълним следните редове:

 sudo apt-get update sudo apt-get upgrade sudo shutdown -r 0

Призрачни форми на атакаSpectre използва някои техники за атака като:

  • Използване на спекулативно изпълнение. С тази техника Spectre атакува задачата на процесора на ниво спекулативни инструкции за изпълнение с последователности, които не би трябвало да се изпълняват по време на правилното изпълнение на програмата и тези последователности в крайна сметка ще бъдат обърнати, създавайки преходни инструкции, от които нападателят се възползва, за да филтрира потребителя информация.засегнати.
  • Атаки, използващи собствен код:. Тази атака създава програма, която съдържа секретни данни в паметта за достъп и след като тази програма бъде компилирана, двоичните файлове и споделените библиотеки в системата се анализират, за да филтрират потребителската информация.

И накрая, друга програма за атака е написана, която използва спекулативната функция за изпълнение на процесора, за да изпълнява по -рано срещаните последователности като преходни инструкции.

  • Атаки с помощта на JavaScript. Тази атака се използва за нарушаване на пясъчната кутия на браузъра чрез монтиране на преносим JavaScript код през нея.

Хардуер, засегнат от SpectreПонастоящем е открито, че Spectre е в състояние да наруши хардуера като:

  • Процесори, базирани на Ivy Bridge
  • AMD Ryzen
  • Intel процесори
  • Процесори Qualcomm

В обобщение, атаката на Spectre се състои от следните фази:

  • Фаза 1. Първо, атаката започва с фаза на конфигуриране, където противникът извършва операции, които причиняват повреди на процесора, така че след това може да се извърши грешна спекулативна експлоатация.

По време на тази фаза нападателят може да подготви страничния канал, който ще се използва за извличане на информацията на жертвата.

  • Фаза 2. В тази фаза процесорът спекулативно изпълнява една или повече инструкции, които прехвърлят поверителна информация от контекста на жертвата в микроархитектура на страничен канал.

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

  • Фаза 3. В тази фаза поверителните данни се възстановяват от Spectre, използвайки техники като flush + reload или evict + reload. Този процес на възстановяване се състои в измерване на времето, необходимо за четене на адресите на паметта в кеш редовете, което се наблюдава периодично.

Какво е Meltdown

Другата атака, която засяга сигурността на потребителите, е Meltdown, която позволява на нападателя да получи достъп до личната информация на потребителя чрез инсталираната операционна система, като Microsoft Windows или High Sierra.

Името му е присвоено за способността да се нарушават границите на сигурност, нормално наложени от системния хардуер.

Уязвимостта на Meltdown е каталогизирана като CVE-2017-5754, където се споменава, че Meltdown има способността да прониква в основната изолация между потребителските приложения и операционната система, независимо от това каква е тя. Тази атака позволява на програма да има достъп до паметта, а с нея и до поверителната информация на други програми и на самата операционна система.

Този недостатък беше открит и на 3 януари от екипа на Google Project Zero и други допълнителни екипи.
Тази уязвимост засяга процесорите Intel x86-64, но не и процесорите AMD x86-64.

Сривът може да засегне системата като:

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux
  • Debian Linux хрипове
  • Debian Linux jessie
  • Разтягане на Debian Linux
  • Deiban Linux buster, sid
  • SUSE Linux Enterprise 11
  • SUSE Linux Enterprise 12
  • OpenSuse Linux, базиран на SUSE 12/11
  • Fedora Linux 26
  • Fedora Linux 27
  • Amazon Linux AMI
  • Windows
В момента имаме решението за тази уязвимост за следните дистрибуции на Linux с тяхната версия на ядрото по следния начин:
  • 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 [актуализиране до текущо пускане]
  • Gentoo Linux [актуализация към текущата версия]
  • Ubuntu Linux v16.04 [4.4.0-109-generic или 4.13.0-26-generic] /v17.10 [4.13.0-25-generic] /14.04 [3.13.0-139-generic]
  • 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]

За да се предпазим от тази уязвимост CVE-2017-5754, можем да изпълним следното:

  • На CentOS и RedHat:
 uname -r sudo yum актуализация sudo рестартиране
  • Във Fedora:
 sudo dnf -обновяване на ядрото за актуализация 
  • В Debian и Ubuntu:
 uname -r sudo apt-get update sudo apt-get dist-upgrade sudo shutdown -r 0

Как работи MeltdownНека си припомним, че една от централните функции за сигурност на ниво операция в съвременните операционни системи е изолацията на паметта, която гарантира, че потребителските приложения нямат достъп до спомените на други потребители и програми и по този начин предотвратяват приложенията от потребителите да могат да четат или пишат към паметта на ядрото.

В съвременните процесори изолацията между ядрото и потребителските процеси обикновено се изпълнява от битов монитор на процесор, който определя дали паметта има възможност за достъп до страницата на ядрото или не.
Meltdown е разработен като нова атака, която има силата да преодолее напълно изолацията на паметта, като предоставя лесен начин за всеки потребителски процес да прочете паметта на ядрото на работещата машина, включително цялата физическа памет, разпределена в областта на ядрото.

Meltdown работи във всички големи операционни системи днес и тази уязвимост използва информацията за страничните канали, достъпна за повечето съвременни процесори като Intel или AMD.

Meltdown дава на нападателя възможността да изпълнява код на уязвим процесор, за да изхвърли цялото ядро ​​в адресното пространство, включително всяка разпределена физическа памет.

Причината за простотата и обхвата на Meltdown са страничните ефекти, причинени от извънредно изпълнение, тоест това е характеристика на текущите процесори, разработена за преодоляване на латентността на заетите изпълнителни единици.

Работните фази на разтопяването са:

  • Фаза 1. В тази фаза се прави заявка за незаконно местоположение на паметта в ядрото на процесора.
  • Фаза 2. В тази фаза се изпълнява втора заявка, за да се прочете условно валидно място в паметта само ако първата заявка съдържа определена активна стойност.
  • Фаза 3. В тази фаза се изпълнява спекулативната задача за изпълнение, където процесорът завършва фоновата работа за двете предишни заявки, преди да провери, че първоначалната заявка е невалидна. Веднага щом процесорът разбере, че заявките включват памет извън границите, той отхвърля и двете заявки.
  • Фаза 4. Там се прави нова заявка за валидното местоположение на паметта.

Така че можем да дефинираме следното с уязвимостта на Meltdown:

Съдържанието на избрано от нападателя място в паметта, което е недостъпно за нападателя, се зарежда в системния регистър.

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

Нападателят използва Flush + Reload, за да определи достъпа до кеш линията и по този начин да получи достъп до информацията, съхранена в избраното място в паметта.

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

1. Как да се предпазите от Spectre и Meltdown на Linux системи


В случая с Linux ще използваме specter-meltdown-checker.sh, който е скрипт за обвивка, за да определим дали ядрото на Linux е уязвимо за трите CVE, които споменахме за тези уязвимости.

ЗабележкаТози скрипт трябва да се изпълнява като root потребител.

Етап 1
За да инсталираме този скрипт, първо ще отидем в директорията / tmp така:

 cd / tmp / 
Стъпка 2
След като сме в споменатата директория, пристъпваме към получаване на скрипта, като изпълним следния ред:
 wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh 

ЗабележкаДруг вариант да го получите е като изпълните следния ред:

 git clone https://github.com/speed47/spectre-meltdown-checker.git 

Как да проверим дали сме уязвими към Spectre или MeltdownЗа да проверим сигурността на нашата дистрибуция, можем да изпълним следния ред:

 sudo sh specter-meltdown-checker.sh

Толкова е просто Можем да проверим дали нашата система е уязвима за тези нови заплахи.

2. Как да се предпазите от Spectre и Meltdown в системите на Windows


В този случай ще използваме Windows 10 и за това трябва да имаме достъп до Windows PowerShell като администратори, като щракнете с десния бутон върху приложението и изберете опцията „Изпълни като администратор“.

Етап 1
След като терминалът PowerShell е отворен, пристъпваме към изпълнение на следния ред:

 Инсталиране-модул SpeculationControl
Стъпка 2
В показаните въпроси ще въведем буквата S, за да потвърдим:

Увеличете

Стъпка 3
Стандартната политика за изпълнение на Windows няма да ни позволи да изпълним този скрипт, за това, за да изпълним скрипта, трябва да запазим текущата конфигурация, така че да може да бъде възстановена по -късно и след това да променим политиката за изпълнение, така че да може да се изпълнява скрипт. За целта ще изпълним следните две команди:

 $ SaveExecutionPolicy = Get-ExecutionPolicy Set-ExecutionPolicy RemoteSigned -Scope Currentuser

Увеличете

Стъпка 4
Сега можем да стартираме скрипта, като изпълним следното:

 Import-Module SpeculationControl Get-SpeculationControlSettings

Увеличете

Стъпка 5
Можем да видим подробна информация за системата и трябва да разгледаме по -специално два реда:

Поддръжка на Windows OS за смекчаване на инжектирането на клоновеТози ред показва актуализацията на софтуера на Microsoft и дали стойността му е вярно означава, че компютърът е защитен срещу Meltdown и Spectre атаки.

Хардуерна поддръжка за смекчаване на инжектирането на клоновеТози ред се отнася за актуализацията на фърмуера или BIOS / UEFI, която се изисква от производителя на компютъра, ако стойността му е вярно това означава, че ще бъдем защитени от уязвимостта на Spectre.

Стъпка 6
За да възстановим първоначалната конфигурация на политиката за изпълнение, след като проверим сигурността на системата, можем да изпълним следния ред:

 Set -ExecutionPolicy $ SaveExecutionPolicy -Scope Currentuser 

Увеличете

Стъпка 7
Струва си да си припомним колко е важно актуализирането на операционната система, тъй като разработчиците ще пускат кръпки за защита, за да предотвратят тези пропуски в сигурността:

3. Официална информация за призраците и стопяването от производителите


В следните връзки можем да намерим информация за тези уязвимости във всеки от основните сайтове на разработчиците и по този начин да имаме по -подробна информация за това как да предотвратим и да бъдем една крачка пред проблема:
  • Intel
  • ARM
  • AMD
  • NVIDIA
  • Microsoft Windows
  • Windows Server
  • Amazon
  • Google
  • Android
  • Манзана
  • Lenovo
  • HP
  • Huawei
  • Cisco
  • Mozilla
  • Червена шапка
  • Debian
  • Ubuntu
  • Fedora
  • VMWare

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

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave