こんにちは、技術部の手島です。
先日、日本ヒューレット・パッカード様(以下 HPE)のProLiantサーバーを借用して調査する案件をいただきました。
その際、案件とは別に、ProLiantサーバーに備わったOne-buttonセキュア消去という機能が気になり、どれくらい中身が消えているんだろう?と試してみた結果を書いていきます。
今回やること、手順と解説
- 目的: SATA SSDに対してOne-buttonセキュア消去機能を実施し、データ復旧を試みる
- 使用機材: HPE ProLiant ML110 Gen11
作業手順:
- 同じ型のSSDを2つ用意、同じファイルを書き込む
- 未消去の SSD 1台をデータ復旧して XORパターン等を抽出
- もう1つの SSD に One-buttonセキュア消去を行う
- 手順2. で入手した XOR パターンを用いて消去済 SSD のデータ復旧を試みる
今回は2つのSSDを用意しますが、手順2. でデータ復旧する未消去のSSDは比較用ではありません。
なぜ未消去のSSDに対してデータ復旧を行うのか解説します。 NANDコントローラーは、NANDフラッシュメモリへ効率的に書き込むため、データをビット反転させたり、特定のパターンとXOR演算をしてから書き込みます。 ここにECC(Error-Collection Code)や管理用のデータも含まれているため、NANDフラッシュメモリのイメージをそのまま眺めると、暗号化された領域や何の意味もないデータに見えることがあります。 そのため、データ復旧時には、まずはXORパターン等を総当りで試しながら画像やMS Officeファイル等の特徴的なファイルヘッダを探し、XORパターン等を特定する必要があります。
今回は、手順3. で SSD内のデータが全て消去されるので、特徴的なファイルヘッダが見当たらないためにデータ復旧に必要なXORパターン等を特定できなくなります。 そのため、まずは手順2. で未消去のSSDをデータ復旧し、予めXORパターン等を抽出する必要があります。
One-buttonセキュア消去とは
業務用サーバーには、遠隔でサーバーを管理するため、OSとは別に管理用インタフェースを搭載した製品が多く、HPE ProLiantサーバーではiLO(Integrated Lights-Out)がこの機能を提供します。
One-buttonセキュア消去はiLOが提供する機能の一つで、ボタン1つでProLiantサーバーに接続された全てのSATA HDD/SSDが消去されるそうです。
手順1. SSDの用意
16GBの容量をもつ中古SSDを買ってきました。データ復旧装置にかけるため、ちょうどよい容量です。
ファイルの残存を比較するため、予めいくつか書き込みます。
MP3形式の音楽、PDF文書、Microsoft Office系のWord、Excel、JPG形式の画像ファイルを各5つ保存しました。このファイルは、以前のリサーチ 破壊・フォーマットされたUSBメモリからデータを復旧するでも用いたものです。
各ファイルは、音楽ファイルは甘茶の音楽工房様、PDF、Excelファイルは経済産業省の資源・エネルギー統計、Wordファイルは警視庁の車庫証明申請書等を利用させていただきました。お礼を申し上げます。
手順2. 未消去のSSDに対するデータ復旧
まずは未消去のSSDに対してデータ復旧をし、XORパターン等を抽出します。
SSDからNANDフラッシュメモリを外し、清掃します。
データ復旧装置に実装します。
データ復旧装置 PC-3000 Flash でNANDフラッシュメモリを読み取り、イメージの中からファイルを探していきます。
いくつかのXORパターンを試しながら、先ほど書き込んだ写真や音楽ファイル、MS Officeファイル等の特徴的なファイルヘッダを探し、NANDコントローラーがどのような演算をしながらNANDフラッシュメモリを読み書きしているのか特定します。
試行の末、今回のNANDコントローラーは特定のパターンとXORしながらNANDフラッシュメモリに書き込むことがわかり、書き込んだファイルを復元することができました。
このSSDには、以前はシンクライアント用の Windows OS が入っていたようで、それらのファイルも復旧できました。
手順3. One-buttonセキュア消去の実施
ProLiantサーバー ML110 へ SSD を接続しました。認識されていますね。
このSSDはHPE正規品ではないので NON AUTHENTIC DRIVE と表示されていますが問題ありません。
これを消去してもらいましょう。
消去してもらったSSDを、まずは Linuxが動作する PC から dd コマンドで読んでみました。結果の16進ダンプを以下に示します。
$ xxd -a 16GB_erased.bin
00000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
*
3ba815ff0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
ブロックデバイスとして読み出すと、16GB の領域が全て 0 に見えます。
今回の検証はこれだけでは終わりません。上記の 0 は、SSDのNANDフラッシュメモリの中身を、NANDコントローラー(SSDコントローラー)を通して見ています。
今回はデータ復旧装置を用い、本当に復旧できないことを確認していきましょう。
手順4. One-buttonセキュア消去したSSDに対するデータ復旧
手順2. で、既にXORパターンは判明しています。同じようにデータ復旧を試みた結果がこちらです。
何も見つかりません。NANDフラッシュメモリのイメージ内を直に見てみましょう。
見ての通り、全て 0 で埋まっています。データ復旧したくとも、何も残っていません。
One-buttonセキュア消去はどのような処理をしているのか?
サポートセンターを見てみると、以下のような記述があります。
HPE サポートセンター Intelligent Provisioning 4.0 ユーザーガイドより
One-buttonセキュア消去はサポートされたドライブにどのように作用しますか。
シングルパスのATA SANITIZE with BLOCK ERASEオプション
ユーザーがアクセスできない物理メモリブロックを含む、すべての物理メモリブロック内の旧データは元に戻すことができなくなります。
キャッシュ内のすべての旧データもアクセスできなくなります。
今回は自己暗号化ドライブ(SED)ではないSATA SSDですので、ユーザーがアクセスできない物理メモリブロックを含むすべての物理メモリブロック内に対し、ATA SANITIZE with BLOCK ERASEオプションを用いて消去しているとのことで、NANDフラッシュメモリの内容はこの記述と一致します。
このオプションは、例えば、「NANDフラッシュメモリの特定のブロックが繰り返しの利用で消耗したためバッドブロックとしてNANDコントローラーから認識されたが、当該ブロック内の一部のページが既に利用されてデータが残存している場合」等にも有効です。
このような場合、 バッドブロックとしてマークされたブロック内の各ページの内容が消去されるかどうかはNANDコントローラーの実装次第となります。
バッドブロックにはNANDコントローラーは新たにデータを書き込みませんので、以下のようなコマンドでユーザーが 0 を書き込んで保存されたデータの消去を試みても、バッドブロック内に残ってしまったデータは消去されません。
# Example on Ubuntu, /dev/sda is the SSD to be erased.
$ sudo dd if=/dev/null of=/dev/sda status=progress
そのため、このようなケースを考慮して、バッドブロックだろうが何だろうが全ての物理メモリブロックを消去せよ、というオプションが規定されており、One-buttonセキュア消去はこの機能を用いているようです。
まとめ
今回は、ProLiantサーバーが提供するOne-buttonセキュア消去機能をSATA SSDに実施し、見事に内容が消えている結果となりました。
ただし注意事項として、One-buttonセキュア消去機能は SATA のコマンドを利用しているため、USB接続のUSBメモリなどは対象外です。(サポートセンターにも記載があります。)
サイバーディフェンス研究所では、このような製品を廃棄する時のデータの残存リスクを評価してほしいといった案件にも対応可能ですので、どうぞお問い合わせ下さい。
また弊社では、攻撃側の目線で必要となる組込機器に対する基礎的な知識とテクニックを習得できるハードウェアハッキングトレーニングを提供しています。 本トレーニングは、今年から情報処理安全確保支援士が資格更新のために受講する特定講習としても認められました。 支援士ではない方も、支援士の方も、問い合わせをお待ちしています!(特定講習番号: 24-014-051)
Link: サイバーディフェンス研究所 HP ハードウェアハッキングトレーニング
Link: 経済産業省 情報処理安全確保支援士特定講習 特定講習一覧 https://www.meti.go.jp/policy/it_policy/jinzai/tokutei.html
最後に、今回の検証と結果の公表を快諾いただいた日本ヒューレット・パッカード合同会社の皆様に感謝を申し上げます。