ubuntuの – どのようにLinuxの空きディスク容量を消去するには?

linux secure-erase security storage ubuntu

ファイルが削除されても、明示的に何か他のもので上書きされない限り、その内容はファイルシステムに残っているかもしれません。wipe コマンドはファイルを安全に消去することができますが、どのファイルにも使われていないディスクの空き領域を消去することはできないようです

そのためには何を使えばいいのでしょうか?

  153  Alex B  2009-08-06


ベストアンサー

警告。最新のディスク/SSD ハードウェアおよび最新のファイルシステムは、データを削除できない場所にデータを隠してしまう可能性があるため、このプロセスではディスクにデータが残る可能性があります。データを消去する唯一の安全な方法は、ATA Secure Erase コマンド (正しく実装されている場合) または物理的な破壊です。また、ハード ドライブ上のすべての情報を確実に消去するにはどうすればよいでしょうか?

secure-deleteと呼ばれる一連のツールを使用することができます

sudo apt-get install secure-delete

これには4つのツールがあります

srm – 既存のファイルを安全に削除 smem – ラムからファイルの痕跡を安全に削除 sfill – ハードドライブ上の空とマークされた領域をすべて消去 sswap – スワップ領域からすべてのデータを消去します

srmのマンページから

srmはメディア上のデータを安全な方法で削除するように設計されています。このワイプアルゴリズムは、第6回Usenixセキュリティシンポジウムで民間暗号学者の第一人者であるピーター・グットマン氏が発表した論文「Secure Deletion of Data from Magnetic and Solid-State Memory」に基づいています

srmの安全なデータ削除処理はこのようになります

  • 0xffで1パス
  • 5つのランダムパス。/dev/urandomは、利用可能な場合は安全なRNGとして使用されます
  • ペーター・グットマンによって定義された特別な値を持つ27のパス
  • 5つのランダムパス。/dev/urandomは、利用可能な場合は安全なRNGとして使用されます
  • ファイル名をランダムな値に変更します
  • ファイルを切り詰める

セキュリティの追加措置として、ファイルはO_SYNCモードで開かれ、各パスの後にfsync()呼び出しが行われます。srmは、速度を上げるために32kブロックを書き込み、ディスクキャッシュのバッファを埋めて強制的にフラッシュさせ、ファイルに属していた古いデータを上書きします

116  fnord_ix  2009-08-07


1つのパスだけが必要で、すべてをゼロに置き換えたい場合には、最も手っ取り早い方法です

cat /dev/zero > zero.file
sync
rm zero.file

(ワイプしたいファイルシステム上のディレクトリから実行) (syncコマンドは、すべてのデータがディスクに書き込まれることを確実にするための被害妄想的な対策です – インテリジェントなキャッシュマネージャは、ファイルがリンクされていないときに保留中のブロックへの書き込みをキャンセルできることを発見するかもしれません)

この操作の間、ファイルシステム上に空き領域が全くなくなる時間があります。フリースペースが完全にゼロになる時間を短縮するには、以下のようにします

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
cat /dev/zero > zero.file
sync
rm zero.small.file
rm zero.file

これは、高価なフォレンジック操作をしなくても、誰かが古いファイルの内容を読むのを止めるのに十分なものでなければなりません。より安全で、より遅いバリアントには、/dev/zero/dev/urandomに置き換えてください。より被害妄想的になりたい場合は /dev/urandom で複数のステップを実行しますが、それだけの労力が必要な場合は coreutils パッケージの shred ユーティリティがお勧めです

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
shred -z zero.small.file
cat /dev/zero > zero.file
sync
rm zero.small.file
shred -z zero.file
sync
rm zero.file

上記では、小さいファイルは大きいファイルを作成する前にシュレッダーされているので、シュレッダーされるのを待つのではなく、大きいファイルが完成したらすぐに削除することができます。シュレッダー処理は、大きなファイルの上に長い時間がかかり、NSAから何かを隠そうとしていない限り、IMOは本当に必要ではありません

上記のすべては、どのようなファイルシステムでも動作するはずです

ファイルサイズの制限

DanMouldingが下のコメントで指摘しているように、これはファイルシステムによってはファイルサイズの制限に問題があるかもしれません

FAT32では、2GiBのファイル制限があるため、間違いなく心配になります: ほとんどのボリュームは最近ではこれよりも大きくなっています (8TiBがボリュームサイズの制限だと思います)。これを回避するには、大きなcat /dev/zero出力をsplitにパイプして複数の小さなファイルを生成し、それに応じてシュレッドと削除のステージを調整することができます

ext2/3/4ではあまり気になりません: デフォルト/コモン4Kブロックではファイルサイズの制限は2TiBなので、これを問題にするには巨大なボリュームが必要になります(この条件での最大ボリュームサイズは16TiBです)

(まだ実験的な)btrfsでは、最大ファイルサイズとボリュームサイズの両方とも16EiBという巨大なサイズになっています

NTFSでは、最大ファイル長が最大ボリューム長よりも大きくなる場合があります

より多くの情報を得るための出発点。 http://en.wikipedia.org/wiki/Ext3#Size_limits http://en.wikipedia.org/wiki/Btrfs http://en.wikipedia.org/wiki/Ntfs#Scalability

Virtual Devices

先日のコメントにもありましたが、仮想デバイスには余計な配慮があります

  • まばらに割り当てられた仮想ディスクに対しては、zerofreeで使用されているような他の方法の方が速いでしょう (ただし、catddとは異なり、これは標準的なツールではなく、ほとんどのunixライクなOSで利用できるということに頼ることができるものではありません)

  • 疎な仮想デバイス上のブロックをゼロにすると、その下にある物理デバイス上のブロックが消去されない可能性があることに注意してください

  • 固定サイズの仮想デバイスであっても、デバイスが物理的に存在する場所を制御できない場合があるため、いつでも現在の場所や新しい物理ディスクのセットの周りに移動することができます

  • 仮想デバイス上の上記の問題について: ホストを制御し、VM内のディスクをワイプしたり、仮想デバイスを移動させたりした後に、未割り当ての領域を安全にワイプすることができない限り、後になってからこの問題を解決することはできません。唯一の方法は、最初から完全なディスク暗号化を使用して、暗号化されていないものが物理メディアに書き込まれないようにすることです。もちろん、VM内のフリースペースのワイプは必要かもしれません。また、仮想化レイヤはどのブロックが使われていないかを実際に見ることができないため、FDEはスパースな仮想デバイスをあまり有用ではないものにしてしまう可能性があることにも注意してください。OS のファイルシステム層が仮想デバイスに (SSD のように) トリムコマンドを送信し、仮想コントローラがそれを解釈する場合、それが解決するかもしれませんが、これが実際に起こる状況を私は知りませんし、それについてのより広い議論は他の場所で行うべき問題です (私たちはすでに元の質問の話題から離れようとしているので、これがあなたの興味をそそるならば、いくつかの実験やフォローアップの質問が必要かもしれません)

75  David Spillett  2009-08-07


WARNING

私は、ワイプした後でも、photorecがディスクから取得できるファイルの数の多さに衝撃を受けました

空き領域」を0x00で1回だけ埋めるのと、異なるキャバリスティックな基準で38回埋めるのとでは、より安全性が高いかどうかは、もっと学術的な議論が必要である。シュレッダーに関する1996年の論文の著者は、エピローグで、これは時代遅れであり、現代のハードウェアには必要ないと述べています。データが物理的にゼロに置き換えられ、その後に回復されたという文書化された事例はありません

この手順における真の壊れやすいリンクは、ファイルシステムです。ファイルシステムの中には、特別な用途のためにスペースを確保しているものがあり、それは「空き領域」として利用できるようにはなっていません。しかし、あなたのデータはそこにあるかもしれません。それは写真、個人的な平文メール、何でも含みます。先ほど、reserved+space+ext4をググってみたところ、homeパーティションの5%が予約されていることを知りました。私はこれがphotorecが私のものの多くを発見した場所だと思います。結論:シュレッダーの方法が一番重要ではなく、マルチパス方式でもまだデータは残っている

マウントする前に# tune2fs -m 0 /dev/sdn0を試してみてください。(再起動後にルートパーティションになる場合は、アンマウント後に-m 5-m 1を実行してください)

それでも、いずれにしてもスペースは残っているかもしれません

本当に安全な唯一の方法は、パーティション全体を消去して、再度ファイルシステムを作成し、バックアップからファイルを復元することです


早い方法(おすすめ)

ワイプしたいファイルシステム上のディレクトリから実行します

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
rm zero.file

注意点:小さなファイルの目的は、空き容量が完全にゼロになった時の時間を短縮すること、同期の目的は、実際にデータが書き込まれているかどうかを確認することです

ほとんどの人にはこれで十分なはずです

スローな方法(被害妄想)

上記のクリーニングを行った後にデータが復旧したという文書化された事例はありません。可能であれば、コストがかかり、リソースを必要とするだろう

それでも、秘密機関があなたのファイルを回復するために多くのリソースを費やすだろうと考える理由があるならば、これで十分なはずです

dd if=/dev/urandom of=random.small.file bs=1024 count=102400
dd if=/dev/urandom of=random.file bs=1024
sync ; sleep 60 ; sync
rm random.small.file
rm random.file

もっと長い時間がかかります

警告。被害妄想的な方法を選択した場合、この後も高速ワイプをしたくなりますが、それは被害妄想ではありません。純粋にランダムなデータの存在は、検出するのが簡単で安価であり、実際に暗号化されたデータであるという疑いを高めます。復号鍵を明かさないために、拷問を受けて死ぬかもしれない

非常にゆっくりとした道(狂ったような被害妄想

シュレッダーに関する1996年の画期的な論文の著者でさえ、これは時代遅れであり、現代のハードウェアには必要ないとエピローグを書いています

しかし、まだあなたは自由な時間の多くを持っているし、あなたは上書きの多くを使用してディスクを無駄にすることを気にしない場合は、そこに行きます

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
sync ; sleep 60 ; sync
shred -z zero.small.file
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
shred -z zero.file
sync ; sleep 60 ; sync
rm zero.file

注意: これは、基本的には安全な削除ツールを使用しているのと同じです


編集前のこの投稿は、David Spillettさんのリライトでした。”cat “コマンドを実行するとエラーメッセージが出るのですが、他人の投稿にコメントを書くことができません

49  user39559  2010-06-09


少なくともUbuntuにはゼロフリーユーティリティがあります

http://manpages.ubuntu.com/manpages/natty/man8/zerofree.8.html
   zerofree — zero free blocks from ext2/3 file-systems

zerofree  finds  the  unallocated, non-zeroed blocks in an ext2 or ext3
filesystem (e.g. /dev/hda1) and fills them with zeroes. This is  useful
if  the  device  on  which this file-system resides is a disk image. In
this case, depending on the type of disk image, a secondary utility may
be  able  to  reduce the size of the disk image after zerofree has been
run.

The usual way to achieve  the  same  result  (zeroing  the  unallocated
blocks)  is to run dd (1) to create a file full of zeroes that takes up
the entire free space on the drive, and then delete this file. This has
many disadvantages, which zerofree alleviates:

·  it is slow;

·  it makes the disk image (temporarily) grow to its maximal extent;

·  it  (temporarily)  uses  all  free  space  on  the disk, so other
concurrent write actions may fail.

filesystem has to be unmounted or mounted  read-only  for  zerofree  to
work.  It  will exit with an error message if the filesystem is mounted
writable. To remount the  root  file-system  readonly,  you  can  first
switch to single user runlevel (telinit 1) then use mount -o remount,ro
filesystem.

また、zerofree についてのこのリンクもチェックしてください。ファイルシステムの画像を疎かにしておく – これはその著者である Ron Yorston (2012年8月9日) によるものです

27  osgx  2013-01-05


GUIでやる方法を紹介します

  1. BleachBit をインストールします
  2. アプリケーション」-「システムツール」-「BleachBit」をクリックしてrootとして実行します
  3. 環境設定で、どのパスを使うかを指定してください。一般的にはよく推測してくれます。各パーティションに書き込み可能なパスを一つずつ入れたいと思います。一般的には /home/username と /tmp ですが、同じパーティションでない限り、その場合はどちらか一方を選んでください
  4. チェックボックス System – Wipe Free Disk Space
  5. Click Delete.

ddよりもBleachBitの方が優れている点は、ディスクが最終的に一杯になったときに、BleachBitは小さなファイルを作成して、inodes(ファイル名などのメタデータが含まれている)を消去します

3  None  2009-11-06


トップスピードでドライブを拭く

最近ではドライブを暗号化するための典型的な指示は、最初にドライブをWIPEすることを教えてくれます

以下のコマンドを実行すると、ドライブにAESの暗号文を入力します

メインブートドライブを拭く必要がある場合は、ライブCDを使用してください

端末を開いて特権を昇格させる

sudo bash

安全のために、システム上のすべてのドライブをリストアップしてみましょう

cat /proc/partitions

注: /dev/sd{x}をワイプするデバイスに置き換えてください

警告: これはアマチュアのためのものではありません!システムを起動不能にする可能性があります!

sudo openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero > /dev/sd{x}

その速さに唖然としています

3  Roger Lawhorn  2015-09-08


私はddを使って、1つ以上の大きなファイルを割り当てて空き容量を埋めてから、安全な削除ユーティリティを使っています

ddでファイルを割り当てるには試してみてください

dd if=/dev/zero of=delete_me bs=1024 count=102400

これにより、delete_meという名前のファイルが生成され、サイズは100MBになります。(ここで、bsは1kに設定された「ブロックサイズ」であり、countは割り当てるブロック数です)

その後、作成したファイルにお気に入りの安全な削除ユーティリティ(私はshredを使用しています)を使用してください

しかし、これに注意してください:バッファリングは、ディスク全体を行う場合でも、絶対にすべてを得ることができないかもしれないことを意味します


これlink recommends scrubの空き容量ワイプ用。試していません

2  dmckee — ex-moderator kitten  2009-08-07


あなたは、安全な削除パッケージを使用して、あなたの空き領域を消去することができます

そのパッケージでは、sfillツールを見つけることができます。それは安全な方法で媒体上の利用可能なディスクスペースにあるデータを削除するように設計されており、泥棒、法執行または他の脅威によって回復することができません

Linux(Ubuntu)に secure deletion パッケージをインストールするには、以下のコマンドでインストールします

$ sudo apt-get install secure-delete

その後、データを消去するには、次のコマンドを試してみてください

sfill -f -v -ll /YOUR_MOUNTPOINT/OR_DIRECTORY

ここで /YOUR_MOUNTPOINT/OR_DIRECTORY は、空き領域を消去するマウントポイント (df -h, mount) またはディレクトリです

http://manpages.ubuntu.com/manpages/hardy/man1/sfill.1.html でマニュアルをお読みください

2  kenorb  2013-07-04


それは神話のデータが何度も書き込まれている必要があります(ちょうどピーター・ガンマンに聞いてみてください)とランダムなデータ、1とは対照的に0は不自然な活動を意味しています。その上、安全な削除プログラムは、最新のファイルシステム上で実際のファイルを上書きすることさえ保証できない(ジャーナリングされている)

覚えておいてください、CIA/FBI/NSAは、あなたの磁気メディアのビットの実際の状態を読み取ることができる派手な機械を持っていません

1  fred  2013-05-25


簡単なのは、スクラブを使用することです

scrub -X dump

これで現在の場所にdumpフォルダを作成し、ディスクがいっぱいになるまでファイルを作成します。-pオプション(nnsa|dod|bsi|old|fastold|gutmann)でパターンを選択することができます

scrub をインストールするのは簡単ではありませんが(この件については Ubuntu Forums を参照してください)、インストールが完了すれば、本当にシンプルで効率的なツールを手にすることができます

1  FMaz008  2011-11-26


私が使っている「sdelete.sh」スクリプトはこちらです。詳細はコメントを参照してください

# Install the secure-delete package (sfill command).

# To see progress type in new terminal:
# watch -n 1 df -hm

# Assuming that there is one partition (/dev/sda1). sfill writes to /.
# The second pass writes in current directory and synchronizes data.
# If you have a swap partition then disable it by editing /etc/fstab
# and use "sswap" or similar to wipe it out.

# Some filesystems such as ext4 reserve 5% of disk space
# for special use, for example for the /home directory.
# In such case sfill won't wipe out that free space. You
# can remove that reserved space with the tune2fs command.
# See http://superuser.com/a/150757
# and https://www.google.com/search?q=reserved+space+ext4+sfill

sudo tune2fs -m 0 /dev/sda1
sudo tune2fs -l /dev/sda1 | grep 'Reserved block count'

sudo sfill -vfllz /

# sfill with the -f (fast) option won't synchronize the data to
# make sure that all was actually written. Without the fast option
# it is way too slow, so doing another pass in some other way with
# synchronization. Unfortunately this does not seem to be perfect,
# as I've watched free space by running the "watch -n 1 df -hm"
# command and I could see that there was still some available space
# left (tested on a SSD drive).

dd if=/dev/zero of=zero.small.file bs=1024 count=102400
dd if=/dev/zero of=zero.file bs=1024
sync ; sleep 60 ; sync
rm zero.small.file
rm zero.file

sudo tune2fs -m 5 /dev/sda1
sudo tune2fs -l /dev/sda1 | grep 'Reserved block count'

1  Czarek Tomczak  2015-09-27


おそらく、GNU coreutils パッケージがシステムにインストールされているでしょう。これは shred というコマンドを提供します

1  dkaylor  2009-08-07


私は、LinuxとMacOS上で動作する簡単なソリューションを見つけました。ディスクのルートフォルダに移動し、このコマンドを起動します

for i in $(seq 1 //DISKSPACE//); do dd if=/dev/zero of=emptyfile${i} bs=1024 count=1048576; done; rm emptyfile*;

ここで//DISKSPACE//は、ハードディスクのGBのサイズです

1  Enrico  2015-09-30


私はこのバッシュワンライナーをたまに使います

while :; do cat /dev/zero > zero.$RANDOM; done

ディスクがいっぱいですと言い始めたら、Ctrl+Cを押して、作成されたzero.*ファイルを削除してください

ファイルサイズの制限に関わらず、どのようなシステムでも動作します。 cat: write error: File too largeエラーは無視してください

0  Nicolas Raoul  2015-07-30


これは回答ではありません!ただ、pvを使いたい人のためのコメントなので…わざわざ投票しないでください

Linux Mint 17.3では、pv(パイプビュー)を使って書き込みの進捗状況を得ることができます。例えば

# Install pv (pipe view)
sudo apt-get install pv

# Write huge file of approximate size of /dev/sdb, using urandom data:
pv --timer --average-rate --progress --numeric --eta --interval 5 --size "$(blockdev --getsize64 /dev/sda )" /dev/urandom >rand.file

ここでの利点は、プログレスバー、ETA、継続的に更新されたデータレートが得られることです。欠点は、これが1行に書き込まれ、ディスクが一杯になると(エラーを返す)消えてしまうことです。これは、この非常に長い操作が行われている間、OSがディスクを使用する可能性が高いので、フルサイズが概算であるために起こります

非常に古いHDでは、/dev/urandomを使うと約13MB/s、/dev/zeroを使うと約70MB/sのデータレートが得られます。これは、pvではなく、生のddcatを使うと、さらに改善されるでしょう

0  not2qubit  2016-05-11


ファイルがファイルシステムのレコードから消えてしまえば、ハードディスクに残されたデータは1と0の無意味なシーケンスです。その無意味なシーケンスを別の無意味なシーケンスに置き換えようとしているのであれば、arconisのような安全にドライブを消去するためのいくつかの市販品をアドバイスすることができます

-13  Ilya Biryukov  2009-08-06


タイトルとURLをコピーしました