CVE-2022-27924 | Cảnh báo nguy cơ chiếm đoạt tài khoản trên các hệ thống Zimbra do lỗ hổng Memcached Injection
Threat ID | VTI_2022_3983 |
Mức độ | NGHIÊM TRỌNG |
Sản phẩm | Zimbra |
Phiên bản | 8.x trước 8.8.15 patch 31.1, 9.x trước 9.0.0 patch 24.1 |
Mã lỗi | CVE-2022-27924 |
Ngày tạo | 15:55 28/06/2022 |
Tổng quan
VCS-TI cập nhật thông tin về cách khắc phục tạm thời và dấu hiệu nhận biết nguy cơ chiếm đoạt tài khoản trên hệ
thống Zimbra dựa vào lỗ hổng Memcache Injection. Khai thác lỗ hổng thành công, tin tặc có thể chiếm đoạt một tài
khoản bất kỳ trong hệ thống. Quản trị viên cần nắm bắt thông tin và kịp thời đưa ra phương án để ngăn ngừa nguy cơ.
Mô tả chi tiết
Dựa trên các tiêu chí:
- Zimbra được sử dụng làm máy chủ mail cho nhiều tổ chức lớn trên thế giới.
- Khai thác lỗ hổng thành công cho phép tin tặc chiếm đoạt một tài khoản người dùng tùy ý trong hệ thống.
- Lỗ hổng đã có phân tích chi tiết và PoC được công bố trên không gian mạng.
- Lỗ hổng đang được các nhóm tấn công, tin tặc khai thác trong thực tế.
- Lỗ hổng đã có bản vá từ phía hãng.
Thông tin chi tiết:
Zimbra sử dụng một phiên bản đã được thay đổi của Nginx để làm Reverse Proxy. Với mỗi yêu cầu đến từ người dùng, máy chủ Reverse Proxy này thực hiện gửi yêu cầu tới Zimbra Lookup Service để tìm kiếm máy chủ backend tương ứng với người dùng đó. Đối với giao thức HTTP, một trong những cách Zimbra xác định nguồn của yêu cầu là dựa vào URL. Trong ví dụ dưới đây, người dùng exampleUser được xác định từ URL trong yêu cầu
https://example.com/service/home/exampleUser/file
Do việc thực hiện thêm một yêu cầu có chi phí tài nguyên cao, Zimbra sử dụng Memcached để lưu lại thông tin về những người dùng đã được yêu cầu trước đó và máy chủ backend tương ứng. Một lệnh Memcached để lưu lại các thông tin trên có dạng như sau:
Lỗ hổng tồn tại do tên người dùng được lấy từ URL do tin tặc kiểm soát và thay thế trực tiếp vào lệnh được đưa vào Memcached. Do Memcached sử dụng một giao thức đơn giản dạng text-based với mỗi lệnh được ngăn cách bởi dấu xuống dòng (\r\n), tin tặc có thể chèn các dấu xuống dòng để ngăn cách các lệnh được gửi vào Memcached, từ đó thực thi một lệnh Memcached tùy ý.
Ngoài ra, do Reverse Proxy và Memcached sử dụng duy nhất một kết nối và tin tặc có thể chèn thêm các lệnh Memcached vào kết nối này, tin tặc có thể khiến các cặp yêu cầu/phản hồi trở nên mất đồng bộ, dẫn đến việc một số người dùng bất kỳ mà tin tặc chưa biết tài khoản có thể được kết nối tới máy chủ của tin tặc. Hình dưới mô tả trường hợp xảy ra khi tin tặc chèn thêm một lệnh vào yêu cầu A để có 2 phản hồi, khiến toàn bộ các phản hồi sau đó không tương xứng với yêu cầu từ nạn nhân.
1. Tổ chức sử dụng Zimbra làm máy chủ mail nội bộ cho nhân viên, có thể truy cập từ Internet.
2. Tin tặc khai thác lỗ hổng nhằm chiếm đoạt một số tài khoản email của tổ chức.
3. Một nhân viên trong tổ chức sử dụng các ứng dụng như Outlook, Gmail để đăng nhập mail của tổ chức thông qua
SMTP. Các ứng dụng này sẽ tự động đăng nhập lại sau một khoảng thời gian nhất định.
4. Khi đăng nhập, thông tin đăng nhập của cá nhân đó được gửi cho máy chủ của tin tặc.
5. Tin tặc thu được nhiều thông tin nội bộ của tổ chức thông qua nội dung email.
Điều kiện khai thác
- Máy chủ sử dụng Zimbra các phiên bản:
- 8.x trước 8.8.15 patch 31.1
- 9.x trước 9.0.0 patch 24.1
Dấu hiệu nhận biết/Cách khắc phục
Dấu hiệu nhận biết:
Truy vấn tin tặc khai thác lỗ hổng có chuỗi "%0A|%0D" (dấu hiệu tin tặc chèn các dấu xuống dòng để ngăn cách các lệnh được gửi vào Memcached) xuất hiện trên truy vấn URI đến Zimbra server.
- Để đảm bảo an toàn thông tin cho tổ chức, VCS-TI khuyến nghị quản trị viên cập nhật hệ thống Zimbra tới phiên bản 8.8.15 patch 31.1 hoặc 9.0.0 patch 24.1.
- Trong trường hợp chưa thể cập nhật phiên bản, VCS-TI khuyến nghị quản trị viên thực hiện theo các biện pháp khắc phục tạm thời như sau:
- Cách 1: Chặn kết nối outbound trên mail server.
- Cách 2: Sửa cấu hình nginx của zimbra theo mẫu dưới đây https://github.com/Zimbra/zm-nginxconf/compare/8.8.15.p20...8.8.15.p31
- Sau khi chỉnh sửa cấu hình, cần khởi động lại Nginx hoặc Zimbra để các thay đổi trong cấu hình có hiệu lực.
- Quản trị viên có thể chạy lệnh "systemctl reload nginx" để tải lại tệp cấu hình, không cần khởi động lại Nginx.
0 Nhận xét