Các phiên bản Debian kế thừa và Bash Shellshock


11

Chúng tôi đang chạy Debian Etch, Lenny và Squeeze vì việc nâng cấp chưa bao giờ được thực hiện trong cửa hàng này; chúng tôi có hơn 150 hệ thống chạy các phiên bản Debian khác nhau. Trước "cú sốc vỏ" của tuần này, tôi cho rằng tôi cần nâng cấp bash. Tôi không biết Debian nên tôi lo ngại.

Tôi có thể chỉ thực hiện apt-get install bashtrên tất cả các hệ thống Debian của mình và nhận gói Bash chính xác trong khi kho lưu trữ của tôi được trỏ vào mục Squeeze. Nếu không, tôi có cách hành động nào khác?


7
bạn có thể chọn lọc backport bash cho các hệ thống đó. nó có thể sẽ chạy ok trên chúng Nhưng bạn thực sự, thực sự, nên nâng cấp. Bạn nhận ra bất cứ điều gì cũ hơn cũ không có cập nhật bảo mật, phải không? Và hãy nhớ rằng lỗ hổng bảo mật này chỉ là một trong số rất nhiều.
Faheem Mitha

Nó thậm chí là một vấn đề? Là gì system shelltrên hệ thống đó? (Nghĩa là, vỏ bạn nhận được khi chạy systemcuộc gọi POSIX, đó là / bin / sh). Nếu / bin / sh là bash, thì bạn cần cập nhật. Nếu không ... Thì có lẽ bạn vẫn ổn (nhưng dù sao bạn cũng nên cập nhật bash)
Arafangion

Câu trả lời:


11

Bạn có tùy chọn để chỉ nâng cấp bash. Để làm như vậy, sử dụng apt-getlệnh sau :

apt-get update

Sau đó, bản cập nhật sẽ tải tất cả các bản cập nhật có sẵn chạy:

apt-get install --only-upgrade bash

Để có được các bản cập nhật trên các bản phát hành cũ hơn, chẳng hạn như Squeeze, bạn có thể sẽ cần phải thêm repo Squeeze-LTS vào nguồn của bạn.

Để thêm kho lưu trữ này, chỉnh sửa /etc/apt/sources.listvà thêm dòng sau vào cuối tệp.

deb http://ftp.us.debian.org/debian squeeze-lts main non-free contrib

Để kiểm tra một hệ thống cụ thể về các lỗ hổng (hoặc xem liệu bản nâng cấp có hoạt động không), bạn có thể kiểm tra các phiên bản bash mà bạn đang sử dụng và xem phiên bản có bị ảnh hưởng không (có thể là vậy) hoặc có rất nhiều tập lệnh kiểm tra shell có sẵn trên web.

CHỈNH SỬA 1

Để nâng cấp bashtrên Lenny hoặc Etch, hãy xem câu trả lời của Ilya Sheershoff bên dưới để biết cách biên dịch bashtừ nguồn và nâng cấp thủ công phiên bản bashmà bản phát hành của bạn đang sử dụng.

CHỈNH SỬA 2

Đây là một sources.listtập tin ví dụ từ máy chủ Squeeze tôi đã nâng cấp thành công:

deb http://ftp.us.debian.org/debian/ squeeze main
deb-src http://ftp.us.debian.org/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

# squeeze-updates, previously known as 'volatile'
deb http://ftp.us.debian.org/debian/ squeeze-updates main
deb-src http://ftp.us.debian.org/debian/ squeeze-updates main

# Other - Adding the lsb source for security updates
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

Một người mới có thể không biết họ phải chạy apt-get update trước, để có được danh mục gói mới nhất.
Brenda J. Butler

Tôi đã phải sử dụng: deb ftp.us.debian.org/debian bóp đóng góp chính để nâng cấp bash lên phiên bản 4.1-3 và sau đó sử dụng các nguồn được vá để làm cho nó không bị tổn thương.

@ BrendaJ.Butler Đề nghị tốt, tôi cũng đã thêm bước đó.
111 ---

4

Nếu apt-get installtùy chọn không hoạt động, bạn sẽ cần biên dịch lại bash từ các nguồn. Ví dụ Lenny và Etch là trong câu trả lời. Tôi chưa có máy ép, nhưng người ta có thể dễ dàng biết phải làm gì.

Các giải pháp từ TaNNkoST tôi đã tìm thấy trên mạng:

Kiểm tra số lượng bản vá có sẵn và thay đổi số trong phần "(seq" nếu có bản vá mới.

CHO LENNY

#first find out the version you have so you know what to get for the patches and source files
dpkg-query -l|grep bash
ii bash 4.1-3 The GNU Bourne Again SHell

#do this in the /usr/src dir
cd /usr/src
wget http://ftp.gnu.org/gnu/bash/bash-4.1.tar.gz
tar zxvf bash-4.1.tar.gz
cd bash-4.1

# fetch all patches, including latest ones that patches CVE-2014-6271
for i in $(seq -f "%03g" 0 14); do
wget -nv http://ftp.gnu.org/gnu/bash/bash-4.1-patches/bash41-$i
patch -p0 < bash41-$i
done

# check if yacc is installed. if not - install yacc
apt-get install bison

# configure,compile and install bash (this will install bash into /usr/local/bin/bash)
./configure && make
make install

# make a symlink from /bin/bash to the new binary
mv /bin/bash /bin/bash.old
ln -s /usr/local/bin/bash /bin/bash

# check that you're not vulnerable anymore wiith the output of the following
# it should not output vulnerable word anymore
env x='() { :;}; echo vulnerable' bash -c echo

#you can  Delete the old one thats a problem
rm /bin/bash.old

ĐỐI VỚI ETCH Tôi đã theo cùng một logic, nhưng tôi chưa yacccài đặt trên hệ thống nên tôi phải cài đặt bisongói cho nó. Đây là những gì tôi nghĩ ra:

#first find out the version you have so you know what to get for the patches and source files
dpkg-query -l|grep bash
ii bash 3.2-4 The GNU Bourne Again SHell

#do this in the /usr/src dir
cd /usr/src
wget http://ftp.gnu.org/gnu/bash/bash-3.2.tar.gz
tar zxvf bash-3.2.tar.gz
cd bash-3.2

# fetch all patches, including latest ones that patches CVE-2014-6271
for i in $(seq -f "%03g" 0 54); do
wget -nv http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-$i
patch -p0 < bash32-$i
done

# check if yacc is installed. if not - install yacc
apt-get install bison

# configure,compile and install bash (this will install bash into /usr/local/bin/bash)
./configure && make
make install

# at this point my system is not vulnerable already, test your system
env VAR='() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test"

# if this is not the case for your system - try the following

# make a symlink from /bin/bash to the new binary
mv /bin/bash /bin/bash.old
ln -s /usr/local/bin/bash /bin/bash

# check that you're not vulnerable anymore wiith the output of the following
# it should not output vulnerable word anymore
env x='() { :;}; echo vulnerable' bash -c echo

#you can Delete the old one thats a problem
rm /bin/bash.old

1
Tôi thấy tôi đã gặp lỗi make: yacc: Command not foundcho giải pháp Lenny và đã sửa nó bằng cách sử dụng apt-get install bison.
SharpC

1

Không chắc chắn nếu bạn muốn tin tưởng các gói này nhưng ai đó đã xây dựng các gói cho gỗ (3.0), sund (3.1), etch (4.0) và lenny (5.0). Họ có sẵn ở đây:

http://blog.bofh.it/debian/id_451

Hãy cẩn thận, không có kho lưu trữ để cài đặt các gói này thông qua apt-get. Bạn cần sử dụng dpkghoặc tạo kho lưu trữ cục bộ của riêng bạn.


" Nếu bạn muốn tin tưởng các gói này "? Họ đã ký với khóa GPG của Nhà phát triển Debian. Cũng giống như bất kỳ gói Debian chính thức nào khác .
peppe

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.