04.01.2017 TR-18-003 (Meltdown-Spectre: İntel Çekirdek Seviye Erişim Zafiyeti)
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. 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://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://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
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