スキップしてメイン コンテンツに移動

ドライブの安全なデータ消去

 安全なデータ消去。

ストレージの廃棄方法
HDDやSSDといったストレージの究極の廃棄方法としては物理破壊がよくあげられます。強力な磁気を浴びせたり、ドリルで本体に穴を開けたり、分解してフラッタに油性ペンで落書きしたりとかするアレですね。
たた、どんなに破壊しても(原子レベルにまで還元でもしないかぎり)その手の人にかかればデータは復元されてしまうかもしうれません。自分では壊したつもりでも最近の製品は優秀なので思ったり壊れてなかったりとかもあります。

廃棄する前にデータを消去するのが基本
最終的に物理的に破壊するとしても、可能であればその前にデータを消去するのが基本です。データを消去するといっても、ファイルをゴミ箱に捨てて空にする、rm *を実行するとかではダメです。ディスクをフォーマットしても(クイックフォーマットではなく通常のフォーマットでも)ダメです。よく知られているようにWindowsやMacOS,LinuxといったOSで通常のファイルの消去やフォーマットはファイルシステムの管理情報(メタデータ)を書き換えファイルを見えなくしているだけでデータそのものはディスク上に残っています。これらの見かけ上消去されただけのファイルを復元するのは比較的簡単です。まちがえてファイルを消してしまった際に回復するためユーティリティなどはどのOSでも広く配布されています。

データの完全消去
データの完全消去の基本はデータの上書きです。ゼロ、任意の文字ないしはランダムなデータでディスク全体を上書きします。上書きのルールは色々なものがありますが、昔はアメリカの国防省が定めたルールがよく利用されていました。それによるとある文字、その補数、ランダムな文字での3回の上書き処理を実行することになっています。なんで3回も上書きをするかというと、いわゆるHDDの磁気のヒステリシスにより元のデータが読み取られる可能性を排除するためです。

こういった上書き処理をするためのユーティリティやコマンドも各OSに用意されてます。LinuxであればShredいうコマンドで実行可能です。

Secure Erase
ディスク全域に渡ってデータを上書きするのは結構な時間がかかります。最近は3回も上書きしなくても1回で充分だと言われていますが、それでも最近の大容量HDDでは相当な時間が必要です。また上書きのルールはHDDの仕組みを前提としたものなので、SSDなどまったく仕組みの異なるストレージでは非効率的です。さらにSSDなどフラッシュデバイスでは仕様上、予備領域と呼ばれる領域が確保されており、この領域上にあるデータはOSから直接上書きすることはできません。

最近のSATA/SASドライブではSecure Eraseと呼ばれる仕組みが用意されています。これはハードウェア側でドライブ上のデータを完全消去してくれる仕組みです。ドライブに特定のATAコマンドを実行することによって消去が実行されます。OS側はコマンドを実行するだけでデータの消去はドライブ自身が実行します。SATA/SASドライブであれば、HDDでもSSDでも実行するためのコマンドは同一です。あとはそれぞれのドライブが自身にあった消去方法を実行します。

SecureEraseであってもHDDの場合はドライブの容量に応じたそれなりの時間が必要です。SSDの場合はフラッシュデバイスの仕組みを利用して消去を実行するので容量によらず短時間で終了します。その際、予備領域など通常アクセスできない領域のデータも消去されます。SSDの場合はSecure Ereseを実行することによりいわゆる出荷状態に戻すことが可能です。

Secure Eraseを実行するためにはそのためのユーティリティが必要です。Linuxであればhdparmコマンドなどで実行可能です。

Secure Eraseの実行

Secure Eraseを実行するにあたり、ドライブがFrozen状態で解除する必要があります。通常、ドライブを接続した状態でPC/サーバ等を起動した場合ドライブはFrozen状態になっています。状態はhdparm -Iコマンドで確認できます。

Frozen状態を解除する方法はPC/サーバの電源が入った状態で対象のドライブの電源をサイクル(OFF-ON)すればOKです。サーバなどホットスワップ対応のドライブベイに入っているドライブであればサーバの電源が入った状態でドライブを”抜き差し"することによって解除できます。

PCなど通常の固定のドライブベイの場合はどうすれば良いのか。PCの電源が入った状態でSATAの電源ケーブルを自分で”抜き差し"することによって解除できるようです。ドライブ壊れないの?と自分も思いますがわかりません。試す場合は自己責任でおねがいしますね。ちなみに、サーバ等のホットスワップ対応のドライブベイは電源が入ってる状態でドライブを抜き差ししても故障しないようにケージの電源コネクタ部分が工夫されています(もちろんドライブが故障しないだけでデータの書込中に抜き差しすればデータは壊れます)


SED/自己暗号化ドライブ
HDDの場合はもちろん、SSDの場合でもあっても"一瞬で"データを消去することは不可能です。"一瞬で"消去を実行できるドライブとしてSED/自己暗号化ドライブがあります。
暗号化ドライブとはその名の通り暗号化してデータを保存するドライブです。暗号化のためのチップはドライブ上に用意されていて暗号/復号の処理はそのチップが実行します。暗号化のための鍵もチップ上に保存されています。暗号化の処理はドライブ上で完結しているので、ドライブを搭載するハードウェア(PC/サーバ)側からは通常のHDDと全く同じに扱えます。
ドライブ上のデータを消去するには、このチップに保存されている暗号化のための鍵を消去することによって可能です。鍵は高々256bit程度なので"一瞬"で消去が可能です。もちろんデータはそのままドライブ上に残っていますが、暗号化されているため復号するための鍵がなくなってしまえばもう読み取ることはできません。
正確に言えばデータを消去ではなく、一瞬で読み取り不可能に(破壊)しているということです。暗号化の鍵はドライブ側で自動生成されてユーザやOSが知ることはできないので一度消されてしまえば真相は闇の中です。
このディスクを利用すれば映画とかでよくある、当局に踏み込まれたときにデータを一瞬で消去する、といった利用法も可能です(たぶん)。

まとめ
ディスクのデータの消去にOS上でファイルを削除するだけではダメでそのための処置が必要です。最近のSATA/SASドライブであればSecure Erase機能を使うことでディスク全体のデータを確実に消去することが可能です。さらに、暗号化ドライブを利用すれば一瞬でデータを消去(破壊)することが可能です。


コメント

このブログの人気の投稿

SuperMicro Update Managerを試してみる

SuperMicro社が提供している有償ツールのSuperMicro Update Manager(SUM)を試してみました。このツールを利用するとIPMIと同じ感覚でBIOS設定の確認や変更、BIOSファームウエアの更新が可能です。

SuperMicro Update Manager SUM紹介ベージhttps://www.supermicro.com/solutions/SMS_SUM.cfm

Linux起動中にBIOSの設定を確認したくなることありませんか。Windows環境のマシンであればそのようなツールもあるよう気もしますが、Linux上となるとあまり聞かないと思います。以前、Linux上でEFI変数を利用する方法を試してみたのですが、設定らしきものはバイナリデータになっていて詳細不明で、設定の変更はブートデバイスの優先順位くらいしか変更できませんでした。SuperMicro社が提供しているSuperMicro Update Managerを利用すると簡単に(同社のMB限定ですが)OS起動中にBIOSの設定を確認したり変更したりすることが可能になります。

SUMの機能などの詳細な説明は上記のWebページに詳しく紹介されていますのでそちらを参照ください。今回はBIOS周りの機能を試してみました。

SUMではツールを利用して以下のことが可能です。
BIOS設定の取得現在の設定やデフォルトの設定などをテキストファイルベースで確認できます。BIOS設定の変更テキストファイルベースで設定の変更ができます。ただし変更を反映するには再起動が必要です。BIOSファームウェアのアップデートBIOSをアップデートをそのままの環境で実行できます(DOS環境はいりません)。ただしアップデートを反映するには再起動が必要です。 また対象のサーバにアクセスする方法として二つの方法あります。
リモート(Out-band)でアクセスする。別のマシンでSUMを実行してネットワーク経由で対象サーバにアクセスするローカル(In-band)でアクセスする。対象サーバ上で起動しているOS(Llnux)上でSUMを実行して自分自身にアクセスする。 IPMIと同様に実際にBIOSの設定を取得したり変更したりするのを担っているのはMB上に搭載されているコントローラです。したがって、リモートでアクセスする場合…

SATA12台でのRAID構成可能な1Uサーバ

最近のサーバでは1Uサイズでも2.5インチのドライブを10台から12台搭載できます。しかし搭載しているRAIDカードが8ポートまで対応の製品のためにRAIDカードに接続可能なディスクは最大8台までという制限があり、残りのドライブは通常のSATAポート等に接続しなくてはならないという製品がほとんどでした。


そこでせっかく12台搭載できるのだから12台でRAIDを構成したいというご要望にお応えしてこちら(EZ1D-Scalable-SATA12)の製品をご用意しました。





サーバに搭載可能な2.5インチドライブ12台全てを利用してRAIDアレイを構成することができます。デュアルソケット対応でアプリケーションの処理性能も充分、12台で構成されたRAIDの性能をフルに発揮することが可能です。

12台でRAIDを構成することにより8台での構成の場合と比較してより柔軟にRAIDを構築することができるようになります。また8台の構成では現実的でなかった特殊なアレイ構成も可能となります。
12台のドライブによる大容量ストレージ2台のホットスペアを備えたRAID6 用途に応じた複数のRAIDアレイを1つのサーバ上に構築RAID50やRAID60といった特殊なアレイの構成
ありそうでなかった12台対応RAID搭載1Uサーバ。ぜひご検討ください。

製品の紹介ページ
EZ1D-Scalable-SATA12 主な仕様
CPU 対応CPU第2世代インテル® Xeon® スケーラブル・プロセッサー搭載CPU数2
メモリ 最大容量1.5TB(1536GB)スロット数24タイプECC対応 2666MHz DDR4 SDRAM
ネットワーク デュアルポート 1Gbpsイーサネットデュアルポート 10GbpsイーサネットRAIDコントローラSATA12ポート対応 RAIDコントローラ
RAID 0,1,5,6,10,50,60対応
キャッシュメモリプロテクションモジュール搭載ドライブベイ12 ホットスワップ対応 2.5インチ SATA/SAS ドライブベイ

GUIDパーティションとMBRブート

GUIDパーティションのディスクからGRUBで通常(MBR)起動する際のメモ。なんとなくやってできていたので気にしていませんでしたが、UEFIでのブートを試した際に今まで勘違いしていたことが分かったのでその点のまとめ GUIDパーティションディスクからの起動   GUIDパーティションテーブル(GPT)の規格はUEFI(EFI)の規格とセットであるが、GUIDパーティションテーブルのディスクからの起動にはEFIブートが必須というわけではない。
  Windowsの場合は無理な場合が多いが、LinuxではGPTのディスクからも従来通りの方法(MBRを利用した方法)での起動は可能。

GUIDパーティションテーブル   GUIDパーティションテーブルの先頭のセクタ(LBA0)は従来のMBRと同じものになっている。これは互換性や安全性のため。GPTに対応していない機器にディスクを接続してしまったときに、ディスクと認識されなかったり、さらには初期化のされていないディスクと勘違いされていきなり初期化されたりしないようにするため。
  従来のMBRパーティションでは、MBR内にパーティション情報を格納してたが、GPTではここにはパーティションを情報を格納しない。MBRにつづく第2セクタ(LBA1)にあるパーティションテーブルヘッダおよび第3セクタからはじまるパーティションエントリに情報を格納する。
  MBRパーテョンでは基本パーテョションが4つまでであったり、大きなサイズ(2TB以上)のディスクを扱えなかったりしたのは、MBR内のパーティション情報を格納する領域の大きさ的にそれが限界であったため。
  GPTではこのパーテョション情報を格納する領域は十分に広い。パーティションは128個まで、ディスクサイズは8ZiB(ゼビバイト)まで扱える(もちろん、情報が格納できるというだけで実際に使えるかどうかはOSなどの対応による)

MBRブート   MBRブートでのブートローダはMBR内に格納する。MBRのサイズは全体で512B(1セクタ)であるが上記のパーティションテーブル情報分があるのでブートローダに利用できる領域は446Bしか用意されていない。
  このサイズでは多機能なブートローダは格納できない。そこでGRUBなどの多機能なブートローダでは、MBR内には多機能なブートローダの本…