Bảo mật

Lỗ hổng OpenSSH trên Alpine Linux: Cách kiểm tra và xử lý

Chia sẻ:
MessengerXTelegram

Một lỗ hổng OpenSSH vừa được phát hiện trên các hệ thống Linux sử dụng thư viện musl libc. Lỗi này cho phép người dùng lạ đăng nhập trái phép mà không cần mật khẩu. Điều kiện khai thác là chuỗi ký tự gửi lên phải dài từ 257 byte trở lên. Sự cố đe dọa các tài khoản hệ thống không thiết lập mật khẩu trực tiếp. Bản vá Portable OpenSSH 10.6p2 đã kịp thời khắc phục vấn đề này. Theo Tức Thời, đây là xung đột logic rất hiếm thấy giữa hai dự án nguồn mở.

Bản chất và rủi ro từ lỗ hổng OpenSSH

Giới chuyên gia an ninh mạng vừa phát đi cảnh báo kỹ thuật quan trọng. Lỗ hổng OpenSSH mới cho phép kẻ xấu vượt qua cơ chế kiểm tra mật khẩu. Sự cố xảy ra khi máy chủ chạy trên nền tảng thư viện musl libc. Đồng thời, hệ thống không kích hoạt mô-đun xác thực PAM.

Trong thiết lập này, tiến trình sshd vẫn mở cổng nhận mật khẩu bình thường. Tuy nhiên, mã nguồn xử lý chuỗi nhập vào lại xuất hiện lỗi nghiêm trọng. Kẻ tấn công có thể dùng mật khẩu ngẫu nhiên để đăng nhập. Do đó, nguy cơ bị chiếm quyền điều khiển máy chủ là rất cao.

Sự cố này đặc biệt nguy hiểm với các máy chủ đám mây tối giản. Bạn đọc có thể theo dõi thêm chuyên mục bảo mật để nắm bắt diễn biến. Ngoài ra, bảo vệ hạ tầng máy chủ đòi hỏi sự cẩn trọng cao. Điều này tương tự việc bảo vệ chip NPU trên máy tính hiện nay.

Biểu đồ so sánh giới hạn chuỗi mật khẩu trong lỗ hổng OpenSSH
Đồ họa: TucThoi.com

Cơ chế kỹ thuật đằng sau lỗ hổng OpenSSH

Để hiểu rõ lỗ hổng OpenSSH, chúng ta cần xem xét hàm băm của musl libc. Đối với chuẩn SHA-256 và SHA-512, hàm crypt giới hạn mật khẩu ở mức 256 byte. Nếu chuỗi dài hơn 256 byte, hàm crypt sẽ lập tức báo lỗi. Khi gặp sự cố, thư viện chỉ trả về một ký tự dấu sao.

Trái lại, trình chủ OpenSSH sshd cho phép nhận mật khẩu tới 1.024 byte. Khi kẻ tấn công gửi chuỗi dài từ 257 byte trở lên, hàm crypt sẽ trả về dấu sao. Đáng tiếc là OpenSSH lại nhầm dấu sao này với kết quả băm hợp lệ.

Khoảng biên độ tấn công và điều kiện tài khoản

Khoảng cách giữa hai ngưỡng tạo ra biên độ tấn công là 768 byte. Kẻ xấu chỉ cần gửi chuỗi ký tự từ 257 byte đến 1.024 byte. Chuỗi ký tự bất kỳ trong khoảng này đều kích hoạt thành công lỗi.

Nhiều hệ thống Linux lưu tài khoản khóa mật khẩu dưới dạng dấu sao. Khi hàm crypt trả về dấu sao, OpenSSH thấy hai chuỗi trùng khớp nhau. Nhờ đó, kẻ tấn công được cấp quyền đăng nhập vào tài khoản đích.

Thông số kỹ thuật kích hoạt lỗ hổng OpenSSH trên máy chủ
Đồ họa: TucThoi.com

Những phiên bản hệ thống chịu tác động từ lỗ hổng OpenSSH

Theo khuyến cáo từ trang chủ Alpine Linux, lỗi đe dọa trực tiếp bản phân phối này. Tất cả các phiên bản được kiểm tra từ bản 3.21 đến 3.24 đều dính lỗi. Đây là nền tảng container phổ biến hàng đầu thế giới hiện nay.

Bản phát hành Alpine Linux 3.21 đã hết hạn hỗ trợ vào ngày 01/11/2026. Dẫu vậy, nhóm phát triển vẫn phát hành bản sửa lỗi khẩn cấp. Các nhánh cũ hơn như bản 3.18 cũng nhận được gói cập nhật vá lỗi.

Điều kiện để một hệ thống bị khai thác

Hệ điều hành Alpine Linux đặt dấu sao cho tài khoản root từ bản 3.16. Do đó, tài khoản root trở thành đích nhắm hàng đầu của kẻ tấn công. Tuy nhiên, hệ thống chỉ bị khai thác khi thỏa mãn hai điều kiện.

Trước hết, tùy chọn PasswordAuthentication trên máy chủ phải đang bật. Thêm vào đó, máy phải có ít nhất một tài khoản khác dùng băm SHA. Nếu thiếu các yếu tố này, kẻ xấu không thể thực hiện đòn tấn công.

Cách khắc phục và ngăn chặn lỗ hổng OpenSSH

Người dùng có thể ngăn chặn lỗ hổng OpenSSH bằng cách nâng cấp hệ thống. Phiên bản Portable OpenSSH 10.6p2 ra mắt ngày 05/11/2026 đã giải quyết lỗi triệt để. Mã nguồn mới sẽ từ chối chuỗi băm có độ dài quá ngắn.

Người quản trị Alpine Linux chỉ cần chạy lệnh nâng cấp qua công cụ apk. Gói cài đặt mới sẽ tự động thay thế và khởi động lại dịch vụ. Toàn bộ tiến trình chỉ mất chưa đầy một phút thực thi.

Cấu hình tạm thời khi chưa thể cập nhật ngay

Nếu chưa thể nâng cấp ngay, bạn nên chỉnh sửa tệp cấu hình sshd. Kể từ bản 3.19, Alpine Linux hỗ trợ nạp thiết lập từ thư mục sshd_config.d. Quản trị viên chỉ cần tạo tệp mới để vô hiệu hóa mật khẩu.

Bạn hãy đặt giá trị PasswordAuthentication thành giá trị no. Sau đó, bạn khởi động lại dịch vụ SSH trên hệ thống. Khi đó, máy chủ sẽ chỉ cho phép đăng nhập bằng khóa bí mật.

Nguồn tham khảo

Nội dung bài viết được tổng hợp từ các tài liệu kỹ thuật chính thức:

  • Alpine Linux: Cảnh báo an ninh về lỗi xác thực openssh-server.
  • OpenSSH: Thông báo ra mắt bản vá Portable OpenSSH 10.6p2.
  • musl libc: Cảnh báo trên diễn đàn thư điện tử Openwall.

Chia sẻ bài viết này

MessengerXTelegram

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Trang này được bảo vệ bởi reCAPTCHA; áp dụng Chính sách quyền riêng tư và Điều khoản dịch vụ của Google.