US — Ars Technica
Giới thiệu *sshole: lỗ hổng cho phép tin tặc SSH vào thiết bị Linux
Bảo mật2 phút đọc
Một lỗ hổng bảo mật đã tồn tại khoảng một thập kỷ có thể cho phép kẻ tấn công đăng nhập vào một số thiết bị chạy Alpine Linux mà không cần mật khẩu. Lỗi này nằm ở cách hai phần mềm phối hợp với nhau.
Chuyện gì đã xảy ra
Một lỗ hổng bảo mật cũ, có tên đùa là *sshole, ảnh hưởng đến một số cấu hình của Alpine Linux và có thể cả một số bản Linux khác. Lỗi nằm ở chỗ OpenSSH (phần mềm kết nối SSH) và musl (một thư viện nhẹ thay thế libc) hoạt động cùng nhau. Khi OpenSSH dùng musl và không dùng PAM (khung xử lý xác thực người dùng), kẻ tấn công có thể đăng nhập mà không cần biết mật khẩu.
Các con số và sự kiện chính
- Lỗ hổng đã tồn tại khoảng 10 năm.
- Cần có ít nhất một tài khoản dùng mật khẩu được băm bằng SHA256 hoặc SHA512.
- Tài khoản đích phải được đặt không cần mật khẩu, tức là có dấu "*" trong trường mật khẩu của file /etc/shadow.
- Theo nhóm bảo trì Alpine, kẻ tấn công chỉ cần một kết nối, thành công mỗi lần và không cần thử lại.
- Khi nhập hơn 256 ký tự vào ô mật khẩu, kẻ tấn công có thể vào được tài khoản không có mật khẩu.
Vì sao lỗi này xảy ra
Alpine là một bản Linux nhẹ và được dùng rộng rãi. Hầu hết các bản Linux khác dùng thư viện libc tiêu chuẩn, còn Alpine dùng musl. Tài khoản không cần mật khẩu thường được dùng cho những tài khoản xác thực bằng chứng chỉ số thay vì mật khẩu, nên đây là cấu hình khá phổ biến.
Tài khoản root và quyền sudo
- Theo Checkpoint, tài khoản root vẫn an toàn với thiết lập mặc định PermitRootLogin prohibit password.
- Tài khoản có quyền doas hoặc sudo vẫn có thể trở thành root nếu kẻ tấn công vào được.
Vì sao cần quan tâm
Nếu tất cả điều kiện đều đúng, hậu quả rất nghiêm trọng vì kẻ tấn công có thể vào hệ thống chỉ qua cổng SSH. Người quản trị nên kiểm tra cấu hình Alpine và các tài khoản không có mật khẩu, đồng thời cập nhật phần mềm khi có bản vá.
Chú giải
- Alpine Linux
- Một bản Linux nhẹ, được dùng rộng rãi, đặc biệt cho máy chủ và container.
- OpenSSH
- Phần mềm mã nguồn mở dùng để kết nối an toàn từ xa qua giao thức SSH.
- musl
- Thư viện nhẹ, thay thế cho libc, được Alpine sử dụng.
- PAM
- Khung phần mềm xử lý xác thực người dùng và kiểm tra quyền truy cập tài khoản.
- /etc/shadow
- File trên Linux lưu các mã băm mật khẩu của người dùng.
- Checkpoint
- Hãng bảo mật đã kiểm tra và báo cáo về lỗ hổng này.