Lỗ hổng nghiêm trọng gây rò rỉ khóa bí mật trong OpenSSH

08:20 | 22/01/2016

Một lỗ hổng bảo mật nghiêm trọng đã được phát hiện trong OpenSSH - một trong những phần mềm mã nguồn mở phổ biến nhất hiện nay, được sử dụng trong việc mã hóa giao dịch sử dụng giao thức SSH.



Lỗ hổng này nằm trong một đoạn mã nhằm thiết lập thử nghiệm tính năng chuyển vùng roaming trong OpenSSH từ phiên bản 5.4 đến 7.1 cho phép người dùng thực hiện tiếp tục kết nối. Tuy nhiên, tính năng chuyển vùng roaming có chứa 2 lỗ hổng khác nhau: CVE-2016-0777 (An information sharing flaw) và CVE-2016-0778 (A less harmless buffer overflow flaw).

Lỗ hổng nghiêm trọng này có thể bị tin tặc khai thác, gây rò rỉ các khóa bí mật (secret private cryptographic keys) của các máy client. Từ đó, kẻ tấn công có khả năng thực hiện tấn công Man-in-the-Middle. Bằng việc sử dụng một máy chủ OpenSSH chứa mã độc để đánh lừa một máy client bị ảnh hưởng và lấy cắp SSH key khi client thực hiện đăng nhập.

Lỗ hổng này ảnh hưởng đến người dùng đang sử dụng OpenSSH client trên hầu hết các hệ điều hành phổ biến bao gồm cả Linux, FreeBSD, Mac OSX và Windows. Tuy nhiên, lỗ hổng này không ảnh hưởng đến chương trình PuTTY trên Windows.

Trong bản tin bảo mật ngày 14/1/2015, OpenSSH cho biết: "Đoạn mã thử nghiệm không có trên phiên bản máy chủ, nhưng được kích hoạt trong phiên bản người dùng cuối và có thể bị một máy chủ độc hại lừa đảo gây rò rỉ bộ nhớ máy khách đến máy chủ độc hại đó, bao gồm khóa bí mật của người dùng. Xác thực khóa server giúp ngăn chặn việc khai thác bởi một kẻ tấn công man-in-the-middle, do đó thông tin rò rỉ bị giới hạn trong các kết nối đến các máy chủ độc hại hoặc đã bị phá hoại".

Theo thông báo này, OpenSSL đã cập nhật bản vá các lỗ hổng bảo mật trong phiên bản 7.1p2. Phiên bản 7.1p2 áp dụng cho các hệ điều hành FreeBSD, OpenBSD, Debian, Ubuntu và RedHat Enterprise Linux (RHEL). OpenSSL khuyến cáo người dùng và các tổ chức nên cập nhật bản vá ngay lập tức, cũng như khởi tạo lại SSH private key như là một biện pháp phòng ngừa. Trong trường hợp không thể cập nhật, người dùng có thể thực hiện vô hiệu hóa tính năng chuyển vùng bằng cách:

Trên FreeBSD và Linux:

# echo 'UseRoaming no' | sudo tee -a /etc/ssh/ssh_config

Trên Mac OSX:

# echo "UseRoaming no" >> ~/.ssh/config

Lưu ý, cần phải đóng tất cả các phiên SSH đang mở để các thay đổi có hiệu lực.

OpenSSH cho biết họ chưa ghi nhận được các cuộc tấn công bằng việc khai thác lỗ hổng này. Nhưng hãng bảo mật Qualys lại nhận định: lỗ hổng này có thể đã được khai thác một cách âm thầm bởi những kẻ tấn công tinh vi. Cùng ngày, Qualys đã xuất bản một bài viết bao gồm một mã proof-of-concept khai thác.