Bagaimana cara memperbaiki kerentanan keamanan Shellshock dalam pengujian / jessie debian?

24

Perintah tes

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

menunjukkan bahwa instalasi Debian 8 (Jessie) saya rentan, bahkan dengan pembaruan terbaru. Penelitian menunjukkan bahwa ada tambalan untuk stabil dan tidak stabil, tetapi pengujian tidak ditambal.

Saya pikir patch akan membuatnya untuk pengujian dalam beberapa hari, tetapi ini sebenarnya terlihat cukup buruk untuk menjadi paranoid. Apakah ada cara untuk mendapatkan paket dari tidak stabil dan menginstalnya tanpa merusak sistem saya? Meng-upgrade menjadi tidak stabil sepertinya akan menyebabkan lebih banyak masalah daripada menyelesaikannya.


Menurut Bob, ada kerentanan Shellshock kedua, yang diperbaiki di tambalan kedua. Tes untuk itu seharusnya:

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

Tapi saya tidak cukup terampil dalam Bash untuk mengetahui apa artinya ini atau mengapa itu menjadi masalah. Bagaimanapun, ia melakukan sesuatu yang aneh, yang dicegah oleh bash_4.3-9.2_amd64.deb pada sistem 64-bit, yang pada saat mengedit dalam keadaan stabil dan tidak stabil tetapi tidak dalam Jessie / testing.

Untuk memperbaiki ini untuk Jessie , dapatkan Bash terbaru dari tidak stabil dan instal dengannya dpkg -i.

Jemenake menawarkan

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

sebagai perintah yang akan mendapatkan versi 4.3-9.2 untuk mesin Anda.

Dan Anda dapat mengikutinya dengan:

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

untuk menginstalnya.

Jika Anda memerlukan tambalan lebih lanjut dari tidak stabil untuk sistem Jessie Anda , ini jelas cara yang harus dilakukan ( mutatis mutandis ).

John Lawrence Aspden
sumber

Jawaban:

5

Unduh paket dari tidak stabil melalui tautan ini . Anda dapat memeriksa dependensi di sana juga, meskipun tampaknya bash tidak stabil memiliki dependensi yang sama dengan bash dari pengujian. Instal deb yang diunduh dengan yang berikut ini.

dpkg -i
Wurtel
sumber
1
Terima kasih, saya melakukan itu dan memperbaiki masalah tanpa merusak apa pun. Mungkin akhirnya akan ditimpa dalam pembaruan normal?
John Lawrence Aspden
3
Tautan di atas baik-baik saja jika Anda menjalankan browser di GUI. Kurang jadi jika Anda menjalankan lynx dalam sesi shell. Jika Anda menginginkan sesuatu yang dapat Anda tempelkan ke baris perintah untuk mengambilnya, coba: wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.1_$(dpkg --print-architecture).deb Ini akan mendapatkan arsitektur yang tepat untuk kotak Anda.
Jemenake
1
@Jakeake Anda harus memposting itu sebagai jawaban terpisah.
Excellll
Ini pastinya jawaban yang saya inginkan, tetapi sekarang setelah pembaruannya sampai ke Jessie, saya pikir lebih baik jika jawaban yang diterima adalah yang dicari orang sekarang, jadi saya menggerakkan tanda centang. Terimakasih Meskipun!
John Lawrence Aspden
Sebenarnya, ada dua bug shellshock, dan perbaikan untuk bug kedua sekarang di sid tapi tidak jessie, jadi ini sebenarnya masih jawaban yang tepat, (pastikan Anda mendapatkan 4.3-9.2!), Walaupun pasti situasinya akan menyelesaikan segera.
John Lawrence Aspden
25

Saya telah mengedit jawaban ini untuk perbaikan bash tambahan yang dirilis pada hari Senin.

Untuk Ubuntu 12.04, saya menjalankan pembaruan, tetapi juga harus menjalankan instalasi untuk bash untuk menghilangkan kerentanan.

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

Perintah itu menunjukkan sistem rentan, jadi jalankan pembaruan.

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

Tes lagi.

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

Masih rentan.

apt-get install -y bash

Tes lagi.

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

Sunting: Setelah tambalan tambahan dirilis, hasilnya telah berubah.

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

Yay! Tetap. Ini seharusnya berfungsi untuk versi lain, tetapi saya belum mengujinya di atas 12,04.

Juga, balasan runamok di bawah ini berfungsi dengan baik, jadi beri dia dukungan!

Tom Damon
sumber
6
Hanya apt-get update && apt-get install -y bashtampaknya bekerja.
runamok
Berdasarkan jawaban oleh @JabawokJayUK saya masih gagal pada tes pertama setelah pembaruan bash di Ubuntu 12.04.
Birla
Saya hanya mendapatkan this is a testtetapi bukan kesalahan dan peringatan. Di mesin lokal saya, saya mendapatkan kesalahan, tetapi di server saya tidak. Apa artinya itu? Apakah server saya ditambal? Terima kasih.
ElBaulP
Sepertinya repositori sudah mutakhir sekarang, karena saya tidak harus melakukan langkah apt-get install -y, masalah sudah diselesaikan setelah upgrade.
user316566
1
Ini benar-benar tidak menjawab pertanyaan tentang pengujian Debian / jessie. Ubuntu adalah distribusi yang berbeda dengan repositori paket independen dan jadwal perbaikan.
Bob
16

Alternatif untuk Debian 6.0 (Squeeze) tanpa mengambil paket dari Debian 7 (Wheezy):

Gunakan repositori keamanan LTS yang tambalannya di-backport.

Tambahkan ini ke /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

Kemudian jalankan apt-get update && apt-get install bash.

Melalui: pertanyaan linux

poncha
sumber
Bekerja untuk debian 6. Kami selalu menjaga keamanan LTC dalam daftar!
stanleyxu2005
4

apt-get updatesebelum apt-get dist-upgradedan Anda akan mendapatkan tambalan. Lakukan saja sendiri dan ada peningkatan bash push yang memperbaiki masalah.

MGD_Toronto
sumber
2
Masalahnya adalah bahwa pengujian Debian belum memiliki paket yang diperbarui, jadi mengunduhnya secara manual dari tidak stabil dan menginstal itu adalah perbaikan paling sederhana saat itu; solusi yang diberikan dalam jawaban ini tidak akan berhasil. (Mungkin sekarang sudah, karena paket mungkin telah bermigrasi ke pengujian.)
wurtel
Ini tidak menjawab pertanyaan awal, tetapi itulah yang perlu dilakukan orang sekarang, jadi saya menerimanya sehingga itu hal pertama yang akan dilihat orang. Jawaban 'nyata' untuk kesulitan saya (tidak stabil dan stabil tetapi tidak dalam pengujian) adalah jawaban wurtel menggunakan unduhan manual bash baru - ????. Deb dan dpkg -i.
John Lawrence Aspden
Saya juga berpikir ini adalah jawaban untuk Ubuntu, sekarang mereka telah mendorong perbaikan mereka dengan benar, dan mungkin untuk distribusi berbasis debian lainnya yang masih dipertahankan sampai pada titik di mana orang telah mendorong perbaikan.
John Lawrence Aspden
Sebenarnya ada dua bug shellshock dan perbaikan untuk bug kedua belum sampai ke jessie.
John Lawrence Aspden
Ini masih merupakan solusi yang valid dan akan tetap selama tim keamanan pengujian Debian mendorong pembaruan; mereka mungkin tidak memilikinya dalam pengujian pada saat pertanyaan OP. Satu opsi lain adalah mengatur semua pengguna untuk menggunakan Dash. Ini terutama masalah server dan bukan
MGD_Toronto
3

Saya memperbaikinya di Hackintosh saya dengan:

$ brew install bash

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
bash-4.3$ 
Marcos Maciel
sumber
2
jangan lupa untuk menginstal minuman sebelum ...
Marcos Maciel
1

Saya telah menulis artikel tentang cara melakukan ini dengan apt-get di versi Ubuntu lama. Anda pada dasarnya memperbarui sumber Anda. Daftar ke yang terbaru dan kemudian jalankan pembaruan apt-get dan tingkatkan bash. Anda dapat membacanya langkah demi langkah atau menyalinnya dari sini .

Ringkasan:

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

Baca artikel jika Anda menggunakan old-releases.ubuntu.com dan jangan lupa bahwa Anda mungkin ingin mengubahnya kembali:

sudo sed -i 's/trusty/YOUR_OS_CODENAME/g' /etc/apt/sources.list
Erik Duindam
sumber
eh ... ini akan meninggalkan sistem Anda dengan Trusty di sources.list. lain kali Anda memperbarui, sistem akan meningkatkan ke Trusty. ini akan sangat merusak sistem Anda.
strugee
1

Versi tetap (lihat changelog ) untuk paket Bash ada di Debian 8 (Jessie) sekarang (lihat info paket ), mulai 2014-09-26 14:18 UTC.

Perbaikan kedua, yang disebutkan dalam komentar di bawah, juga ada di repositori Jessie sekarang. Tidak perlu menginstal dari tidak stabil. Lihat tautan informasi paket di atas.

Tidak perlu menginstal dari tidak stabil lagi.

Lari saja:

# aptitude update

diikuti oleh:

# aptitude upgrade

Kemudian verifikasi bahwa kerentanan sudah hilang (di shell yang baru dibuka):

$ x='() { :;}; echo vulnerable' bash
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
dubadu
sumber
Belum memperbaiki tindak lanjut CVE-2014-7169.
Bob
@ Bob, saya pikir itu hanya relevan untuk Ubuntu? Dan mungkin Ubuntu sudah memperbaikinya.
John Lawrence Aspden
@JohnLawrenceAspden Nggak. Coba jalankan env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("- jika itu mencetak still vulnerable, maka yang terakhir belum ditambal. AFAIK, jessie masih rentan. Perhatikan bahwa perintah itu akan membuat file bernama echodi direktori saat ini jika berhasil, dan Anda harus menghapusnya sebelum menjalankan kembali tes.
Bob
@ Bob, saya tidak bisa membuat kepala atau ekor ini, apa yang sampai dengan titik koma lakukan?
John Lawrence Aspden
@ Bob, tapi apa pun fungsinya, Anda benar bahwa memutakhirkan ke versi 4.3-9.2 dalam keadaan tidak stabil menghentikannya!
John Lawrence Aspden