Phát hiện lỗ hổng bảo mật nghiêm trọng liên quan đến phần mềm OpenSSH

Ngày đăng: 2024-07-04 14:28:16 | Cập nhật: 2024-07-04 14:44:42

Các chuyên gia bảo mật thuộc Qualys Threat Research Unit (TRU) vừa phát hiện lỗ hổng thực thi mã không được xác thực từ xa (RCE) trong máy chủ của OpenSSH (sshd) trong các hệ thống Linux dựa trên glibc. CVE được gán cho lỗ hổng này là CVE-2024-6387. Lỗ hổng này dường như cho phép kẻ tấn công giành quyền truy cập root từ xa trên các hệ thống Linux dễ bị tấn công chạy OpenSSH.

OpenSSH (Open Secure Shell) là một bộ tiện ích mạng an toàn dựa trên giao thức Secure Shell (SSH), rất quan trọng để kết nối an toàn qua các mạng không bảo mật. Nó cung cấp mã hóa mạnh mẽ để đảm bảo quyền riêng tư và truyền tệp an toàn, khiến nó trở thành một công cụ thiết yếu để quản lý máy chủ từ xa và liên lạc dữ liệu an toàn. SSHD gần như là một thành phần không thể thiếu trên các máy chủ Linux.

Lỗ hổng thuộc loại Race Condition, quá trình khai thác cần khởi tạo hàng loạt kết nối đồng thời vào SSH Server trong một thời gian dài (vài giờ) để đạt được các điều kiện kích hoạt lỗi (winning race condition).

Ví dụ trên Debian 12 sử dụng OpenSSH 9.2p1, Researcher ước tính cần khoảng trung bình 10000 lần kết nối, mất từ 3~4 giờ để đạt điều kiện khai thác, 6~8 giờ để đạt điều kiện RCE và có được Remote Root Shell. Một số điều kiện dẫn đến tăng khả năng khai thác lỗi thành công (mặc định trong cấu hình OpenSSH):

  • MaxStartups: số lượng connection đồng thời, mặc định 100
  • LoginGraceTime: khoảng thời gian SSH Server giữ kết nối và chờ đợi Client hoàn thành chu trình Login, mặc định 120 giây, nếu giá trị là 0 tương ứng với khônng giới hạn thời gian.


MỘT SỐ PHƯƠNG ÁN GIẢM RỦI RO

1. Sử dụng Firewall

  • Đảm bảo chỉ cho phép truy cập SSH từ các nguồn xác định (whitelist)
  • Block các IP khởi tạo nhiều kết nối cùng lúc trong một khoảng thời gian ngắn vào cổng dịch vụ SSH


2. Cập nhật cấu hình SSH trong tập tin sshd_config để loại bỏ điều kiện khai thác lỗi, điều chỉnh giá trị LoginGraceTime, sau đó khởi động lại dịch vụ SSH.

Cập nhật nội dung file /etc/ssh/sshd_config:

LoginGraceTime 0

Sau đó khởi động lại SSH Server:

service sshd restart

Lưu ý: Cách thức xử lý này có thể dẫn tới dịch vụ SSH bị tấn công từ chối dịch vụ, do các kết nối vào cổng SSH sẽ không bị ngắt trong một thời gian dài dẫn đến có thể tấn công chiếm dụng tất cả kết nối vào cổng dịch vụ (hoặc đạt ngưỡng MaxStartups).

3. Cập nhật phiên bản OpenSSH đã vá lỗi.


KIỂM TRA PHIÊN BẢN SSH ĐANG CÓ TRÊN SERVER

  • Kiểm tra từ xa: Có thể sử dụng Telnet, SSH command hoặc NMAP. Mặc định cổng dịch vụ sẽ trả về SSH banner kèm thông tin phiên bản.

  • Kiểm tra từ dòng lệnh trên máy chủ: Gõ lệnh ssh -V


Tham khảo thêm thông tin về lỗ hổng này liên quan đến phiên bản Linux và OpenSSH bạn đang sử dụng:

Ubuntu: https://ubuntu.com/security/notices/USN-6859-1

Debian: https://security-tracker.debian.org/tracker/CVE-2024-6387

CentOS/RHEL9: RHEL9 bị ảnh hưởng và chúng tôi tin rằng CentOS9 cũng bị ảnh hưởng như chi tiết tại đây: https://access.redhat.com/security/cve/cve-2024-6387. Chưa có bản vá nào và các đề xuất giảm thiểu ở đây chỉ nên được thực hiện khi bạn hiểu rõ về các tác động.

AlmaLinux: https://almalinux.org/blog/2024-07-01-almalinux-9-cve-2024-6387/

RockyLinux: https://rockylinux.org/news/2024-07-01-rocky-linux-9-cve-2024-6378-regression

Fedora: https://packages.fedoraproject.org/pkgs/openssh/openssh-server/