2021年4月末、QNAP NAS(TS-453Be)が、ランサムウェアのQlockerに感染しました。気付いたときは、すでに暗号化圧縮が完了しおり復号化パスワードを取得できない状態でした。
データを何とか取り戻せないか調査した結果、写真ファイルであれば、ほぼ復旧できる方法が分かりました。実際に試したみたところ、写真ファイルの復旧を確認できました。
大切な家族写真が消えてしまい、悲しんでいる方を一人でも減らしたいです。
復旧手順を紹介します。
目次[非表示]
写真復旧に使用するツール
この記事で利用するのはPhotoRecというファームウェアです。無料で使えます。名前からも想像できるとおり、写真データを復元するために開発されています。
PhotoRecというツールは、復元率が高くて有名なのですが、写真ファイル専用で作られていた経緯があって、ファイル名の復元はできません。写真データにファイル名は関係ないでしょ、というスタンスなのかな?
ファイルシステムを完全に無視して復旧のみに専念するため、ファイル名だけでなくフォルダ構成も復元できません。実は写真データ以外も復旧できますが、ファイル名がない、フォルダ構成がないため、サムネイル表示できないファイルは実質使えないと思います。
補足
ファイル名とフォルダ構造を復元する方法に補足があります。ファイル名とフォルダ名を復元できないとお伝えしておりました。しかしセキュリティ界隈の有志の作ったプログラムを使用するとファイル名やフォルダが復元できました。ブログの最後に紹介しています。
以降に復旧の手順を解説します。
PhotoRecを使ってQlockerに暗号化圧縮された写真を復旧する方法
ここから紹介する復旧手順は、「BleepingComputer.com」というサイトにありました。補足しながら日本語で紹介します。
大まかな流れを説明します。
まず最初に復旧先のフォルダをQNAPとは別にWindows PCなどに作成します。理由は同一ドライブに復元してしまうと、ディスク領域が復元データで書き換えられてしまうためです。この記事ではネットワーク共有を使った方法を紹介します。
次にQNAP NASにSSHで接続する手順を説明します。Qlockerにやられた写真データを復旧する処理は、SSHで接続したNAS上で実行します。
続いて、PhotoRec のダウンロードしたファイルからインストールするまでの手順を説明します。
最後にPhtoRecを使って写真を普及する方法を説明します。
以降に詳細な手順を交えて解説いたします。
1.復旧先の共有フォルダを作成する
WindowsPCに共有用のフォルダを作ります。このフォルダに復旧できたファイルが保存されますので、十分な空き領域のあるドライブに作成してください。
共有用のフォルダを新規作成します。続いてエクスプローラーの「共有」タブを表示します。新しく作成したフォルダを選択した状態で、「特定のユーザー…」をクリックします。
「共有する相手を選んでください」という画面が表示されます。この画面の一覧に表示されているユーザーが共有フォルダにアクセスできます。所有者で問題なければ、そのまま共有ボタンをクリックして問題ありません。下図ではqnapuserというユーザーを追加して「読み書き」属性を与えた例です。
蛍光マーカーしてある部分が、共有フォルダ名となります。この名前はメモしておいてください。後ほど利用します。
2.SSHでQNAPに接続する
今回はSSHでQNAPに接続して、コマンドベースで復旧作業を行います。敷居が高い部分がありますが、手順どおり進めればできますのでご安心ください。
最初にSSHが使える状態か確認する必要があります。QNAPの管理コンソールにあるコントロールパネルで確認できます。管理コンソールにログインしてコントロールパネルを起動してください。
「SSH接続を許可する」のチェックを確認してください。チェックがなければチェックします。
続いて、SSH接続できる「RLogin」というアプリをダウンロードします。このアプリは、Windowsと同様に右クリックから貼り付けができます。下記の公式サイトからダウンロードできます。赤枠部分がダウンロード用のリンクです。
rlogin/telnet/ssh(クライアント)ターミナルソフト
ダウンロードしたファイルをデスクトップなど任意の場所に展開(解凍)します。「RLogin.exe」をクリックして起動します。「新規」ボタンをクリックして、QNAPに接続するための設定します。
SSH接続情報を入力します。プロトコルは「ssh」を選択します。次にホスト設定には、QNAP NASのIPアドレス、ログインユーザーはadminを使用してください。adminのパスワードを入力してください。
最初の画面に戻るので、先ほど登録した接続情報を選択して「OK」ボタンをクリックします。
接続に成功すると、下記のようなコマンドプロンプト画面が表示されます。
続いて、PhotoRecのインストールになります。ちょっとその前に一息ついてはどうでしょうか。
3.PhotoRecをインストールする
コマンドプロンプト画面に下のような文字が表示されていたら、「Q」を入力してEnterキーを押します。
Console Management - Main menu
1: Show network settings
2: System event logs
3: Reset to factory default (password required)
4: Activate/ deactivate a license
5: App management
6: Reboot in Rescue mode (w/o configured disk)
7: Reboot in Maintenance Mode
Q: Quit (return to normal shell environment)
続いて、「Y」を入力してEnterキーを押します。
Console Main > Quit
Are you sure you want to exit the console menu and return to normal shell environment? (Y/N)
WindowsPCで作成した共有フォルダにアクセスするための設定を行います。user=の部分は、共有フォルダにアクセスできるユーザー、xxx.xxx.xxx.xxxは、WindowsPCのIPアドレスです。マウント(mount)するときに、共有ユーザーのパスワードの入力を求められます。
mkdir /mnt/photo-qnap
sudo mount -t cifs -o user=qnapuser //xxx.xxx.xxx.xxx/qnapbk2 /mnt/photo-qnap
sh: /bin/systemd-ask-password: No such file or directory
Password for qnapuser@//xxx.xxx.xxx.xxx/qnapbk2:<パスワードを入力>
マウントした共有フォルダに移動します。エラーなく移動できれば共有フォルダへのマウントが成功です。
cd /mnt/photo-qnap
[/mnt/photo-qnap] #
続いて、インストールするPhotoRecの種類を確認します。赤字部分を覚えてください。
[/mnt/photo-qnap] # uname -a
Linux QServer 4.14.24-qnap #1 SMP Tue Mar 2 07:04:54 CST 2021 x86_64 GNU/Linux
TestDisk(PhotoRec)をダウンロードします。先ほどの赤字部分によって実行するコマンドが変わります。
「i386」の場合
wget https://www.cgsecurity.org/testdisk-7.2-WIP.linux26.tar.bz2 -O testdisk.tar.bz2
「x86_64」の場合
wget https://www.cgsecurity.org/testdisk-7.2-WIP.linux26-x86_64.tar.bz2 -O testdisk.tar.bz2
ダウンロードしたTestDisk(PhotoRec)は圧縮されていますので解凍します。解凍後、作成されたPhotorecに対して実行許可を与えます。
tar -xvf testdisk.tar.bz2
cd testdisk*
chmod +x ./photorec_static
以上で、PhotoRecのインストールが完了です。
以降からが実際に写真を復旧させる作業となります。
4.写真を復旧する
PhotoRecを起動します。起動するまで30秒ほど時間がかかりますので慌てずお待ちください。
sudo ./photorec_static
「 /dev/mapper/cachedev1」というディスクにカーソルを動かして、Enterキーを押してください。
PhotoRec is free software, and
comes with ABSOLUTELY NO WARRANTY.
Select a media (use Arrow keys, then press Enter):
Disk /dev/mmcblk1 - 3959 MB / 3776 MiB (RO)
Disk /dev/sda - 4000 GB / 3726 GiB (RO) - ST4000VN008-2DR166
Disk /dev/sdb - 4000 GB / 3726 GiB (RO) - ST4000VN008-2DR166
Disk /dev/sdc - 4000 GB / 3726 GiB (RO) - ST4000VN008-2DR166
Disk /dev/sdd - 4000 GB / 3726 GiB (RO) - ST4000VN008-2DR166
Disk /dev/sde - 4000 GB / 3726 GiB (RO) - WDC WD40 EFRX-68WT0N0
>Disk /dev/mapper/cachedev1 - 5497 GB / 5120 GiB (RO)
Disk /dev/mapper/vg1-lv1 - 5497 GB / 5120 GiB (RO)
Disk /dev/mapper/vg1-lv1312 - 796 MB / 760 MiB (RO)
Disk /dev/mapper/vg1-tp1 - 7830 GB / 7293 GiB (RO)
Disk /dev/mapper/vg1-tp1_tierdata_0 - 4194 KB / 4096 KiB (RO)
Disk /dev/mapper/vg1-tp1_tierdata_1 - 4194 KB / 4096 KiB (RO)
Disk /dev/mapper/vg1-tp1_tierdata_2 - 7832 GB / 7294 GiB (RO)
Disk /dev/mapper/vg1-tp1_tierdata_2_fcorig - 7832 GB / 7294 GiB (RO)
Disk /dev/mapper/vg1-tp1_tmeta - 68 GB / 64 GiB (RO)
Disk /dev/mapper/vg1-tp1-tpool - 7830 GB / 7293 GiB (RO)
Disk /dev/md1 - 7981 GB / 7433 GiB (RO)
Disk /dev/md13 - 469 MB / 448 MiB (RO)
Disk /dev/md256 - 542 MB / 517 MiB (RO)
Disk /dev/md322 - 7408 MB / 7065 MiB (RO)
Disk /dev/md9 - 542 MB / 517 MiB (RO)
Disk /dev/dm-0 - 68 GB / 64 GiB (RO)
Disk /dev/dm-1 - 4194 KB / 4096 KiB (RO)
Disk /dev/dm-2 - 4194 KB / 4096 KiB (RO)
Disk /dev/dm-3 - 7832 GB / 7294 GiB (RO)
Disk /dev/dm-4 - 7832 GB / 7294 GiB (RO)
Disk /dev/dm-5 - 7830 GB / 7293 GiB (RO)
Disk /dev/dm-6 - 7830 GB / 7293 GiB (RO)
Disk /dev/dm-7 - 5497 GB / 5120 GiB (RO)
Disk /dev/dm-8 - 796 MB / 760 MiB (RO)
Disk /dev/dm-9 - 5497 GB / 5120 GiB (RO)
>[Proceed ] [ Quit ]
続いて、ext2 or ext3 or ext4 というパーティションを選んでください。最下部3番目にある「File Opt」でEnterキーを押すと、復元するファイルの拡張子を選べますが、今回は初期設定のままでOKです。画面下のSearchを選択してEnterキーを押します。
PhotoRec 7.2-WIP, Data Recovery Utility, April 2021
Christophe GRENIER
https://www.cgsecurity.org
Disk /dev/mapper/cachedev1 - 5497 GB / 5120 GiB (RO)
Partition Start End Size in sectors
Unknown 0 0 1 2147483647 0 1 10737418240 [Whole disk]
> P ext4 0 0 1 2147483647 0 1 10737418240 [DataVol1]
>[ Search ] [Options ] [File Opt] [ Quit ]
Office Word、Excelファイルも復元可能
OfficeのWordファイル(doc)を復元できました。PhotoRecの仕様上、ファイル名は暗号のような形になってしまいます。フォルダ構成もないので実用性は厳しい部分があります。
PhotoRecの初期値では復活対象の拡張子になっています。Excelファイルも復元対象です。手順どおり進めれば復元されます。
ファイルシステムの選択は、「ext2/ext3」を選んでください。
To recover lost files, PhotoRec needs to know the filesystem type where the
file were stored:
>[ ext2/ext3 ] ext2/ext3/ext4 filesystem
[ Other ] FAT/NTFS/HFS+/ReiserFS/...
分析する場所の選択になりますが、「Free」を選びます。
Please choose if all space needs to be analysed:
>[ Free ] Scan for file from ext2/ext3 unallocated space only
[ Whole ] Extract files from whole partition
復元できたファイルを保存するフォルダを選びます。初期値はPhotoRecツールがあるフォルダになっているので、一階層上に保存するように「..」を選択します。そうすることで共有フォルダの直下に復元されます。
Please select a destination to save the recovered files to.
Do not choose to write the files to the same partition they were stored on.
Keys: Arrow keys to select another directory
C when the destination is correct
Q to quit
Directory /mnt/photo-qnap/testdisk-7.2-WIP
drwxr-xr-x 0 0 4096 2-May-2021 23:59 .
>drwxr-xr-x 0 0 0 2-May-2021 17:23 ..
drwxr-xr-x 0 0 0 26-Apr-2021 15:22 icons
drwxr-xr-x 0 0 0 26-Apr-2021 15:22 jni
drwxr-xr-x 0 0 0 26-Apr-2021 15:34 l
-rwxr-xr-x 0 0 216 12-Nov-2007 01:21 AUTHORS
-rwxr-xr-x 0 0 17987 16-Jun-2006 07:01 COPYING
-rwxr-xr-x 0 0 232308 7-Jul-2019 23:10 ChangeLog
-rwxr-xr-x 0 0 117 26-Feb-2021 06:27 INFO
-rwxr-xr-x 0 0 19633 8-Jul-2019 02:16 NEWS
-rwxr-xr-x 0 0 2187 2-Aug-2020 15:14 README.md
-rwxr-xr-x 0 0 2256 25-Feb-2016 01:32 README_dev_photorec.txt
-rwxr-xr-x 0 0 344 22-Apr-2008 02:32 THANKS
-rwxr-xr-x 0 0 41 26-Apr-2021 15:34 VERSION
-rwxr-xr-x 0 0 504 24-Dec-2017 23:21 documentation.html
-rwxr-xr-x 0 0 903 26-Apr-2021 15:33 fidentify.8
-rwxr-xr-x 0 0 4097424 26-Apr-2021 15:34 fidentify_static
-rwxr-xr-x 0 0 1170 26-Apr-2021 15:33 photorec.8
-rwxr-xr-x 0 0 1508456 2-May-2021 23:58 photorec.se2
-rwxr-xr-x 0 0 10777200 26-Apr-2021 15:34 photorec_static
-rwxr-xr-x 0 0 301 8-Jul-2019 02:12 readme.txt
-rwxr-xr-x 0 0 1755 26-Apr-2021 15:33 testdisk.8
-rwxr-xr-x 0 0 8601576 26-Apr-2021 15:34 testdisk_static
「C」キーを押します。復旧処理が開始します。
Please select a destination to save the recovered files to.
Do not choose to write the files to the same partition they were stored on.
Keys: Arrow keys to select another directory
C when the destination is correct
Q to quit
Directory /mnt/photo-qnap
>drwxr-xr-x 0 0 0 2-May-2021 17:23 .
drwxr-xr-x 0 0 300 2-May-2021 16:57 ..
drwxr-xr-x 0 0 0 2-May-2021 23:59 testdisk-7.2-WIP
-rwxr-xr-x 0 0 7450004 26-Apr-2021 15:34 testdisk.tar.bz2
処理中は状況表示されます。処理が終わるまでの予測時間(あてにならないかも)、拡張子別に復元できたファイル数などが見られます。
Destination /mnt/photo-qnap/recup_dir
Pass 1 - Reading sector 180814728/10737418240, 1990 files found
Elapsed time 0h03m32s - Estimated time to completion 3h26m17
jpg: 1861 recovered
txt: 84 recovered
tif: 35 recovered
sqlite: 6 recovered
mov: 4 recovered
復元されたファイルは共有フォルダ直下に「recup_dir.X」というフォルダに保存されます。
続々と写真が復元していきます。
Exif情報も残った状態で復元できました。
5.ファイル名とフォルダ構造を復元する(必要に応じて)
海外のコンピューターヘルプサイト「Bleeping Computer」にて、filerestoreというツールが配布されていました。
このツールを使えば、PhotoRecを使用してファイルを復元した後に、ファイル名、フォルダ構造含めて復元ができます。ただし、PhotoRecで復旧できたファイルにExif情報が残っている場合に限ります。
Qlocker (QNAP NAS) Ransomware encrypting with extension .7z (!!!READ_ME.txt)
filerestoreを利用するのに必要なデータ
- filerestore本体
- 暗号化された状態のファイルおよびフォルダ構成
- PhotoRecで復元したファイル
このツールの使い方は簡単です。下図にある3つの情報を入力して、「Start」ボタンを押すだけです。
7z形式に暗号化されたファイルであっても、ファイルのヘッダー情報にある「元のファイルサイズ」「CRC情報」が読み取れるようです。それらの情報を元にして、filerestoreでは下記のような処理を行っていると推測できます。
- 暗号化されたファイルのヘッダー情報にあるファイルサイズとCRC情報で、PhotoRecで復元したファイルを比較する
- 一致したら同一ファイルと判断
- 暗号化されたファイルから、元のファイル名、暗号化されたファイルの位置(フォルダ構成)を元に、ファイル名やフォルダ構成を復元
実際に試したところ、確かにファイル名やフォルダ構成が復元できました。
QNAPが復旧用アプリを公開 追記:2021/06/01
QNAPが、ここで紹介した一連の流れをアプリで実現しました。詳細は下記をご覧ください。
How to recover your files from the Qlocker attack
さいごに
手順どおりに進めれば、ここまでたどり着けると思います。
ランサムウェア Qlockerに消された思い出の写真、1枚でも多く復元できることを祈っております。
ではでは。