Stack Clash nedir ve bu konuda ne yapabilirim?


27

Görünüşe göre birden fazla Unix benzeri sistemi etkileyen Stack Clash adlı yeni bir güvenlik açığı duydum (yalnızca Linux değil, BSD'ler, Solaris de).

  • Bu ne? Çoklu işletim sistemi hatası nasıl oldu?
  • Sistemlerimi nasıl korurum?

Yanıtlar:


29

Stack Clash, oldukça eski bir tekniğe dayanan bir istismardır. Bir işlem tarafından kullanılan bellek iki bölgeye ayrılır - yığın ve yığın . Biri genellikle yığını aşağıya doğru büyürken ve yığını yukarı doğru uzadığını düşünür. Her ikisi de diğeriyle çatışacak kadar büyüdüğünde ne olur ? Daha genel olarak, yığın ilgisiz bellek alanlarına girecek kadar büyüdüğünde ne olur? Asıl güvenlik açığı 12 yaşında ve Linux çekirdek geliştiricileri bir güvenlik sayfası kullanarak geçici olarak düzelttiler . Bununla birlikte, Qualys'teki araştırmacılar, güvenlik sayfasına rağmen bunu istismar ettiler.

Ars Technica raporları :

Stack Clash güvenlik açıkları, ilk olarak 2005 yılında güvenlik araştırmacısı Gaël Delalleau'nun bulgularıyla ve beş yıl sonra araştırmacı Rafal Wojtczuk tarafından Linux kırılganlığının serbest bırakılmasıyla birlikte yaygın bir farkındalık kazanmıştır . Linux geliştiricileri , yığın çatışmasını önleme amaçlı bir koruma sağlamıştır, ancak bugünün araştırması, saldırganların bu önlemi atlamanın nispeten kolay olduğunu göstermektedir.

Qualys tarafından geliştirilen temel kavram kanıtı saldırısı, CVE-2017-1000364 olarak endekslenen bir güvenlik açığından yararlanır. Qualys araştırmacıları ayrıca, CVE-2017-1000365 ve CVE-2017-1000367 dahil olmak üzere ayrı güvenlik açıklarından yararlanmak için Stack Clash kullanan saldırılar geliştirdi. Örneğin, Sudo’larda yeni ortaya çıkan bir kusur olan CVE-2017-1000367 ile birleştirildiğinde, Qualys tarafından keşfedilen yerel kullanıcılar, daha geniş bir işletim sistemi aralığında tam kök ayrıcalıklar elde etmek için Sudo’dan yararlanabilir. Qualys şu ana kadar sömürülerinin uzaktan kod çalıştırmasını sağlayamadı. Araştırdıkları tek uzaktan uygulama tesadüfen kullanılamaz olduğu ortaya çıkan Exim posta sunucusuydu. Qualys, böyle bir uzaktan kod yürütme istismarının mevcut olma olasılığını ekarte edemediğini söyledi. Qualys, daha sonraki bir tarihte kavram kanıtı istismarlarını serbest bırakacağını söyledi.

[...] Qualys'in bu ayrıntılı teknik danışmanlığında ve grsecurity'den gelen bu teknik analizde çok daha fazla bilgi bulunmaktadır .

2010'daki orijinal düzeltmeyle ilgili LWN makalesinden alıntı :

Linux, işlem yığınını ve yığın sayfalarını ayırmadığından, yığın sayfasını bitişik yığın sayfasına atmak mümkündür. Bu, yeterince derin bir yığının (örneğin özyinelemeli bir çağrıdan) yığıntaki belleği kullanarak sona erebileceği anlamına gelir. Bu yığın sayfasına (örneğin bir X istemcisi) yazabilen bir program, seçtiği yere atlamak için çağrılardan birinin dönüş adresini değiştirebilir. Bu, istemcinin, sunucunun, kendi seçtiği kodu - rasgele kod yürütme - kodunu çalıştırmasına neden olabileceği anlamına gelir ve bu da kök ayrıcalıkları elde etmek için kullanılabilir.

Yukarıdaki açıklama, çeşitli Unix benzeri çekirdekleri için geçerlidir.

Ars Technica Qualys raporunda belirtilen geçici çözüm belirtse iken ( "set  sert RLimit STACK ve RLIMIT_AS  ait  yerel kullanıcılar  ve  uzak hizmetler  düşük değere"), unutulmamalıdır , bu istismar karşı mutlaka güvenlik önlemi yok . Şu anda tek güvenli yolu yükseltme yapmaktır. Grsecurity analizine göre:

Bu sorunu çözmek için yalnızca çekirdek girişimlerinin mutlaka asıl mesele, eksik meselenin yığın araştırması eksikliğinden kaynaklandığı için her zaman eksik olacağı açıktır. Alternatif gerçek çözüm tüm kullanıcı alanlarını yeniden inşa etmeye bağlı olduğundan, bu öngörülebilir gelecek için tek uygun çözüm olabilir.

Şimdi yapabileceğimizin en iyisi çekirdeği yamalı bir sürüme yükseltmektir.

2010 sömürüsü, X sunucusunu kullandı; bu, sudo kullandı, bir sonraki, bir noktada, yüksek ayrıcalıklar altında çalışan çok sayıda kullanıcı alanı programından herhangi biri olabilir.

Qualys, henüz bir istismar için kavram kanıtı kodu yayınlamamıştır (daha sonraki bir tarihte yapmayı planlamaktadırlar).


CVE-2017-1000364 ile ilişkili birden çok Ubuntu Güvenlik Bildirimi vardır:

Ayrıca , CVE izleyicisinin , birkaç düzeltme / çekirdek kombinasyonunu bekleyen düzeltmeler olarak listelediğini unutmayın .

Genel olarak, en basit çözüm sistemlerinizi ASAP'ın en son çekirdek paketine güncellemektir.

USN'lerin ilgili çekirdek sürümleri (kullanılarak toplanmıştır for i in {24..35}; curl -s https://www.ubuntu.com/usn/usn-33$i-1/ | pup 'dl:nth-last-of-type(1)'):

Ubuntu 17.04:
linux-image-4.10.0-24-lowlatency 4.10.0-24.28
linux-image-generic-lpae 4.10.0.24.26
linux-image-generic 4.10.0.24.26
linux-image-4.10.0-24-generic-lpae 4.10.0-24.28
linux-image-4.10.0-24-generic 4.10.0-24.28
linux-image-lowlatency 4.10.0.24.26
Ubuntu 17.04:
linux-image-4.10.0-1008-raspi2 4.10.0-1008.11
linux-image-raspi2 4.10.0.1008.10
Ubuntu 16.10:
linux-image-powerpc-smp 4.8.0.56.69
linux-image-powerpc-e500mc 4.8.0.56.69
linux-görüntü-4.8.0-56-powerpc-smp 4.8.0-56.61
linux-görüntü-4.8.0-56-powerpc-e500mc 4.8.0-56.61
linux-image-4.8.0-56-lowlatency 4.8.0-56.61
linux-image-generic 4.8.0.56.69
linux-image-4.8.0-56-genel 4.8.0-56.61
linux-image-powerpc64-emb 4.8.0.56.69
linux-image-virtual 4.8.0.56.69
linux-image-powerpc64-smp 4.8.0.56.69
linux-image-4.8.0-56-generic-lpae 4.8.0-56.61
linux-image-generic-lpae 4.8.0.56.69
linux-image-lowlatency 4.8.0.56.69
linux-image-4.8.0-56-powerpc64-emb 4.8.0-56.61
Ubuntu 16.10:
linux-image-4.8.0-1040-raspi2 4.8.0-1040.44
linux-image-raspi2 4.8.0.1040.44
Ubuntu 16.04 LTS:
linux-görüntü-powerpc64-smp- lts -ütopik 4.4.0.81.87
linux-image-generic- lts - wily 4.4.0.81.87
linux-image-generic- lts -ütopik 4.4.0.81.87
linux-image-4.4.0-81-generic-lpae 4.4.0-81.104
linux-görüntü-powerpc64-emb- lts -canlı 4.4.0.81.87
linux-image-powerpc-e500mc 4.4.0.81.87
linux-image-generic-lpae-lts-xenial 4.4.0.81.87
linux-image-generic-lpae-lts-ütopik 4.4.0.81.87
linux-görüntü-powerpc-e500mc-lts-xenial 4.4.0.81.87
linux-image-4.4.0-81-powerpc64-emb 4.4.0-81.104
linux-görüntü-güç-e500mc-lts- wily 4.4.0.81.87
linux-image-4.4.0-81-powerpc-e500mc 4.4.0-81.104
linux-image-generic-lpae-lts- wily 4.4.0.81.87
linux-image-virtual- lts -canlı 4.4.0.81.87
linux-image-virtual- lts -ütopik 4.4.0.81.87
linux-image-virtual 4.4.0.81.87
linux-image-powerpc64-emb-lts- wily 4.4.0.81.87 sürümü
linux-image-lowlatency-lts-canlı 4.4.0.81.87
linux-görüntü-güç-e500mc-lts-canlı 4.4.0.81.87
linux-image-powerpc64-emb 4.4.0.81.87
linux-görüntü-güç-smp-lts-xenial 4.4.0.81.87
linux-image-4.4.0-81-generic 4.4.0-81.104
linux-görüntü-powerpc64-smp- lts -canlı 4.4.0.81.87
linux-image-lowlatency-lts- wily 4.4.0.81.87
linux-image-4.4.0-81-lowlatency 4.4.0-81.104
linux-image-generic 4.4.0.81.87
linux-image-lowlatency-lts-xenial 4.4.0.81.87
linux-görüntü-powerpc64-smp-lts-xenial 4.4.0.81.87
linux-görüntü-powerpc64-emb- lts -ütopik 4.4.0.81.87
linux-image-generic-lts-xenial 4.4.0.81.87
linux-image-generic- lts -canlı 4.4.0.81.87
linux-görüntü-güç-e500mc-lts-ütopik 4.4.0.81.87
linux-image-powerpc-smp 4.4.0.81.87
linux-image-4.4.0-81-powerpc-smp 4.4.0-81.104
linux-image-generic-lpae-lts-canlı 4.4.0.81.87
linux-image-generic-lpae 4.4.0.81.87
linux-görüntü-powerpc64-smp-lts- wily 4.4.0.81.87
linux-görüntü-powerpc64-emb-lts-xenial 4.4.0.81.87
linux-görüntü-güç-smp- lts - wily 4.4.0.81.87
linux-image-virtual- lts - wily 4.4.0.81.87
linux-image-powerpc64-smp 4.4.0.81.87
linux-image-4.4.0-81-powerpc64-smp 4.4.0-81.104
linux-görüntü-güç-smp- lts -ütopik 4.4.0.81.87
linux-görüntü-güç-smp- lts -canlı 4.4.0.81.87
linux-image-lowlatency 4.4.0.81.87
linux-image-virtual-lts-xenial 4.4.0.81.87
linux-image-lowlatency-lts-ütopik 4.4.0.81.87
Ubuntu 16.04 LTS:
linux-image-4.4.0-1016-gke 4.4.0-1016.16
Ubuntu 16.04 LTS:
linux-image-snapdragon 4.4.0.1061.54
linux-image-4.4.0-1061-snapdragon 4.4.0-1061.66
Ubuntu 16.04 LTS:
linux-image-4.4.0-1020-aws 4.4.0-1020.29
Ubuntu 16.04 LTS:
linux-image-raspi2 4.4.0.1059.60
linux-image-4.4.0-1059-raspi2 4.4.0-1059.67
Ubuntu 16.04 LTS:
linux-image-4.8.0-56-powerpc-smp 4.8.0-56.61 ~ 16.04.1
linux-image-4.8.0-56-powerpc-e500mc 4.8.0-56.61 ~ 16.04.1
linux-image-4.8.0-56-lowlatency 4.8.0-56.61 ~ 16.04.1
linux-image-4.8.0-56-jenerik 4.8.0-56.61 ~ 16.04.1
linux-image-generic-hwe-16.04 4.8.0.56.27
linux-image-lowlatency-hwe-16.04 4.8.0.56.27
linux-image-4.8.0-56-jenerik-lpae 4.8.0-56.61 ~ 16.04.1
linux-image-virtual-hwe-16.04 4.8.0.56.27
linux-image-generic-lpae-hwe-16.04 4.8.0.56.27
linux-image-4.8.0-56-powerpc64-emb 4.8.0-56.61 ~ 16.04.1
Ubuntu 14.04 LTS:
linux-görüntü-güç-smp-lts-xenial 4.4.0.81.66
linux-image-lowlatency-lts-xenial 4.4.0.81.66
linux-image-4.4.0-81-powerpc-smp 4.4.0-81.104 ~ 14.04.1
linux-image-4.4.0-81-powerpc-e500mc 4.4.0-81.104 ~ 14.04.1
linux-image-4.4.0-81-lowlatency 4.4.0-81.104 ~ 14.04.1
linux-image-4.4.0-81-generic-lpae 4.4.0-81.104 ~ 14.04.1
linux-image-generic-lpae-lts-xenial 4.4.0.81.66
linux-görüntü-powerpc64-smp-lts-xenial 4.4.0.81.66
linux-image-4.4.0-81-generic 4.4.0-81.104 ~ 14.04.1
linux-image-4.4.0-81-powerpc64-smp 4.4.0-81.104 ~ 14.04.1
linux-image-generic-lts-xenial 4.4.0.81.66
linux-görüntü-powerpc64-emb-lts-xenial 4.4.0.81.66
linux-görüntü-powerpc-e500mc-lts-xenial 4.4.0.81.66
linux-image-virtual-lts-xenial 4.4.0.81.66
linux-image-4.4.0-81-powerpc64-emb 4.4.0-81.104 ~ 14.04.1
Ubuntu 14.04 LTS:
linux-image-powerpc-e500mc 3.13.0.121.131
linux-image-lowlatency-pae 3.13.0.121.131
linux-image-3.13.0-121-powerpc64-emb 3.13.0-121.170
linux-image-generic-pae 3.13.0.121.131
linux-image-3.13.0-121-powerpc-smp 3.13.0-121.170
linux-görüntü-3.13.0-121-powerpc-e500mc 3.13.0-121.170
linux-görüntü-3.13.0-121-powerpc-e500 3.13.0-121.170
linux-image-3.13.0-121-generic-lpae 3.13.0-121.170
linux-image-generic- lts - quantal 3.13.0.121.131
linux-image-virtual 3.13.0.121.131
linux-image-powerpc-e500 3.13.0.121.131
linux-image-generic- lts -trusty 3.13.0.121.131
linux-image-3.13.0-121-genel 3.13.0-121.170
linux-image-omap 3.13.0.121.131
linux-image-powerpc64-emb 3.13.0.121.131
linux-image-3.13.0-121-powerpc64-smp 3.13.0-121.170
linux-image-generic 3.13.0.121.131
linux-image-highbank 3.13.0.121.131
linux-image-generic- lts -saucy 3.13.0.121.131
linux-image-powerpc-smp 3.13.0.121.131
linux-image-3.13.0-121-lowlatency 3.13.0-121.170
linux-image-generic-lpae-lts-saucy 3.13.0.121.131
linux-image-generic- lts - raring 3.13.0.121.131
linux-image-powerpc64-smp 3.13.0.121.131
linux-image-generic-lpae-lts-trusty 3.13.0.121.131
linux-image-generic-lpae 3.13.0.121.131
linux-image-lowlatency 3.13.0.121.131
Ubuntu 12.04 ESM:
linux-görüntü-powerpc-smp 3.2.0.128.142
linux-image-3.2.0-128-sanal 3.2.0-128.173
linux-image-3.2.0-128-generic-pae 3.2.0-128.173
linux-image-generic 3.2.0.128.142
linux-image-generic-pae 3.2.0.128.142
linux-image-highbank 3.2.0.128.142
linux-image-3.2.0-128-highbank 3.2.0-128.173
linux-image-3.2.0-128-powerpc-smp 3.2.0-128.173
linux-image-virtual 3.2.0.128.142
linux-image-powerpc64-smp 3.2.0.128.142
linux-image-3.2.0-128-omap 3.2.0-128.173
linux-image-3.2.0-128-powerpc64-smp 3.2.0-128.173
linux-image-omap 3.2.0.128.142
linux-image-3.2.0-128-jenerik 3.2.0-128.173
Ubuntu 12.04 LTS:
linux-image-3.13.0-121- general 3.13.0-121.170 ~ kesin1
linux-image-generic-lpae-lts-trusty 3.13.0.121.112
linux-image-generic- lts -trusty 3.13.0.121.112
linux-image-3.13.0-121-generic-lpae 3.13.0-121.170 ~ kesin1

sudo

Yukarıda belirtilen sudo böceği, 30 Mayıs 2017’den itibaren USN-3304-1 kapsamındadır :

Ubuntu 17.04:
sudo-ldap 1.8.19p1-1ubuntu1.1
sudo 1.8.19p1-1ubuntu1.1
Ubuntu 16.10:
sudo-ldap 1.8.16-0ubuntu3.2
sudo 1.8.16-0ubuntu3.2
Ubuntu 16.04 LTS:
sudo-ldap 1.8.16-0ubuntu1.4
sudo 1.8.16-0ubuntu1.4
Ubuntu 14.04 LTS:
sudo-ldap 1.8.9p5-1ubuntu1.4
sudo 1.8.9p5-1ubuntu1.4

Yani, özet olarak, halen desteklenmekte olan çoğu Ubuntu sürümünde zaten düzeltilmeli, biri güncellemeli mi?
CJCombrink

@Badger no, CVE tracker tarafından belirtildiği gibi, bazı kombinasyonlar hala serbest bırakılmayı bekliyor olarak listelenmiştir. Sanırım düzeltmeler yayınlandıkça daha fazla USN yayınlanacak.
muru

4
Ancak, evet, güncelleme yeterli olmalı, ek yapılandırma gerekmez.
muru

Etkiliyorsa, nasıl doğrulanır?
papatya

1
Aşağıdaki makaleye göre @ immibis onlar, ancak mevcut uygulama düzgün çalışmıyor: Qualys Research Labs tarafından Stackguard hata açıklaması
Igor B

1

Çoklu işletim sistemi hatası nasıl oldu?

Sorunuzun bu bölümünü özellikle ele almak için:

Bu sorun, yığın (yukarı doğru büyür) ve yığın (aşağı doğru büyür) için paylaşılan bir adres alanının kullanılması nedeniyle ortaya çıkar.

Bu tasarım birçok sistemde ortaktır, bu yüzden birçok sistem neden bu güvenlik açığına karşı savunmasızdı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.