Một lỗ hổng vừa được vá trong Sudo cho phép bất kỳ người dùng cục bộ nào cũng có thể chiếm các đặc quyền root trên hệ điều hành như Unix mà không yêu cầu xác thực.
Sudo là viết tắt của “substitute user do”, hay “super user do” - một chương trình của Unix cho phép quản trị hệ thống cấp các đặc quyền root giới hạn đến người dùng thông thường (nằm trong danh sách file sudoer) trong khi vẫn lưu trữ log các hoạt động của họ.
Chương trình này hoạt động trên nguyên tắc đặc quyền tối thiểu, cấp cho người dùng các quyền đủ để phục vụ công việc mà không ảnh hưởng đến tính bảo mật của toàn hệ thống.
Khi thực thi các lệnh trên hệ điều hành Unix, người dùng thông thường có thể sử dụng sudo (superuser) để thực thi các lệnh với quyền root nếu họ có quyền hoặc biết được mật khẩu của người dùng root - root là hệ thống của siêu người dùng, một dạng tài khoản quản trị hệ thống đặc biệt.
Sudo cũng có thể được cấu hình để cho phép người dùng thông thường chạy các lệnh với vai trò người dùng khác bằng cách thêm các lệnh đặc biệt vào file cấu hình sudoer.
Đặc quyền root cho người dùng cục bộ
Lỗ hổng trong Sudo (còn gọi là Baron Samedit -CVE-2021-3156) được các nhà nghiên cứu của Qualys tiết lộ vào ngày 13/01 và đã có bản vá trước khi công bố công khai.
Đây là một lỗi tràn bộ đệm trong bộ nhớ heap, có thể bị khai thác bởi người dùng cục bộ (bao gồm người dùng thông thường và người dùng hệ thống, được liệt kê trong danh sách sudoer hoặc không). Kẻ tấn công không cần biết mật khẩu người dùng vẫn có thể khai thác thành công lỗ hổng.
Lỗ hổng tồn tại do Sudo thực hiện không chính xác việc unescape dấu "" trong các đối số.
Qualys đã tạo ra 3 mã khai thác để chỉ ra cách lỗ hổng có thể bị khai thác thành công.
Sử dụng các mã khai thác này, các nhà nghiên cứu có thể có được các đặc quyền root trên nhiều bản phân phối Linux, gồm có Debian 10 (Sudo 1.8.27), Ubuntu 20.04 (Sudo 1.8.31) và Fedora (Sudo 1.9.2).
Các bản phân phối và hệ điều hành khác của Sudo cũng có thể bị khai thác bởi lỗ hổng này.
Phương pháp kiểm thử lỗi bảo mật
Để kiểm tra hệ thống của mình có bị dính lỗ hổng không, người dùng có thể truy cập với vai trò không phải người dùng root, chạy lệnh "sudoedit -s /".
Hệ thống dính lỗ hổng sẽ hiển thị báo lỗi bắt đầu bằng "sudoedit:"
Hệ thống đã được vá sẽ đầu bằng "usage:"
Hướng dẫn cách khắc phục
Quản trị viên hệ thống sử dụng Sudo để ủy quyền root đến người dùng cần nâng cấp lên sudo 1.9.5p2 hoặc cao hơn sớm nhất có thể.
Thao tác cập nhật
SSH vào máy chủ, chạy script sau để upgrade sudo trên các OS Ubuntu 16/18/20, CentOS 6/7/8 và Debian 9/10 để fix CVE-2021-3156
curl –sSL https://raw.githubusercontent.com/nhanhoadocs/scripts/master/Utilities/update_sudo_CVE-2021-3156.sh| bash
Nguồn: Tổng hợp