Luki bezpieczeństwa Meltdown (CVE-2017-5754) i Spectre (CVE-2017-5753, CVE-2017-5715)

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

Luki bezpieczeństwa Meltdown (CVE-2017-5754) i Spectre (CVE-2017-5753, CVE-2017-5715), które dotyczą wielu modeli procesorów różnych producentów, umożliwiają użytkownikom i programom, które pracują w tak zwanej User Space na dostęp do pamięci jądra (Kernel Memory).[1][2][3] Pozwala to nieuprzywilejowanym użytkownikom na odczytywanie dowolnych danych z pamięci głównej. Obejmuje to hasła, klucze prywatne, certyfikaty i wszystkie inne poufne informacje. Luki bezpieczeństwa mogą zostać częściowo naprawiane przez aktualizacje jądra systemu operacyjnego, które jeszcze nie są dostępne dla wszystkich systemów operacyjnych. Ponadto w przypadku dotkniętych systemów konieczne są jeszcze aktualizacje firmware'u (Microcode-Updates).

Będziemy aktualizować ten artykuł, gdy tylko pojawią się nowe informacje.

Luki bezpieczeństwa

Informacje, które tutaj zgromadziliśmy zostały udostępnione przez specjalistów ds. bezpieczeństwa, którzy odkryli te luki, jak również przez firmę Google,[4] Intel i AMD.

Łącznie są to trzy luki bezpieczeństwa:

Luki bezpieczeństwa umożliwiają programom, które normalnie pracują z ograniczonymi uprawnieniami w tak zwanym User Space, na dostęp do chronionego obszaru pamięci (Kernel Memory).

FAQs

W poniższych FAQs podsumowujemy najważniejsze pytania i odpowiedzi dotyczące tych 3 luk bezpieczeństwa:

  1. Czy te luki bezpieczeństwa dotyczą mojego systemu?
    Z dużym prawdopodobieństwem tak. Prawie wszystkie serwery i komputery PC z procesorami x86 firm Intel i AMD są podatne na te luki. Dotyczy to również większości smartfonów z chipami ARM.
  2. W jaki sposób te luki mogą zostać wykorzystane przez atakujących?
    Luki mogą zostać wykorzystane tylko wtedy, gdy potencjalny atakujący ma możliwość wykonania kodu na dotkniętym systemie. Jednak aby taka sytuacja zaistniała, wystarczy odwiedzić stronę internetową ze szkodliwym skryptem Javy, który umożliwi atakującemu pozyskanie informacji z systemu.
  3. Czy mogę się zabezpieczyć aktualizacjami bezpieczeństwa mojego systemu operacyjnego?
    Częściowo tak. Aktualizacje systemów Windows, Linuks, MacOS i innych systemów operacyjnych mogą zmniejszyć zagrożenie wynikające z tych luk bezpieczeństwa. Informacje o dostępności aktualizacji znajdują się poniżej. Obok aktualizacji oprogramowania konieczne są również aktualizacje firmware'u/mikrokodu/BIOS-u.
  4. Czy te problemy mogą zostać rozwiązane jedynie poprzez aktualizacje firmware'u procesorów?
    Ze względu na uwarunkowania konstrukcyjne procesorów oraz charakterystykę luk, nie są obecnie znane żadne aktualizacje firmware'u (mikrokodu) dla procesorów, które mogłyby zamknąć luki bezpieczeństwa bez użycia łatek dla systemu operacyjnego.

Systemy dotknięte problemem

Luki bezpieczeństwa dotyczą procesorów następujących producentów:

Producent Procesory Wariant 1
(CVE-2017-5753, CVE-2018-3693)
(Spectre)
Wariant 2
(CVE-2017-5715)
(Spectre)
Wariant 3
(CVE-2017-5754)
(Meltdown)
Informacje
u producenta
AMD Ryzen i Epyc. tak tak[5] (nie dotyczy)[6] [1]
ARM Seria Cortex W zależności od modelu CPU, szczegółowe informacje u producenta [2]
Intel procesory z Out-Of-Order Execution (procesory wyprodukowane po 1995, bez Itanium i Intel Atom sprzed 2013) tak (vide INTEL-OSS-10002) tak (vide INTEL-SA-00088) tak (vide INTEL-OSS-10003) [3]

Rozwiązywanie problemu

Problem można rozwiązać przynajmniej częściowo poprzez całkowite odizolowanie pamięci jądra (kernel memory) od procesu użytkownika. Izolacja ta może spowodować spadek wydajności systemu.[7][8] Intel opublikował wyniki benchmarków po zastosowaniu łatek dla luk Meltdown/Spectre, widoczny jest w nich spadek wydajności rzędu 10%, a w przypadku systemów z dyskami SSD nawet wyższy. [9]

Aktualizacje BIOS-u

Aby zamknąć luki bezpieczeństwa w przypadku procesorów Intel konieczna jest poza łatkami dla systemów operacyjnych również aktualizacja mikrokodu procesorów.[10] Procesor sam w sobie nie posiada stałej pamięci i dlatego mikrokod zostaje zapisany na płycie głównej z BIOS-em / firmwarem UEFI.[11][12][13]

W artykule zatytułowanym Aktualizacje bezpieczeństwa BIOS-ów znajdują się dostępne aktualizacje firmware'u / BIOS-ów dla płyt głównych serwerów firmy Thomas Krenn.

Inny sprzęt / hardware

Reakcja innych producentów na informacje o lukach Meltdown i Spectre:

Aktualizacje bezpieczeństwa dla systemów operacyjnych

Aktualnie dostępne są następujące informacje o aktualizacjach:

System operacyjny Wersja Aktualizacja bezpieczeństwa
Debian GNU/Linux Łatka dla CVE-2017-5754 (Meltdown) jest dostępna dla Wheezy, Jessie, Stretch i Sid, kolejne aktualizacje są opracowywane (vide [4], [5], [6])
FreeBSD Łatka dla CVE-2017-5754 (Meltdown) i CVE-2017-5715 (Spectre wariant 2) jest opracowywana (vide [7], [8] i [9])
Linux z jądrem Vanilla 4.14 4.14.11[14] (rozwiązanie problemu CVE-2017-5754 (Meltdown) przez Kernel page-table isolation[15])
4.14.14[16] (rozwiązanie problemu CVE-2017-5715 (Spectre wariant 2, przez retpoline)
4.14.18[17] (rozwiązanie problemu dla CVE-2017-5753 (Spectre wariant 1, przez Array index speculation blocker) i CVE-2017-5715 (Spectre wariant 2, przez nowe Prozessor-Flags IBRS, STIBP i IBPB)
4.15 4.15-rc6[18] (rozwiązanie problemu CVE-2017-5754 (Meltdown) przez Kernel page-table isolation)
4.15.2[19] (rozwiązanie problemu CVE-2017-5753 (Spectre wariant 1, przez Array index speculation blocker) i CVE-2017-5715 (Spectre wariant 2, przez nowe Prozessor-Flags IBRS, STIBP i IBPB)
Microsoft Windows Windows Server 2008 R2, 2012 R2, 2016
Windows 10
  • Aktualizacje są dostępne (vide [10] i [11])[20][21]
  • Update to Disable Mitigation against Spectre, Variant 2[22]
Proxmox ([12]) Proxmox VE 5.x pve-kernel (4.13.13-34)
Proxmox VE 4.x pve-kernel (4.4.98-102)
Red Hat Enterprise Linux RHEL 5, 6, 7 Aktualizacje jadra są dostępne, libvirt/qemu-kvm/... w trakcie prac (vide [13])
SUSE ([14]) SLES 11, 12
  • Aktualizacje jądra dla SLES 12 SP1/SP2/SP3, SLES 12 GA i SLES 11 SP4 są dostępne
  • Aktualizacje jądra dla SLES 12 GA i SLES 11 SP3 są częściowo dostępne
  • (vide [15], [16], [17])
Ubuntu Linux Aktualizacje są dostępne (vide [18] i [19])
VMware ESXi 5.5, 6.0, 6.5 Aktualizacje są dostępne (VMSA-2018-0002, 2.1, 04, 04.1, 4.2)
Xen (wszystkie wersje) Aktualizacje są opracowywane ([20], [21])
Xenserver ([22]) 7.0, 7.1 LTSR CU1, 7.2, 7.3 Aktualizacje są dostępne (Citrix XenServer Multiple Security Updates, 7.0, 7.1, 7.2, 7.3)

(Ostatnia aktualizacja tabeli 09.02.2018 o 15:19)

Odnośniki

  1. Meltdown and Spectre - Bugs in modern computers leak passwords and sensitive data (meltdownattack.com)
  2. Today's CPU vulnerability: what you need to know (security.googleblog.com, 03.01.2018)
  3. 'Kernel memory leaking' Intel processor design flaw forces Linux, Windows redesign (www.theregister.co.uk, 02.01.2018): [...] At worst, the hole could be abused by programs and logged-in users to read the contents of the kernel's memory. Suffice to say, this is not great. The kernel's memory space is hidden from user processes and programs because it may contain all sorts of secrets, such as passwords, login keys, files cached from disk, and so on. Imagine a piece of JavaScript running in a browser, or malicious software running on a shared public cloud server, able to sniff sensitive kernel-protected data. [...]
  4. Project Zero: Reading privileged memory with a side-channel (googleprojectzero.blogspot.com, 03.01.2018)
  5. AMD Processor Security (amd.com, 11.01.2018) AMD will make optional microcode updates available to our customers and partners for Ryzen and EPYC processors starting this week. We expect to make updates available for our previous generation products over the coming weeks.
  6. (PATCH) x86/cpu, x86/pti: Do not enable PTI on AMD processors (lkml.org, 26.12.2017): AMD processors are not subject to the types of attacks that the kernel page table isolation feature protects against. [...]
  7. KAISER: hiding the kernel from user space (lwn.net, 15.11.2017): Since the beginning, Linux has mapped the kernel's memory into the address space of every running process. There are solid performance reasons for doing this, and the processor's memory-management unit can ordinarily be trusted to prevent user space from accessing that memory. More recently, though, some more subtle security issues related to this mapping have come to light, leading to the rapid development of a new patch set that ends this longstanding practice for the x86 architecture. [...] KAISER will affect performance for anything that does system calls or interrupts: everything. Just the new instructions (CR3 manipulation) add a few hundred cycles to a syscall or interrupt. Most workloads that we have run show single-digit regressions. 5% is a good round number for what is typical. The worst we have seen is a roughly 30% regression on a loopback networking test that did a ton of syscalls and context switches.
  8. Initial Benchmarks Of The Performance Impact Resulting From Linux's x86 Security Changes (www.phoronix.com, 02.01.2018)
  9. Intel-Benchmarks zu Meltdown/Spectre: Performance sackt um bis zu 10 Prozent ab, SSD-I/O deutlich mehr (heise.de, 11.01.2017)
  10. Facts about The New Security Research Findings and Intel Products (www.intel.com): We have begun providing software and firmware updates to mitigate these exploits. End users and systems administrators should check with their operating system vendors and system manufacturers, and apply any updates as soon as they are available.
  11. Security Vulnerabilities Regarding Side Channel Speculative Execution and Indirect Branch Prediction Information Disclosure (www.supermicro.com)
  12. ASUS Motherboards Microcode Update for Speculative Execution and Indirect Branch Prediction Side Channel Analysis Method (asus.com)
  13. ASUS Servers and Workstations Microcode Update for Speculative Execution and Indirect Branch Prediction Side Channel Analysis Method (asus.com)
  14. ChangeLog-4.14.11 (cdn.kernel.org) [...] x86/mm/pti: Add Kconfig [...] Finally allow CONFIG_PAGE_TABLE_ISOLATION to be enabled. [...]
  15. Kernel page-table isolation (en.wikipedia.org)
  16. ChangeLog-4.14.14 (cdn.kernel.org)
  17. ChangeLog-4.14.18 (cdn.kernel.org)
  18. Linux 4.15-rc6 (lwn.net)
  19. ChangeLog-4.15.2
  20. Gravierende Prozessor-Sicherheitslücke: Nicht nur Intel-CPUs betroffen, erste Details und Updates (heise.de, 04.01.2018) [...] Außerdem will Microsoft wohl noch am heutigen Donnerstag ein Security-Update für Windows veröffentlichen. [...]
  21. Windows 17035 Kernel ASLR/VA Isolation In Practice (like Linux KAISER) (twitter.com)
  22. Update to Disable Mitigation against Spectre, Variant 2 (support.microsoft.com)

Dodatkowe informacje

Historia aktualizacji tej strony

  • Wersja 1.0, 03.01.2018: Wersja początkowa z pierwszymi informacjami na podstawie artykułów heise. de i theregister.co.uk.
  • Wersja 1.1, 04.01.2018: Obszerna aktualizacja i uzupełnienie wstępnych informacji na temat aktualizacji systemu operacyjnych.
  • Wersja 1.2, 04.01.2018: Dodano informacje o SUSE.
  • Wersja 2.0, 04.01.2018: Odniesienie do oficjalnych oświadczeń firmy Intel, dodanie uwagi odnośnie aktualizacji systemów Microsoft Windows, dodanie informacji o możliwej konieczności przeprowadzenia aktualizacji firmware'u.
  • Wersja 2.1, 05.01.2018: Uaktualnienie informacji o aktualizacjach dla systemów operacyjnych, dodanie informacji o aktualizacjach mikrokodu.
  • Wersja 2.2, 08.01.2018: Uaktualnienie informacji o aktualizacjach dla systemów operacyjnych, lista płyt głównych, dla których został zapowiedziany update mikrokodu.
  • Wersja 2.3, 09.01.2018: Uaktualnienie informacja na temat aktualizacji dla systemu FreeBSD.
  • Wersja 3.0, 09.01.2018: Uzupełnienie tabeli z płytami głównymi.
  • Wersja 3.1, 09.01.2018: Dodanie informacji odnośnie innego sprzętu i systemu Proxmox.
  • Wersja 3.2, 10.01.2018: Uaktualnienie informacji o aktualizacjach dla Ubuntu (łatka dla CVE-2017-5754 jest dostępny).
  • Wersja 3.3, 10.01.2018: Uaktualnienie informacji o aktualizacjach dla systemów VMware.
  • Wersja 3.4, 10.01.2018: Uaktualnienie informacji o aktualizacjach dla systemów Debian.
  • Wersja 3.5, 11.01.2018: Uaktualnienie informacji o aktualizacjach dla systemów Xenserver.
  • Wersja 3.6, 11.01.2018: Dodanie informacji o wynikach benchmarków systemów firmy Intel.
  • Wersja 3.7, 11.01.2018: Dodanie informacji o procesorach AMD i aktualizacja informacji o dostępności BIOS-ów (X11DPi-N(T), systemy LES i ASUS).
  • Wersja 3.8, 15.01.2018: Aktualizacja informacji o aktualizacjach dla Ubuntu (łatka dla Spectre dla Ubuntu 17.10 artful-proposed jest dostępna).
  • Wersja 3.9, 15.01.2018: Dodanie informacji o systemach z procesorami AMD.
  • Wersja 3.10, 16.01.2018: Uaktualnienie informacji o aktualizacjach BIOS-ów (aktualizacja dla ASUS P10S-I jest dostępna).
  • Wersja 3.11, 16.01.2018: Dodanie tabeli z płytami głównymi AMD.
  • Wersja 3.12, 16.01.2018: Uaktualnienie informacji o aktualizacjach BIOS-ów (aktualizacja dla ASUS H270M-Plus jest dostępna).
  • Wersja 3.13, 17.01.2018: Uaktualnienie informacji o aktualizacjach BIOS-ów (aktualizacja dla ASUS P10S-M jest dostępna).
  • Wersja 3.14, 18.01.2018: Uaktualnienie informacji o aktualizacjach BIOS-ów (aktualizacje dla Supermicro X11SSH-F, X11SSH-LN4F i X11SSH-TF są dostępne), aktualizacja informacji o aktualizacjach dla systemów operacyjnych.
  • Wersja 3.15, 18.01.2018: Uaktualnienie informacji o procesorach ARM, aktualizacja informacji o aktualizacjach dla Ubuntu, dodanie oświadczenia firmy Open-E, dodanie informacji o aktualizacja BIOS-ów systemów Skylake.
  • Wersja 4.0, 23.01.2018: Zgodnie z aktualną rekomendacją Intela obecnie dostępne aktualizacje BIOS-u nie powinny być instalowane, dodanie uwagi o kontroli wersji mikrokodu.
  • Wersja 4.1, 23.01.2018: Dodanie informacji o zaktualizowanej rekomendacji Intela.
  • Wersja 4.2, 24.01.2018: Uaktualnienie informacji o aktualizacjach dla systemów operacyjnych.
  • Wersja 4.3, 25.01.2018: Dodanie informacji o aktualnym zaleceniu Intela, aktualizacje BIOS-ów zostały usunięte.
  • Wersja 4.4, 29.01.2018: Uaktualnienie informacji o aktualizacjach dla systemów Windows, aktualizacja wyłącza ochronę przed Spectre wariant 2.
  • Wersja 4.5, 09.02.2018: Uaktualnienie informacji o aktualizacjach dla Linuksa z jądrem Vanilla, wprowadzenie / poprawienie ochrony przed Spectre wariant 1 i 2.
  • Wersja 4.6, 21.02.2018: Intel udostępnił producentom OEM mikrokod dla systemów opartych na Skylake / Kaby Lake / Coffee Lake.
  • Wersja 5.0, 28.02.2018: Uaktualnienie informacji o aktualizacjach dla systemów z procesorami AMD EPYC (aktualizacja dla Supermicro H11DSi-NT jest dostępna).
  • Wersja 5.1, 08.03.2018: Uaktualnienie informacji o aktualizacjach dla Supermicro X11SPL-F i H11DSi-NT.
  • Wersja 5.2, 08.03.2018: Uwaga odnośnie Supermicro X11SPL-F już nie obowiązuje.
  • Wersja 5.3, 13.03.2018: Dodanie informacji o aktualizacjach BIOS-ów z zaktualizowanym mikrokodem, testy pierwszych BIOS-ów w Thomas-Krenn.
  • Wersja 5.4, 14.03.2018: Uaktualnienie informacji o aktualizacjach BIOS-ów (aktualizacje dla X11DPi-N i X11DPi-NT są dostępne).
  • Wersja 5.5, 19.03.2018: Uaktualnienie informacji o aktualizacjach BIOS-ów (aktualizacje dla X10SRi-F, X10DRi, X10DRL-i i X11DPL-i są dostępne).
  • Wersja 5.6, 21.03.2018: Uaktualnienie informacji o aktualizacjach BIOS-ów (aktualizacje dla X10DRG-Q i X10DRi-T są dostępne).
  • Wersja 5.7, 10.04.2018: Uaktualnienie informacji o aktualizacjach BIOS-ów (aktualizacja dla P10S-I jest dostępna).
  • Wersja 5.8, 12.04.2018: Uaktualnienie informacji o aktualizacjach BIOS-ów (X11S*).
  • Wersja 5.9, 18.04.2018: Uaktualnienie informacji o aktualizacjach BIOS-ów (aktualizacje dla X11SSH-F, X11SSH-LN4F i X11SSH-TF są dostępne).
  • Wersja 5.10, 20.04.2018: Uaktualnienie informacji o aktualizacjach BIOS-ów (aktualizacja dla X10SLH-F jest dostępna).
  • Wersja 5.11, 16.05.2018: Uaktualnienie informacji o aktualizacjach BIOS-ów (aktualizacja dla X10DRC-LN4+ jest dostępna).
  • Wersja 5.12, 05.06.2018: Uaktualnienie informacji o aktualizacjach BIOS-ów (aktualizacja dla LES v3 jest dostępna).
  • Wersja 5.13, 06.06.2018: Uaktualnienie informacji o aktualizacjach BIOS-ów (aktualizacje dla LES v2, LES LI3Z, LES Network i LES Network+ są dostępne).
  • Wersja 5.14, 10.07.2018: Tabele zostały usunięte i przeniesione do innego artykułu wiki, dodano linki.
  • Wersja 5.15, 16.08.2018: Dodanie informacji o Bounds Check Bypass Store (CVE-2018-3693).

Autorzy: Werner Fischer i Thomas Niedermeier