1.はじめに
四国のお客様から、「NAS-RESCUEで、データが見えないよ。」との電話が有りました。
状況を確認したら、HDDが一台内蔵のLANDISKでした。データ部がRAID構成だったので、NAS-RESCUEの2台用を使ってもらったところ、RAIDは構成できたが、データパーティションのファイルシステムが「未知」と表示されたようです。
このような場合、元のHDDでReadエラーが発生している可能性が有るので、まずはクローンを作って下さい。とお願いしました。お客様は早速、クローンの作成を開始しました。Readエラーが頻発したようで、3TBのHDDのクローンを作るのに3日間、掛ったようです。再度、NAS-RESCUEの2台構成用を試しましたが、同じ結果でした。そこで、ファイルシステム復活のコマンドを実行してもらいました。2日掛かって、そのコマンドは終了しましたが、「未知」ということで、状況は変わりませんでした。そこで、弊社で作業します。となって、弊社へ送付頂きました。
2.メーカーが勝手に暗号化して、データ復旧サービスを使えない機種
届いたHDDのクローンをPC-3000で作成している間に、このLANDISKの特徴を調べました。機種はHDL-TA3、操作説明書を確認したら、なんと、2ページ目に、
「本製品はデータ復旧サービスを使えません
本製品はセキュリティ強化のため、全体を暗号化しています。そのため、他社も含めたデータ復旧サービスでのデータ復旧はできません。データの二重化などを心がけ、大事なデータが消えないようにご注意ください。」https://www.iodata.jp/lib/manual/pdf2/hdl-ta_b-manu202553.pdf より引用。
と有るではありませんか。。。。メーカーで暗号化?データ復旧サービスは、他社を含めて使えない?
どうしよう?
暗号化されたTeraStationについては、これまで、何台か復旧してきたが、LANDISKは未経験。でも、困っているお客様が居るのだから、挑戦してみよう、と、お客様には、作業時間が掛かるのと費用がかさむ、事を説明し、(もちろん、データ復旧できなかった場合は、作業料金は0円)、了承を頂きました。
3.同一機種の手配と試行錯誤の作業
まずは、同一機種をアマゾンから仕入れて、色々と試してみる事にしました。
試験①HDDのクローンを作成して、クローンでLANDISKが起動するかを試しました。
結果、クローンのHDDでこのシリーズのLANDISKは起動しました。(旧来のLANDISKでは起動しませんでした。)
試験②復旧対象のHDDのクローンを作成し、クローンで復旧対象のLANDISKが起動するかを試しました。
復旧対象ののHDDは、HDDの最初の辺り(OS部とデータ部の先頭)で、READエラーが頻発していた為、クローンのHDDでは起動しませんでした。
試験③テスト機のHDDのパーティション1のファイルを解析しました。
「lkdata.crypt」「lksystem.crypt」のファイルが有り、もしかすると、これが暗号化キー?と期待しました。更に、「initilize.sh」というスクリプトを発見し、中を確認すると、「/sbin/cryptsetup –cipher=aes –key-file=”/tmp/lkdata”・・・」という、どうやら、cryptsetupというコマンドを、lksystemという暗号化キーファイルを使って、パーティションを暗号化している、という記述を発見しました。
テスト機のクローンを使い、「lkdata.crypt」を暗号化キーファイルとして、復号化してみました。見事に失敗。。。。
試験④工場出荷時に作られた暗号化キーは、LANDISKの毎回の起動時に、再現よく作成されるのか?を検証しました
この検証には時間が掛かりました。というのも、「uInitrd.ta」「zImage.ta」「rootfs.tgz」という、圧縮ファイルがLANDISKの起動時に展開されるのはしっていたので、これらのファイルを展開し、暗号化キーを作成しているであろうプログラムを検索したからです。テキストエディタ、バイナリーエディタを駆使して、探してみましたが、見当たりませんでした。
テスト⑤LANDISKの基盤は、いわゆるマイコンボードなので、起動の様子をシリアル通信で観察できないかを試してみました。
基盤アルアルですがHDL-TAの基盤には、4本のピンが接続しており、このピンが基盤のテスト評価をするものと推測できました。そして、ラッキーであれば、シリアル通信用のピンと期待しました。テスターで、各ピンの電圧を測定し、アースのピンと、通信に使うTXD、RXDのピンを予測しました。ボーレートは、古いLANDISKハックの記事を参考に、115200のボーレート、1ビットのストップビットとして設定して試してみました。何回かの施行後、シリアル通信に成功しました!
4.LANDISKの起動ログを解析し、暗号化キー取得に成功!
試行①LANDISKのHDDを接続しての起動ログを取得し、解析
まずは、正常起動のログを取得し、ログを解析しました。このモードでは、通信は垂れ流しで、こちらからの信号は受付なかったので、LANDISKを操作することができませんでした。
試行②LANDISKのHDDが未接続の状態で起動ログを取得し、解析
このモードでは、USBが無いみたいなログが表示され、ストップ。
試行③FAT32形式でフォーマットしたUSBに、試行②で指示されたように起動イメージを保存して、起動してみました。
なんと、この場合、起動ログが終了後、こちらからの信号を受付て、(なんか、BusyBoxというソフトが起動したようです)、LANDISKの中を操作できるようになりました。「initilize.sh」に記述の有る通りに、暗号化キーが有るかどうかを探った所、有りました!
試行④「lkdata」「lksystem」という暗号化キー?を、UBUNTU上で、LANDISKのクローンに適用したところ、データが見えました!
5.納品と料金
早速、データを取り出した所、なんと約9Gバイトでした。えっ。3TバイトのNASに9Gバイト?
クローン作成時に、データパーティションの先頭付近で、READエラーが多発していたので、もしかして、ファイルインデックス部分が正しくRead出来ていないのでは?と思い、UBUNTU上で、データ復旧コマンドを実行しました。しかし、9Gバイトでした。
ならば、ということで、暗号化されたデータパーティションを、復号化した状態でクローンを作成し、復旧しようと思い、クローンを作成しました。やはり、復号化しながらのクローン作成なので、30時間もの時間がかかりました。この復号化されたクローンで、専用の復旧ソフトで復旧してもデータは約9Gバイトでした。都合5回復旧作業を行ったことになります。
お客様へ納品した所、OKを頂き、翌日には料金が振り込まれました。ありがとうございました。
気になる料金は、
基本料金 HDD一台構成3TB 33,000円
HDD故障加算 11,000円
復号化処理加算 110,000円
NAS-RESCU購入費用 -11,000円
計 143,000円