Làm cách nào để khắc phục lỗ hổng bảo mật Shellshock trong thử nghiệm / jessie của debian?


24

Lệnh kiểm tra

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

cho thấy cài đặt Debian 8 (Jessie) của tôi dễ bị tấn công, ngay cả với các bản cập nhật mới nhất. Nghiên cứu cho thấy rằng có một bản vá cho ổn định và không ổn định, nhưng thử nghiệm đó là chưa từng có.

Tôi nghĩ rằng bản vá sẽ khiến nó được thử nghiệm trong một vài ngày, nhưng điều này thực sự có vẻ khó chịu đến mức hoang tưởng. Có cách nào để có được gói từ không ổn định và cài đặt nó mà không phá vỡ hệ thống của tôi? Nâng cấp lên trông không ổn định sẽ gây ra nhiều vấn đề hơn nó giải quyết.


Theo Bob, có một lỗ hổng Shellshock thứ hai, được sửa trong bản vá thứ hai. Các thử nghiệm cho nó được cho là:

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

Nhưng tôi không đủ kỹ năng ở Bash để tìm hiểu điều này có nghĩa là gì hoặc tại sao nó lại là một vấn đề. Dù sao đi nữa, nó làm điều gì đó kỳ lạ, được ngăn ngừa bằng cách bash_4.3-9.2_amd64.deb trên hệ thống 64-bit, mà tại thời điểm chỉnh sửa trong ổn định và không ổn định nhưng không phải trong Jessie / thử nghiệm.

Để sửa lỗi này cho Jessie , hãy lấy Bash mới nhất từ ​​không ổn định và cài đặt nó với dpkg -i.

Jemenake cung cấp

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

như một lệnh sẽ lấy phiên bản 4.3-9.2 cho máy của bạn.

Và bạn có thể làm theo điều đó với:

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

để cài đặt nó.

Nếu bạn cần thêm các bản vá từ không ổn định cho hệ thống Jessie của mình , đây rõ ràng là cách để đi ( mutatis mutandis ).

Câu trả lời:


5

Tải về gói từ không ổn định thông qua liên kết này . Bạn cũng có thể kiểm tra các phụ thuộc ở đó, mặc dù có vẻ như bash không ổn định có cùng các phụ thuộc như bash từ kiểm tra. Cài đặt deb đã tải xuống với phần sau.

dpkg -i

1
Cảm ơn, tôi đã làm điều đó và nó đã khắc phục vấn đề mà không phá hủy đáng kể bất cứ điều gì. Có lẽ cuối cùng nó sẽ bị ghi đè trong quá trình cập nhật thông thường?
John Lawrence Aspden

3
Liên kết trên là tốt nếu bạn đang chạy một trình duyệt trong GUI. Ít hơn nếu bạn đang chạy lynx trong phiên shell. Nếu bạn muốn một cái gì đó bạn có thể dán ngay vào dòng lệnh của bạn để lấy nó, hãy thử: wget http://ftp.debian.org/debian/pool/main/b/bash/bash_4.3-9.1_$(dpkg --print-architecture).deb Nó sẽ có kiến ​​trúc phù hợp cho hộp của bạn.
Jemenake

1
@Jemenake Bạn nên đăng nó như một câu trả lời riêng biệt.
Xuất sắc

Đây chắc chắn là câu trả lời tôi muốn, nhưng bây giờ bản cập nhật đã được gửi cho Jessie, tôi nghĩ sẽ tốt hơn nếu câu trả lời được chấp nhận là thứ mà mọi người đang cần bây giờ cần, vì vậy tôi đang di chuyển. Cảm ơn mặc dù!
John Lawrence Aspden

Trên thực tế, có hai lỗi shellshock và cách khắc phục cho lỗi thứ hai hiện đang ở bên cạnh nhưng không phải là jessie, vì vậy đây thực tế vẫn là câu trả lời đúng, (chắc chắn bạn sẽ nhận được 4.3-9.2!), Mặc dù không chắc chắn tình huống sẽ giải quyết Sớm.
John Lawrence Aspden

25

Tôi đã chỉnh sửa câu trả lời này cho các bản sửa lỗi bash bổ sung được phát hành vào thứ Hai.

Đối với Ubuntu 12.04, tôi đã chạy một bản cập nhật, nhưng cũng phải chạy cài đặt cho bash để thoát khỏi lỗ hổng.

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

Lệnh đó cho thấy hệ thống dễ bị tấn công, vì vậy hãy chạy cập nhật.

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

Kiểm tra lần nữa.

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

Vẫn dễ bị tổn thương.

apt-get install -y bash

Kiểm tra lần nữa.

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

Chỉnh sửa: Sau khi các bản vá bổ sung được phát hành, đầu ra đã thay đổi.

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

Yay! Đã sửa. Điều này sẽ hoạt động cho các phiên bản khác, nhưng tôi đã không thử nghiệm nó ngoài 12.04.

Ngoài ra, trả lời của runamok dưới đây hoạt động tốt, vì vậy hãy cho anh ấy một upvote!


6
Chỉ apt-get update && apt-get install -y bashdường như làm việc.
runamok

Dựa trên câu trả lời của @JabawokJayUK Tôi vẫn thất bại trong lần thử nghiệm đầu tiên sau bản cập nhật bash trong Ubuntu 12.04.
Birla

Tôi chỉ nhận được this is a testnhưng không phải là lỗi và cảnh báo. Trong máy cục bộ của tôi, tôi nhận được lỗi, nhưng trong máy chủ của tôi thì không. Bệnh sởi đó là gì? Là máy chủ của tôi được vá? Cảm ơn bạn.
ElBaulP

Có vẻ như kho lưu trữ đã được cập nhật ngay bây giờ, vì tôi không phải thực hiện bước cài đặt apt-get -y, vấn đề đã được giải quyết sau khi nâng cấp.
dùng316566

1
Điều này thực sự không trả lời câu hỏi về kiểm tra Debian / jessie. Ubuntu là một bản phân phối khác nhau với các kho lưu trữ gói độc lập và lịch trình vá lỗi.
Bob

16

Một thay thế cho Debian 6.0 (Bóp) mà không cần tìm nạp các gói từ Debian 7 (Wheezy):

Sử dụng kho bảo mật LTS có bản vá được nhập.

Thêm cái này vào /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

Sau đó chạy apt-get update && apt-get install bash.

Thông qua: linuxquestions


Hoạt động cho debian 6. Chúng tôi luôn giữ bảo mật LTC trong danh sách!
stanleyxu2005

4

apt-get updatetrước apt-get dist-upgradevà bạn sẽ nhận được các bản vá. Chỉ cần làm điều đó một mình và đã có một nâng cấp bash đẩy khắc phục vấn đề.


2
Vấn đề là thử nghiệm Debian chưa có gói cập nhật, do đó, tải xuống thủ công từ không ổn định và cài đặt là cách khắc phục đơn giản nhất tại thời điểm đó; giải pháp đưa ra trong câu trả lời này sẽ không có hiệu quả. (Có thể đến bây giờ, vì gói có thể đã được chuyển sang thử nghiệm.)
wurtel

Điều này không trả lời câu hỏi ban đầu, nhưng đó là những gì mọi người cần làm bây giờ, vì vậy tôi chấp nhận nó để đó là điều đầu tiên mọi người sẽ nhìn thấy. Câu trả lời 'thực' cho khó khăn của tôi (không ổn định và không ổn định nhưng không thử nghiệm) là câu trả lời của wurtel bằng cách tải xuống thủ công bash mới - ????. Deb và dpkg -i.
John Lawrence Aspden

Tôi cũng nghĩ rằng đây là câu trả lời cho Ubuntu, bây giờ họ đã sửa lỗi của mình một cách chính xác và có lẽ đối với bất kỳ phân phối dựa trên debian nào khác vẫn được duy trì đến mức mọi người đã đẩy các bản sửa lỗi.
John Lawrence Aspden

Trên thực tế, có hai lỗi shellshock và bản sửa lỗi cho cái thứ hai chưa được đưa vào jessie.
John Lawrence Aspden

Đây vẫn là một giải pháp hợp lệ và sẽ duy trì miễn là nhóm bảo mật thử nghiệm Debian đang đẩy mạnh các bản cập nhật; họ có thể không có nó trong thử nghiệm tại thời điểm câu hỏi OP. Một tùy chọn khác là đặt tất cả người dùng sử dụng Dash. Đây chủ yếu là sự cố máy chủ và không
MGD_Toronto

3

Tôi đã sửa nó trên Hackffy của mình bằng cách:

$ brew install bash

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

2
đừng quên cài đặt bia trước ...
Marcos Maciel

1

Tôi đã viết một bài viết về cách thực hiện điều này với apt-get trên các phiên bản Ubuntu cũ. Về cơ bản, bạn cập nhật nguồn.list của mình lên bản mới nhất và sau đó chạy apt-get update và nâng cấp bash. Bạn có thể đọc từng bước cho từng bước hoặc sao chép nó từ đây .

Tóm lược:

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

Đọc bài viết nếu bạn sử dụng old-release.ubfox.com và đừng quên rằng bạn có thể muốn thay đổi lại:

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

Điều này sẽ rời khỏi hệ thống của bạn với Trusty trong nguồn.list. lần tới khi bạn cập nhật, hệ thống sẽ nâng cấp lên Trusty. điều này sẽ KHÔNG BAO GIỜ phá vỡ hệ thống của bạn.
strugee

1

Phiên bản cố định (xem thay đổi ) cho gói Bash hiện có trong Debian 8 (Jessie) (xem thông tin gói ), kể từ 2014-09-26 14:18 UTC.

Bản sửa lỗi thứ hai, được đề cập trong các bình luận bên dưới, cũng nằm trong kho lưu trữ của Jessie . Không cần phải cài đặt từ không ổn định. Xem liên kết thông tin gói ở trên.

Không cần phải cài đặt từ không ổn định nữa.

Chỉ cần chạy:

# aptitude update

theo dõi bởi:

# aptitude upgrade

Sau đó xác minh rằng lỗ hổng đã biến mất (trong một vỏ mới mở):

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

Chưa sửa CVE-2014-7169 tiếp theo.
Bob

@Bob, tôi nghĩ điều đó chỉ liên quan đến Ubuntu? Và có lẽ Ubuntu đã sửa nó rồi.
John Lawrence Aspden

@JohnLawrenceAspden Không. Hãy thử chạy env X='() { (a)=>\' bash -c "echo echo vuln"; [[ "$(cat echo)" == "vuln" ]] && echo "still vulnerable :("- nếu nó được in still vulnerable, thì phần sau không được vá. AFAIK, jessie vẫn dễ bị tổn thương. Lưu ý rằng lệnh đó sẽ tạo một tệp có tên echotrong thư mục hiện tại nếu thành công và bạn sẽ cần xóa nó trước khi chạy lại thử nghiệm.
Bob

@Bob, tôi không thể tạo ra cái đầu hay cái đuôi này, cái dấu chấm phẩy đang làm gì vậy?
John Lawrence Aspden

@Bob, nhưng dù có làm gì đi nữa, bạn có quyền nâng cấp lên phiên bản 4.3-9.2 không ổn định sẽ dừng lại!
John Lawrence Aspden
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.