Linux sistemlerindeki Spectre ve Meltdown açıkları nasıl azaltılır?


34

Güvenlik araştırmacıları, Zero Projesi'nde Spectre ve Meltdown adında bir programın başka programların hafızasından bilgi çalmasına izin veren yeni bir güvenlik açığı yayınladılar. Intel, AMD ve ARM mimarilerini etkiler.

Bu kusur bir JavaScript web sitesini ziyaret ederek uzaktan kullanılabilir. Teknik detaylar bulunabilir redhat web , Ubuntu güvenlik ekibi .

Spekülatif yürütme tarafı kanalı saldırıları nedeniyle bilgi sızıntısı (CVE-2017-5715, CVE-2017-5753, CVE-2017-5754 aka Spectre ve Erime)

Yeni bir yan kanal saldırısı sınıfının Intel, AMD ve ARM işlemcileri de dahil olmak üzere çoğu işlemciyi etkilediği keşfedildi. Saldırı, kötü amaçlı kullanıcı alanı işlemlerinin, konuklara hipervizör hafızası okuması için çekirdek hafızasını ve kötü niyetli kodu okumasını sağlar. Bu sorunu çözmek için, Ubuntu çekirdeği ve işlemci mikro kodunda güncellemeler yapılması gerekecektir. Bu güncellemeler gelecekteki Ubuntu Güvenlik Bildirimlerinde kullanıma sunulduklarında duyurulacaktır.

JavaScript'te Örnek Uygulama

Kavramsal bir kanıt olarak, Google Chrome tarayıcısında çalıştırıldığında, JavaScript’in çalıştığı işlemden özel bellek okumasını sağlayan JavaScript kodu yazılmıştır.

Sistemim hayalet güvenlik açığından etkilenmiş görünüyor. Bu kavram kanıtını ( spectre.c) derledim ve yürüttüm .

Sistem bilgisi:

$ uname -a
4.13.0-0.bpo.1-amd64 #1 SMP Debian 4.13.13-1~bpo9+1 (2017-11-22) x86_64 GNU/Linux

$ cat /proc/cpuinfo
model name  : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz

$gcc --version
gcc (Debian 6.3.0-18) 6.3.0 20170516

Linux sistemlerindeki Spectre ve Meldown açıkları nasıl azaltılabilir?

Daha fazla okuma: Gerçek zamanlı olarak şifreleri çalmak için Meltdown'u kullanma .

Güncelleştirme

Kullanılması Spectre & Meltdown Checkergeçtikten sonra 4.9.0-5bir güvenlik güncelleştirmesi debian Stretch CVE-2017-5754 hafifletmek için kullanılabilir çünkü @Carlos Pasqualini cevabı şu çekirdek sürümü:

CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
* Checking count of LFENCE opcodes in kernel:  NO  (only 31 opcodes found, should be >= 70)
> STATUS:  VULNERABLE  (heuristic to be improved when official patches become available)

CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
*   Hardware (CPU microcode) support for mitigation:  NO 
*   Kernel support for IBRS:  NO 
*   IBRS enabled for Kernel space:  NO 
*   IBRS enabled for User space:  NO 
* Mitigation 2
*   Kernel compiled with retpoline option:  NO 
*   Kernel compiled with a retpoline-aware compiler:  NO 
> STATUS:  VULNERABLE  (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)

CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI):  YES 
* PTI enabled and active:  YES 
> STATUS:  NOT VULNERABLE  (PTI mitigates the vulnerability)

Güncelleme 25 Ocak 2018

spectre-meltdown-checkerSenaryo resmen debian tarafından paketlenir, bu Debian aracılığıyla Stretch kullanılabilir uyum deposunda, Buster ve Sid.

Güncelleme 05.08.2018

Spekülatif Mağaza Baypas (SSB) - Ayrıca Varyant 4 olarak da bilinir

Spekülatif uygulama ve spekülatif hafıza uygulamalarından faydalanan mikroişlemcili sistemler önceki tüm hafıza yazmalarının adresleri bilinmeden önce okunan bilgilerin yan kanal analiziyle yerel kullanıcı erişimine sahip bir saldırgana yetkisiz şekilde ifşa edilmesine izin verebilir.

Rogue System Register Read (RSRE) - Varyant 3a olarak da bilinir

Spekülatif uygulama kullanan ve sistem kayıtlarının spekülatif okumalarını yapan mikroişlemcili sistemler, sistem parametrelerinin bir yan kanal analiziyle yerel kullanıcı erişimine sahip bir saldırgana yetkisiz şekilde ifşa edilmesine izin verebilir.

Düzenle 27 Temmuz 2018

NetSpectre: Ağ Üzerinden Keyfi Belleği Oku

Bu yazıda, Spectre varyantı 1'e dayalı, hedef cihazda saldırgan tarafından kontrol edilen bir kod gerektirmeyen ve böylece milyarlarca cihazı etkileyen yeni bir saldırı olan NetSpectre'yi sunuyoruz. Yerel bir Spectre saldırısına benzer şekilde, uzaktaki saldırımız, hedef kodunda bir Spectre gadget'ı bulunmasını gerektirir. Maruz kalan bir ağ arayüzünde veya API'de gerekli Spectre gadget'larını içeren sistemlerin, jenerik uzaktan Spectre saldırımızla saldırıya uğradığını ve ağ üzerinden rasgele bellek okumaya olanak sağladığını gösterdik. Saldırgan, yalnızca kurbana bir dizi hazırlanmış istek gönderir ve kurbanın hafızasından gizli bir değer sızdırmak için müdahale süresini ölçer.



1
Bu Q'nun tüm Linux'a uygulanmasına izin vermek için Debian etiketini kaldırdım (başlığa göre); Bunu yalnızca Debian'a odaklama niyetiniz varsa geri dönün.
Jeff Schaller

Yanıtlar:


12

Alan Cox, AMD'nin blogundan bir bağlantı paylaştı: https://www.amd.com/tr/corporate/speculative-execution

Bir Varyant: Sınırları Kontrol Baypas Et

Sistem satıcıları ve üreticileri tarafından sağlanacak olan yazılım / işletim sistemi güncellemeleri ile çözülmüştür. İhmal edilebilir performans etkisi bekleniyor.

Varyant İki: Şube Hedef Enjeksiyonu

AMD mimarisindeki farklılıklar, bu varyantın kullanım sıfıra yakın bir riski olduğu anlamına gelir. Varyant 2'deki güvenlik açığı, bugüne kadar AMD işlemcilerinde gösterilmemiştir.

Varyant Üç: Rogue Data Cache Yükü

AMD mimarisi farklılıkları nedeniyle sıfır AMD güvenlik açığı.

Bu AMD'nin açıklamalarını üçüncü bir tarafça onaylamanız iyi olur.

Etkilenen sistemlerdeki “azaltma”, yeni bir çekirdek ve yeniden başlatma gerektirecektir, ancak birçok dağıtımda düzeltmeleri olan henüz piyasaya sürülen paketler yoktur:

Debian:

Bulduğum diğer bilgi kaynakları:


12
Bir sürü AMD bilgisi CPU'su Intel Core olan bir ankete yardımcı olmayacak.
JdeBP

4
Linux çekirdeği için Greg Kroah-Hartman'ın gönderisine bakın: kroah.com/log/blog/2018/01/06/meltdown-status
alanc

Yukarıda bağlanan debian sayfalarına göre (ve oraya bağlanan sayfalar), sorumlu satıcılar mikro kodlarını yayınladıkça çekirdek yamalarının dağıtılacağı görülmektedir. Bununla birlikte, security-tracker.debian.org/tracker/CVE-2017-5754'ten (şu ana kadar sabit olan tek), düzeltmelerin yalnızca kararlı ve dengesiz sürümler için sağlandığı anlaşılıyor. Oldstable ("jessie") için düzeltmeler bekleyip bekleyemeyeceğimizi bilen var mı? Bu konuda Debian veya Debian Security ekibi tarafından herhangi bir açıklama bulamadım ...
Shevek

11

27 Ocak 2018 Intel Microcode bazı sistemleri bozdu

Intel Mikrokod Güncelleme 2018/01/08 güvenlik delikleri bazı sistemleri kırdı dallanma spekülatif yürütülmesine yönelik. Bu, 8 - 21 Ocak tarihleri ​​arasında birçok Ubuntu sistemini etkiledi. 22 Ocak 2018’de Ubuntu, eski Microcode’u 2017-07-07’den geri alan bir güncelleme yayınladı.

Güncellemelerle ilgili sorunlar yaşıyorsanız, Ubuntu’yu yeniden yükleyip 2018-01-08 ve 2018-01-22 arasındaki güncellemeleri kapattıysanız, Ubuntu otomatik güncellemelerini tekrar denemek isteyebilirsiniz.

16 Ocak 2018 4.14.14 ve 4.9.77’deki Spectre güncellemesi

Eğer zaten Çekirdek 4.14.13 veya 4.9.76 sürümlerini kullanıyorsanız, yüklemek için bir sorun değil 4.14.14ve 4.9.77birkaç gün içinde Spectre güvenlik açıklığını azaltmak için geldiklerinde daha akıllıca değilim . Bu düzeltmenin adı Retpoline ve daha önce iddia edilmeyen şiddetli bir performans sergilemiyor:

Greg Kroah-Hartman, şimdi Retpoline desteğini içeren Linux 4.9 ve 4.14 puan sürümleri için en son yamaları gönderdi.

Bu X86_FEATURE_RETPOLINE, tüm AMD / Intel işlemciler için etkindir. Tam destek için, çekirdeği -mindirect-branch = thunk-extern desteği içeren daha yeni bir GCC derleyicisi ile oluşturmalısınız. GCC değişiklikleri dün GCC 8.0'a indi ve potansiyel olarak GCC 7.3'e geri taşınması sürecinde.

Retpoline desteğini devre dışı bırakmak isteyenler yamalı çekirdeği noretpoline ile başlatabilirler .

Buradaki JavaScript ayrıntılarına girmeden Erime deliğinden hemen nasıl kaçınılacağı (ve 10 Ocak 2018, Spectre koruması)

12 Ocak 2018 güncelleme

Spectre'den ilk koruma burada ve önümüzdeki haftalarda ve aylarda geliştirilecektir.

Linux Çekirdekleri 4.14.13, 4.9.76 LTS ve 4.4.111 LTS

Bu Softpedia makalesinden :

Linux çekirdeği 4.14.13, 4.9.76 LTS ve 4.4.111 LTS artık kernel.org adresinden indirilebiliyor ve Spectre güvenlik açığı ile Linux 4.14.12, 4.9'daki bazı gerilemelere karşı daha fazla düzeltme içeriyor .75 LTS ve 4.4.110 LTS çekirdekleri, bazı küçük sorunların bildirildiği üzere, geçen hafta piyasaya sürüldü.

Bu sorunların şu anda çözüldüğü görülüyor, bu nedenle Linux tabanlı işletim sistemlerinizi bugün yayımlanan yeni çekirdek sürümlerine güncellemek güvenlidir; bu, daha fazla x86 güncellemesi, bazı PA-RISC, s390 ve PowerPC (PPC) düzeltmeleri, çeşitli iyileştirmeler içerir. sürücüler (Intel i915, kripto, IOMMU, MTD) ve normal mm ve çekirdek çekirdek değişiyor.

Birçok kullanıcı Ben kullanıyorum 2018, 4 Ocak 2018 ve 10 Ocak Ubuntu LTS güncellemeleri ile ilgili sorunlar vardı 4.14.13herhangi bir sorun ancak olmadan birkaç gün için YMMV .


7 Ocak 2018 güncelleme

Greg Kroah-Hartman dün Meltdown ve Spectre Linux Çekirdek güvenlik delikleri hakkında bir durum güncellemesi yazdı . Bazıları onu Linus'un hemen yanındaki Linux dünyasında en güçlü ikinci adam olarak adlandırabilir. Makale, kararlı çekirdeklere (aşağıda tartışılmıştır) ve Ubuntu kullanıcılarının çoğunun sahip olduğu LTS çekirdeklerine yöneliktir.


Linux Çekirdekleri 4.14.11, 4.9.74, 4.4.109, 3.16.52 ve 3.2.97 Yama Erime Kusuru Kusuru

Gönderen bu makalede :

Kullanıcılardan sistemlerini hemen güncellemeleri isteniyor

4 Oca 2018 01:42 GMT · Marius Nestor tarafından

Linux çekirdeği sağlayıcıları Greg Kroah-Hartman ve Ben Hutchings, en moderni etkileyen iki kritik güvenlik hatasından birini yayan Linux 4.14, 4.9, 4.4, 3.16, 3.18 ve 3.12 LTS (Uzun Süreli Destek) çekirdek serisinin yeni sürümlerini yayınladı. işlemciler.

Linux 4.14.11, 4.9.74, 4.4.109, 3.16.52, 3.18.91 ve 3.2.97 çekirdekleri artık kernel.org web sitesinden indirilebiliyor ve kullanıcıların GNU / Linux dağıtımlarını güncellemeleri isteniyor hemen bu çekirdek sürümlerinden herhangi birini çalıştırırlarsa, bu yeni sürümlere. Neden güncelle? Çünkü görünüşe göre Meltdown adında kritik bir güvenlik açığı oluşturuyorlar.

Daha önce de belirtildiği gibi Meltdown ve Spectre, son 25 yılda piyasaya sürülen modern işlemcilerden (CPU) çalışan neredeyse tüm cihazları etkileyen iki istismar. Evet, bu hemen hemen tüm cep telefonları ve kişisel bilgisayarlar anlamına gelir. Erime, çekirdek bellekte depolanan hassas bilgileri kötüye kullanmak için ayrıcalıklı olmayan bir saldırgan tarafından kullanılabilir.

Hala eserlerinde Spectre güvenlik açığı yaması

Meltdown, şifreler ve şifreleme anahtarları dahil olmak üzere gizli verilerinizi açığa çıkarabilecek ciddi bir güvenlik açığı olsa da, Spectre daha da kötüdür ve düzeltmesi kolay değildir. Güvenlik araştırmacıları bunun bir süre bizi etkileyeceğini söylüyor. Spectre, performansı arttırmak için modern CPU'ların kullandığı spekülatif uygulama tekniğinden faydalandığı bilinmektedir.

Spectre hatası da düzeltilinceye kadar, en azından GNU / Linux dağıtımlarınızı yeni çıkan Linux çekirdek sürümlerinden herhangi birine güncellemeniz şiddetle tavsiye edilir. Bu yüzden, yeni çekirdek güncellemesi için favori dağıtımınızın yazılım havuzlarını arayın ve mümkün olan en kısa sürede kurun. Çok geç olana kadar beklemeyin, şimdi yapın!


Bir hafta boyunca Kernel 4.14.10 kullanıyordum, bu yüzden Ubuntu Mainline Kernel sürüm 4.14.11'i indirmek ve önyüklemek benim için çok fazla endişe verici değildi.

Ubuntu 16.04 kullanıcıları, 4.14.11 ile aynı anda yayımlanan 4.4.109 veya 4.9.74 çekirdek sürümleriyle daha rahat olabilir.

Düzenli güncellemeleriniz istediğiniz Çekirdek sürümünü yüklemiyorsa, Ubuntu'yu Sor yanıtını izleyerek manuel olarak yapabilirsiniz: https://askubuntu.com/questions/879888/how-do-i-update-kernel-to-the-latest -mainline sürümü / 879920 # 879920


4.14.12 - Günün ne fark yarattığı

İlk cevabımdan 24 saat sonra, 4.14.11 çekirdek sürümünü düzeltmek için koşturabilecekleri bir yama yayınlandı. 4.14.11 kullanıcılarının tümü için 4.14.12'ye yükseltilmesi önerilir. Greg-KH diyor ki :

4.14.12 çekirdeğinin serbest bırakıldığını duyuruyorum.

4.14 çekirdek serisinin tüm kullanıcılarının yükseltmesi gerekir.

Bu yayında hala insanların karşılaştığı birkaç küçük sorun var. Umarız bu hafta sonu çözülecek, çünkü yamalar Linus'un ağacına inmedi.

Şimdilik, her zaman olduğu gibi, lütfen ortamınızı test edin.

Bu güncellemeye bakıldığında çok fazla kaynak kodu satırı değiştirilmedi.


1
Çözüm şu anda Meltdown için var apt-get dist-upgrade.
luchonacho

1
Telefonumda şimdi ama LTS güncellemesi 1/10/2018 tarihinde çekirdek panikine neden oluyor. Bkz. Ubuntu'ya sor.
WinEunuuchs2Unix

1
Neyse ki 109 ile güncellendi (108 çekirdek panik verir). Öyleyse bu problem yoktu. İyi çalışıyor.
luchonacho

1
@ WinEunuuchs2Unix burada bir güncelleme var USN-3531-2: Intel Microcode regresyon
GAD3R

1
@ GAD3R Bağlantı için çok teşekkür ederiz. Ask Ubuntu'da birçok kişiye yardım edebilecek bir cevap göndermeme yardımcı oldu: askubuntu.com/questions/998471/…
WinEunuuchs2Unix

6

Bu kusur bir JavaScript web sitesini ziyaret ederek uzaktan kullanılabilir.

Aslında. Bu nedenle, makul bir azaltma, web tarayıcılarınızdaki JavaScript’leri devre dışı bırakmak veya JavaScript’i desteklemeyen web tarayıcılarını kullanmaktır.

JavaScript'i destekleyen çoğu tarayıcı, devre dışı bırakmak için bir ayara sahiptir. Alternatif olarak, JavaScript’e izin verilecek sitelerin veya alan adlarının bir beyaz listesini tutmak istiyorsanız, uBlock Origin ve NoScript gibi yardımcı olabilecek çeşitli eklentiler vardır .

Not: JavaScript'i devre dışı bırakma / kısıtlamanın tek azaltma işleminiz olması gerektiğini söylemeden geçmesi gerekir . İlgili çekirdek düzeltmelerini ve diğer güvenlik güncelleştirmelerini yazıldıktan, test edildikten ve yayınlandıktan sonra ayrıca incelemelisiniz (ve muhtemelen de geçerli). Debian türevi dağıtımlarında, kullanım komutları gibi sudo apt update , sudo apt list-upgradableve sudo apt upgrade.

Güncelleme: bunun için benim sözümü alma. Alan Cox da aynı diyor:

Büyük zamanları umursamanız gerekenler javascripttir çünkü istismar, javascript tarafından web sayfalarındaki javascript tarafından sistem belleğinizden bir şey çalmak için uzaktan kullanılabilir. ... Adblocker ve noscript gibi uzantıları ilk etapta çalışan birçok önemsiz durdurabilir gibi düşünün. Bunu en kısa sürede yapın. İşletim sistemi güncellemeleri göründüğünde bunları uygulayın. ( Kaynak )


5
Affedersiniz, bu attac aleyhine yardım etse de, JS olmadan, cevabı burada bırakamazsınız. Bu tavsiye “İnterneti kullanmayı bırak” a benzer (2018’de).
Moritz Her ikisi de

4
@MoritzBoth, neyse ki, birçok site JS'siz gayet iyi çalışıyor. Ne yazık ki, StackExchange belirtildiği gibi, gönderme için JS gerektirir. SE :(
sampablokuper

3
FireFox için addon benzeri bir noScript , şüpheli sitelerdeki JavaScript kullanımını azaltmaya yardımcı olabilir - FF Quantum (V57) tarafından yapılan son değişiklikler FF addon havuzunun içine çok büyük bir taş
attı

2
Kuantum'un piyasaya sürülmesinden bu yana, tam olarak bu sebepten dolayı Soluk Ay'a geçtim. NoScript ve Cookie Masters (bir kez Cookie Monster) dahil, benim için gerçekten iyi çalışıyor.
Murphy

2
@MoritzBoth Gerçekten JS’yi devre dışı bırakmanın “web’i kullanmayı bırakmayı”, çok daha az “interneti kullanmayı bırakmayı” gerektirdiğini sanmıyorum . Bununla birlikte, bu, bazı web içerik sağlayıcılarından JS'ye evrensel güven ile gelen konular hakkında farkındalık yaratmak için iyi bir zamandır .
Tobia Tesan

5

Bunun JavaScript kullanılarak sömürülebiliyor olması asıl nokta değildir ve asıl mesele olmamalıdır (her ne kadar önemli olsa da, bu şekilde uzaktan kod sisteminizde kolayca çalıştırılabilir, ancak bu tek değil. bu şekilde olabilir).

Odak noktalarınız Javascript ve / veya tarayıcınıza dayanmamalıdır. İdeal olarak, CPU'nuz yamalı olmalıdır. Ne yazık ki, mevcut hata dalgasının çoğu için bu mümkün görünmüyor. Debian, birlikte diğer bütün işletim sistemi sağlayan taraflar, kusurlu olmayan bir CPU önermek için tek olası yoldan gidecektir: sistemi CPU'daki hatayı gidermek için zorlarlar. Bu yamalar sorunları çözmez. Bunun yerine işletim sistemi, kullanıcının makinede çalıştırdığı herhangi bir programdan (ve dolayısıyla tarayıcınızdan) mümkün olan en iyisini gizler.

Bu gizleme fazladan bir hesaplama işidir ve bu nedenle genel sistem performansınız hiç olmadığı kadar düşük olacaktır. Ne kadar düşük büyük olasılıkla bu programların tam olarak ne yaptığına bağlıdır.

Bunu aklınızda bulundurduğunuzda sorunuza geri dönün: Debian sisteminizi korumak için yapabileceğiniz şey güvenlik güncellemelerini yüklemek. Debian'ın, bu hataların ışığında, Debian'ın işlemsel hatalarına rağmen olabildiğince güvenli bir şekilde çalışması için mümkün olan her şeyi yapacağına inanıyorum.

Her türlü büyük şirket zaten bu konuda çalışıyor ve bu nedenle çok sayıda donanım ve Linux guruları var. Sizi kesinlikle bir şeyi denemekten veya genel çabaya yardımcı olmaya çalışmaktan geri alıkoymak istemiyorum. Bununla birlikte, kendi güvenliğiniz ve zamanında bir düzeltme yapmakla ilgileniyorsanız, ilgilendiğiniz her şey varsa, o zaman büyük olasılıkla, kendiniz aramaya başladığınızdan daha kısa sürede daha iyi bir çözüm bulacaklardır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.