Baru-baru ini, ada berita seputar "CVE-2014-6271" (Lihat USN-2362-1 ), yang merupakan kerentanan di Bash. Bagaimana saya tahu jika saya terpengaruh oleh ini, bagaimana saya bisa memperbaikinya, dan mengapa saya harus peduli?
Ini dirancang sebagai jawaban kanonik untuk kerentanan ini, karena ruang lingkup dan tingkat keparahannya.
bash
security
shellshock
ζ--
sumber
sumber
Jawaban:
Apa itu Bash?
Bash adalah shell interaktif bawaan di Ubuntu. Ketika Anda berinteraksi dengan terminal (baik melalui terminal emulator, lebih dari tty, atau ssh), Anda biasanya mengetik perintah yang
bash
akan membaca, dan mengeksekusi. Bahkan jika Anda tidak menggunakan terminal sama sekali, Anda masih memiliki Bash.Di Ubuntu,
/bin/sh
bukan bash (ini adalah tanda hubung). Hanya bash yang terpengaruh oleh kerentanan ini.Bagaimana pengaruh eksploitasi terhadap saya?
Bash dan OS melacak serangkaian variabel lingkungan yang menggambarkan pengguna yang masuk saat ini, tempat mencari program pada hard disk, dan fungsi-fungsi lainnya. Dengan membuat variabel lingkungan dengan struktur tertentu, penyerang mungkin dapat mengeksekusi kode saat Bash dimulai.
Penyerang dapat mengatur variabel lingkungan itu beberapa cara:
ForceCommand
opsi sshd adalah vektor serangan. Akun yang shellnya bukan bash tidak terpengaruh.Begitu mereka mengatur variabel ini, waktu berikutnya
bash
terbuka karena alasan apa pun, kode penyerang Anda akan dijalankan. Ini sangat menakutkansudo -s
, karena memunculkan bash sebagai super-user (aturan pengguna administratif yang memiliki kontrol penuh atas data dan program komputer Anda). Bahkan jika Anda hanya memulai bash sebagai pengguna standar, file pengguna itu dapat dihapus.Penting untuk dicatat bahwa bahkan jika Anda tidak menggunakan bash sendiri, banyak program akan menelurkan bash sendiri sebagai bagian dari operasi mereka. Bahkan dalam kasus ini, Anda rentan. Namun, Ubuntu
/bin/sh
bukan bash, jadi hanya program yang secara eksplisit memanggil bash dan bukan shell skrip default yang terpengaruh.Menurut Mitre:
Apakah saya rentan?
Gunakan dpkg untuk memeriksa versi paket yang Anda instal:
Ini akan mencari info pada
bash
paket Anda , dan memfilter output untuk hanya menampilkan versi. Versi tetap adalah4.3-7ubuntu1.4
,4.2-2ubuntu2.5
, dan4.1-2ubuntu3.4
.Sebagai contoh, saya melihat:
dan dapat menentukan bahwa saya tidak rentan.
Bagaimana cara saya memperbarui?
Manajer pembaruan standar akan menawarkan pembaruan ini kepada Anda. Ini adalah contoh utama tentang bagaimana pembaruan keamanan penting, tidak peduli OS apa yang Anda gunakan atau seberapa baik pemeliharaannya.
The USN Bulletin menyatakan bahwa versi baru telah dirilis untuk Ubuntu 14.04 Trusty Tahr, 12.04 Precise Pangolin, dan 10.04 Lucid Lynx. Jika Anda tidak menggunakan salah satu versi LTS ini, tetapi menggunakan versi yang cukup baru, kemungkinan besar Anda akan dapat menemukan paket yang ditambal.
Pertama, periksa apakah Anda
Jika Anda rentan, Anda harus terlebih dahulu mengambil daftar paket terbaru:
Perintah pertama memastikan bahwa Anda memiliki daftar paket terbaru yang menyertakan versi tetap, dan perintah kedua menginstal versi bash terbaru (tetap).
Sementara bug hanya muncul untuk bermain ketika bash muncul, masih merupakan ide bagus untuk segera reboot jika memungkinkan.
sumber
Curi ini dari cft di Hacker News . Jika Anda memiliki masalah dengan repo Anda seperti saya (Odroid-XU), maka ini akan berfungsi dengan baik jika Anda ingin menambal / membangun dari sumber.
Lalu lari:
Dan jika Anda mendapatkan:
Maka kamu semua baik-baik saja!
PERINGATAN: make install akan menginstal bash in
/usr/local/bin
, jadi/bin/bash
tidak dimodifikasi dan dapat dipanggil dari curl !!sumber
Catatan: Patch Keamanan untuk CVE-2014-7169 telah dirilis sebagai pembaruan keamanan standar. Tidak perlu menambahkan ppa tambahan untuk menerima tambalan ini. Hanya yang berikut ini yang dibutuhkan.
Untuk memastikan Anda telah menambal bash dengan benar, jalankan perintah berikut
Jika Anda menggunakan 14,04 LTS, Anda akan melihat output dari:
Jika Anda menggunakan 12,04 LTS, output Anda harus:
sumber
Jika Anda menggunakan 11,04: gunakan langkah-langkah di bawah ini (itu berhasil untuk saya)
jika tidak diperlukan tambalan yang diperlukan maka instal paket ftp
Untuk melihat apakah tambalan diterapkan:
sumber
Saya menggunakan Natty 11.04, yaitu EOL (dan saya telah memperbarui /etc/apt/sources.list untuk menggunakan old-releases.ubuntu.com), jadi saya harus membuat dari sumber. Saya ingin membangun .deb, jadi setidaknya paket kelola adalah "sadar" versi bash bukan yang default. Saya tidak 100% berhasil - namun, paket terdaftar sebagai "baru" dan
bash
biner akhirnya diperbaiki, jadi inilah yang saya lakukan:Sekarang, di direktori (sub)
bash-4.2/
, ada: filebash-4.2.tar.xz
, yang perlu diurai untuk mendapatkanbash
sumbernya; dan subdirektori bernamadebian
.Saya membuat perubahan berikut untuk menghindari ketergantungan pada
texlive
: dibash-4.2/debian/control
:... dan di
bash-4.2/debian/rules
:Untuk mengubah versi, di
bash-4.2/
direktori ini , lakukan:... dan isi catatan di changelog saat ditanya. Ini akan memastikan bahwa .deb (dan metadata terkait) dipanggil (dalam kasus saya)
bash_4.2-0ubuntu3patchCVE1_i386.deb
.Kemudian Anda dapat mencoba membangun dengan
dpkg-buildpackage -us -uc
ataudebuild
memerintahkan. Catatan - salah satu dari ini akan membongkar kembali sumber dari zip - sehingga menimpa patch yang mungkin Anda miliki! Namun, jalankan salah satu dari ini sekali sehingga sumbernya dibongkar dan dibangun (catatandebuild
mungkin masih gagal pada akhirnya karena texlive, tetapi harus membongkar dan membangun sumber).Kemudian, terapkan tambalan; perhatikan Anda harus menggunakan di
-p1
sini, karena saat ini Anda berada dibash-4.2/
direktori:Kemudian bangun kembali versi yang ditambal dengan menjalankan:
Ini akan membangun kembali executable; untuk mengujinya:
Untuk membuat file .deb, jalankan:
Ini akan menyimpan file deb di direktori induk; untuk daftar isinya:
Untuk menginstal .deb:
Namun, untuk beberapa alasan, deb.
... dan setelah itu, tes mulai lulus dengan benar untuk saya:
sumber