@ CODEBLUE 2016 on Thu 20 Oct 2016
しもがいと だい(下垣内 太)大阪データ復旧株式会社
自己紹介
しもがいと だい ( 下垣内 太 ) データ復旧 – 故障したコンピュータからデータを救出 デジタルフォレンジック調査 – 犯罪や不正事件の証拠品データ解析 サイバーセキュリティ研究 – HDD の隠しデータ領域(本日のテーマ)
h t t p s : / / w w w . f a c e b o o k . c o m / d a i . s h i m o g a i t o
HDD を開けて内部の構造を見てみよう!
HDD 内部はこうなっています
主な4つのパーツ
1 2
3
1. 磁気ディスク
1 2
3
左の、鏡のような丸くて平らな部品が磁気ディスクです
この磁気ディスクにデータとファームウェアが記録されています
3
読み書きヘッドは、右の黒い四角形のスライダの先端にあります
2. ヘッドスタックアセンブリ ( HSA, ヘッド )
2
メインコントローラと ROM チップがありますROM にはファームウェアの始まり部分が記録されています
データポート電源ポートRAM
3
3. 制御基板 ( PCB )
ファームウェアは、磁気ディスクと HSA の動きを制御しデータの読み書きをするためのソフトウェアです
ROM には、ファームウェアの始まり部分が記録されています磁気ディスクには、 他のファームウェアが記録されています
4. ファームウェア
4
SA & UA
SA Service AreaROM 以外のファームウェア( SA モジュール)は、サービスエリアに記録されています
UA User Areaオペレーティングシステム、写真画像、ドキュメントファイルやフォルダなどのユーザデータは、ユーザエリアに記録されます
尚、不良セクタ発生に備えた予備セクタは、 SAではなく UA に存在します。
SA and SA Module
SA Service AreaROM 以外のファームウェア( SA モジュール)は、サービスエリアに記録されています
SA Moduleファームウェアは役割ごとに”モジュール”として SA に存在します。
P-List, G-List, S.M.A.R.T. そして ATA パスワードも、それぞれ該当する SA モジュールに記録されています。
尚、 SA モジュールの数は製品の設計ごとに異なります。メーカが違うとファームウェア設計も異なりますが、ベースの構造は同じです。
1. Power ON2. コントローラが ROM を読む
3. 磁気ディスクが回転を開始し、ヘッドが SA まで移動する
4. コントローラが SA モジュールを読む
5. Ready
HDD 起動のながれ
HDD 起動のながれ
SA Module ROM SA Module SA ModuleSA Module SA Module SA ModuleSA Module SA Module SA Module
Power ON ReadySA Module
RAM
Controller
HDD 起動のながれ
Power ON Ready
RAM
Controller
Power ON 起動失敗
RAM
Controller
起動失敗の原因 ,,,,1. SA モジュールを読むヘッドが悪い2. SA モジュールがあるディスクが悪い3. SA モジュールの内容が悪い
Operating System not found
データアクセス不可
HDD 内部でのセクタ位置管理のしくみ
Head 0
Head 1
Which Cylinder ( = Track ) ?
Which Head ( = Surface ) ?
Which Sector ?
HDD 内部での物理的なセクタの位置は , CHS で表すことができます
PBA ( Physical Block Address ) は、物理セクタごとに割り当て
PBA 0 = CHS( 0 , 0 , 0 )PBA 1 = CHS( 0 , 0 , 1 )PBA 2 = CHS( 0 , 0 , 2 )PBA 3 = CHS( 0 , 0 , 3 )PBA 4 = CHS( 0 , 0 , 4 )PBA 5 = CHS( 0 , 0 , 5 )
,
PBA 10 000 000 = CHS( 234 , 1 , 18 )PBA 10 000 001 = CHS( 234 , 1 , 19 )PBA 10 000 002 = CHS( 234 , 1 , 20 )PBA 10 000 003 = CHS( 234 , 1 , 21 )PBA 10 000 004 = CHS( 234 , 1 , 22 )PBA 10 000 005 = CHS( 234 , 1 , 23 )
,
HDD 内部でのセクタ位置は
PBAによって管理されます。
LBA ではありません。
* これらの値は、ひとつの例としてのものです。
LBA は PBA に割り当てられる
HDD 内部での物理セクタ位置
PBAPC での
論理セクタ位置
LBA
PBA 0 ↔ LBA 0PBA 1 ↔ LBA 1PBA 2 ↔ LBA 2PBA 3 ↔ LBA 3PBA 4 ↔ LBA 4PBA 5 ↔ LBA 5PBA 6 ↔ LBA 6PBA 8 ↔ LBA 7
--
PBA 640768 ↔ LBA 623001
PBA 640769 ↔ LBA 623002
PBA 640771 ↔ LBA 623003
PBA 640772 ↔ LBA 623004
PBA 640773 ↔ LBA 623005
PBA 640774 ↔ LBA 623006
PBA 640782 ↔ LBA 623007
PBA 640783 ↔ LBA 623008
Firmware
物理セクタと LBA / ! これは誤解です !
製品容量が同じなら、全ての HDD の物理セクタ数はおなじ ?
LBA が割り当てられていないセクタ
物理セクタと LBA / ! これは誤解です !
LBA は、全ての物理セクタに割り当てられている ?
LBA が割り当てられていないセクタ LBA が割り当てられているセクタ
物理セクタと LBA / ! これは誤解です !
不正解です
LBA が割り当てられていないセクタ LBA が割り当てられているセクタ
物理セクタ総数は、 HDD ごとに異なります
HDD-
A
HDD-
B
HDD-
C
PHAS
E-01
LBA が割り当てられていないセクタ LBA が割り当てられているセクタ
Primary Defects on Disk ( P-List )製造段階で LBA の割り当てが除外されたセクタ
の位置情報は P-List と呼ばれています P-List ( Primary Defects List ) P-List は、 SA に SA モジュールとして存在します P-List は、各製品に固有の情報であり、重要です
HDD-
A
HDD-
B
HDD-
C
PHAS
E-02
LBA が割り当てられていないセクタ LBA が割り当てられているセクタ
工場出荷時
同じ数の LBA をそれぞれの HDD に割り当てることによって
HDD の製品容量はどれも同じになります
HDD-
A
HDD-
B
HDD-
C
PHAS
E-03
製造段階で LBA の割り当てが除外されたセクタLBA が割り当てられていないセクタ LBA が割り当てられているセクタ
LBA が割り当てられた物理セクタの位置アクセス可能なセクタは、物理的には先頭から終端まで連続していません。
HDD-
A
HDD-
B
HDD-
C
PHAS
E-04
同じ数の LBA が HDD に割り当てられているアクセス可能なセクタは、物理的には先頭から終端まで連続していません
しかしながら、アクセス可能なセクタは、論理的には先頭から終端まで連続しています
HDD-
A
HDD-
B
HDD-
C
HDD-
A
HDD-
B
HDD-
C
PHAS
E-04
PHAS
E-05
不良セクタの出現についてみてみましょう
新品の状態
HDD-
A
HDD-
B
HDD-
C
PHAS
E-03
製造段階で LBA の割り当てが除外されたセクタLBA が割り当てられていないセクタ LBA が割り当てられているセクタ
代替処理後の不良セクタ
代替処理後の不良セクタ
の位置情報は G-List と呼ばれています G-List ( Growth Defects List ) G-List は、 SA に SA モジュールとして存在します G-List は、各製品に固有の情報であり、重要です G-List を初期化すると過去のデータが出現することもあります
HDD-
A
HDD-
B
HDD-
C
PHAS
E-06
製造段階で LBA の割り当てが除外されたセクタLBA が割り当てられていないセクタ LBA が割り当てられているセクタ
代替処理後の不良セクタ
HDD-
A
HDD-
B
HDD-
C
HDD-
A
HDD-
B
HDD-
C
PHAS
E-06
PHAS
E-07
代替処理後の不良セクタ
製造段階で LBA の割り当てが除外されたセクタLBA が割り当てられていないセクタ LBA が割り当てられているセクタ
代替処理後の不良セクタは E-SE のみアクセス可
Q1.LBA が割り当てられた物理セクタへのアクセスはできるでしょうか?
Q2.代替処理後の不良セクタには、 LBA が割り当てられていませんが、アクセスはできるでしょうか?
A1.はいA2.基本的には無理但し Enhanced Secure Eraseだけはデータ消去をするためにアクセスできます
代替処理後の不良セクタ
PBA LBAFirmware
PBA Firmware LBA
HDD-
BHD
D-B
PHAS
E-08
PHAS
E-07
製造段階で LBA の割り当てが除外されたセクタLBA が割り当てられていないセクタ LBA が割り当てられているセクタ
3つのデータ消去方式の比較
Secure Erase( ATA コマンド / Purge )
Enhanced Secure Erase( ATA コマンド / Purge )
データ消去ソフト( 上書き / Clear )
&
LBA 領域に限定されず最大の消去領域を対象にできる唯一の手段
LBA 領域に限定LBA 領域に限定
LBA が割り当てられているセクタ 代替処理後の不良セクタ
消去処理としてアクセスできる物理セクタ位置のみを表示していますHD
D-B
HDD-
B
HDD-
B
PHAS
E-08
PHAS
E-08
PHAS
E-07
&08
3つのデータ消去方式の比較
&
存在する物理セクタすべてを表示しています
LBA が割り当てられていないセクタ 製造段階で LBA の割り当てが除外されたセクタ
HDD-
B
HDD-
B
HDD-
B
PHAS
E-06
PHAS
E-06
PHAS
E-06
LBA が割り当てられているセクタ 代替処理後の不良セクタ
LBA 領域に限定されず最大の消去領域を対象にできる唯一の手段
LBA 領域に限定LBA 領域に限定
Secure Erase( ATA コマンド / Purge )
Enhanced Secure Erase( ATA コマンド / Purge )
データ消去ソフト( 上書き / Clear )
物理セクタ数調査結果(3台の同型 HDD )
2TB SATA HDD * 3Same model, Same capacity( Capacity:3 907 029 168 LBA )
HDD-A HDD-B HDD-C
PBA 数 3 931 988 368 3 933 712 984 3 933 659 976
LBA 数との差 24 959 200 26 683 816 26 630 808
差をバイト換算
12 779 110 400 13 662 113 792 13 634 973 696
差を % 表記 0.635% 0.678% 0.677%
( PBA 数 ) - ( LBA 数 ) = 差 = 余剰物理セクタの数
どうする?
余剰物理セクタ はアクセス不可能なぜなら LBA が割り当てられていないから
PBA Firmware LBA
もし、そこにデータがあったら ?
Ultimate Boot CD で Enhanced Secure Eraseを実行
シリアルナンバーなどが記録されていることを確認
実演
実際の HDD を書き込み防止装置を用いて PC に接続し
バイナリエディタで先頭セクタを見てみましょう!
データの見え具合はファームウェアに完全依存
LBAPBA Firmware1
LBAPBA Firmware2
Firmware 1
MBR (第 0 論理セクタ)の物理セクタですらファームウェア次第で変わります
Firmware 2
LBA はいつでも同じ物理セクタに割り当てられているわけではありません
むしろ 流動的 !
HDD-
B
HDD-
B
HDD-
B
PHAS
E-08
PHAS
E-14
PHAS
E-01
P A R A D A I S
余剰物理セクタに LBA が割り当てられると、 Enhanced Secure Erase でさえ消去処理が到達しなかった領域へも、データアクセスができるようになる
1. HDD を初期化フォーマットしても、そこに残ります2. OS のセットアップや再インストールを実行しても、残ります3. 悪意のあるソフトウェアが存在しても、一切検知できません4. 従来法ではアクセスすることは不可能です5. どんなソフトウェアやデータでも保存することができます6. まるっきり制限なし7. やりたい放題8. ” 誰か”のための”自由なスペース”
LBAPBA Firmware?
▼
HDD-
BPH
ASE-
10
使用開始から3年経過した HDD の例
代替処理後の不良セクタ
HDD-
A
HDD-
B
HDD-
C
PHAS
E-06
製造段階で LBA の割り当てが除外されたセクタLBA が割り当てられていないセクタ LBA が割り当てられているセクタ
PARADAISHD
D-A
HDD-
B
HDD-
C
HDD-
A
HDD-
B
HDD-
C
PHAS
E-06
PHAS
E-09
代替処理後の不良セクタ
製造段階で LBA の割り当てが除外されたセクタLBA が割り当てられていないセクタ LBA が割り当てられているセクタ
PARADAIS
PARADAIS
HDD-
A
HDD-
B
HDD-
C
HDD-
A
HDD-
B
HDD-
C
PHAS
E-06
PHAS
E-10
代替処理後の不良セクタ
製造段階で LBA の割り当てが除外されたセクタLBA が割り当てられていないセクタ LBA が割り当てられているセクタ
PARADAISHD
D-A
HDD-
B
HDD-
C
HDD-
A
HDD-
B
HDD-
C
PHAS
E-06
PHAS
E-11
PARADAIS代替処理後の不良セクタ
製造段階で LBA の割り当てが除外されたセクタLBA が割り当てられていないセクタ LBA が割り当てられているセクタ
PARADAISHD
D-A
HDD-
B
HDD-
C
HDD-
A
HDD-
B
HDD-
C
PHAS
E-06
PHAS
E-12
PARADAIS代替処理後の不良セクタ
製造段階で LBA の割り当てが除外されたセクタLBA が割り当てられていないセクタ LBA が割り当てられているセクタ
PARADAISHD
D-A
HDD-
B
HDD-
C
HDD-
A
HDD-
B
HDD-
C
PHAS
E-06
PHAS
E-13
PARADAIS代替処理後の不良セクタ
製造段階で LBA の割り当てが除外されたセクタLBA が割り当てられていないセクタ LBA が割り当てられているセクタ
HDD の物理イメージと呼べますか?
そう呼んで差し支えないときもあるかもしれませんが、、、、HD
D-A
HDD-
B
HDD-
C
PHAS
E-05
ディスクイメージ取得ツールが読み飛ばすセクタ
HDD-
A
HDD-
B
HDD-
C
PARADAIS ActivationPARADAIS のアクティベーションは、外発的でも内発的でも実行可能
1. 外発的なアクティベーション ある ATA コマンドが送信されると、次回の HDD 起動時に PARADAIS が発動するようにスタン バイさせることができます。
2. 内発的 ( 自発的 ) アクティベーション 外的トリガーがなくても発動は可能です。いつかそのときがくるまで待つだけです。 ネットワークにつながっていないスタンドアロン環境でも発動できるので、いわゆる エアギャップ状態の産業機器や制御装置であっても誰かがコマンドを与える必要なく 自発的発動が可能です。
▲Debian Linux の /etc/shadowを入れ替えることで、 root ログインに必要なパスワードを変更した(デモ)
▲
/etc/shadow
外部からの操作がないにも関わらずパソコンを再起動したら、未確認のパーティションが出現した(デモ)
悩ましい問題
消費者 & ユーザ(顧客) ベンダ & メーカ
こんなアクシデントが起こ
るなんて、きいてないよ。
責任とって下さい!
訴えてやる! こんなことが
起こるなんて
想定外だ (T^T)
製造物責任
悩ましい問題
裁判所
そうなんですね ?
捜査機関
我々は HDD の全てのデータ領域を調べつくしました。
物理イメージは HDDの完全なる複製物です。
デジタルフォレンジックス
悩ましい問題
被害者 加害者
わたしの大切なデータ
が
なくなっちゃった
(泣)
ランサム
おまえのデータは、まだ HDD の中
にはあるが、読めないところに隠し
てあるのだ!
データが欲しければ、身代金を払
え!
悩ましい問題
全セクタを完全消去できるソフトウェアは無い
データ消去
悩ましい問題
サイバーテロ
悩ましい問題
サイバーセキュリティ
あなたなら何を組み込む?
組み込まれて困るものはなんだろう?
PARADAIS アクティベーション対策
1. HDD を使用する前に調べる
データの重要度が高いほど、 HDD のファームウェアを使用前にチェックすることが望ましい
・PARADAIS に何かが仕込まれていても、発動をブロックすればよい そのためには、ファームウェア検査が発動機会を低減させるのに有効 ・余剰物理セクタのデータを消去する そのためには、余剰物理セクタに LBA を割り当てる処理がまず必要。そしてデータ消去。
2. 信頼できる販売者を選ぶ
誰から HDD を買いますか? なぜその人から買いますか? 安いからですか?
この研究は現在も進行中 / 重要事項
Although I have described the mechanism of HDD and PARADAIS, it is unknown ifPARADAIS exists in all HDD products of all the manufacturers.
It could be possible that it exists only in several models that I have verified so far, because the structure and the mechanism differ depending on the design of eachmanufacturer and model.
To make it more precise and clear, it is preferable to explain on each differentproduct. However, it could affect the product's reliability. So I've been avoidingmentioning the name of the products and the manufacturers so far.
I would appreciate your understanding.
この PARADAIS がどのメーカーのどの製品にどの程度存在しうるのかについてはまだ調査の余地が残されており、HDDはメーカごとの設計等によっても構造が異なるため、より具体的かつ正確性を確保するためには、各製品の設計や仕様に沿った検証が本来ならば必要ですが、当研究の提言内容は、ともすれば特定のメーカや製品の信頼性に影響を及ぼし兼ねないとの考えにより、積極的に特定のメーカ名や製品名を公表することは今の時点では控えております。この点につきましてご理解を賜れますようお願い申し上げます。
2nd Part
自然災害の被害にあった HDD
磁気ディスクのダメージはデータ復旧不可(だった)
部分的にダメージがあるにしても、その他の領域にはデータは残っているはずから、なんとか復旧できないかな、、、、
Disk Burnishing Process
効果が確認できた
0.02%
94%
UP !
日経産業新聞 2013年 9月 26日版 関西大学と大阪データ復旧との共同研究
新たに開発した DDRH
Survey of 12 DR casesNo. HDD型番 故障状況 復旧
困難さクリーニング後の状況 効果
1 ST2000DM001 ブート不可 / 摩耗粉あり B 電源投入後のファーム出力ログに変化 C
2 ST2000DM001 ブート不可 / 摩耗粉あり B 電源投入後のファーム出力ログに変化 C
3 WD10EADS-22M2B0 ブート不可 / ヘッド交換・ファーム調整要 D リードエラーが若干解消 B
4 SV1203N ブート不可 / ヘッド交換・ファーム調整要 C リードエラーの解消 B
5 ST3000DM001 ブート不可 / ファーム改造・ヘッド交換 C 電源投入後のファーム出力ログに変化 C
6 ST2000DM001 ブート不可 / ファーム改造・ヘッド交換 B 電源投入後のファーム出力ログに変化 C
7 ST2000DM001 摩耗粉多量 A 不可 D8 ST1000DM003 ブート可 E ブート時のログ変化なし D9 ST3000DM001 ブート不可 / ヘッド交換・ファーム
調整要 C 一部のリードエラー解消 C10 ST31000528AS ブート不可 / ファーム異常 C 一部のリードエラー解消 C11 ST1000DM003 ブート不可 / ファーム改造・ヘッド
交換 C 一部のリードエラー解消 C12 ST3000DM001 ブート不可 B ブート成功 A
Difficulty Levelディスク摩耗多 Aディスク一部スクラッチや摩耗粉微量飛散 Bヘッド交換を含む複合的措置 Cヘッド交換 D軽度故障 E
Effect大幅改善 A顕著な改善 *1 B効果あり C変化なし D状態悪化 E
・この研究成果は大阪市に報告されています。・ DDRH の開発には大阪市の助成金が一部活用 されています。
*1 1000 以上のリードエラー解消が条件
DDRH を用いた12例のデータ復旧事例
Chart Title
大幅改善8%
顕著な改善17%
効果あり58%
変化なし17%
状態悪化0%
ディスク摩耗多8%
ディスク一部スクラッチや摩耗粉微量飛散34%ヘッド交換を含む
複合的な措置42%
ヘッド交換のみ8%
軽度故障8%
データ復旧の困難レベル DDRH によるクリーニング効果
およそ8割において、クリーニング効果が認められた
これからも続く研究テーマ
FIRMWARE & PARADAIS
Bad
潤滑層 &ディスク表層部クリーニング
Good
ありがとうございました !