Điều gì xảy ra khi tôi sử dụng 'dd' để ghi đè lên đĩa mà Ubuntu đang chạy?


9

Điều gì sẽ xảy ra nếu tôi sử dụng

sudo dd if=/dev/zero of=/dev/sda

từ bản cài đặt Ubuntu chạy từ /dev/sda đâu?


Tôi đã thử nó trong một máy ảo và có vẻ như nó đã xóa sạch đĩa. Điều này sẽ luôn luôn như vậy? Đây có phải là cách an toàn để "xóa" cài đặt Ubuntu và tất cả dữ liệu?

Câu hỏi của tôi có phần được truyền cảm hứng bởi:

  1. Làm cách nào để gỡ cài đặt Ubuntu khỏi máy tính?
  2. Làm thế nào 'rm -rf /' có thể xóa tất cả các tệp trong hệ thống? .

2
Không không không. Ý kiến ​​tồi. Đừng dựa vào điều này nếu bạn muốn xóa dữ liệu của mình một cách an toàn.
André Borie

Câu trả lời:


16

Trên thực tế, hệ thống tập tin vẫn được gắn kết và một số ghi được đệm có nghĩa là chúng vẫn còn trong RAM đang chờ để ghi vào đĩa. Giả sử ddghi đè chính xác mọi thứ và ngay phía sau nó, bộ đệm đang bị xóa và một số dữ liệu nhạy cảm có thể được ghi lại vào đĩa. Vì vậy, đây không phải là một cách an toàn để xóa đĩa.

Bạn có thể tránh vấn đề này bằng cách truy cập đầu tiên ở chế độ chỉ đọc hệ thống tệp gốc và bất kỳ hệ thống tệp nào khác trên đĩa (hoặc ngắt kết nối chúng hoàn toàn, nhưng bạn sẽ không thể với hệ thống tệp gốc), và sau đó, không nên cho phép ghi nhiều hơn trên các hệ thống tập tin (vì vậy không có bộ đệm nào để xóa) vì vậy lệnh của bạn sẽ an toàn ngay bây giờ, mặc dù đó vẫn là một ý tưởng tồi trong trường hợp hoảng loạn vì mất nhiều thời gian.

Nếu bạn muốn có một số tính năng xóa hoảng loạn, tôi khuyên bạn nên mã hóa đĩa của mình bằng LUKS (trình cài đặt Ubuntu có thể làm điều đó) và sau đó làm theo câu trả lời của tôi trên Security Stack Exchange . Điều này liên quan đến việc xóa sạch máy lạnh chỉ có kích thước 2 MB và chỉ mất chưa đến một giây để ghi đè. Sau đó khởi động lại hệ thống và các khóa mã hóa ổ đĩa sẽ biến mất khỏi bộ nhớ, không có cách nào để khôi phục chúng vì bản thân máy lạnh cũng không còn nữa.



10

Tôi đã hy sinh một VM bằng cách sử dụng một chút nâng cao hơn về ddmượn và sửa đổi một chút từ các trang Arch Wiki .

Đầu tiên cài đặt một máy đo tiến độ tốt đẹp:

sudo apt-get install pv

Và sau đó chạy 'tăng cường' ddlệnh

sudo openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null \
| base64)" -nosalt </dev/zero \
| pv -bartpes "$(sudo blockdev --getsize64 /dev/sda)" \
| sudo dd bs=64K of=/dev/sda

Điều này sẽ để lại đĩa chứa đầy bản mã AES. Một lau đĩa đầy đủ và an toàn? Có lẽ tốt hơn ddví dụ của bạn nhưng không có gì hoàn toàn an toàn hoặc được đảm bảo ...

nhập mô tả hình ảnh ở đây

Và bạn nợ tôi một VM :)

Người giới thiệu:


Bạn có thể đưa ra một ví dụ về cách cú pháp sẽ như thế nào nếu một người thà lấp đầy đĩa bằng số không (if = / dev / zero) bằng cách sử dụng ddpvlàm ơn?
Stormlord

1
@Stormlord Bạn chỉ cần đưa nó qua pv(trình xem đường ống), vì vậydd if=/dev/zero | pv | dd of=/dev/sdX
someonewithpc

2
Bạn không cần phải hy sinh VM - chỉ cần tạo một ảnh chụp nhanh trước đó và khôi phục khi bạn hoàn thành :-)
JonasCz - Phục hồi Monica

Vì vậy, ngay cả khi có một số ghi phía sau, tổng kết quả rất phức tạp. Nếu không có "rác" thì sẽ rất đơn giản để lục tung đĩa để tìm các giá trị khác không.
mckenzm

6

Câu trả lời ngắn gọn: nó sẽ thực hiện những gì bạn muốn và sau đó sẽ không có gì hoạt động. Sử dụng ddbạn đang hoạt động ở mức thấp hơn hệ thống tập tin, điều đó có nghĩa là mọi ràng buộc sẽ áp dụng sẽ không còn phù hợp nữa (điều này không có nghĩa là hạt nhân không thể ngăn bạn làm điều này - nhưng nó không). Một số nội dung từ hệ thống tập tin đã có trong bộ nhớ, ví dụ như kernel và ddchính chương trình, và một số sẽ nằm trong bộ đệm. Có khả năng là nếu hệ thống ở chế độ nhiều người dùng, một số tệp có thể được ghi lại trong khi ddtiến trình, giả sử rằng chúng thực sự đã thay đổi và nếu bạn bị áp lực bộ nhớ, một số trang từ đó cũng có thể bị tráo đổi (chúng nên được mã hóa và do đó không thể sử dụng được sau khi khởi động lại).

Hầu hết các lệnh bạn phát hành sau đây - bao gồm reboot- sẽ không có trong bộ đệm và do đó sẽ không hoạt động. Vì vậy, nếu bạn ở chế độ một người dùng, nó sẽ hoạt động rất tốt, nếu bạn ở chế độ nhiều người dùng, nó sẽ xóa sạch phần lớn dữ liệu. Tốt nhất bạn nên thực hiện nó khởi động từ một số phương tiện khác (thậm chí dừng trên initrd có lẽ) để bạn có thể chắc chắn tất cả các bài viết đến từ đâu.

Nếu bạn muốn xóa sạch an toàn, điều này sẽ không thực hiện được vì vẫn sẽ còn một số dấu vết của dữ liệu gốc nếu bạn chỉ xóa nó. Thông thường, bạn muốn có tối đa ba lần ghi ngẫu nhiên, có nghĩa là sao chép từ /dev/urandomthay vì /dev/zero- chậm hơn nhiều nhưng an toàn hơn. Một số người có thể đề nghị bạn sử dụng /dev/randomthiết bị cho dữ liệu ngẫu nhiên "thuần túy" - không giả ngẫu nhiên - nhưng với mục đích này, cơ hội ai đó quản lý để bẻ khóa hạt giống PRNG và che giấu thành công dữ liệu về cơ bản là không đáng kể.

Nếu bạn thực sự hoang tưởng, bạn cần ném thiết bị lưu trữ vào lò để thiết bị khử từ / xả.


1
Bạn có nhớ thử thách dd không? Đây là cách đây nhiều năm, nhưng họ đã cung cấp một khoản tiền thưởng cho bất kỳ công ty nào có thể khôi phục bất kỳ dữ liệu nào từ một ổ đĩa cứng đã bị xóa một lần. Họ không có người nhận.
Casey

1
Điều "ba lần" là hoàn toàn vô nghĩa. Dữ liệu ngẫu nhiên 1 lần chắc chắn không thể phục hồi. Ngay cả số không cũng sẽ rất tốn kém để phục hồi (xem bình luận của @ Casey). Có lẽ nếu tiền thưởng là 1 tỷ đô la hoặc họ sẽ có người nhận ...
R .. GitHub DỪNG GIÚP ICE

Phụ thuộc vào ngân sách của bạn và công nghệ của đĩa. Nếu đó là một đĩa, bạn có thể lấy dữ liệu. Ngay cả với công nghệ từ tính "dọc". Bộ nhớ càng biến động, bạn càng an toàn.
mckenzm

4

Nó sẽ như trong VM của bạn xóa sạch đĩa và khiến hệ thống của bạn không sử dụng được.

Tuy nhiên, nếu bạn có một loại 'hoảng loạn xóa' trong tâm trí ddcó thể không đủ nhanh cho điều đó và tôi không chắc liệu có các lệnh hoặc chương trình nhanh hơn cung cấp nó trong trường hợp đó không.


1

Nó sẽ hoạt động, quá trình chạy được tổ chức trong Ram và không cần đĩa. Tôi sẽ sử dụng một hệ thống trực tiếp chạy từ cd hoặc usb. Thậm chí còn có dban, một linux chuyên dùng để xóa đĩa.

Ghi đè đĩa của bạn bằng số không là tiết kiệm, nhưng nếu bạn đủ hoang tưởng hoặc có các quy tắc pháp lý, bạn có thể ghi đè lên dữ liệu ngẫu nhiên nhiều lần.

Hãy cẩn thận khi sử dụng ghi đè ssd không đảm bảo xóa tất cả dữ liệu vì mức độ hao mòn.

Nếu bạn sử dụng mã hóa toàn bộ đĩa (luks), bạn không phải xóa toàn bộ đĩa, xóa tiêu đề luks là đủ.

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.