Kritik Zafiyet Uyarısı – Speculative Execution Side-Channel Vulnerabilities L1TF – L1 Terminal Fault

Hikâye nasıl başladı?

Intel iki hafta önce Spectre/Meltdown benzeri bir zafiyet olan “speculative execution side channel” ile ilgili aşağıdaki gibi duyuru yaptı;

https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00161.html

Hatta 23 Ağustos itibari ile bir güncelleme de yapıldı.

Microsoft’ da hızlı bir şekilde bu konuda yama ve bilgilendirme geçti;

https://blogs.technet.microsoft.com/srd/2018/08/14/analysis-and-mitigation-of-l1-terminal-fault-l1tf/

Özellikle zafiyet için bu bölümde çok detaylı bir analiz yapılmış durumda;

L1TF arises due to a CPU optimization related to the handling of address translations when performing a page table walk. When translating a linear address, the CPU may encounter a terminal page fault which occurs when the paging structure entry for a virtual address is not present (Present bit is 0) or otherwise invalid. This will result in an exception, such as a page fault, or TSX transaction abort along the architectural path. However, before either of these occur, a CPU that is vulnerable to L1TF may initiate a read from the L1 data cache for the linear address being translated. For this speculative-only read, the page frame bits of the terminal (not present) page table entry are treated as a system physical address, even for guest page table entries. If the cache line for the physical address is present in the L1 data cache, then the data for that line may be forwarded on to dependent operations that may execute speculatively before retirement of the instruction that led to the terminal page fault. The behavior related to L1TF can occur for page table walks involving both conventional and extended page tables (the latter of which is used for virtualization).

Peki nedir özeti derseniz aslında bir sanal makine içerisinden diğer tüm sanal makinelere erişim yapılabilir, bu da özellikle veri merkezleri için veya ortak platformdan hizmet veren sağlayıcılar için çok büyük bir risk. Tabiki risk sadece bunlar ile sınırlı değil, örneğin 30 tane sanal makineniz var ve bir danışman sadece kendi yetkisi olan bir makineden işlem yapıyor ama bu açık sayesinden aslında yetkisi olmayan makinelere de erişebilir demektir. Özetle öncelik evet büyük ve çok fazla müşteri, kişi bağlanan ortamlar olsa bile her platform için ciddi bir risk söz konusu.

Bu zafiyet işlemci temelli olduğu için bundan önce olduğu gibi Microsoft başta aslında tüm sanallaştırma platformlarını etkilemiş durumda. Her üretici Microsoft gibi hızlı bir şekilde yama + config önerilerinde bulundu.

Hyper-V ortamları için çözüm aşağıdaki gibidir;

https://support.microsoft.com/en-us/help/4457951/windows-server-guidance-to-protect-against-l1-terminal-fault

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

Peki ne yapmamız gerekiyor?

En güncel yamaların yüklenmesi şart.

En güncel donanım firmwarelerin yüklenmesi tavsiye ediliyor (ama bu Microsoft veya Vmware ya da diğer sanallaştırma üreticilerinden bağımsız olarak yapıldığı için onu ayrıca donanım üreticilerinizin web sayfalarından takip etmeniz gereklidir.)

Hyper-threading (HT) Özelliğinin kapatılması. Tabiki bu madde performans kayıplarına yol açacağı için detayı işletim sisteminize göre değişkenlik gösteriyor. Eğer Windows Server 2016’ dan daha eski sürüm bir hyper-v kullanıyorsanız yani 2012 ve 2008 gibi ne yazık ki şu anda tek çözüm HT özelliğini kapatmanız. 2016 kullanıyorsanız ise devamında çözüm önerisini paylaşıyor olacağım.

Eğer Server 2016 işletim sistemi kullanıyorsanız Hypervisor scheduler tipinin “core scheduler” olarak güncellenmesi ve çekirdek başına VM donanım iş parçacığı sayısının 2 olarak ayarlanması gereklidir.

Kullandığınız işletim sistemi sürümüne göre iki farklı çözüm söz konusu

İlk olarak Hypervisor scheduler tipinin “core scheduler” olarak güncelleyelim

bcdedit /set HypervisorSchedulerType core

Daha sonra Hyper-V üzerinde çalışan sanal makineler için “hardware thread count” değerini core başına iki yapalım

Set-VMProcessor -VMName <VMName> -HwThreadCountPerCore 2

CVE-2017-5715 ve CVE-2017-5754 güvenlik zafiyet tavsiyelerini mevcut zafiyetin etkisini azalmak için etkinleştirin

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

Vmware için gerekli bilgilere aşağıdaki linklerden ulaşabilirsiniz

https://kb.vmware.com/s/article/55806

https://kb.vmware.com/s/article/55807

Kaynak

https://support.microsoft.com/af-za/help/4457951/windows-server-guidance-to-protect-against-l1-terminal-fault