Mac'ler Bash Shellshock böceklerine karşı savunmasız mı?


58

Red Hat kısa süre önce Bash kabuğundaki güvenlikle ilgili büyük bir hata olduğunu açıkladı . Bazıları buna "kabuk vuruşu" hatası diyor. OS X, Unix'ten kurulduğundan, bu hatadan yararlanan saldırılara karşı savunmasız mı?

Son kullanıcı olarak hemen bir düzeltme konusunda endişelenmeme gerek var mı? Yoksa Apple’ın resmi bir yazılım güncellemesini beklemem daha mı iyi?



Eylemler OSX bkz etkileyen görmek için security.stackexchange.com/questions/68123/...
user151019

Soruyu güncellendi, bu yüzden daha az para cezası ve meslekten olmayanlar için tavsiye isteği daha fazla.
hairboat

1
Apple şimdi bir düzeltme yayımladı: support.apple.com/kb/DL1769
AT

Yanıtlar:


46

Evet, teknik olarak savunmasızsınız. Yani, panikleyen bir müşteriyi birkaç saatlik panik çalışması için paniklemek veya faturalandırmak istiyorsanız, bunun için gidin!

Fakat gerçek şu ki, SSH'nın uzak bağlantılardan veya sunucu tarafı komut dosyası çalıştıran bir web sunucusundan erişmesine izin vermediğiniz sürece, risk altında değildir. Yalnızca tanımadığınız biri makinenize uzaktan erişebiliyorsa ve bunu Bash komutunun çalıştırılabileceği şekilde yaparsanız gerçekten savunmasızsınız.

Yani, gerçekten de herhangi bir tür sunucu uygulamasını çalıştırmayan masaüstü Mac'iniz ciddi bir risk altında değildir. Burada bazı meşhur “mütevazı bir pasta” yemeye razıyım, ancak dışarıdaki Mac kullanıcılarının çoğunun günün sonunda risk altında olacağını düşünmüyorum.

Bu nedenle, bu sorun temel olarak SSH paylaşımını sağlamayan masaüstü kullanıcıları değil, dünyaya maruz kalan Mac OS X ve Unix / Linux sunucularındaki sistem yöneticileriyle ilgilidir.

Belki de bu riski kullanmak için yaratılmış bir Mac kötü amaçlı yazılım veya virüs riski vardır, ancak bundan şüpheliyim.

EDIT: Sadece bu sorunun nasıl olduğunu anlamak için - mütevazi görüşüme göre - çoğu ortalama kullanıcı için bir sorun değil, evet, aşağıdaki komutu bashMac OS X 10.9.5'ten çalıştırabilirim:

env x='() { :;}; echo vulnerable' bash -c 'echo hello'

Ve şunu görüyorum:

vulnerable
hello

Bil bakalım ne oldu? Bu, rasyonel olarak bunu düşünmüyorsanız korkutucu. Terminal'i açmak için Mac'ime giriş yapmış olmalıydım. Yukarıdaki SSH ile ilgili söylediklerimi reddetmek için, SSH etkin olsa bile bu testi uygulayabildiğim noktaya gelmek için, başlamak için hala oturum açmam gerekecek. Ve sonra - diyelim ki SSH ile erişime giriyorum - komut, bunun gibi normal kullanıcı haklarımın ötesinde bir şey yapmama izin vermiyor:

env x='() { :;}; echo vulnerable' bash -c 'cat /etc/ssh_host_rsa_key'

Yani, bu saldırı tarafından istismar edilmeye gerçekten karşı savunmasızsanız, sistemdeki temel güvenceniz o kadar tehlikeye girecektir ki bash, bir kusuru olması gerçeği gerçekten en az sizin sorunlarınızdır.

Bu davranış, beklenen normların dışında kaldığı için, istenmeyen erişime izin verme potansiyeli olduğu için genel kontrol ve haklar sorunudur . Ancak alçakgönüllü görüşüme göre, OpenSSL veya bahçe çeşitliliği ile aynı risk değil, “şifremi ekranıma kaydedilmiş bir notta bırakmama izin ver” riskleri.

Günün sonunda standart Linux işletim sistemiyle çalıştığım tüm Linux / Unix sunucularımı hala yama yapıyorum. Ve bir çözüm bittiğinde, yönettiğim Mac'leri mutlu bir şekilde yamalayacağım. Ancak pratik günlük kullanım için, bu konuda endişelenmediğim için kendimi iyi hissetmiyorum, çünkü yüksek kullanıcı ayrıcalıklarına izin vermeyen bir hatanın bir şeye nasıl katılacağını anlamıyorum.

GÜNCELLEME: Apple resmi kelime buraya gönderildi ; vurgu benim:

Bir Apple sözcüsü iMore'a , “OS X kullanıcılarının büyük çoğunluğunun son zamanlarda sert güvenlik açığı bildirme riski bulunmadığını” söyledi. savunmasız sistemlerin kontrolü. OS X ile, kullanıcılar varsayılan olarak güvenlidir ve kullanıcılar gelişmiş UNIX servislerini yapılandırmadıkça, bash'ın uzaktan yararlanılmasına maruz kalmazlar. Gelişmiş UNIX kullanıcılarımız için hızlı bir şekilde yazılım güncellemesi sağlamak için çalışıyoruz. ”

Çeviri: Yukarıda, bunun bir sunucu sorunu olduğunu ve müşteri sorunu olmadığını söylemiştim? Kesinlikle.

NİHAİ BİR UDPATE: 29 Eylül’den itibaren, kaynaktan derlemekle mücadele eden herkes için, Apple, Mac OS X 10.9.5, 10.8.5 ve 10.7.5’e ilişkin resmi yamalar yayınladı:

HENÜZ BİR SON GÜNCELLEME: Ve şimdi, Apple sadece bir arada güvenlik güncelleştirmesini bugün yayınladı içerir bashyanı güncelleştirme !

Not: 2014-005 Güvenlik Güncelleştirmesi, OS X bash Güncelleştirmesi 1.0 güvenlik içeriğini içerir


7
"veya sunucu tarafı komut dosyası çalıştıran bir web sunucusu" - veya çalışan bir komutu var, çalışan kabuk komutları ile sonuçlanan RPC çağrılarının yapılmasını sağlayan açık bir bağlantı noktasını dinliyor. Bu, RPC'lerini yapan birçok standart uygulama olduğundan, herhangi bir sayıdaki şey olabilir. Bence bu cevap çok saf. İstemci-sunucu tipi bir şey yapan bir uygulamayı çalıştırma sırasında istemeden "bir web sunucusunu çalıştırmak" olmak çok kolaydır.
Ian C.

3
@IanC. OS X kutusundan çıkarmanın gerçekten savunmasız olacağı bir örnek verebilir misiniz? Örneğin, WebEx veya GotoMeeting gibi bir şey Bash yeteneklerine bile yaklaşabilir mi? Mesele şu ki, olayları gerçekten ortaya çıkaran düz bir OS X kurulum senaryosu düşünemiyorum. Yapabilir misin?
JakeGould

8
Misafir hesabı ssh için uygun değil . Aslında, onu ssh, IIRC'ye sunmak bile mümkün değil. Gerçek şu ki, OS X kullanıcılarının büyük çoğunluğu için, bash kırılganlığı hiç sorun değil. Meselesi olan bizler için, test edilen bir düzeltme mevcut olur olmaz bash'ı yeniden derlememiz gerekir, ama bu şimdi değil.
lbutlr

3
@IanC. Tamam, adil örnekler. Ancak hala noktayı kaçırıyorsunuz: Sağladığınız her örnekte böyle bir güvenlik açığından nasıl yararlanabilirsiniz? Her durumda, bir kullanıcının başlayabilmesi için sisteme erişmesi gerekir. Bu konuda saygısızlık etmiyorum ama hala riskin ne olacağını kavrayamıyorum? Örneğin, birisinin - normal kullanıcı hakları ve erişim ayrıcalıklarının dışında bir şey yapmak için tam olarak ne yaptığını yapmak için Plex API aracılığıyla yolunu kurması gerekecek mi?
JakeGould

6
@ danielAzuelos “Konuk hesabı açık olduğu sürece herkes savunmasız: [!” Konuk hesabının hiçbir ilgisi yok bash. Yani korku tam olarak neye dayanıyor? Ayrıca, misafir hesabı açık ve bir şekilde bashkullanılabilir olsa bile ne olacak? Bu açığı kullanarak bir tahmin görüyorum ki, daha fazla ayrıcalıklara veya buna yakın bir şeye sahip olamazsınız. Cidden, duruşumdan geri adım atmaya istekliyim, ancak OpenSSL gerçek bir konuydu, fakat bu daha çok panik gibi görünmüyor.
JakeGould

37

Evet!

Bunu kabuğunuza yazın

env x='() { :;}; echo vulnerable' bash -c 'echo hello'

Eğer diyorsa vulnerableo zaman savunmasızsın.

Eğer diyorsa

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
hello

o zaman iyisin.

Düzenleme: düzeltmeye bağlantı


4
Teşekkürler. Soruyu güncelledim - savunmasız olduğumuzu tespit edersek, bir Mac kullanıcısı bunu nasıl düzeltebilir?
hairboat

3
@ abbyhairboat Cevabımı gönderildi. Dış dünyaya maruz kalan bir sunucu kullanmıyorsanız, pratik bir risk yoktur. Sunucu yöneticileri bu konuda endişelenmesi gerekenler.
JakeGould

1
→ abby: Lütfen bu cevaba bakınız: apple.stackexchange.com/a/146851/22003 .
dan

2
Bunu dene env X="() { :;} ; echo busted" /bin/sh -c "echo completed"- Sistemimi yamaladıktan sonra bile, bu komut satırında bir 'baskın' oldu. Bah.
Trane Francks

1
@Mark hayır, zsh güvenlidir. test etmek için "bash -c" yerine "zsh -c" yazmanız gerekir.
ismail

3

Bir olarak son kullanıcıya kontrol edin:

  • misafir hesabın kapalı:

    Sistem Tercihleri> Kullanıcılar ve Gruplar> Konuk Kullanıcı
    
  • senin ssherişimi kapalı:

    Sistem Tercihleri> Paylaşma> Uzaktan Giriş
    

Varsayılan olarak bu ikisi Mavericks'te kapalıdır.

Bir olarak son kullanıcıya , öyle daha güvenli bu sabitleme resmi bir Apple güvenlik güncelleme için beklemek bashaçığını.


1
Bunlar alakasız. Bunlardan biri, doğası gereği, kullanıcıların sistemdeki komutları çalıştırmalarına izin verir; bu nedenle, bunları etkinleştirdiyseniz, kullanıcıların komutları çalıştırmalarına izin vermek sizin niyetinizdir. Shellshock hatası, bunu yapabilmek için komutları çalıştıramayacağını düşündüğünüz kullanıcılar için, yani çalıştırdığınız web sunucusunun kullanıcısı olan bir araçtır . Yani, cevabınız "Web Paylaşımını Devre Dışı Bırak" demeliydi (ama kontrol edilmesi gereken tek şey bu)
Josh

Kızgınım, Apple bu ayarları kapatmayı önermedi. Onları kim etkinleştirir? İsterim. 1986'dan beri Mac kullanıcısıyım, tam zamanlı bir web uygulaması geliştiricisi (yani ssh benim hayatım) ve bir baba (çocuklar için bir Misafir hesabı o kadar kötü bir fikir değil). Apple dizüstü bilgisayarlarını kullanan bu şekillerde benim gibi olan birçok insan tanıyorum. Bizi kaybetmek ister misin? Bu güvenlik açığının açık bırakılması iyi bir yoldur.
minopret

2

Tüm Mac OS X makineleri, Apple bash ekleyen bir güvenlik güncellemesi yayınlayana kadar teknik olarak “Shellshock” a karşı savunmasızdır, ancak ..

Sorunuz şöyle olmalı: Uzaktan saldırıya uğrayabilir miyim?

bashBu soruyu cevaplamanın son derece zor olduğu bilinmeyen bir şekilde kullanan çok fazla yazılım var . Endişeleniyorsanız, System Preferencesuzaktan yararlanmaları önlemek için birkaç değişiklik öneririm :

  • Paylaşım Tercihleri ​​altındaki TÜM paylaşım servislerini devre dışı bırakın.
  • Güvenlik Duvarını Güvenlik ve Gizlilik altında etkinleştirin.

Özellikle endişeleniyorsanız, şunları yapmak için Firewallseçenekler düğmesine basın:

  • İşaretini kaldırın Automatically allow signed software to receive incoming connections.
  • Kontrol edin Block all incoming connections.

DHCP, Bonjour, vb. Kullanarak seviyeli bir saldırıya açık olmanız konusunda hala saygın bir şans var, ancak hey, eğer başka bir servise ihtiyacınız olursa, açıkçası, istismar edilmeyeceğini umarken çalışır durumda bırakabilirsiniz. Ayrıca güvenlik duvarını da daha açık bırakmanız gerekir. Makineniz başka bir güvenlik duvarının arkasında yaşıyorsa, muhtemelen iyi olacak.

Ayrıca, “Shellshock” tarafından sağlanan yerel imtiyaz artırma saldırıları var mı? Evet, neredeyse. Endişelenmiyorum çünkü Mac OS X'te de benzer saldırılar var. Apple, yerel ayrıcalık artış hatalarını hızlı bir şekilde düzeltmiyor. Ve Apple bunları Apple Script özellikli servislerle sık sık oluşturur. Tüm Mac OS X makinelerinin yerel saldırılara her zaman savunmasız olduğunu varsayalım. DEFCON gibi hacker konferanslarına katılmanız gerekiyorsa, o zaman kendinize bir Linux kutusu satın alın.

Güncelleme: Kendi sabit bashınızı ve bunu yapan diğer soruları tekrar derlemeniz için talimatlar var . Bunu kendim yapacağım, ancak herhangi bir sunucu çalıştırmazsanız ve Apple'ın güvenlik duvarını açık tutmaya devam ederseniz, IMHO bu aşırıya mal olur.

Güncelleme: Terminal kullanımı konusunda rahatsanız, burada adı execsnoopgeçen ve genellikle sunucu işlemleriniz tarafından bash aranıp çağrılmadığını test etmenizi sağlayacak bir program vardır . Sunucu işlemi yalnızca olağandışı durumlarda bash diyebileceği için sihirli bir mermi değildir, ancak size iyi bir fikir verecektir.

Son olarak, Apple güvenlik açıklarını düzeltme konusunda çok iyi değil, ancak PR konusunda iyi oldukları için nispeten hızlı bir şekilde yama alabiliyorlar. Bu nedenle, "ayıdan daha hızlı çalışmam gerekmediği, yalnızca internette kolayca kullanılabilen çok sayıda sunucudan daha hızlı çalışmam" gerektiğini düşünmek mantıklıdır. :)


2
Mac'lerin, DHCP kullanan bir saldırıya açık olma ihtimalleri vardır, çünkü Bash kullanmaz.

1
Bunu nasıl biliyorsun? İlk danışmanlık, savunmasız bir DHCP istemcisiydi. Birçok makale Mac OS X ve / veya iOS DHCP istemcilerinin savunmasız olabileceğini söylüyor. Aksi ispatlanmadıkça tüm sunucuların savunmasız olduğu varsayılmalıdır.
Jeff Burdges

1
Hayır, olmamalılar; bu mutlak FUD. Hem OS X'in dhcp uygulaması için açık kaynak kodunu inceleyebilir hem de doğrulamak için sistem çağrıları ölçebilirsiniz.

3
@JeffBurdges, OS X, 10.3'ten beri DHCP ile shell exec kullanmamıştır ve bundan önce sisteme bash kurulmamıştır. OS X'deki DHCP, Shellshock ile ilgili bir sorun değildir. (Endişelenecek bir şey daha var. :))
Trane Francks

1
→ Jeff: Lütfen düşünün: strings /usr/libexec/bootpd | egrep '/bin|bash've nm -a /usr/libexec/bootpd | egrep 'fork|exec'. Bu komutların çıktısını MacOS X'in farklı sürümlerinde okuyarak dhcpd, MacOS X… nedeniyle risk analizinizi yeniden değerlendirebilirsiniz … ancak bu tek başına :(.
dan

2

Bu güvenlik açığından haberdar olduğumda bu aracı yaptım . Eğer araç savunmasız olduğunuzu tespit ederse, size kabuğunuzu yamalamak için bir makaleye bağlantı sağlayacaktır.

Mac OS X 10.6 ve üstünü gerektirir.


3
Belki de sadece benim ... ama bir istismarın sınanması için rastgele birinin kodunu çalıştırma fikri, bir dize içine kolayca yapıştırabileceğiniz zaman gerçekten kötü bir fikir gibi görünüyor Terminal penceresi
Joe,

Katılıyorum, bu yüzden kaynak code.google.com/p/shellshock-check
Thomas Jones

Bazen de, birden fazla sistemi test etmek için kullanım kolaylığı sunabilir.
Thomas Jones

Bunun faydasını göremiyorum. Güvenlik açığını kontrol etmek, terminal penceresine basit bir komut satırı yapıştırarak çok daha kolaydır.
Albert Godfrind

Yine de, birden fazla makineyi test ederken, benim durumumda, benim yaptığım gibi, bir flash sürücüyü yerleştirmek ve Shellshock Check.app'i açmak, Safari'yi açmaktan, kontrol etmek için bash komutunu aramaktan, sonra Terminal'i açmaktan, yapıştırmaktan çok daha kolaydır. komutunu girin ve ardından Enter tuşuna basın. Bir flash sürücüye takmak ve bir uygulamayı açmak çok daha hızlı.
Thomas Jones
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.