TR-18-003 (Meltdown-Spectre: İntel Çekirdek Seviye Erişim Zafiyeti)

Özet

Google Project Zero ekibi ve ilgili akademisyenler tarafından rapor edilen  Intel, AMD, ARM, (ARM tabanlı Apple, Samsung, ve Qualcomm) Meltdown ve Spectre zafiyetleri donanım seviyesinde olup, hafıza alanındaki herhangi bir işlemin (process), erişim izni olmayan alanlara ulaşarak veri okumasına yol açmaktadır.

Bu zafiyetler bir işlemciye sahip bütün kişisel bilgisayarlarda, bulut sistemlerinde, mobil cihazlarda ve neredeyse bütün işletim sistemlerinde bulunmaktadır. 3 Ocak 2018 itibariyle keşfedilen Meltdown ve Spectre zafiyetleri, uygulamalar ve işletim sistemleri arasındaki en temel fiziksel izolasyonu etkilemektedir. Bu zafiyetlerin saldırganlar tarafından kötüye kullanımı, kişisel verilerin açığa çıkartılması ile sonuçlanabilir. Daha da önemlisi tek bir fiziksel cihaz üzerinde koşan sanal sistemlerin herhangi bir zafiyetten etkilenmesi ile fiziksel cihaz üzerinde koşan diğer sistemlerin hafıza alanına erişim sağlanabilmektedir. Benzer şekilde bulut üzerinde çalışan sistemlerin de etkilenebileceği bazı raporlar içerisinde belirtilmektedir. Zafiyetlerin tam manada giderilmesi için donanım düzeyinde çözümlere ihtiyaç duyulmaktadır. Konu ile ilgili olarak donanımsal çözümlerin kısa sürede uygulanabilir ve pratik olmayışı sebebiyle işletim sistemi seviyesinde bir takım önlem, yama ve güncellemeler yayınlanmıştır. Bütün kullanıcı ve sistem yöneticilerinin kaynaklarda yer alan güncel bildirileri takip etmesi önemle tavsiye edilmektedir.

Genel Bilgi

Zafiyetlerin anlaşılabilmesi için çoğu işletim sistemlerinde bulunan kullanıcı/çekirdek (kernel) hafıza alanları ve erişim yöntemleri hakkında bilgi sahibi olunmalıdır. İşletim sistemlerinde çalışan her işlemin (processin) kendisine ait sanal bir hafıza alanı bulunmaktadır. Her sanal hafıza alanı hem kullanıcı hem de çekirdek hafıza alanı bölümlerinden oluşabilmektedir. Kullanıcı seviyesinde çalışan her işlem yalnızca kullanıcı hafıza alanına erişebilmekte olup, çekirdek seviyesinde olan hafıza alanları işletim sisteminin kendisi tarafından yönetilmektedir. Hem kullanıcı hem de çekirdek seviyesinde yapılan işlemler işlemci tarafından işlenmektedir. İşlemci seviyesinde çalışan komutlar (işlemci komut kümesinde bulunan komutlar) işletim sistemi tarafından işlemciye iletilmektedir. İşlemcileri daha hızlı hale getirmek için bazı özellikler donanım seviyesinde eklenmiştir. Out-of-order execution işlemcide çalışan komutların belli bir sıranın dışında çalışması anlamını taşımaktadır. Speculative Execution & Branch Prediction ise işlem içerisinde bulunan koşulların henüz gerçekleştirilmeden tahmin ile işleme sokularak hızlandırılması anlamını taşımaktadır.  İşlemcilerin bu özelliklerinde bulunan zafiyetleri kullanarak side-channel, fault attack ve return-oriented programming (ROP) yöntemleri ile herhangi bir işleme ait hafıza alanına erişilerek veri okumak mümkün olmaktadır. Fiziksel hafıza alanına erişim ile tek bir işlemci üzerinde çalışan herhangi bir işleme ait (process) bilgiler elde edilebilmektedir.

Analiz

Bu kısım zafiyetlerin benzer ve farklı yönlerini ele alırken potansiyel risklerle ilgili öngörüleri içerir. Donanım tasarımı hatası sebebiyle 2 farklı saldırı senaryosu vardır;

Meltdown: Bu zafiyet 1995 yılından beri üretilen nerdeyse tüm Intel işlemcilerini etkilemektedir (2013 öncesi üretilen Intel Atom ve Intel Itanium hariç). Fiziksel hafızaya izinsiz olarak erişim sağlar. Saldırganların Meltdown zafiyeti üzerinden etki altındaki sistemlere, bulut sistemlere ve sanal makinalara erişimi ihtimal dahilindedir. Kullanıcı alanında iken çekirdek alanındaki veriler bu zafiyet ile okunabilmektedir.

Spectre: İşlemcilerin speculative execution and branch prediction  özelliğini sömürüp kullanarak hafıza alanına erişim sağlamaktadır. Bu zafiyet ile işleme özel kritik veriler okunabilmektedir.

ZAFİYET

MELTDOWN

SPECTRE

Etkilenen İşlemci

Intel

Intel, AMD, ARM, (ARM tabanlı Apple, Samsung, ve Qualcomm)

Metot

Out-of-order execution

Speculative Execution & Branch Prediction

Saldırı Türü

Saldırganların hedef sistemde kod çalıştırması ihtimal dahilindedir.

JavaScript kodları ile sömürülebildiğinden dolayı web uygulamaları içerisinden tetiklenebilmektedir.

Etki

 

Kullanıcı alanında iken çekirdek alanındaki veriler bu zafiyet ile okunabilmektedir.

Bu zafiyet ile işleme özel kritik veriler okunabilmektedir.

Çözüm

Meltdown’a özel işletim sistemi yamaları.

Gelecek ürünlerde donanımsal çözümler.

Zafiyete uğramış süreçler için yazılım yamaları, örnek: browserlar.
Bios/firmware güncellemeleri.

Gelecek ürünlerde donanımsal çözümler.

Her iki zafiyetin tetiklenmesi için hedef sistemde komut çalıştırma yetkisine sahip olunmalıdır.  Spectre zafiyeti, JavaScript kodları ile sömürülebildiğinden dolayı web uygulamaları içerisinden tetiklenebilmektedir.  Meltdown zafiyeti için işletim sistemi seviyesinde güncelleme gerekmektedir. Spectre zafiyeti içinse yazılımların güncellenmesi önem arz etmektedir.

Her iki zafiyetin kapanması için donanım seviyesinde çözümlere ihtiyaç bulunmaktadır.

Zafiyetler ile alakalı olarak üç adet CVE kodu bulunmaktadır. Bunlar aşağıda verilmiştir:

  • CVE-2017-5753 (Spectre)
  • CVE-2017-5715 (Spectre)
  • CVE-2017-5754 (Meltdown)

Öneriler

Ulusal Siber Olaylara Müdahale Merkezi (USOM), ilgili zafiyetlerin risk seviyelerini en aza indirmek için tarayıcılar başta olmak üzere, gerekli yazılımların ve işletim sistemi güncellemelerinin yapılmasını önemle tavsiye etmektedir.

Kaynaklar

 

https://downloadcenter.intel.com/download/27150

https://meltdownattack.com/meltdown.pdf

https://spectreattack.com/spectre.pdf

https://googleprojectzero.blogspot.be/2018/01/reading-privileged-memory-with-side.html

https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00088&languageid=en-fr

https://developer.arm.com/support/security-update

https://arstechnica.com/gadgets/2018/01/meltdown-and-spectre-heres-what-intel-applemicrosoft-others-are-doing-about-it/

http://www.amd.com/en/corporate/speculative-execution

https://access.redhat.com/security/vulnerabilities/speculativeexecution

https://www.suse.com/c/suse-addresses-meltdown-spectre-vulnerabilities/

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180002

https://support.google.com/faqs/answer/7622138

https://blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/

https://aws.amazon.com/de/security/security-bulletins/AWS-2018-013/

https://support.microsoft.com/en-us/help/4072698/windows-server-guidance-to-protectagainst-the-speculative-execution

https://docs.google.com/spreadsheets/u/1/d/184wcDt9I9TUNFFbsAVLpzAtckQxYiuirADzf3cL42FQ/htmlview?sle=true#gid=0

https://www.pcworld.com/article/3245790/mobile/spectre-cpu-faq-phones-tablets-iosandroid.html

https://googleprojectzero.blogspot.co.at/2018/01/reading-privileged-memory-with-side.html

https://downloadcenter.intel.com/download/27150

https://support.apple.com/en-us/HT208394

https://www.us-cert.gov/ncas/current-activity/2018/01/03/Meltdown-and-Spectre-Side-Channel-Vulnerabilities

 

cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5753

cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5715

cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5754

2018-01-04