\r\n\r\n
古いデータファイルをシュレッダーで処分する理由は、古い紙文書をシュレッダーで処分する理由と同じです。Linuxのファイルを安全に削除するために知っておくべきことをお伝えします。このチュートリアルでは、shredコマンドとsecure deleteユーティリティスイートを紹介します。
ファイルを削除しても、実際にハードディスクから削除されるわけではありません。これは、ファイルシステムがinodeを使用する方法に完全に依存します。ファイルシステム内のデータ構造で、ファイルに関するメタデータを保持するものです。ファイル名、ハードディスク上のファイルの位置、ファイルの属性、パーミッションはすべてinodeに格納される。ディレクトリは、ファイルそのものに他なりません。ディレクトリに含まれるファイルの名前とインデックスノード番号を保持するプログラムです。
rm を使ってファイルを削除すると、ファイルシステムは適切な inode を解放し、ディレクトリファイルのサイズを変更します。これにより、そのファイルが占有しているハードディスクの領域は未使用としてマークされます。図書館に入り、カードインデックスを閲覧し、ある本のインデックスカードを見つけ、破り捨てたと想像してください。この本はまだ本棚にあります。ただ、探すのが大変なんです。
つまり、そのファイルが使用していた領域は、他のファイルが使用できるように空きができたということです。しかし、古いファイルの中身はそのスペースに残っているのです。その領域を上書きする前に、そのファイルを取り出すことが可能な場合がほとんどです。
しかし、ファイルを完全に削除することは、後述するように、単に上書きするほど簡単なことではありません。
これらの技術は、従来の電気機械式ハードディスクドライブ(HDD)に適用されるもので、ソリッドステートドライブ(SSD)には使用しないでください。SSDからデータを安全に消去するには、SSD**ベンダーの提供するユーティリティを使用する必要があります。
関連:Linux端末でファイルやディレクトリを削除する方法
shreadは上書きを行うように設計されているため、削除されたファイルを復元することはできません。Ubuntu、Fedora、Manjaroなど、この記事のための調査でテストしたすべてのLinuxディストリビューションに含まれています。
この例では、多くのテキストファイルを含む ~/research というディレクトリで作業することになります。また、他のいくつかのディレクトリも含まれており、その中には他のファイルも含まれています。これらのファイルは機密性の高いものであり、ハードディスクから完全に削除する必要があると推測されます。
ディレクトリツリーの構造を見るには、次のような tree コマンドを使います。 d (directory) オプションをつけると、ツリーにはすべてのファイルが表示されず、ディレクトリだけが表示されるようになります。ディレクトリツリーの構造は以下の通りです。
tree -d個々のファイルを分割するには、以下のコマンドを使用することができます。ここでは、以下のオプションを使用しています。
デフォルトでは、shredは4回ファイルを上書きします。最初の3つの処理はランダムなデータを使用し、最後の1つは我々が要求するゼロを使用します。その後、ファイルは削除され、inodeのメタデータは上書きされます。
n (数字) オプションを使用することで、shresd に多かれ少なかれオーバーライド手続きを使用するように要求することができます。"Shred "は常に少なくとも1つのパスを使用します。ここで提示する数値は、シュレッダーに必要な追加パスの数です。だからShresdは常に我々が望む数より1つ多くパスをする。3つの***を得るためには、2つの***が余分に必要です。
shred -uvz -n 2 Preliminary_Notes.txt_02.txt予想通り、スレイドは3回パスを出した。
言ってみれば、パスの回数が少なければ少ないほど、細切れにする必要がなく、明らかに速くなるのです。しかし、安全性は低下しているのでしょうか?面白いことに、パスは3回で十分かもしれません。
関連:ディスクの消去は一度だけ行えば安全に消去できる
ワイルドカードは、消去するファイルのグループを選択するためにshreadと一緒に使用することができます。* は複数文字を表し、?は1文字であることを示す。このコマンドは、現在の作業ディレクトリに残っている「予備コメント」ファイルをすべて削除します。
shred -uvz -n 2 Preliminary_Notes_*.*残りのファイルは順番にshreadで処理されます。
shred には recursive オプションがないため、ネストしたディレクトリのディレクトリツリーを削除することはできません。
これは問題です。ext3やext4などの最新のログファイルシステムでは、データの破損、損傷、喪失を防ぐために多大な労力を必要とします。ログファイルシステムでは、削除されたファイルが使用していたハードディスク領域で実際に上書きが行われる保証はない。
rmよりももう少し完全にファイルを削除したいだけなら、シュレッダーで十分です。しかし、データがもう存在しないに違いない、完全に復元不可能だと勘違いしてはいけない。これは、ほとんどの場合、そうではありません。
関連:ファイルを「安全に削除」できない理由とその対処法
secure deleteコマンドは、記録ファイルシステムの最善の努力に打ち勝ち、安全にファイルを上書きすることに成功する。ただし、注意事項は同じです。ただし、上書きが実際にドライブの必要な領域で行われ、目的のファイルが削除される保証はありません。可能性は十二分にあるが、保証はない。
Secure Delete コマンドは、以下のオーバーライドおよび操作シーケンスを使用します。
これだけでは、ちょっと物足りないという方は、ぜひご利用ください。オークランド大学のピーター・ガットマン教授に言わせれば、これもやりすぎだという。1996年にこれらの技術を論じた論文を発表し、「論文で取り上げた技術はすべて同時に使わなければならない」という都市伝説を生んだ。
後に精霊を瓶に戻そうとしたピーター・ガットマンは、"ランダムなデータでよく洗えば、期待通りの効果が得られるだろう "と言っている。
しかし、ここにきて、これらはSecure Deleteコマンドで使われる様々なテクニックです。しかし、その前にインストールが必要です。
Ubuntuまたはその他のDebianベースのディストリビューションを使用している場合は、apt getを使用してシステムにこのパッケージをインストールしてください。その他のLinuxディストリビューションでは、代わりにそのLinuxディストリビューションのパッケージ管理ツールを使用してください。
sudo apt-get install secure-deletesecure deleteパッケージには、4つのコマンドが含まれています。
srmコマンドは、rmコマンドと同じように使ってください。z (zeroes) オプションは、**r が最終的な消去にランダムデータの代わりにゼロを使用するようにします。
srm -vz Chapter_One_01.txtsrmの特徴としては、まず動作が遅いことが挙げられます。作業中に視覚的なフィードバックがありますが、再びコマンドプロンプトが表示されると、ほっとします。
l (reduce security) オプションでパス回数を2回に減らすと、かなりスピードアップします。
srm -lvz Chapter_One_02.txtsrmは、これをやっても安全だとは思わないと教えてくれますが、それでも私たちのためにファイルを削除して上書きしてくれます。
l (reduce security) オプションを2回使用することで、パス数を1回に減らすことができます。
srm -llvz Chapter_One_03.txtsrmでワイルドカードを使うこともできます。 このコマンドは、第1章の残りを消去します。
srm -vc Chapter_One_0?.txtファイルはsrmによって順番に処理されます。
r (recursive) オプションを指定すると、srm はすべてのサブディレクトリとその内容を削除します。最初のディレクトリへのパスを srm に渡すことができます。
この例では、カレントディレクトリ ~/research の内容をすべて削除します。これは、~/researchにあるすべてのファイルとすべてのサブディレクトリが安全に削除されることを意味します。
srm -vz *srmはディレクトリとファイルの処理を開始します。
最終的にはコマンドプロンプトに戻ります。今回調査したテスト機では、カレントディレクトリと3つのネストしたディレクトリにまたがる約200のファイルを削除するのに約1時間かかった。
すべてのファイルとサブディレクトリが期待通りに削除されます。
rmで削除したファイルが気になる場合、古いファイルを確認し、確実に上書きする方法を教えてください。 sfillコマンドは、ハードディスクの空き容量をすべて上書きしてくれます。
そうすると、ハードディスクの空き容量がどんどん減っていき、空き容量がゼロになるところまで到達します。sfillが終了すると、空き容量がすべて解放されます。複数ユーザーのシステムを管理している場合、非常に大きな障害となるため、数時間空けて行うべきメンテナンス作業です。
たとえ1人用のパソコンであっても、ハードディスクの容量がなくなるということは、sfillがほとんどの容量を使い切ると、ハードディスクは使えなくなるということです。これは、最初に始めてから離れるものです。
高速化するために、-l(reduce security)オプションを使用することができます。その他のオプションは、先に見た-v(詳細)、-z(ゼロ)オプションです。ここでは、sfillに/homeディレクトリの空き容量をすべて安全に上書きするように依頼しています。
sudo sfill -lvz /home10GBのハードディスクしかないテスト用パソコンで、午後から始めて一晩で完成させました。
これは、-l(セキュリティを下げる)オプションですが、最終的には、コマンドプロンプトに戻されます。
sswapコマンドは、スワップパーティション内のストレージを上書きするコマンドです。まず、スワップパーティションを特定する必要があります。ブロックデバイスをリストアップするblkidコマンドでこれを行うことができます。
sudo blkidスワップ」という言葉を見つけて、それが付いているブロックデバイスを書き込む必要があります。
スワップパーティションが/dev/sda5に接続されていることが確認できます。
スワップパーティションへのディスク書き込みは、上書きの間はオフにする必要があります。
sudo swapoff /dev/sda5これで、sswapコマンドが使えるようになりました。
ここでは、/dev/sda5をsswapのコマンドラインの一部として使用します。また、以前にも使用したことのある-v(verbose)オプションと-ll(reduce security)オプションも使用することにします。
sudo sswap -llv /dev/sda5sswapはスワップパーティションを走査し、その中のすべてを上書きし始めるのです。
これが終わったら、スワップパーティションをアクティブなスワップスペースに復元する必要があります。この操作はswaponコマンドで行います。
sudo swapon /dev/sda5Secure Eraseパッケージには、コンピュータのRAM(ランダム・アクセス・メモリー)チップを消去するためのツールも含まれています。
コールドブート攻撃は、コンピュータがシャットダウンされた直後に物理的にアクセスする必要があります。このタイプの攻撃は、RAMチップからデータを取得することができる可能性があります。
この種の攻撃から身を守る必要がある、とほとんどの人が思っているのなら、コンピュータをシャットダウンする前にメモリを消去すればいいのです。今回も-v(verbose)、-ll(reduce security)オプションを使用します。
sudo sdmem -vllターミナルウィンドウがアスタリスクで埋め尽くされ、sdmemがRAMを介して動作していることが示されます。
ファイルを安全に削除する代わりに、ハードディスクやホームフォルダを暗号化して保護してはいかがでしょうか。
そうすれば、アクティブなファイルであろうと、削除されたファイルであろうと、誰もコンテンツにアクセスすることができなくなります。すべてのファイルがすでに保護されているため、警戒して機密ファイルを安全に削除することを忘れないようにする必要はありません。
ほとんどのLinuxディストリビューションでは、インストール時に暗号化を使用するかどうか尋ねられます。イエス」と言えば、将来の不安を回避することができます。秘密や機密の情報を扱えない。しかし、コンピュータを使い終わったら、誰かにあげたり売ったりするかもしれないと考えている場合は、暗号化することで簡略化することができます。