Chủ Nhật, 28 tháng 9, 2014

Tất cả máy Mac và Linux đều có lỗ hổng bảo mật nghiêm trọng ShellShock - Đây là Hướng dẫn khắc phục

1.
Lỗ hổng bảo mật này đang được đánh giá là cực kỳ nghiêm trọng (độ nguy hiểm 10/10 do National Cyber Awareness System đánh giá) Tên mã của nó là CVE-2014-6271, tên thường gọi là Shellshock. Lỗi này ảnh hưởng đến tất cả các máy Linux và Unix, tức là Mac và các máy chạy Linux đều bị ảnh hưởng, theo chuyên gia, lỗi này tồn tại đã 20 năm nay.

Hiểu nôm na, Shell là một chương trình giúp bạn giao tiếp với máy tính, khi hiểu rõ shell và dòng lệnh, bạn có thể làm rất nhiều điều nguy hiểm và cao cấp với máy tính của bạn, bạn thường phải dùng một giao diện dòng lệnh để chạy Shell, trên Linux thì có nhiều giao diện, có thể là Bash, CSH vv và vv, Nếu Bash là chương trình shell mặc định của máy bạn, bạn đang có nguy cơ bị tấn công. Hacker có thể dùng một script đơn giản qua mạng, truy cập máy bạn, và không cần mật khẩu hay gì cả, họ có thể truy cập file, chạy phần mềm, đánh cắp thông tin vv và vv.

Nhiều nhà phát hành Linux (ví dụ Redhat) đã có bản nâng cấp cho Bash để vá lỗi, Apple vừa mới tung ra bản cập nhật 10.9.5 tuy nhiên lỗi này vẫn chưa được vá, có lẽ bản cập nhật sau của Apple sẽ sớm khắc phục việc này

Nếu bạn lo lắng Mac cá nhân của bạn sẽ có ai tấn công, nếu bạn không muốn để mặc một nguy cơ mà không sửa thì mời bạn đọc tiếp, ở dưới có hướng dẫn tự sửa.

Bạn có thể mở Terminal và chạy thử dòng sau đây để thử xem máy bạn có bị gặp nguy không

env x='() { :;}; echo vulnerable' bash -c "echo You are in danger - Testing - "

Nếu máy bạn đã được vá lỗi, Terminal sẽ trả về như sau:

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
You are in danger - Testing


Nếu máy bạn vẫn đang dính lỗi bảo mật Shellshock, Terminal sẽ trả về:

vulnerable
You are in danger - Testing


1.
Thử nghiệm cho thấy máy của mình đang bị lỗi bảo mật Shellshock

Như mình có nói ở trên, nhiều nhà phát hành Linux đã và đang cập nhật hệ thống để vá lỗi, còn Apple thì vẫn chưa, nếu bạn lo lắng, bạn có thể cập nhật thủ công GNU bash của bạn lên phiên bản mới hơn

Kiểm tra xem Bash hiện tại của bạn phiên bản bao nhiêu
Bạn mở Terminal và gõ vào:

bash --version

Nếu trả về là phiên bản GNU bash, version 3.2.51(1)-release, bạn nên nâng cấp lên phiên bản mới nhất của bash 3.2 (là bản 3.2.52)

2.
Máy của mình đang ở phiên bản 3.2.51(1) - Là phiên bản dính lỗi bảo mật nghiêm trọng

Chú ý là có nhiều nhánh phiên bản Bash, do Mac OS X chạy trên nhánh 3.2 nên bài viết này sẽ đi theo hướng đó, các bạn chạy Linux xin xem hướng dẫn ở đây

Cập nhật bản Bash bằng cách thủ công
Sau đây là hướng dẫn cập nhật thủ công Bash, yêu cầu là máy của bạn phải có Apple Xcode, bạn tải về miễn phí trên AppStore trước khi tiến hành.

Bước 1. Tải và compile Patch
Sau khi đã cài Xcode, bạn chạy Xcode lần đầu để đồng ý các điều khoản, sau đó tắt đi, mở Terminal và nhập các dòng lệnh sau đây vào, sau mỗi dòng lệnh bạn cần nhấn return
Quá trình này có thể sẽ mất thời gian nếu internet của bạn chậm, nếu thành công, bạn sẽ thấy thông báo BUILD SUCCEEDED

4.

Lúc này bạn có thể kiểm tra xem phiên bản mới là bao nhiêu bằng dòng lệnh sau, nếu là 3.2.52(1) Như phía trên hình là thành công

build/Release/bash --version
build/Release/sh --version


Đề phòng bất trắc, bạn có thể backup lại bash cũ bằng hai dòng lệnh sau

sudo cp /bin/bash /bin/bash.old
sudo cp /bin/sh /bin/sh.old


Sau khi backup bash cũ, chúng ta tiến gán bản mới cài thành phiên bản mặc định cho máy bằng 2 dòng lệnh:

sudo cp build/Release/bash /bin
sudo cp build/Release/sh /bin


Sau khi xong, bạn chạy lại thử câu lúc nãy dùng để thử máy:

env x='() { :;}; echo vulnerable' bash -c "echo You are in danger - Testing - "


Máy sẽ trả về
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
You are in danger - Testing -


5.

Thành công rồi

Chúc các bạn may mắn!

Theo WonderHowTo