Ý nghĩa thực sự của TRIM, DRAT và DZAT trong giám định pháp y ổ SSD
Trong vài năm trở lại đây, ổ cứng thể rắn (SSD) đang có xu hướng dần thay thế ổ cứng truyển thống (HDD) và trở thành lựa chọn phổ biến nhờ tốc độ vượt trội, độ bền cao và tính tiện dụng cho người dùng. Không giống như ổ cứng HDD, SSD có cơ chế hoạt động hoàn toàn khác, đặc biệt là khi xóa tệp với cơ chế TRIM. Điều này tạo ra thách thức không nhỏ đối với các giám định viên kỹ thuật số trong quá trình điều tra và khôi phục dữ liệu.
Trong bài viết này, hãy cùng phân tích TRIM thực sự hoạt động như thế nào, cách ổ SSD phản ứng và những điều các chuyên gia pháp y kỹ thuật số cần biết khi xử lý các hệ thống lưu trữ hiện đại.
TRIM là gì?
Giống như các lệnh “đọc” hoặc “ghi”, TRIM là một lệnh trong bộ công cụ SATA hoặc NVMe, có nghĩa là “giải phóng” (deallocate). Hệ điều hành (không phải bản thân SSD) quyết định khi nào lệnh TRIM được sử dụng. Mỗi khi một tệp bị xóa, một phân vùng được định dạng hoặc không gian trống được giải phóng, hệ điều hành sẽ thông báo cho SSD rằng: “Những block này không còn được sử dụng nữa”.
Bộ điều khiển SSD sẽ lấy danh sách vị trí (LBAs) đó và đánh dấu chúng là chưa sử dụng hoặc còn trống. Trong tất cả những hoạt động trên, vẫn chưa có quá trình xóa thực sự nào. Những gì xảy ra tiếp theo hoàn toàn phụ thuộc vào logic bên trong của ổ đĩa.
Vậy liệu dữ liệu có còn đó sau lệnh TRIM không?
Có thể có hoặc không nhưng phần lớn là không. Tất cả phụ thuộc vào bộ điều khiển SSD.
Sau lệnh TRIM, bộ điều khiển có thể xóa các ô nhớ NAND ngay lập tức, có thể đẩy chúng vào các ô nhớ dự phòng, có thể tái sử dụng chúng sau đó hoặc có thể không làm gì mà chỉ đánh dấu chúng là chưa sử dụng. Những block này có thể được dọn dẹp sau đó, hoặc không bao giờ.
Những yếu tố quyết định:
- Bộ điều khiển và firmware của ổ đĩa
- Các cài đặt thu gom rác nội bộ
- Ổ đĩa có bộ nhớ đệm pSLC động hay không
- Mức độ hoạt động của ổ đĩa tại thời điểm đó
- Mức độ hao mòn của NAND
Và phần quan trọng nhất đối với pháp y kỹ thuật số: ngay khi một khối được TRIM, hầu hết các ổ SSD sẽ ngừng cung cấp dữ liệu từ block đó, ngay cả khi nó chưa bị xóa thực sự. Thay vào đó, bộ điều khiển sẽ trả về những số 0 khi bạn cố gắng đọc nó sau khi lệnh TRIM được thực hiện.
Chế độ TRIM và tầm quan trọng của chúng
Không phải mọi ổ SSD đều hoạt động giống nhau sau khi TRIM. Có 3 chế độ chính:
- Không xác định – Không có gì được đảm bảo. Bạn có thể khôi phục lại dữ liệu gốc, có thể nhận về những giá trị 0, hoặc chỉ là dữ liệu rác ngẫu nhiên.
- DRAT (Deterministic Read After TRIM) – Bạn sẽ luôn nhận được cùng một kết quả (thường là 0), ngay cả khi dữ liệu thực vẫn nằm trong NAND.
- DZAT (Deterministic Zeros After TRIM) – Ổ SSD đảm bảo sẽ trả về số 0 ngay sau khi TRIM.
Các ổ SSD SATA đời cũ thường thuộc nhóm “không xác định”. Đây là tin xấu đối với việc tạo mã băm có thể lặp lại – việc tạo ảnh ổ đĩa 2 lần có thể cho ra các kết quả khác nhau. Hầu hết các ổ đĩa SSD hiện đại, đặc biệt là các ổ NVMe đều hỗ trợ ít nhất DRAT. Các ổ đĩa cao cấp dành cho doanh nghiệp, đặc biệt là các ổ được sử dụng trong hệ thống RAID, thường được hỗ trợ DZAT.
Mặt khác, các ổ SSD NVMe ngày nay được thiết kế để tăng tốc độ. Chúng thường bao gồm bộ nhớ đệm pSLC động và tính năng dọn dẹp nền mạnh mẽ. Với các bộ điều khiển NVMe hiện nay, các lệnh TRIM có thể được xử lý gần như ngay lập tức. Xóa toàn bộ ổ NVMe 2TB có thể chỉ mất vài giây.
TRIM và RAID: tại sao DZAT lại cần thiết?
Nếu bạn đang xây dựng mảng RAID có sử dụng mã kiểm tra (parity) – chẳng hạn như RAID 5 hoặc RAID 6 – thì hệ thống lưu trữ của bạn cần hoạt động một cách nhất quán và có thể dự đoán được. Mỗi block dữ liệu đều quan trọng khi tính toán checksum, bao gồm cả những block “trống”. Đó là lúc tiêu chuẩn DZAT phát huy tác dụng.
Về mặt kỹ thuật, bạn có thể sử dụng hầu hết mọi ổ SSD cho hệ thống RAID. Nhưng nếu ổ đĩa không hỗ trợ DZAT, bộ điều khiển sẽ không biết chắc sẽ nhận được gì từ các block đã TRIM. Nó có thể giả định rằng các block này đều chứa dữ liệu hữu ích. Lúc này, RAID sẽ xử lý mọi thứ, kể cả không gian trống như thế nó chứa đầy các byte có ý nghĩa.
Kết quả là: Mỗi thao tác ghi đơn lẻ đều kích hoạt các thao tác ghi trên toàn mảng RAID. Kết hợp với cơ chế hoạt động của RAID – xóa block chậm trước rồi mới ghi – bạn sẽ nhận về hiệu suất ghi cực kỳ tệ trên một hệ thống lưu trữ vốn được kỳ vọng là nhanh.
Khi TRIM được bật, bộ điều khiển RAID cần một đảm bảo quan trọng: nếu một block được đánh dấu là trống, nó phải trả về số 0. Đó chính xác là ý nghĩa của DZAT. Vì vậy, các ổ SSD dành cho doanh nghiệp – những loại được thiết kế riêng cho hệ thống RAID – được tích hợp hỗ trợ DZAT. Một số nhà sản xuất còn cho ra mắt hai ổ SSD với cùng phần cứng những cấu hình khác nhau. Ví dụ: SSD WD Red cho RAID – hỗ trợ DZAT, bỏ qua các tính năng như bộ nhớ đệm ghi động để đảm bảo tính nhất quán và độ bền trong môi trường RAID và SSD WD Blue dành cho mục đích sử dụng hàng ngày – chỉ hỗ trợ DRAT.
Các chuyên gia pháp y số cần ghi nhớ điều này: không phải tất cả các ổ SSD đều giống nhau, ngay cả khi chúng trông giống hệt nhau trên lý thuyết. Hoạt động của bộ điều khiển, đặc biệt là TRIM, có thể quyết định hiệu suất và độ tin cậy của hệ thống RAID.
Ý nghĩa của chế độ TRIM SSD trong pháp y kỹ thuật số
Một khi lệnh TRIM được gửi đi, dữ liệu sẽ bị xóa sạch – ít nhất là theo góc nhìn của người dùng. Ngay cả khi các ô NAND vẫn giữ các bit, SSD sẽ không cung cấp chúng trừ khi bạn sử dụng các công cụ chuyên dụng và đưa SSD về chế độ factory. Nếu bạn chỉ cắm SSD vào máy tính, ngay cả thông qua phần cứng chặn ghi, nó cũng chỉ trả về số 0, khiến việc khôi phục dữ liệu thông qua các thao tác đọc thông thường là không thể.
Trên lý thuyết, nếu bạn muốn trích xuất dữ liệu một cách chính xác, bạn thậm chí không cần bật ổ SSD. Vì lo ngại SSD có thể thực hiện các tác vụ gom rác bị trì hoãn trong vài giây sau khi khởi động, âm thầm phá hủy bằng chứng, bạn sẽ:
- Sử dụng giao diện gốc và bộ công cụ chuyên dụng (ví dụ như PC-3000)
- Bỏ qua hoàn toàn firmware gốc của ổ SSD
- Đọc trực tiếp dữ liệu trên NAND thô
Nhưng thực tế là: những nỗ lực trên hiếm khi nhận được kết quả xứng đáng. Dù bạn dành hàng giờ để thiết lập đường dẫn đọc gốc hay sử dụng trình chặn ghi phần cứng và tạo ảnh ổ đĩa ngay lập thì kết quả nhận về là tương tự – bởi vì TRIM đã xử lý các tệp bị xóa trong tích tắc.
Kết luận
TRIM không “xóa” dữ liệu – nó chỉ thông báo cho SSD: “Tôi không sử dụng block này nữa”. Phần còn lại hoàn toàn phụ thuộc vào bộ điều khiển SSD. Vì vậy, nếu bạn đang tạo ảnh một ổ cứng SSD:
- Đừng cho rằng dữ liệu bị xóa vẫn còn đó
- Hãy thận trọng với các ổ đĩa cũ có thể không tuân theo tiêu chuẩn DRAT hoặc DZAT. Các băm có thể khác nhau giữa các lần tạo ảnh ổ đĩa.
Tham khảo: Khôi phục dữ liệu ổ SSD