^
Błąd w procesorach, znamy stanowisko Apple

Błąd w procesorach, znamy stanowisko Apple

Jaromir Kopp

5 stycznia 2018

Apple potwierdza, że podatnością Meltdown i Spectre zagrożone są wszystkie współczesne komputery i urządzenia z iOS. Jednocześnie wyjaśnia stopień zagrożenia, tymczasowe sposoby ochrony i opisuje podjęte oraz już wykonane działania. Widać, że obowiązek informowania klientów potraktowali z należytą atencją.

Jak unikać zagrożenia

Apple informuje:

Ponieważ wykorzystywanie wielu z tych problemów wymaga zainstalowania złośliwej aplikacji na Macu lub urządzeniu z systemem iOS, zalecamy pobieranie oprogramowania tylko z zaufanych źródeł, takich jak App Store. Apple już wydało poprawki zmniejszające zagrożenia atakiem Meltdown w iOS 11.2, macOS 10.13.2 i tvOS 11.2. Apple Watch nie jest zagrożony przez Meltdown.
W najbliższych dniach zamierzamy wydać poprawki dla Safari, aby pomóc w obronie przed Spectre. W dalszym ciągu rozwijamy i testujemy dalsze sposoby złagodzenia tych problemów i udostępnimy je w nadchodzących aktualizacjach systemów iOS, macOS, tvOS i watchOS.

Proszę zwrócić uwagę na ostrożny język. Apple używa słowa „mitigation”, czyli „łagodzenie”, „uśmierzenie” (ataku) do określenia poprawek i kroków, jakie firma już wykonała i planuje. Niestety problem jest tak złożony, że tylko Intel pozwolił sobie na używanie zdecydowanego języka, za co został powszechnie zganiony przez ekspertów od bezpieczeństwa.

Wszystko przez te spekulacje

Apple bardzo przystępnie wyjaśnił genezę problemu, który dotknął praktycznie wszystkie współczesne procesory. Jednak dodam coś od siebie. Od wielu lat, aby zwiększyć wydajność, procesory wykonują wiele instrukcji jednocześnie. Wykonanie instrukcji jest podzielona na kilka etapów, dlatego, zanim jedna skończy się wykonywać, procesor bierze się za kolejną. Na to wszystko nakładają się instrukcje skoków warunkowych, czyli sprawdzających jakiś warunek (np. A > B) i zależnie od jego prawdziwości, kierujące wykonanie programu na inną ścieżkę. Jednak z powodu wykonywania kilku instrukcji naraz, procesor często musi wybrać, która ze ścieżek będzie prawidłowa, zanim pozna wynik warunku. Czyli spekuluje np. czy wspomniane A będzie większe od B, choć jeszcze może nie znać wartości tych zmiennych. Jeżeli przewidywania się potwierdzą, to program będzie o kilka kroków „do przodu”, jeżeli nie, to część pracy zostaje porzucona i proces zaczyna wykonywać prawidłową wynikającą z warunku ścieżkę. Przewidywania są czasem trafne, czasem nie, jednak bez tych spekulacji procesor zawsze musiałby czekać na potwierdzenie warunku, a tak często jest „do przodu” kilka kolejek. Takie działania powoduję jednak, że instrukcje programu „wchodzące” do procesora, mogą go opuścić w innej kolejności.
Właśnie tę cechę współczesnych procesorów, w bardzo skomplikowany sposób wykorzystują ataki Meltdown i groźniejszy Spectre.

Co Apple zrobiło, aby nas chronić?

Meltdown
Jak już pisałem, jest to atak pozwalający na odczytanie chronionej pamięci, czyli nieautoryzowany program może wykradać dane z pamięci jądra systemu. Jak podaje Apple, jest to luka stosunkowo łatwa do wykorzystania, ale i łatwiejsza do załatania. Apple „złagodził” problem Meltdown w już wydanych aktualizacjach iOS 11.2, macOS 10.13.2, and tvOS 11.2 (w zegarku nie musiał).
Większość świadomych użytkowników śledzących problem obawia się spowolnienia pracy swoich sprzętów. Tu Apple uspokaja:

Nasze testy z publicznymi testami porównawczymi pokazały, że zmiany wprowadzone w grudniu 2017 r. nie spowodowały mierzalnego spadku wydajności systemów MacOS i iOS badanego za pomocą testu GeekBench 4 lub w popularnych testach Web Search, czy JetStream i ARES- 6.

Spectre
Apple tak opisuje problem:

Są to znacznie bardziej skomplikowanie i trudne w użyciu, ale groźniejsze techniki. Potencjalnie mogą udostępnić elementy pamięci jądra procesom użytkownika, wykorzystując opóźnienie w czasie, po którym procesor może sprawdzić poprawność wywołania dostępu do pamięci.
Analiza tych technik wykazała, że chociaż są one niezwykle trudne do wykorzystania, nawet przez aplikację działającą lokalnie na Macu lub urządzeniu z systemem iOS, mogą być potencjalnie wykorzystane w JavaScript działającym w przeglądarce internetowej. Apple wyda aktualizację dla Safari na macOS i iOS w najbliższych dniach, aby złagodzić te metody exploitów. Nasze obecne testy wskazują, że przyszłe poprawki w Safari nie będą miały mierzalnego wpływu na wyniki testu Speedometer oraz ARES-6. Benchmark JetStream wykazał mniejsze niż 2,5-procentowe spowolnienie. W dalszym ciągu rozwijamy i testujemy metody działania w ramach systemu operacyjnego pod kątem łagodzenia skutków technik Spectre i udostępniamy je w nadchodzących aktualizacjach systemów iOS, macOS, tvOS i watchOS.

Link do pełnego komunikatu Apple znajdziecie tu: About speculative execution vulnerabilities in ARM-based and Intel CPUs
Stanowisko Apple jest interesujące również z innego względu. PC World informuje, że problem Spectre dotyczy głównie urządzeń z rdzeniami ARM: Cortex-A8, Cortex-A9, Cortex-A15. Występują one tylko w 32-bitowych urządzeniach Apple, czyli do iPhone 5c. Potem Apple zaczął projektować własne rdzenie. Jednak one również stosują techniki przewidywania i kolejkowania, które odpowiadają za podatność. Niestety jak informuje Apple również 64-bitowe urządzenia z iOS, pominięte przez PC World, nie są bezpieczne.
No to czekamy na dalszy rozwój wypadków… macie stosowny zapas popcornu?

Jaromir Kopp

Użytkownik komputerów Apple od 1991 roku. Dziennikarz technologiczny, programista i deweloper HomeKit. Propagator przyjaznej i dostępnej technologii. Lubi programować w Swift i czystym C. Tworzy rozwiązania FileMaker. Prowadzi zajęcia z IT i programowania dla dzieci oraz młodzieży, szkoli też seniorów. Współautor serii książek o macOS wydanych przez ProstePoradniki.pl. Projektuje, programuje oraz samodzielnie wykonuje prototypy urządzeń Smart Home. Jeździ rowerem.
Komentarze (2)
L

2 komentarze

  1. mrglub

    Wracajmy do PPC

    • Jaromir Kopp „MacWyznawca”

      Ja chętnie, ale to trzeba by sprawdzić. Co prawda są znacznie bardziej eleganckie, ale też mają przetwarzanie rownolegle, przewidywanie skoków i zmienne kolejkowanie