Xóa các tệp một cách an toàn trên hệ thống tệp btrfs


22

Đôi khi, cần phải xóa một tệp trong hệ thống tệp và đảm bảo rằng tệp đó thực sự biến mất. Ví dụ, một tệp chứa mật khẩu nhạy cảm sẽ bị xóa sạch khỏi đĩa.

Việc phát hành một đơn giản rmtrên một hệ thống tệp thông thường sẽ xóa inode ("con trỏ") vào tệp, nhưng nó không xóa nội dung của tệp trong đĩa vật lý - những thứ này được để ở đó cho đến khi chúng được ghi đè khi hệ thống tệp cần không gian trống.

Trên nhiều hệ thống tập tin, chương trình shred cho phép xóa an toàn như vậy. Tuy nhiên, trên hệ thống tập tin CoW như btrfs, cách tiếp cận này là vô ích . Vấn đề trở nên trầm trọng hơn bởi thực tế là tập tin có thể xuất hiện trên ảnh chụp nhanh khối lượng.

Có cách nào để xóa một cách an toàn một tệp trên hệ thống tệp btrfs không? Có đủ để xóa tất cả các con trỏ (trên tất cả các khối) và lấp đầy không gian trống bằng số không ?


2
Câu hỏi hay, tôi chưa từng nghĩ đến vấn đề đó trước đây. Một cách để khắc phục vấn đề đó là mã hóa các tệp như vậy. Bạn cũng có thể mã hóa toàn bộ đĩa nhưng nếu kẻ tấn công có quyền truy cập root vào hệ thống đang chạy, điều đó sẽ không giúp bạn ...
mreithub

@mreithub Thật vậy, mã hóa các tệp như vậy luôn là một ý tưởng tốt ở nơi đầu tiên, cũng như FDE. Mặc dù vậy, nó không thể xem xét tất cả các trường hợp sử dụng (ví dụ: một hệ thống nhúng - mặc dù có thể tranh cãi nếu hệ thống như vậy sẽ chạy btrfs ...). Tôi thực sự hỏi điều này bởi vì tôi đã quên thiết lập mã hóa trước khi sao chép các tệp nhạy cảm, nhưng tôi muốn tránh xóa toàn bộ phân vùng
goncalopp

Câu trả lời:


9

Xóa an toàn là một đề xuất khó khăn trên bất kỳ hệ thống tập tin. Trừ khi hệ thống tệp rất đặc biệt và đảm bảo rằng không có các bản sao khác của tệp nằm xung quanh, bạn cần xóa tất cả không gian trống trên thiết bị. Mặc dù bạn có nhiều khả năng tìm thấy nhiều bit của tệp trên các hệ thống tệp sao chép khi ghi, nhưng thậm chí nhiều hệ thống tệp tĩnh tĩnh khác không có bảo đảm này trong thực tế, vì nhiều tệp được chỉnh sửa, do đó, có các bit từ các phiên bản cũ của tập tin nằm xung quanh.

Lưu ý rằng xóa bằng số 0 cũng tốt như xóa bằng byte ngẫu nhiên và bạn không cần nhiều lượt. Xóa bằng 0 để lại dữ liệu còn sót lại có thể được phục hồi một phần trong điều kiện phòng thí nghiệm với các công nghệ đĩa cứng của năm 1980; Điều này không còn được áp dụng ngày hôm nay. Xem Tại sao việc ghi số không (hoặc dữ liệu ngẫu nhiên) trên ổ cứng tốt hơn nhiều lần so với chỉ thực hiện một lần?

Bạn có thể thoát khỏi dữ liệu bí mật Cleartext bằng cách mã hóa mọi thứ trên đĩa. Thiết lập một eCryptfs khối lượng trên hệ thống tập tin đó và di chuyển tất cả (bí mật) tập tin của bạn với nó. Sau đó ghi đè lên tất cả không gian chưa sử dụng của hệ thống tập tin. Bạn có thể xóa hầu hết nó bằng cách điền vào hệ thống tập tin cat /dev/zero >zero. Vẫn có thể có một số thông tin còn lại trong các khối không hoàn chỉnh (các khối chứa đoạn cuối của tệp, theo sau là một số rác - có thể là phần còn lại từ một tệp bí mật). Để đảm bảo rằng không có các khối không hoàn chỉnh, hãy di chuyển mọi thứ trên hệ thống tệp sang ecryptfs (các tệp của ecryptfs sử dụng toàn bộ các khối, ít nhất là trên các thiết lập thông thường trong đó các khối là 4kB). Đảm bảo áp dụng điều này cho tất cả các tập và xóa tất cả các ảnh chụp nhanh có chứa dữ liệu bí mật của bản rõ.

Có thể vẫn còn một số thông tin trong tạp chí. Tôi không biết làm thế nào để tẩy sạch nó.

Trên SSD, do phân bổ lại khối, có thể có dữ liệu còn lại không thể đọc được bằng các phương tiện phần mềm thông thường nhưng có thể được phục hồi bằng cách hack phần sụn hoặc truy cập vật lý. Ở đó, cách duy nhất của bạn là xóa toàn bộ SSD.


3
Các số 0 có nhược điểm là chúng có thể bị nén hoặc bỏ hoàn toàn (SSD có thể TRIM thay vì viết các số 0, vì các thành phần của TRIM sẽ trả về số 0 khi bạn đọc chúng). Điều đó làm cho số không an toàn ngày nay. Sử dụng dữ liệu ngẫu nhiên buộc hệ thống tập tin và đĩa thực sự ghi dữ liệu.
frostschutz

@frostschutz Sẽ viết bất kỳ ký tự nào khác ngoài 0ok, và không phải chịu TRIMing, 1thay vào đó hãy viết tất cả các ký tự? Hoặc một số ổ đĩa sử dụng nén trên tất cả mọi thứ?
Xen2050

@frostcherut không thể lưu trữ) dữ liệu vào đĩa, không?
JamesTheAwgieDude

@JamesTheAwgieDude Không, tôi đã đề xuất viết các số không cho phần không được mã hóa, nhưng tôi đã đề cập rằng điều này không đủ trên một ổ SSD bên dưới.
Gilles 'SO- ngừng trở thành ác quỷ'

6

Hmmm, btrfs dường như đánh bại tất cả các phương pháp băm nhỏ thông thường ...

  • Có một tùy chọn gắn kết được gọi nodatacownhưng dường như không ảnh hưởng đến các tệp đã có.
  • Vì bạn đã có các tệp hợp lý trên đĩa của mình, mục nhập btrfs này sẽ không giúp bạn.
  • Sau đó, có debugfs. Nó chỉ dành cho các hệ thống tập tin mở rộng nhưng có một bản vá cho nó có thể hoạt động. Bạn có thể sử dụng nó để tìm ra các địa chỉ khối bị ảnh hưởng và sau đó ghi đè chúng trực tiếp trên / dev / sdXY. Nhưng điều đó rất nguy hiểm và có thể không hoạt động (đặc biệt là nếu có nhiều ảnh chụp nhanh hơn của tệp)
  • Viết một bản vá btrfs cho phép một người sửa đổi các ảnh chụp nhanh cụ thể (hoặc cắt nhỏ) hoặc toàn bộ tệp
  • Nỗ lực sạch nhất (đối với dữ liệu thực sự nhạy cảm) sẽ là:

    • mua một đĩa khác (trừ khi bạn có đủ dung lượng trống cho một bản sao của phân vùng bị ảnh hưởng trên đĩa đầu tiên)
    • thiết lập mã hóa toàn bộ đĩa và hệ thống tệp của bạn trên đó
    • sao chép mọi thứ từ đĩa a sang b
    • khởi động vào hệ thống b và hủy toàn bộ đĩa ...

    Đây có thể không phải là cách tiếp cận rẻ nhất nhưng xem xét chi phí lưu trữ thấp ngày nay và những rắc rối bạn gặp phải với các tùy chọn khác, nó thực sự có thể là phương pháp rẻ nhất (tính theo giờ lao động).


nodatacowđặt trạng thái mặc định của Ccờ cho các tệp mới được tạo . Chắc chắn một người có thể chattr +C ~/.browser/logins.sqlitevà sau đó shrednó?
JamesTheAwgieDude

-6

shred(1)cho Unix / Linux (nên có trong các gói phân phối của bạn). Tôi là những gì EFF khuyến nghị .


3
Nếu bạn kiểm tra kỹ câu hỏi, bạn sẽ thấy rằng tôi đã đề cập đến shred và tại sao nó không đủ cho công việc
goncalopp

Tất cả tôi tìm thấy là các đề xuất để sử dụng mã hóa các tệp nhạy cảm, vì lý do bạn đề cập.
vonbrand

2
"Trên nhiều hệ thống tệp, chương trình shred cho phép xóa an toàn như vậy. Tuy nhiên, trên hệ thống tệp CoW như btrfs, cách tiếp cận này là vô ích." Có hai liên kết ở đó, quá.
goncalopp
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.