About Me

header ads

CVE-2022-27924

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.
VCS-TI đánh giá nguy cơ ở mức Nghiêm Trọ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 ý.

Để khai thác lỗ hổng này, tin tặc có thể thêm các bản ghi key-value cho một người dùng đã biết, với máy chủ backend trỏ tới một máy chủ mà tin tặc kiểm soát. Khi những người dùng đó đăng nhập, máy chủ Reverse Proxy đầu tiên thực hiện tìm kiếm theo tên người dùng đó qua Memcached và được trả về kết quả là máy chủ của tin tặc. Từ đó các thông tin đăng nhập của người dùng được gửi đến máy chủ độc hại này. Do giao diện web của Zimbra có phương pháp riêng để tìm kiếm máy chủ backend tương ứng, lỗ hổng này chỉ ảnh hưởng tới những người dùng sử dụng các giao thức khác HTTP như POP3, SMTP, IMAP.

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.
Kịch bản tấn công:

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.

Biện pháp khắc phục:

  • Để đả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

Lưu ý:
    • 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.

 

Đăng nhận xét

0 Nhận xét