Một phương pháp tấn công đã được đề xuất để xác định từ xa các mảnh bộ nhớ trên máy chủ

Một nhóm các nhà nghiên cứu từ Đại học Kỹ thuật Graz (Áo), trước đây được biết đến với việc phát triển các cuộc tấn công MDS, NetSpectre, Throwhammer và ZombieLoad, đã công bố một phương thức tấn công kênh bên mới (CVE-2021-3714) chống lại cơ chế chống trùng lặp bộ nhớ , cho phép xác định sự hiện diện của một số dữ liệu nhất định trong bộ nhớ, tổ chức rò rỉ nội dung bộ nhớ theo từng byte hoặc xác định bố cục bộ nhớ để bỏ qua bảo vệ ngẫu nhiên dựa trên địa chỉ (ASLR). Phương pháp mới này khác với các biến thể tấn công cơ chế chống trùng lặp đã được chứng minh trước đây bằng cách thực hiện một cuộc tấn công từ máy chủ bên ngoài bằng cách sử dụng tiêu chí thay đổi thời gian phản hồi đối với các yêu cầu được gửi đến kẻ tấn công thông qua giao thức HTTP/1 và HTTP/2. Khả năng thực hiện cuộc tấn công đã được chứng minh đối với các máy chủ dựa trên Linux và Windows.

Các cuộc tấn công vào cơ chế chống trùng lặp bộ nhớ sử dụng sự khác biệt về thời gian xử lý của thao tác ghi làm kênh để rò rỉ thông tin trong các tình huống thay đổi dữ liệu dẫn đến việc sao chép trang bộ nhớ bị trùng lặp bằng cơ chế Sao chép khi ghi (COW) . Trong quá trình hoạt động, kernel phát hiện các trang bộ nhớ giống hệt nhau từ các tiến trình khác nhau và hợp nhất chúng, ánh xạ các trang bộ nhớ giống hệt nhau vào một vùng bộ nhớ vật lý duy nhất để chỉ lưu trữ một bản sao. Khi một trong các quy trình cố gắng thay đổi dữ liệu liên quan đến các trang bị loại bỏ trùng lặp, một ngoại lệ (lỗi trang) sẽ xảy ra và bằng cách sử dụng cơ chế Sao chép khi ghi, một bản sao riêng của trang bộ nhớ sẽ tự động được tạo và được gán cho quy trình. Cần thêm thời gian để hoàn thành bản sao, đây có thể là dấu hiệu của những thay đổi dữ liệu cản trở quá trình khác.

Các nhà nghiên cứu đã chỉ ra rằng độ trễ do cơ chế COW có thể được nắm bắt không chỉ cục bộ mà còn bằng cách phân tích những thay đổi về thời gian phản hồi qua mạng. Một số phương pháp đã được đề xuất để xác định nội dung bộ nhớ từ máy chủ từ xa bằng cách phân tích thời gian thực hiện các yêu cầu qua giao thức HTTP/1 và HTTP/2. Để lưu các mẫu đã chọn, các ứng dụng web tiêu chuẩn sẽ được sử dụng để lưu trữ thông tin nhận được trong các yêu cầu trong bộ nhớ.

Nguyên tắc chung của cuộc tấn công tập trung vào việc lấp đầy một trang bộ nhớ trên máy chủ bằng dữ liệu có khả năng lặp lại nội dung của trang bộ nhớ đã tồn tại trên máy chủ. Sau đó, kẻ tấn công đợi thời gian cần thiết để kernel loại bỏ trùng lặp và hợp nhất trang bộ nhớ, sau đó sửa đổi dữ liệu trùng lặp được kiểm soát và đánh giá thời gian phản hồi để xác định xem lần truy cập có thành công hay không.

Một phương pháp tấn công đã được đề xuất để xác định từ xa các mảnh bộ nhớ trên máy chủ

Trong quá trình thử nghiệm, tốc độ rò rỉ thông tin tối đa là 34.41 byte mỗi giờ khi tấn công qua mạng toàn cầu và 302.16 byte mỗi giờ khi tấn công qua mạng cục bộ, nhanh hơn các phương pháp trích xuất dữ liệu khác qua kênh của bên thứ ba (ví dụ: trong cuộc tấn công NetSpectre, tốc độ truyền dữ liệu là 7.5 byte lúc XNUMX giờ).

Ba phương án tấn công đang hoạt động đã được đề xuất. Tùy chọn đầu tiên cho phép bạn xác định dữ liệu trong bộ nhớ của máy chủ web sử dụng Memcached. Cuộc tấn công tập trung vào việc tải một số bộ dữ liệu nhất định vào bộ lưu trữ Memcached, xóa khối bị trùng lặp, viết lại phần tử tương tự và tạo điều kiện cho việc sao chép COW xảy ra bằng cách thay đổi nội dung của khối. Trong quá trình thử nghiệm với Memcached, có thể xác định trong 166.51 giây phiên bản libc được cài đặt trên hệ thống chạy trên máy ảo.

Tùy chọn thứ hai giúp bạn có thể tìm ra nội dung của các bản ghi trong MariaDB DBMS, khi sử dụng bộ lưu trữ InnoDB, bằng cách tạo lại nội dung từng byte. Cuộc tấn công được thực hiện bằng cách gửi các yêu cầu được sửa đổi đặc biệt, dẫn đến sự không khớp một byte trong các trang bộ nhớ và phân tích thời gian phản hồi để xác định rằng dự đoán về nội dung của byte là chính xác. Tỷ lệ rò rỉ như vậy thấp và lên tới 1.5 byte mỗi giờ khi tấn công từ mạng cục bộ. Ưu điểm của phương pháp này là nó có thể được sử dụng để khôi phục nội dung bộ nhớ chưa biết.

Tùy chọn thứ ba giúp có thể bỏ qua hoàn toàn cơ chế bảo vệ KASLR trong 4 phút và lấy thông tin về phần bù bộ nhớ của hình ảnh hạt nhân máy ảo, trong trường hợp địa chỉ offset nằm trong trang bộ nhớ mà dữ liệu khác không thay đổi. Cuộc tấn công được thực hiện từ một máy chủ nằm cách hệ thống bị tấn công 14 bước nhảy. Các ví dụ mã để thực hiện các cuộc tấn công được trình bày hứa hẹn sẽ được xuất bản trên GitHub.

Nguồn: opennet.ru

Thêm một lời nhận xét