Debian test / jessie'de Shellshock güvenlik açığını nasıl düzeltirim?


24

Test komutu

x='() { :;}; echo vulnerable' bash

Debian 8 (Jessie) kurulumumun en son güncellemelerle bile savunmasız olduğunu gösteriyor . Araştırmalar istikrarlı ve dengesizlik için bir yama olduğunu, ancak testin lekesiz olduğunu gösteriyor.

Yama birkaç gün içinde test etmeyi başaracak, ancak bu aslında paranoyak olmak için yeterince kötü görünüyor. Paketi dengesiz hale getirip sistemimi bozmadan kurmanın bir yolu var mı? Kararsız görünüme geçmek, çözdüğünden daha fazla soruna neden olur.


Bob'a göre, ikinci bir yamada sabitlenmiş ikinci bir Shellshock güvenlik açığı var. Bunun için test olması gerekiyordu:

 env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("

Ancak Bash'in bunun ne anlama geldiğini ya da neden bir problem olduğunu çözecek kadar yetenekli değilim. Her halükarda, bash_4.3-9.2_amd64.deb tarafından 64-bit sistemler üzerinde yapılan ve düzenleme sırasında sabit ve kararsız olan ancak Jessie / testte olmayan, garip bir şey yapıyor .

Jessie için bunu düzeltmek için kararsız olandan en son Bash'i al ve onu yükle dpkg -i.

Jemenake teklifleri

wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.2_$(dpkg --print-architecture).deb

Makineniz için 4.3-9.2 sürümünü alacak bir komut olarak.

Ve bunu takip edebilirsiniz:

sudo dpkg -i bash_4.3-9.2_$(dpkg --print-architecture).deb

yüklemek için.

Jessie sisteminiz için dengesiz olanlardan başka yamalara ihtiyacınız varsa , bu kesinlikle açık yoldur ( mutatis mutandis ).

Yanıtlar:


5

Paketi bu link üzerinden dengesiz olarak indirin . Oradaki bağımlılıkları da kontrol edebilirsiniz, ancak dengesiz bash'in test edilen bash ile aynı bağımlılığa sahip olmasına rağmen. İndirilen debiyi aşağıdaki gibi yükleyin.

dpkg -i

1
Teşekkürler, bunu yaptım ve hiçbir şeyi belirgin biçimde yok etmeden sorunu düzeltti. Muhtemelen sonunda normal güncelleme sürecinde üzerine yazılacak?
John Lawrence Aspden

3
Bir GUI'de bir tarayıcı çalıştırıyorsanız yukarıdaki bağlantı iyidir. Daha az, eğer bir kabuk oturumunda lynx kullanıyorsanız. Kapmak için komut satırınıza yapıştırabileceğiniz bir şey istiyorsanız, şunu deneyin: wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.1_$(dpkg --print-architecture).deb Kutunuz için doğru mimariyi alır.
Jemenake

1
@Jemenake Bunu ayrı bir cevap olarak göndermelisiniz.
Excellll

Bu kesinlikle istediğim cevaptı, ancak şimdi güncelleme Jessie'ye yaptı, kabul edilen cevap şu anda ihtiyacı olan kişi ise daha iyi, sanırım keneyi hareket ettiriyorum. Yine de teşekkürler!
John Lawrence Aspden

Aslında, iki kabuklu böcek var ve ikincisi için düzeltme şu anda sid, ancak jessie değil, bu yüzden durum hala çözülecek olmasına rağmen (hala 4.3-9.2'yi aldığınızdan emin olun!) yakında.
John Lawrence Aspden

25

Bu cevabı Pazartesi günü yayımlanan ek bash düzeltmeleri için düzenledim.

Ubuntu 12.04 için bir güncelleme yaptım, ancak güvenlik açığından kurtulmak için bash kurulumunu da çalıştırmak zorunda kaldım.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

Bu komut sistemin savunmasız olduğunu gösterir, bu yüzden güncellemeyi çalıştırın.

apt-get update && apt-get -y upgrade

Tekrar test et.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

Hala savunmasız.

apt-get install -y bash

Tekrar test et.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

Düzenleme: Ek yamalar yayınlandıktan sonra çıktı değişti.

root@host:/home/ubuntu# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test

Yuppi! Sabit. Bu, diğer sürümler için çalışmalıdır, ancak 12.04'ün ötesinde test etmedim.

Ayrıca, runamok'un aşağıdaki yanıtı iyi çalışıyor, bu yüzden ona bir oy ver!


6
Sadece apt-get update && apt-get install -y bashiş gibi görünüyor.
runamok

@JabawokJayUK tarafından verilen cevaba dayanarak Ubuntu 12.04'deki bash güncellemesinden sonra hala ilk testi geçemiyorum.
Birla

Ben sadece this is a testhata alıyorum ve uyarmıyorum. Yerel makinemde hata alıyorum ancak sunucumda bulamadım. Bu ne ölçüyor? Sunucum yamalı mı? Teşekkür ederim.
ElBaulP

Deponun güncel olduğu anlaşılıyor, çünkü apt-get install işlemini yapmak zorunda değildim, bir adım, sorun yükseltme işleminden sonra çözüldü.
user316566

1
Bu gerçekten Debian testi / jessie hakkındaki soruya cevap vermiyor . Ubuntu bağımsız paket havuzları ve yama programları ile farklı bir dağıtımdır.
Bob

16

Debian 7'den (Wheezy) paket almaya gerek kalmadan Debian 6.0 (Squeeze) için bir alternatif:

Düzeltme ekinin desteklendiği LTS güvenlik deposunu kullanın.

Şunu ekle /etc/apt/sources.list:

#LTS security
deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free

O zaman koş apt-get update && apt-get install bash.

Üzerinden: linuxquestions


Debian için çalışıyor 6. Listede LTC güvenliğini her zaman tutardık!
stanleyxu2005 28:14

4

apt-get updateönce apt-get dist-upgradeve yamayı alacaksın. Sadece kendim yaptım ve sorunu gideren bir bash yükseltme yapıldı.


2
Sorun, Debian testinin henüz güncellenmiş pakete sahip olmamasıydı, bu yüzden onu dengesiz bir şekilde manuel olarak indirmek ve o zamanlar en basit düzeltme olan kurulum; Bu cevapta verilen çözüm işe yaramazdı. (Belki şimdiye kadar olacak, çünkü paket test etmeye göç etmiş olabilir.)
wurtel

Bu asıl soruya cevap vermiyor, ama insanların şimdi yapmaları gereken şey bu yüzden insanların göreceği ilk şey olması için kabul ediyorum. Zorluğumun 'gerçek' cevabı (dengesiz ve istikrarlı fakat testte değil) yeni bash elle indirmeyi kullanarak wurtel'in cevabı - ????. Deb ve dpkg -i.
John Lawrence Aspden

Ayrıca bunun Ubuntu’nun cevabı olduğunu düşünüyorum, şimdi düzeltmelerini düzgün bir şekilde ittiler ve muhtemelen hala insanların düzeltmeleri bastırdığı noktaya devam eden debian temelli herhangi bir dağıtım için.
John Lawrence Aspden

Aslında iki tane el çantası kovanı böceği var ve ikincinin düzeltmesi henüz jessie'ye yapamadı.
John Lawrence Aspden

Bu hala geçerli bir çözümdür ve Debian test güvenlik ekibi güncellemeleri bastırdığı sürece kalacaktır; OP sorusu sırasında sınavda bulunmamış olabilirler. Diğer bir seçenek de tüm kullanıcıları Dash’i kullanmaya ayarlamak. Bu esas olarak bir sunucu sorunudur ve değil
MGD_Toronto


1

Eski Ubuntu sürümlerinde apt-get ile bunun nasıl yapılacağı hakkında bir makale yazdım. Temel olarak sources.list'inizi en yenisine günceller, daha sonra apt-get update ve upgrade bash komutunu çalıştırırsınız. Adım için okuyabilir veya buradan kopyalayabilirsiniz .

Özet:

sudo sed -i 's/YOUR_OS_CODENAME/trusty/g' /etc/apt/sources.list
sudo apt-get update
sudo apt-get install --only-upgrade bash

Old-releases.ubuntu.com kullanıyorsanız makaleyi okuyun ve tekrar değiştirmek isteyebileceğinizi unutmayın:

sudo sed -i 's/trusty/YOUR_OS_CODENAME/g' /etc/apt/sources.list

uh… bu sisteminizi güvencesizde sources.list içerisinde bırakacaktır. bir dahaki sefere güncelleme, sistem Güven'e yükseltir. Bu, sisteminizi ciddi olarak kıracak.
strugee

1

Bash paketi için sabit sürüm (bakınız changelog ) şimdi Debian 8'de (Jessie) (bkz. Paket bilgileri ), 2014-09-26 14:18 UTC'den itibaren.

Aşağıdaki açıklamalarda belirtilen ikinci düzeltme şu anda Jessie deposunda. Dengesiz den yüklemek için gerek yoktur. Yukarıdaki paket bilgileri bağlantısına bakın.

Artık dengesiz olanlardan kurulum yapmaya gerek yoktur.

Sadece koş:

# aptitude update

bunu takiben:

# aptitude upgrade

Ardından, güvenlik açığının kaybolduğunu doğrulayın (yeni açılan bir kabukta):

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'

Henüz CVE-2014-7169 takibini çözmedi.
Bob

@Bob, bence sadece Ubuntu ile alakalı mı? Muhtemelen Ubuntu zaten düzeltti.
John Lawrence Aspden

@JohnLawrenceAspden Hayır. Koşmayı deneyin env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("- yazdırıyorsa still vulnerable, son vuln henüz eklenmiş değildir. AFAIK, jessie hala savunmasız. echoBaşarılı olursa , bu komutun geçerli dizinde bir dosya oluşturacağını ve testi yeniden çalıştırmadan önce silmeniz gerekeceğini unutmayın.
Bob

@Bob, bunun kafasını veya kuyruğunu yapamıyorum, noktalı virgül ne yapıyor?
John Lawrence Aspden

@Bob, ama ne yaparsa yapsın, dengesiz bir şekilde 4.3-9.2 sürümüne yükseltme yapmak doğru değil!
John Lawrence Aspden
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.