Cách một bit-flip ở DRAM Scrambling bẻ khóa toàn bộ CPU

Chỉ cần lật đúng một bit trong memory controller, mọi rào cản bảo mật phần cứng của CPU đều bị qua mặt.
Nhà nghiên cứu bảo mật domas vừa ra mắt skitter-creek-bath-salts, một công cụ cho thấy việc can thiệp vào cơ chế DRAM scrambling có thể giúp bạn vượt qua mọi hạn chế mặc định của CPU. Bằng cách thay đổi các thanh ghi chuyển đổi (translation registers) bên trong memory controller, công cụ này sẽ âm thầm nối lại địa chỉ bộ nhớ vật lý sang tọa độ DRAM gốc ngay tức thì. Vì các cơ chế kiểm tra bảo mật phần cứng nằm ở tầng cao hơn, chúng hoàn toàn không nhận ra phần bộ nhớ bên dưới đã bị tráo đổi.
Vì sao chuyện này quan trọng: Các rào cản bảo mật luôn mặc định một địa chỉ vật lý sẽ trỏ cố định đến đúng một vị trí bộ nhớ thực tế. Việc xáo trộn tọa độ DRAM ngay bên dưới các lớp kiểm tra đó sẽ phá hỏng cam kết này, làm lộ ra những vùng bộ nhớ ẩn như System Management Mode (SMM), CPU microcode hay Platform Security Processor (PSP).
Cần biết thêm: Bản thử nghiệm (proof-of-concept) này nhắm vào dòng chip AMD Family 16h — nơi các thanh ghi chuyển đổi của DRAM controller được mở khóa và có tài liệu rõ ràng. Dù tài liệu của các dòng chip mới hơn đã bỏ qua chi tiết về các thanh ghi này, kiến trúc bộ nhớ phần cứng và nguyên lý hoạt động vẫn áp dụng tốt trên cả chip x86, ARM lẫn RISC-V.
Hóa ra từ trước đến nay, địa chỉ bộ nhớ vật lý cũng chỉ là một lời đề nghị mang tính lịch sự.
Nguồn
- Repository skitter-creek-bath-salts — https://github.com/xoreaxeaxeax/skitter-creek-bath-salts
- Thảo luận Spaghettifying DRAM — https://news.ycombinator.com/item?id=49286341

