Cuộc tấn công RAMBleed mới vào bộ nhớ truy cập ngẫu nhiên động (DRAM) cho phép cài đặt các chương trình độc hại vào hệ thống của người dùng.
Một nhóm các nhà nghiên cứu an ninh mạng mới đây đã tiết lộ chi tiết về một cuộc tấn công kênh bên (side-channel) mới vào bộ nhớ truy cập ngẫu nhiên động (DRAM) có thể cho phép cài đặt các chương trình độc hại vào hệ thống để đọc dữ liệu bộ nhớ nhạy cảm từ các quá trình khác chạy trên cùng phần cứng.
Được đặt tên là RAMBleed và được xác định là CVE-2019-0174, cuộc tấn công mới dựa trên kỹ thuật tấn công kênh DRAM nổi tiếng có tên Rowhammer với các biến thể khác nhau [GLitch, RAMpage, throwhammer, Nethammer, Drammer] vốn được các nhà nghiên cứu phát hiện và mô tả trong những năm gần đây.
Được biết đến từ năm 2012, lỗi Rowhammer là một lỗi về độ tin cậy phần cứng được tìm thấy trong thế hệ chip DRAM mới. Việc truy cập liên tục và nhanh chóng (hammering) một row bộ nhớ có thể gây ra hiện tượng lật bit trong các row liền kề, tức là, thay đổi giá trị bit của chúng từ 0 thành 1 hoặc ngược lại.
Trong những năm sau đó, các nhà nghiên cứu cũng liên tục khai thác thành công để đạt được trạng thái leo thang đặc quyền trên các máy tính chứa lỗ hổng bằng cách lật (viết) các bit trong bộ nhớ của thiết bị.
Phát hiện cuộc tấn công RAMBleed mới
Một nhóm các nhà nghiên cứu tại Đại học Michigan, Đại học Công nghệ Graz và Đại học Adelaide mới đây đã phát hiện ra cuộc tấn công RAMBleed. Cuộc tấn công này cũng dựa vào cơ chế lật bit, nhưng thay bằng viết dữ liệu trên các row liền kề, RAMBleed cho phép các hacker đọc thông tin trong bộ nhớ được bảo vệ thuộc về các chương trình và người dùng khác.
Như trong hình mô tả, nếu kẻ tấn công muốn đọc dữ liệu bí mật chứa trong các ô nhớ “Bí mật”, hắn sẽ phải:
- Tìm một bit có thể lật (Sampling page) ở cùng một độ lệch trong trang bộ nhớ như bit bí mật.
- Điều khiển layout bộ nhớ bằng cách sử dụng các kỹ thuật memory massaging để cẩn thận đặt dữ liệu bí mật của nạn nhân vào các row bên trên và bên dưới row bộ nhớ của kẻ tấn công. Các sắp xếp được bố trí như trong hình ảnh minh họa, để các bit lật trong các row của hacker trở nên phụ thuộc vào các giá trị dữ liệu bí mật của nạn nhân.
- Tấn công mạnh mẽ vào các row A0 và A2, đồng thời tạo ra các bit lật trên row A1 (Sampling page) có giá trị ban đầu được đặt thành 1, từ đó tác động đến giá trị của row này bằng cách sử dụng dữ liệu của nạn nhân trong các ô “bí mật”.
Các nhà nghiên cứu cho biết, nếu bit bị lật, điều đó có nghĩa giá trị của bit bí mật là 0, ngược lại, nếu bit không lật, giá trị của bit là 1. Lặp lại quy trình với các bit có thể lật được ở các độ lệch khác nhau trong trang cho phép kẻ tấn công khôi phục lại tất cả các bit bí mật của nạn nhân.
Chưa tìm ra biện pháp ngăn chăn cuộc tấn công RAMBleed
Để mô phỏng kỹ thuật kênh đọc (read side channel technique), các nhà nghiên cứu đã thực hiện một cuộc tấn công chống lại OpenSSH 7.9 chạy trên máy Linux và trích xuất thành công khóa RSA-2048 từ trình nền SSH cấp gốc.
Theo các nhà nghiên cứu, ngay cả các biện pháp bảo vệ bộ nhớ ECC (Mã sửa lỗi) vốn được sử dụng để phát hiện và sửa các lỗi lật không mong muốn, cũng như giảm nhẹ nhiều cuộc tấn công dựa trên Rowhammer, thì cũng không thể ngăn chặn cuộc tấn công RAMBleed.
Đồng thời, mặc dù cả DDR3 và DDR4 đều dễ bị tấn công RAMBleed, nhưng các nhà nghiên cứu vẫn khuyên người dùng nên giảm thiểu rủi ro bằng cách nâng cấp bộ nhớ lên DDR4 khi bật tính năng làm mới hàng nhắm mục tiêu (TRR), vì dẫu sao nếu so với DDR3 thì DDR4 cũng khó khai thác hơn.
Thêm bình luận