Thứ năm, 25/09/2014 | 00:00 GMT+7

Cách bảo vệ server của bạn trước lỗ hổng bảo mật do Shellshock Bash

Vào ngày 24 tháng 9 năm 2014, một lỗ hổng GNU Bash, được gọi là Shellshock hoặc “Bash Bug”, đã được tiết lộ. Nói tóm lại, lỗ hổng bảo mật cho phép những kẻ tấn công từ xa thực thi mã tùy ý với các điều kiện nhất định, bằng cách chuyển các chuỗi mã sau các phép gán biến môi trường. Do tình trạng phổ biến của Bash trong số các bản phân phối Linux, BSD và Mac OS X, nhiều máy tính dễ bị tấn công bởi Shellshock; tất cả các version Bash chưa được vá trong repository ảng từ 1.14 đến 4.3 (tức là tất cả các bản phát hành cho đến thời điểm hiện tại) đều có nguy cơ.

Lỗ hổng Shellshock có thể bị khai thác trên các hệ thống đang chạy Dịch vụ hoặc ứng dụng cho phép user từ xa trái phép gán các biến môi trường Bash. Ví dụ về các hệ thống có thể khai thác bao gồm:

  • Server Apache HTTP sử dụng tập lệnh CGI (thông qua mod_cgimod_cgid ) được viết bằng Bash hoặc chạy tới các trang con Bash
  • Một số ứng dụng client DHCP
  • Server OpenSSH sử dụng khả năng ForceCommand
  • Các dịch vụ tiếp xúc với mạng khác nhau sử dụng Bash

Bạn có thể tìm thấy mô tả chi tiết về lỗi này tại CVE-2014-6271 , CVE-2014-7169 , CVE-2014-7186CVE-2014-7187 .

Vì lỗ hổng Shellshock rất phổ biến - thậm chí còn hơn cả lỗi OpenSSL Heartbleed - và đặc biệt dễ khai thác, nên các hệ thống bị ảnh hưởng được cập nhật đúng cách để khắc phục hoặc giảm thiểu lỗ hổng càng sớm càng tốt. Ta sẽ hướng dẫn bạn cách kiểm tra xem máy của bạn có lỗ hổng hay không và cách cập nhật Bash để loại bỏ lỗ hổng bảo mật.

Kiểm tra lỗ hổng hệ thống

Trên mỗi hệ thống của bạn chạy Bash, bạn có thể kiểm tra lỗ hổng Shellshock bằng cách chạy lệnh sau tại dấu nhắc bash:

env 'VAR=() { :;}; echo Bash is vulnerable!' 'FUNCTION()=() { :;}; echo Bash is vulnerable!' bash -c "echo Bash Test" 

echo Bash is vulnerable! đánh dấu echo Bash is vulnerable! một phần của lệnh thể hiện nơi kẻ tấn công từ xa có thể đưa mã độc vào; mã tùy ý theo sau một định nghĩa hàm trong phép gán biến môi trường. Do đó, nếu bạn thấy kết quả sau, version Bash của bạn dễ bị tấn công và cần được cập nhật :

Bash is vulnerable! Bash Test 

Nếu kết quả của bạn không bao gồm trọng tải của kẻ tấn công mô phỏng, tức là "Bash dễ bị tấn công" không được in dưới dạng kết quả , bạn được bảo vệ khỏi ít nhất lỗ hổng đầu tiên ( CVE-2014-6271 ), nhưng bạn có thể dễ bị tấn công bởi các CVE khác đã được phát hiện sau đó. Nếu có bất kỳ cảnh báo hoặc lỗi bash nào trong kết quả , bạn nên cập nhật Bash lên version mới nhất; quá trình này được mô tả trong phần tiếp theo.

Nếu điều duy nhất được xuất ra từ lệnh kiểm tra là như sau, thì Bash của bạn an toàn khỏi Shellshock:

Bash Test 

Kiểm tra các trang web từ xa

Nếu bạn chỉ muốn kiểm tra xem các trang web hoặc tập lệnh CGI cụ thể có dễ bị tấn công hay không, hãy sử dụng liên kết này: 'ShellShock' Bash Vulnerability Tool CVE-2014-6271 Test Tool .

Chỉ cần nhập URL của trang web hoặc tập lệnh CGI bạn muốn kiểm tra vào biểu mẫu thích hợp và gửi.

Khắc phục lỗ hổng bảo mật: Cập nhật Bash

Cách dễ nhất để sửa lỗ hổng là sử dụng trình quản lý gói mặc định của bạn để cập nhật version Bash. Các phần phụ sau đây bao gồm cập nhật Bash trên các bản phân phối Linux khác nhau, bao gồm Ubuntu, Debian, CentOS, Red Hat và Fedora.

APT-GET: Ubuntu / Debian

Đối với các version Ubuntu hoặc Debian hiện được hỗ trợ, hãy cập nhật Bash lên version mới nhất hiện có qua apt-get :

sudo apt-get update && sudo apt-get install --only-upgrade bash 

Bây giờ hãy kiểm tra lại lỗ hổng hệ thống của bạn bằng cách chạy lệnh trong phần trước ( Kiểm tra lỗ hổng hệ thống ).

Bản phát hành Ubuntu / Debian End of Life

Nếu bạn đang chạy một version của Ubuntu / Debian được coi là chấm dứt tình trạng cuộc sống, bạn sẽ phải nâng cấp lên được hỗ trợ để sử dụng quản lý gói để cập nhật Bash. Lệnh sau được dùng để nâng cấp lên bản phát hành mới (bạn nên backup server và dữ liệu quan trọng của bạn trước, trong trường hợp bạn gặp phải sự cố nào ):

sudo do-release-upgrade 

Sau khi nâng cấp xong, hãy đảm bảo bạn cập nhật Bash.

YUM: CentOS / Red Hat / Fedora

Cập nhật Bash lên version mới nhất hiện có qua yum :

sudo yum update bash 

Bây giờ hãy kiểm tra lại lỗ hổng hệ thống của bạn bằng cách chạy lệnh trong phần trước ( Kiểm tra lỗ hổng hệ thống ).

Bản phát hành CentOS / Red Hat / Fedora End of Life

Nếu bạn đang chạy một version của CentOS / Red Hat / Fedora được coi là chấm dứt tình trạng cuộc sống, bạn sẽ phải nâng cấp lên được hỗ trợ để sử dụng quản lý gói để cập nhật Bash. Lệnh sau được dùng để nâng cấp lên bản phát hành mới (bạn nên backup server và dữ liệu quan trọng của bạn trước, trong trường hợp bạn gặp phải sự cố nào ):

sudo yum update 

Sau khi nâng cấp xong, hãy đảm bảo bạn cập nhật Bash.

Kết luận

Đảm bảo cập nhật tất cả các server bị ảnh hưởng của bạn lên version Bash mới nhất! Ngoài ra, hãy đảm bảo giữ cho server của bạn được cập nhật các bản cập nhật bảo mật mới nhất!


Tags:

Các tin liên quan

Cách cài đặt server Percona mới hoặc thay thế MySQL
2014-09-18
Cách cài đặt puppet để quản lý cơ sở hạ tầng server của bạn
2014-08-15
Cách cấu hình BIND làm server DNS Mạng riêng trên Ubuntu 14.04
2014-08-12
Cách cấu hình BIND làm server DNS Mạng riêng trên Ubuntu 14.04
2014-08-12
Thiết lập server ban đầu với CentOS 7
2014-07-21
Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên CentOS 7
2014-07-21
Cách sử dụng NSD, một server DNS chỉ ủy quyền, trên Ubuntu 14.04
2014-07-03
Cách cấu hình bind server lưu trữ hoặc chuyển tiếp DNS trên Ubuntu 14.04
2014-07-01
cách cấu hình bind làm server DNS chỉ ủy quyền trên Ubuntu 14.04
2014-07-01
So sánh các loại server DNS: Cách chọn cấu hình DNS phù hợp
2014-07-01