web-dev-qa-db-ja.com

ファイルを安全にシュレッダーにかける

* NIXシステムでファイルを細断処理す​​る安全な方法は次のとおりです。

shredder.sh

#!/bin/bash
# Define number of rewrites
COUNT=20
# Define file size
FILE_SIZE=`wc -c < "$1"`
# Begin rewriting file
while [ $COUNT -ge 0 ]
do
   # Write random data to file
   echo `dd if=/dev/urandom bs=1 count="$FILE_SIZE"` > $1
   COUNT=$(( $COUNT - 1 ))
done

ファイルは正しいオフセット(開始点)で書き換えられていますか?

それを行うためのより短く、より良く、よりポータブルな方法はありますか?

1
Sebi

いいえ、長距離ではありません。

あなたがやろうとしていることは不可能なので、あなたが失敗しているのは当然のことです。最もひどい問題は、ファイルを上書きしようとさえしていないことです:… > $1は、最初にファイルを切り捨てて、そのすべてのブロックを空きとしてマークし、次にコマンドの出力を新しく割り当てられたブロックに書き込みます。新しく割り当てられたブロックが、ファイルから割り当てられたばかりのブロックになる理由はありません。

実行した場合dd if=/dev/urandom bs=1 count="$FILE_SIZE" of="$1"それならこの障害を克服するでしょう。このファイルのコピーを上書きしたことを確認できます。ただし、ファイルの他のコピーは、次のように他の場所に存在する可能性があります。

  • ファイルが生成または編集されたときに作成された一時的なコピー。
  • ファイルが過去に編集された場合は、古いバージョン。
  • ファイルにアクセスできる人が作成した可能性のあるバックアップ。
  • ファイルシステムのスナップショットに存在する他のコピー。
  • ストレージデバイス内で作成された可能性のあるその他のコピー。 SSDでは、消去は(速度とデバイスの摩耗の両方の点で)コストのかかる操作であるため、セクターから新しいコンテンツを書き込むのは実際には セクターを後で削除するようにマークし、データを書き込みます)別のセクター

データを消去する安全な方法は、1日目からディスク全体を暗号化することです。次に、データを回復できないようにするには、通常、明確に定義された場所に保存されているキーをワイプするだけです。できれば、実際のキーをディスクに保存しないでください。人間の介入でマシンが起動する場合は、強力なパスフレーズを使用してください。キーが人の介入なしに起動する場合は、スマートカード、または後悔することなく物理的に破壊できる安価なUSBキーまたはSDカードにキーを保存します。

上で説明したように、攻撃者がハードウェアアクセスを持っているか、SSDのファームウェアをハッキングできる場合、SSD上のデータを単に上書きしても、データが回復不能になるとは限らないことに注意してください。 SSDが機能する場合は、SSDの安全な消去機能を使用する必要があります(残念ながら、一部のSSDモデルはこの機能を備えていると主張していますが、実際にはデータを消去しません)。

スクリプトは、必ずしも真実ではない仮定を行います。

  • ファイルの一部を上書きすると、新しいデータが古いセクターに書き込まれます
  • これは特にSSDには当てはまりません(ウェアレベリングを調べてください)
  • Btrfsやaufsのような書き込みまたはオーバーレイファイルシステムでコピーを使用しない

編集:上記は、スクリプトの問題の大まかなリストとしてのみ考慮されるべきです。私はセキュリティの質問に完全に無知ではありませんが、ファイルを編集するときの一時的なコピー、リモートサーバーへの送信、さまざまなキャッシュ、スワップスペース、ジャーナル、その他多くのことや私が知らないことなど、ここでは処理されないケースがたくさんありますの。

考えられる対策((常に)100%安全ではない):

  • シュレッドを使用しますが、SSDなどのフラッシュベースのメディアや、ext3などの一般的なファイルシステムを含むすべてのファイルシステムを対象としたものではありません。
  • sSDメーカーのツールを使用すると、利用できない場合があります
  • ファイルを保存する前にフルディスク暗号化を使用し、OSパーティション、スワップパーティション、他のすべてのパーティション(一時的な)コピーが書き込まれる可能性があり、他のすべてのHDD/USBスティック/ ...も最適です。削除するファイルを除く他のすべてのデータを暗号化されたドライブにバックアップしてから、ファイルと接触していたすべてのメディア(OSパーティションを含む)を再フォーマットして再暗号化し、他のデータをディスクに戻します。
1
H. Idden