Geliştiricisi ne olursa olsun, bir işletim sistemini kullanmak üzere tasarlanmış herhangi bir bilgisayardaki temel bileşenlerden biri, dev adımlarla ilerleyen CPU veya işlemci, bize yeni işlem hızları, yeni teknolojiler, daha fazla çekirdek ve tüm bunları daha iyi hale getirmek için sunar. sistem başlangıcını ve oraya kurduğumuz programların yürütülmesini optimize edin ve iyileştirin.
Tüm bunlar yenilikçi ve mükemmel bir işlemciye sahip bir bilgisayar aldığımızda, bunun iyi bir yatırım olacağından emin olduğumuz için bizi duygulandırıyor, ancak Intel, AMD veya başka bir işlemci, tasarım güvenlik açıkları içeriyorsa ne olur? Bilgilerimizi ve gizliliğimizi riske atıyorlar, orada konu yön değiştiriyor ve bu tür bir durumun dünya çapında ünlü işlemcilerde ve büyük şirketlerde nasıl olabileceğini düşündürüyor.
Bu güvenlik açığı, birkaç gün önce, 4 Ocak'ta, bir saldırganın hayati önem taşıyan durumlarda sistem bilgilerine ve belleğe erişmesine izin verilen işlemcinin tasarımıyla bağlantılı olan Spectre ve Meltdown güvenlik açıklarının keşfedildiği bir gerçektir. şifreleme anahtarları veya parolalar gibi öğeler barındırılır.
Bu sorunla ilgili en kötü şey, bu güvenlik açıklarının Intel, ARM ve AMD işlemcileri etkilemesidir, bu yüzden hepimiz bu güvenlik açıklarının kurbanı olmaya açığız ve bu nedenle bugün Solvetic'te bu güvenlik açıklarının ne olduğunu, nasıl olduklarını kapsamlı bir şekilde analiz edeceğiz. saldırı ve sunucularımızı ve ekipmanımızı onlardan nasıl koruyabileceğimiz.
Bu güvenlik açıklarının hem ev hem de şirket düzeyinde her türlü ekipmana saldıracağını ve şu anda bizi Spectre ve Meltdown'a karşı korumaya hizmet edecek yamalar işletim sistemleri ve uygulama geliştiricileri tarafından yayınlandığını hatırlayalım.
hayalet nedir
Spectre, işlemciyi spekülatif yürütme sürecini başlatması için kandırma yeteneğine sahip bir güvenlik açığıdır, çünkü modern işlemciler Dal tahminini kullanır ve spekülatif yürütme işlemci performansını en üst düzeye çıkarmaya izin verir.
Spectre saldırıları, kurbanın, programın doğru yürütülmesi sırasında gerçekleşmeyecek belirli işlemleri spekülatif olarak yürütmesini sağlar ve bu, gizli bilgilerin saldırgan için bir yan kanaldan çok basit bir şekilde sızdırılmasına izin verir.
Bu güvenlik açıklarına ilişkin açıklama bildirimleri, Spectre'ın işlemci ve bununla birlikte kullanıcının güvenliği üzerindeki farklı karmaşıklık ve etki düzeylerine sahip iki varyant keşfetti.
Bu varyantlar şunlardır:
Varyant 1 (CVE-2017-5753)Bu güvenlik açığı Intel, AMD ve ARM işlemcilerini etkiler ve saldırganın bilgisayarda depolanan tüm kullanıcı bilgilerini filtrelemek için en iyi uygulamaları izleyerek programları herhangi bir hata olmadan aldatmasına olanak tanır.
Bu, bu yılın 3 Ocak'ında Google Project Zero ekibi tarafından keşfedildi ve bu varyant, limit-check bypass görevlerini gerçekleştirmek için spekülatif yürütmeyi aşırı derecede kullanıyor ve bu da çekirdek kodunun saldırganın kontrolü ile spekülatif olarak yeniden yönlendirilmesine neden oluyor.
Bu varyant tarafından saldırıya uğrayabilecek sistemlerin listesi:
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 7
- RHEV-M 4.0
- Sunucular için RHEV-M
- RHEL 7 için Red Hat Enterprise Linux OpenStack Platformu 7.0 (Kilo)
- RHEL 7 için Red Hat Enterprise Linux OpenStack Platform 6.0 (Juno)
- Red Hat Enterprise MRG 2
- Red Hat OpenStack Platformu v 8/9/10/11/12
- Debian Linux hırıltılı
- Debian Linux Jessie
- Debian Linux uzantısı
- Debian Linux engelleyici, sid
- Raspberry Pi 12 SP2 için SUSE Linux Enterprise Sunucusu
- SUSE OpenStack Bulut 6
- Openstack Cloud Magnum Orkestrasyon 7
- Hizmet Platformu olarak SUSE Container TÜMÜ
- SUSE Linux Enterprise Yüksek Erişilebilirlik 12 SP2 / SP3
- SUSE Linux Enterprise Canlı Yama 12
- Genel Bulut 12 için SUSE Linux Kurumsal Modülü
- SUSE Linux Kurumsal Sunucu 11 SP3-LTSS
- SUSE Linux Kurumsal Sunucu 11 SP4
- SUSE Linux Kurumsal Yazılım Geliştirme Kiti 11/12 SP3 / SP4
- SAP 12 SP1 için SUSE Linux Enterprise
- SUSE Linux Kurumsal 11
- SUSE Linux Enterprise 12
- SUSE 12/11 tabanlı OpenSuse Linux
- Fedora Linux 26
- 27
- Amazon Linux AMI
Varyant 2 (CVE-2017-5715)Bu değişken, dal hedef enjeksiyonunu kullanarak spekülatif yürütmeyi tetiklemekten sorumludur. Ayrıcalıklı kodda belirli, kesin olarak tanımlanmış bir talimat dizisinin varlığına ve ayrıca bellek erişimlerinin mikroişlemcinin verilerinin önbelleğe alınmasına neden olabileceği, bunların asla tehlikeye atılmayacağı spekülatif olarak yürütülen talimatlar dahil olmak üzere temel alır.
Bu varyant sayesinde, herhangi bir ayrıcalığı olmayan bir saldırgan, hedeflenen yan kanal önbellek saldırıları gerçekleştirerek sistem ve bilgisayarın sınırlarını aşma ve ayrıcalıklı belleği okuma yeteneğine sahip olacak ve böylece kullanıcının güvenliğinin sızdığını görecektir.
Etkilenen sistemler yukarıda listelenenlerle aynıdır.
Linux'ta bu varyantları önlemek için aşağıdaki işlemi gerçekleştirebiliriz.
CentOS veya RedHat ortamlarında öncelikle aşağıdaki satırları çalıştırıyoruz:
uname -r sudo yum güncellemesi
Sistem güncellendikten sonra, aşağıdaki satırı çalıştırarak sistemi yeniden başlatmaya devam ediyoruz:
sudo yeniden başlatmaArdından, şu komutu kullanarak çekirdeğin güncellendiğini onaylıyoruz:
isim -rSon olarak, aşağıdakileri yürüterek varyantların sistemde uygulandığını doğrularız:
rpm -q --changelog çekirdek | egrep 'CVE-2017-5715 | CVE-2017-5753 | CVE-2017-5754'
BÜYÜT
Ubuntu veya Debian kullanılması durumunda aşağıdaki satırları uygulayabiliriz:
sudo apt-get güncellemesi sudo apt-get yükseltmesi sudo kapatma -r 0
Spectre saldırı formlarıSpectre, aşağıdakiler gibi bazı saldırı tekniklerinden yararlanır:
- Spekülatif infazdan yararlanma. Bu teknikle, Spectre, programın doğru yürütülmesi sırasında yürütülmemesi gereken dizilerle spekülatif yürütme talimatları düzeyinde işlemci görevine saldırır ve bu diziler, sonunda saldırganın kullanıcıyı filtrelemek için yararlandığı geçici talimatlar oluşturarak tersine çevrilir. bilgi. etkilenen.
- Yerel kod kullanan saldırılar:. Bu saldırı, erişim belleğinde gizli veriler içeren bir program oluşturur ve bu program derlendikten sonra, kullanıcı bilgilerini filtrelemek için sistemdeki ikili dosyalar ve paylaşılan kütüphaneler analiz edilir.
Son olarak, daha önce karşılaşılan dizileri geçici talimatlar olarak yürütmek için CPU'nun spekülatif yürütme işlevinden yararlanan başka bir saldırı programı yazılır.
- JavaScript kullanan saldırılar. Bu saldırı, üzerinden taşınabilir JavaScript kodu yerleştirerek tarayıcının sanal alanını ihlal etmek için kullanılır.
Spectre'den etkilenen donanımŞu anda Spectre'ın aşağıdaki gibi donanımları ihlal edebildiği keşfedilmiştir:
- Ivy Bridge tabanlı işlemciler
- AMD Ryzen
- Intel işlemciler
- Qualcomm işlemciler
Özetle, Spectre saldırısı aşağıdaki aşamalardan oluşur:
- Aşama 1. İlk olarak, saldırı, saldırganın hatalı spekülatif istismarın gerçekleştirilebilmesi için işlemci arızalarına neden olan işlemler gerçekleştirdiği bir yapılandırma aşamasıyla başlar.
Bu aşamada saldırgan, kurbanın bilgilerini çıkarmak için kullanılacak yan kanalı hazırlayabilir.
- Aşama 2. Bu aşamada işlemci, kurbanın bağlamından gizli bilgileri bir yan kanal mikro mimarisine aktaran bir veya daha fazla talimatı spekülatif olarak yürütür.
Bu, saldırganın sistem çağrısı, soket gibi bir eylemi gerçekleştirmesine izin verir ve diğer durumlarda saldırgan, kullanıcı tarafından aynı süreçten hassas bilgiler elde etmek için kendi kodunun spekülatif yürütülmesinden yararlanabilir.
- Aşama 3. Bu aşamada, temizleme + yeniden yükleme veya tahliye + yeniden yükleme gibi teknikler kullanılarak gizli veriler Spectre'den kurtarılır. Bu kurtarma işlemi, periyodik olarak izlenen önbellek satırlarındaki bellek adreslerinin ne kadar sürede okunduğunun ölçülmesinden oluşur.
Erime nedir
Kullanıcıların güvenliğini etkileyen diğer saldırı, bir saldırganın Microsoft Windows veya High Sierra gibi yüklü işletim sistemi aracılığıyla kullanıcının özel bilgilerine erişmesine izin veren Meltdown'dur.
Adı, normalde sistem donanımı tarafından dayatılan güvenlik sınırlarını ihlal etme yeteneği için atanmıştır.
Meltdown güvenlik açığı, CVE-2017-5754 olarak kataloglandı ve burada Meltdown'ın ne olursa olsun kullanıcı uygulamaları ve işletim sistemi arasındaki temel izolasyona nüfuz etme yeteneğine sahip olduğuna atıfta bulunuluyor. Bu saldırı, bir programın belleğe ve bununla birlikte diğer programların ve işletim sisteminin kendisinin gizli bilgilerine erişmesine izin verir.
Bu kusur, 3 Ocak'ta Google Project Zero ekibi ve diğer ek ekipler tarafından da keşfedildi.
Bu güvenlik açığı Intel x86-64 işlemcileri etkiler, ancak AMD x86-64 işlemcileri etkilemez.
Erime sistemi aşağıdaki gibi etkileyebilir:
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
- Red Hat Kurumsal Linux
- Debian Linux hırıltılı
- Debian Linux Jessie
- Debian Linux uzantısı
- Deiban Linux engelleyici, sid
- SUSE Linux Kurumsal 11
- SUSE Linux Enterprise 12
- SUSE 12/11 tabanlı OpenSuse Linux
- Fedora Linux 26
- 27
- Amazon Linux AMI
- pencereler
- RHEL 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
- CentOS 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
- Fedora 26 [4.14.11-200] / 27 [4.14.11-300]
- Debian esnetme [4.9.0-5-amd64] / jessie [3.16.0-5-amd6] / hırıltılı [3.2.0-5-amd64]
- CoreOS [4.14.11-Coreos]
- Arch Linux [mevcut yuvarlanma güncellemesi]
- Gentoo Linux [mevcut yuvarlanma güncellemesi]
- Ubuntu Linux v16.04 [4.4.0-109 genel veya 4.13.0-26 genel] /v17.10 [4.13.0-25 genel] /14.04 [3.13.0-139 genel]
- SUSE - SLES 12 SP3 [4.4.103-6.38.1] / SLES 12 SP2 [4.4.103-92.59.1] / SLES 11 SP4 [3.0.101-108.21.1] / SLES 11 SP3-LTSS [3.0.101 -0.47.106.11.1]
Kendimizi bu güvenlik açığından korumak için CVE-2017-5754 aşağıdakileri uygulayabiliriz:
- CentOS ve RedHat'ta:
uname -r sudo yum güncellemesi sudo yeniden başlatma
- Fedora'da:
sudo dnf --refresh güncelleme çekirdeği
- Debian ve Ubuntu'da:
uname -r sudo apt-get güncellemesi sudo apt-get dist-upgrade sudo kapatma -r 0
Meltdown nasıl çalışır?Modern işletim sistemlerinde işletim düzeyindeki merkezi güvenlik özelliklerinden birinin, kullanıcı uygulamalarının diğer kullanıcıların ve programların belleklerine erişmesini engelleyen ve böylece kullanıcıların uygulamalarının okuma veya yazmasını engelleyen bellek yalıtımı olduğunu hatırlayalım. çekirdek belleğine.
Modern işlemcilerde, çekirdek ve kullanıcı işlemleri arasındaki izolasyon, normal olarak, bir belleğin çekirdek sayfasına erişme yeteneğine sahip olup olmadığını tanımlayan bir işlemci bit monitörü tarafından yürütülür.
Meltdown, herhangi bir kullanıcı işleminin, çekirdek bölgesinde tahsis edilen tüm fiziksel bellek de dahil olmak üzere, çalışan makinenin çekirdek belleğini okuması için basit bir yol sağlayarak bellek yalıtımını tamamen aşma gücüne sahip yeni bir saldırı olarak geliştirilmiştir.
Meltdown, günümüzde tüm büyük işletim sistemlerinde çalışır ve bu güvenlik açığı, Intel veya AMD gibi çoğu modern işlemcide bulunan yan kanal bilgilerinden yararlanır.
Meltdown, saldırgana, ayrılmış fiziksel bellek de dahil olmak üzere tüm çekirdeği adres alanına boşaltmak için savunmasız bir işlemci üzerinde kod çalıştırma yeteneği verir.
Meltdown'ın basitliğinin ve kapsamının nedeni, sıra dışı yürütmenin neden olduğu yan etkilerdir, yani, meşgul yürütme birimlerinin gecikmelerinin üstesinden gelmek için geliştirilmiş mevcut işlemcilerin bir özelliğidir.
Erime çalışma aşamaları şunlardır:
- Aşama 1. Bu aşamada, işlemci çekirdeğinde geçersiz bir bellek konumu için bir istek yapılır.
- Aşama 2. Bu aşamada, yalnızca ilk istek belirli bir aktif değer içeriyorsa, geçerli bir bellek konumunu koşullu olarak okumak için ikinci bir istek gerçekleştirilir.
- Aşama 3. Bu aşamada, işlemcinin ilk isteğin geçersiz olduğunu doğrulamadan önce önceki iki istek için arka plan çalışmasını tamamladığı spekülatif yürütme görevi gerçekleştirilir. İşlemci, isteklerin sınır dışı bellek içerdiğini anlar anlamaz, her iki isteği de reddeder.
- Aşama 4. Geçerli bellek konumu için yeni bir istek yapılır.
Böylece Meltdown güvenlik açığı ile aşağıdakileri tanımlayabiliriz:
Saldırganın erişemeyeceği, saldırgan tarafından seçilen bir bellek konumunun içeriği bir sistem kayıt defterine yüklenir.
Bir geçici talimat, kaydın gizli içeriğine dayalı olarak bir önbellek satırına erişir.
Saldırgan, önbellek hattına erişimi belirlemek ve böylece seçilen bellek konumunda saklanan bilgilere erişmek için Flush + Reload'ı kullanır.
Bu güvenlik açıklarının nasıl çalıştığını anladıktan sonra, bilgisayarlarımızı onlardan nasıl koruyacağımızı göreceğiz, ancak bugüne kadar hem kullanıcıları hem de yöneticileri içeren herhangi bir saldırı rapor edilmediğini açıklığa kavuşturmamız gerekiyor.
1. Kendinizi Linux sistemlerinde Spectre ve Meltdown'dan nasıl korursunuz
Linux durumunda, Linux çekirdeğinin bu güvenlik açıklarından bahsettiğimiz 3 CVE'ye karşı savunmasız olup olmadığını belirlemek için bir kabuk betiği olan specter-meltdown-checker.sh kullanacağız.
NotBu komut dosyası kök kullanıcı olarak çalıştırılmalıdır.
Aşama 1
Bu betiği kurmak için önce / tmp dizinine aşağıdaki gibi gideceğiz:
cd / tmp /Adım 2
Söz konusu dizine girdikten sonra, aşağıdaki satırı yürüterek betiği almaya devam ediyoruz:
wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
NotBunu elde etmek için başka bir seçenek de aşağıdaki satırı yürütmektir:
git klon https://github.com/speed47/spectre-meltdown-checker.git
Spectre veya Meltdown'a karşı savunmasız olup olmadığımız nasıl kontrol edilir?Dağıtımımızın güvenliğini kontrol etmek için aşağıdaki satırı uygulayabiliriz:
sudo sh specter-meltdown-checker.sh
Bu kadar basit Sistemimizin bu yeni tehditlere karşı savunmasız olup olmadığını doğrulayabiliriz.
2. Kendinizi Windows sistemlerinde Spectre ve Meltdown'dan nasıl korursunuz
Bu durumda Windows 10 kullanacağız ve bunun için uygulamaya sağ tıklayıp "Yönetici olarak çalıştır" seçeneğini seçerek Windows PowerShell'e yönetici olarak erişmeliyiz.
Aşama 1
PowerShell terminali açıldıktan sonra aşağıdaki satırı yürütmeye devam ediyoruz:
Kurulum Modülü Spekülasyon KontrolüAdım 2
Görüntülenen sorularda onaylamak için S harfini gireceğiz:
BÜYÜT
Aşama 3
Standart Windows yürütme ilkesi bu betiği yürütmemize izin vermez, bunun için betiği yürütmek için, daha sonra geri yüklenebilmesi için mevcut konfigürasyonu kaydetmeli ve ardından yürütme ilkesini çalıştırabilmesi için değiştirmeliyiz. senaryo. Bunun için aşağıdaki iki komutu uygulayacağız:
$ SaveExecutionPolicy = Get-ExecutionPolicy Set-ExecutionPolicy RemoteSigned -Scope Currentuser
BÜYÜT
4. Adım
Şimdi, aşağıdakileri yürüterek betiği çalıştırabiliriz:
Import-Module SpeculationControl Get-SpeculationControlSettings
BÜYÜT
Adım 5
Sistemin detaylı bilgilerini görebiliriz ve özellikle iki satıra bakmamız gerekir:
Şube hedef enjeksiyonu azaltma için Windows işletim sistemi desteğiBu satır, Microsoft yazılım güncellemesini ve değerinin NS bilgisayarın Meltdown ve Spectre saldırılarına karşı korunduğu anlamına gelir.
Şube hedef enjeksiyonu azaltma için donanım desteğiBu satır, değeri ise bilgisayar üreticisinden gerekli olan bellenim veya BIOS / UEFI güncellemesini ifade eder. NS bu, Spectre güvenlik açığına karşı korunacağımız anlamına gelir.
6. Adım
Sistemin güvenliğini doğruladıktan sonra yürütme politikasını orijinal yapılandırmasına geri yüklemek için aşağıdaki satırı uygulayabiliriz:
Set-ExecutionPolicy $ SaveExecutionPolicy -Scope Currentuser
BÜYÜT
7. Adım
Geliştiriciler bu güvenlik kusurlarını önlemek için güvenlik yamaları yayınlayacakları için işletim sistemini güncel tutmanın önemini hatırlamakta fayda var:
3. Üreticilere Göre Resmi Spectre ve Meltdown Bilgileri
Aşağıdaki bağlantılarda, ana geliştiricilerin sitelerinin her birinde bu güvenlik açıkları hakkında bilgi bulabilir ve böylece sorunun nasıl önleneceği ve bir adım önde olacağı konusunda daha ayrıntılı bilgilere sahip olabiliriz:
- Intel
- KOL
- AMD
- NVIDIA
- Microsoft Windows
- Windows Server
- Amazon
- Android
- Manzana
- Lenovo
- HP
- Huawei
- Cisco
- Mozilla
- Kırmızı şapka
- Debian
- Ubuntu
- fötr şapka
- VMware
Görüldüğü gibi zafiyetler her zaman mevcut olacak olsa da herhangi bir arızaya karşı dikkatli olmak ve bu sayede bilgilerimizin etkilenmemesi için gerekli önlemleri alabiliyoruz.