RAMpage là gì? Chi tiết về tấn công RowHammer trên Android
Một đội ngũ nghiên cứu bảo mật đã phát hiện một loạt kỹ thuật mới cho phép vượt qua toàn bộ các hàng rào dùng để chống lại các đòn tấn công Rowhammer dựa trên DMA vào các thiết bị Android. Được gọi là RAMpage , kỹ thuật mới này (mã hiệu CVE-2018-9442) có thể bật lại một ứng dụng Android ...
Một đội ngũ nghiên cứu bảo mật đã phát hiện một loạt kỹ thuật mới cho phép vượt qua toàn bộ các hàng rào dùng để chống lại các đòn tấn công Rowhammer dựa trên DMA vào các thiết bị Android.
Được gọi là RAMpage, kỹ thuật mới này (mã hiệu CVE-2018-9442) có thể bật lại một ứng dụng Android trái phép đang chạy trên thiết bị người dùng để lợi dụng chiêu thức tấn công Drammer, biến thể của lỗ hổng phần cứng DRAM Rowhammer trên thiết bị Android. Từ đó, tin tặc có thể chiếm quyền root trên thiết bị bị tấn công.
Bạn có thể từng đọc một số bài về RAMpage trên mạng, hay các nghiên cứu, nhưng nếu còn chưa rõ RAMpage là gì – chúng tôi có một bài giải thích đơn giản ngay dưới đây cho mọi đối tượng người đọc.
Lỗ hổng DRAM Rowhammer là gì?
Được tìm ra từ năm 2012, Rowhammer là một lỗi ổn định phần cứng trên DRAM thế hệ mới. Khi liên tục truy cập (“hammering”) một dòng bộ nhớ, có thể xảy ra “nhảy bit” (bit nhảy từ 1 sao 0 hoặc 0 sang 1)
Các nhà nghiên cứu của Google Project Zero đã mô phỏng thành công quá trình lợi dụng lỗi phần cứng này để vượt quyền quản trị trên các máy bị nhiễm (Windows và Linux) vào năm 2015.
Bên cạnh đó, các nhà nghiên cứu của Google cũng đã chỉ ra đòn tấn công hai mặt Rowhammer có thể làm tăng khả năng xảy ra “nhảy bit” bằng cách “hammer” cùng lúc hai dòng bộ nhớ bên cạnh.
Để xảy ra lỗi Rowhammer không khó, nhưng để lợi dụng được lỗi này không đơn giản do hầu hết bit trong bộ nhớ đều không liên quan đến hành vi của tin tặc và “nhảy bit” có thể gây hỏng bộ nhớ.
“Hammering” các vị trí nhớ ngẫu nhiên không đủ để “nhảy bit” một trang bộ nhớ cụ thể nào (thường được dùng bởi các ứng dụng hệ thống).
Để có thể lợi dụng thành công lỗi Rowhammer, tin tặc cần phải lừa hệ điều hành sao cho trang nhớ được nhắm tới phải rơi vào hàng cạnh hàng do tin tặc kiểm soát trên bộ nhớ vật lý DRAM.
Các đòn tấn công Rowhammer khác bao gồm:
GLitch: Mượn bộ xử lý đồ họa (GPU) để xử lý các đòn tấn công vào thiết bị Android
Throwhammer: Dựa trên mạng, đòn tấn công này sẽ lợi dụng một lỗ hổng được biết sẵn trong DRAM qua các thẻ mạng sử dụng các kênh truy cập bộ nhớ trực tiếp (RDMA)
Nethammer: Một kỹ thuật mạng từ xa có thể dùng để tấn công các hệ điều hành sử dụng bộ nhớ uncached khi đang giải quyết các yêu cầu trên mạng.
Tấn công Drammer là gì?
Được phát hiện hai năm trước, Drammer là đòn tấn công Rowhammer thực tiễn đầu tiên nhắm đền các chíp DRAM trên điện thoại Android, từ đó bị khai thác bởi phần mềm lừa đảo mà không cần quyền hay lỗ hổng phần mềm nào.
Đòn tấn công Drammer dựa trên buffer của DMA (bộ nhớ lưu trữ trực tiếp) vốn ở bộ phận quản lý bộ nhớ chính của Android tên là ION.
Vì DMA cho phép ứng dụng truy cập thẳng vào bộ nhớ mà không qua cache CPU, “hammering” theo từng dòng bộ nhớ trở nên dễ dàng hơn.
ION tổ chức các memory pool trong vài heap trong kernel, với kmalloc heap có thể xếp bộ nhớ cạnh nhau, cho phép tin tặc dễ dàng nắm được các địa chỉ vật lý.
Đây là hai đặc tính của hệ thống quản lý bộ nhớ ION – truy cập trực tiếp và xếp bộ nhớ cạnh nhau – dẫn đến đòn tấn công Drammer.
Bằng cách nào mà Google có thể ngăn chặn đòn tấn công Rowhammer?
Vào năm 2016, sau khi đòn tấn công Drammer bị công bố, Google đã tung ra một bản cập nhật cho thiết bị Android cho phép tắt một phần của ION (kmalloc heap), tác nhân cho phép xếp bộ nhớ cạnh nhau để giảm nguy cơ lỗ hổng Rowhammer bị lợi dụng.
Sau đó, các ứng dụng và dịch vụ hệ thống trên thiết bị Android dựa vào các heap trong kernel khác như heap hệ thống.
Bên cạnh giải quyết vấn đề đó, heap hệ thống còn tách bộ nhớ kernel và bộ nhớ người dùng bằng cách xếp chúng vào các vùng lowmem và highmem để có tính bảo mật cao hơn.
Vậy RAMpage là gì và làm sao mà tin tặc vượt qua được hàng rào Rowhammer?
Kỹ thuật hàng rào được nhắc đến ở trên bởi Google đã chặn tin tặc không thể thực hiện tấn công Rowhammer hai mặt.
Tuy nhiên một đội nghiên cứu bảo mật mới đây đã báo lại bốn đòn tấn công rowhammer mới có thể cho một ứng dụng lừa đảo cài được cài vào thiết bị đối diện để có quyền root và đánh cắp dữ liệu nhạy cảm từ các ứng dụng khác và vượt qua mọi hàng rào bảo vệ.
Trong nghiên cứu, đội ngũ đã giải thích rằng biến thể RAMpage của họ là “một minh họa cho Drammer về việc tắt xếp bộ nhớ cạnh nhau không thể giảm nguy cơ xảy ra các đòn tấn công vượt quyền Rowhammer.”
Các nhà nghiên cứu đã ghi lại 3 bước để lợi dụng Drammer qua biến thể RAMpage r0:
1 – Sử dụng hết heap hệ thống
2 – Rút gọn cache pool
3 – Root thiết bị
Ba biến thể khác của đòn tấn công RAMpage được nhắc đến dưới đây cũng cho tin tặc vượt qua các giải pháp bảo mật và chỉ bảo vệ một phần cụ thể trên bộ nhớ hệ thống, nhưng không đủ thực tế và cần nghiên cứu để có cách khai thác phù hợp:
ION-to-ION (varint r1)
CMA-to-CMA (varint r2)
CMA-to-system attack (varint r3)
GuardION – Giải pháp ngăn chặn mọi đòn tấn công Rowhammer dựa trên DMA
Trong nghiên cứu, các nhà bảo mật đã chỉ ra các biện pháp ngăn chặn phù hợp để chống lại biến thể RAMpage của các đòn tấn công Rowhammer dựa trên DMA. Giải pháp được đưa ra là GuardION mã nguồn mở.
GuardION là hàng rào phần mềm chống lại đòn tấn công rowhammer bằng cách tách biệt buffer DMA khỏi guard row.
GuardION là một phần mềm được cài như một bản vá cho Android để thay đổi bộ quản lý bộ nhớ ION theo cách tách biệt các buffer ra bằng cách tạo dòng trắng: một bên trái, một bên phải.
Cũng cần nhớ là GuardION có thể làm giảm hiệu năng của điện thoại, như việc tạo dòng bảo vệ vẫn tốn thêm bộ nhớ DRAM.
Theo các nhà nghiên cứu, tất cả thiết bị Android từ năm 2012 đều bị ảnh hưởng bởi đòn tấn công. Chỉ cần cài app từ nguồn tin tưởng, bạn sẽ không cần lo về RAMpage
Một số nhà nghiên cứu đã và đang chuyển thông tin của họ với Google.
THN