第205号コラム:大谷 尚通 幹事(株式会社NTTデータ 技術開発本部 セキュリティ技術センタ シニアエキスパート)
題:「フラッシュメモリーとフォレンジック」

スマートフォンやタブレットが爆発的に普及し、個人や企業を問わず積極的に使われ始めています。私も、64GBモデルのiPod TouchとiPad2を愛用しています。前者の記憶容量の大部分は購入した音楽CDのデータで、後者の大部分は自分で撮影した写真データで占領されています。フラッシュメモリーの大容量化と低価格化がなければ、64GBモデルは購入できなかったでしょう。フラッシュメモリーが手軽に使えるようになった一方で、フラッシュメモリーへデータを書き込んだり、書き換えたりするたびに、気になっていることがあります。本コラムでは、フラッシュメモリーのフォレンジックについて、気になっている点をお話します。

■スマートデバイスの普及に潜む罠
スマートフォンやタブレット(以下、「スマートデバイス」という。)の企業内への導入が進んでいます。持ち運びやすく、機能も充実し、操作しやすいため、ノートパソコンに代わって、家庭内だけでなくビジネスへの活用も急速に進んでいます。スマートデバイスは、その計算能力やデータ蓄積機能などから、ほとんどコンピュータと変わらないと言われていますが、デジタル・フォレンジックの観点において、大きく異なる点があります。スマートデバイスは、小型軽量化するためにハードディスクではなくフラッシュメモリーを使用しています。そして、フラッシュメモリーには、ハードディスクでは基本的に発生しない、フラッシュメモリー特有の問題があります。スマートデバイスだけでなく、Solid State Drive(以下、「SSD」という。)もフラッシュメモリーを利用しています。SSDを搭載したコンピュータも、同様の問題を持っています。以下に、フラッシュメモリーについて、気になっている問題点4つと対策案1つをお話します。

■データ保存の寿命
最近のNAND型のフラッシュメモリーは、データ保持期間が5年程度といわれています。たとえば、SDカードメモリーやUSBメモリーへデータを記録して、その後、使用せずに5年間放置すると、データが電気的に消失する恐れがあります。
フラッシュメモリーには、トランジスターの内部に電荷を保持する浮遊ゲートという領域があり、酸化膜による絶縁体で覆われています。フラッシュメモリーは、電子の流れをコントロールして、この浮遊ゲート内へ電子を引き込んだり放出したりして、浮遊ゲートの電荷の状態によってビット情報の有無を表現します。このように浮遊ゲート内に電子を出し入れすることでビット情報を管理するのが、フラッシュメモリーの基本原理です。浮遊ゲート内の電子は、トンネル効果により一定の確率で絶縁体から少しずつ漏れ出しています。1つの浮遊ゲートで1ビットを表現できるSLC型(Single Level Cell)のフラッシュメモリーは3~5年、1つの浮遊ゲートで複数ビットを表現できるMLC型(Multi Level Cell)のフラッシュメモリーは10年経つと、電荷が消失します。さらに、電荷の移動が頻繁に行われると酸化膜が次第に劣化するため、電子が漏れる確率はより高くなり、データの保存期間が短くなります。また、フラッシュメモリーの記録容量を増加させるために、電子回路の小型化が進んでいます。つまり浮遊ゲートがますます小型化し、閉じ込められる電子量が減少し、保持時間が短くなっていく傾向にあります。このようにフラッシュメモリーは、情報を記録できる期間に限界があり、長期保存が要求されるデータの記録には向いていません。

放置されているフラッシュメモリーならいざ知らず、普段使用しているフラッシュメモリーであれば、データが消えることはないと考えるでしょう。フラッシュメモリーの空き領域へデータを追記していれば、フラッシュメモリー全体が給電されているため、データが記録された領域も電力が供給され、データの保持期間が延長されると思うでしょう。しかし、フラッシュメモリーが大容量化したことにより、普段使用しているフラッシュメモリー上でも、データを保存したまま、書き換えられない領域が存在する恐れがあります。そして、フラッシュメモリー全体を通電させるだけでは、データが記録された領域の浮遊ゲートへ電荷の補充は行なわれません。浮遊ゲートへ電荷を補充するためには、データが記録された領域を書き換える必要があるのです。つまり、フラッシュメモリーでデータを長期保存するためには、定期的なデータの書き換えが必要なのです。

■データのサルベージ
フラッシュメモリーは、データの書き込みにより浮遊ゲートの電荷の移動が何度も行われると酸化膜が次第に劣化して電荷を蓄えることができなくなり、最後には情報が記録できなくなります。フラッシュメモリーの制御コントローラは、特定の浮遊ゲートに書き込みが集中しないように、浮遊ゲートの書き込み回数を分散させるウェアレベリング(wear leveling, 摩耗平滑化)とよばれるしくみを持っています。具体的には、フラッシュメモリーは、浮遊ゲートの書き込み回数が平均化するように論理ブロックアドレスと物理的なページ/ブロックのアドレスの関係をダイナミックに変更しています。この管理は、フラッシュメモリーの制御コントローラが行なっています。
ハードディスクは、論理ブロックアドレス(Logical Block Addressing)と物理的な記録領域の関係が固定的に決まっています。そのため、ハードディスクは、データを取り出す方法が確立されており、コストを度外視すれば、たとえドライブが故障しても、ハードディスク上からデータを正しく取り出して復元することができます。フラッシュメモリーは、上記のように論理ブロックアドレスと物理的なページ/ブロックの関係が変化し、かつ制御コントローラによってデータの分散配置の方法が異なります。よって、フラッシュメモリーは、制御コントローラが故障すると、データのサルベージは不可能であるといわれています。

■ウェアレベリングによる削除データの残存
フラッシュメモリーは、一定の記憶領域をまとめて読み書きします。この単位をページといいます。フラッシュメモリーのデータ消去は、このページを複数まとめたブロック単位で行います。あるSSD製品は、256ページで1ブロックを構成します。
フラッシュメモリーは、仕様に記載された記録容量よりも多くの記憶領域を搭載しています。この仕様上の記憶容量と実装された記憶容量との差分を余剰ブロックといいます。余剰ブロックは、Windowsなどの上位レイヤから見えなくなっており、実記録容量は常に一定に見えます。フラッシュメモリーは、この余剰ブロックを用いてアクセスの高速化とウェアレベリングの強化をしています。フラッシュメモリーは、データを書き換える時、新しいデータを余剰ブロックへ書き込んで管理状態を通常のブロックへ変更し、古いデータが存在するブロックを余剰ブロックへ変更します。つまり、フラッシュメモリーは、書き込まれたデータを削除して空き領域を作成しているのではなく、ブロックの管理情報を書き換えてデータを見えなくするだけです。実際には、データはすぐに消去されず、余剰ブロックに残ります。このようにフラッシュメモリーは、ブロックの消去処理を後回しにして、消去処理による遅延を回避しています。制御コントローラの消去方式によっては、余剰ブロックへ新しいデータの書き込み命令があるまで、余剰ブロック上のデータが消去されずに残る場合があります。
余剰ブロックは、実記憶容量の10~25%程度といわれています。たとえば、64GBのフラッシュメモリーの場合、余剰ブロックは計6~16GBも用意されています。保存しているデータ量が少なく、書き換え回数も少ない場合、ウェアレベリングによって余剰ブロック上へ退避したデータは、消去されずに残り続けるかもしれません。フォレンジックソフトウェアでフラッシュメモリー上からデータが見つからなかった場合でも、厳密にはそのデータが完全に消去されたことを担保できません。ただし、フラッシュメモリーの制御コントローラを迂回して物理的なページ/ブロックへアクセスして、余剰ブロックからデータを復元するには、高い技術力が必要です。このような攻撃方法は存在しますが、一般化する恐れについては、未知数です。

■残存データの漏洩対策とその問題
余剰ブロック上の残存データの漏洩防止対策は、データの暗号化やフラッシュメモリーのローレベルフォーマットです。ウェアレベリングによる平滑化の分布を考慮して、十分な回数の上書き消去を行う方法もありますが、フラッシュメモリーの寿命を大きく縮めてしまうため、合理的ではありません。
まず、暗号化による対策とは、データを必ず暗号化してフラッシュメモリーへ保存し、フラッシュメモリーを破棄する時に暗号鍵を完全消去する方法です。
次に、フラッシュメモリーのローレベルフォーマットとは、物理フォーマットともいわれ、デバイスに搭載された制御コントローラの機能を使用して、全ての領域に00を上書きしてデータを消去する対策方法です。フラッシュメモリーの場合は、余剰ブロックを含むフラッシュメモリー上のすべてのブロックの電荷を解放します。SSDは、ATA/ATAPI規格 に対応しているため、ローレベルフォーマットの機能が実装されています。しかし、制御コントローラ上に消去コマンドが用意されてないUSBメモリーやSDカードなどは、ローレベルフォーマットができません。

フラッシュメモリーの制御コントローラにローレベルフォーマットの機能が存在しても、処理方式が誤って実装されている場合もあります。2011年2月に行われた9th USENIX Conference on File and Storage Technologiesでカリフォルニア大サンディエゴ校の研究チームが発表した論文 によると、いくつかのSSDは、SECURITY ERASE UNITコマンドの実装に不備があります。またフラッシュメモリー上の1個のファイルを消去するテストでは、SSDは4~75%のデータが復元可能であり、USBメモリーは消去の失敗により0.57~84.9%のデータがアクセス可能だったと記述されています。

■まとめ
フラッシュメモリーは、コンピュータやスマートデバイスだけでなく、デジタルカメラ、家庭用ビデオカメラの記録媒体として世の中へ広く普及し、多くの人々は、特別な意識を持たずにフラッシュメモリーを使用しています。しかし、意外にもフラッシュメモリーには、本コラムに記載したようないくつかの問題点があります。私たちは、フラッシュメモリーの特性を十分に理解してデジタルデータを管理し、フラッシュメモリーの証拠保全の技術開発も考えなければならないでしょう。

【著作権は大谷氏に属します】