こんにちは、フォレンジック・エバンジェリストの松本です。今回は、フォレンジックによって得られた結果から「タイムライン」を作成するに至る過程について解説致します。リムーバブルメディアに存在する画像ファイルのタイムスタンプが、PCにコピーされることによってどのように変化していくか、特にWindowsリンクファイルやサムネイル、前回の記事で名前だけ紹介した「Exif情報」などの解説を交えながら、追跡し、タイムラインを作成していきます。
-----
■はじめに
筆者はフォレンジックの情報源のひとつとしてGCFA Mailing-listを購読している。このmlの面白いところは、どう考えても個別案件のログと思われるものを(マイナーなmlとはいえ)オープンな場に公開し議論することが黙認されている、その自由な空気感にあるように思う。とはいえ、たまにNDAはどうなっているのかと心配になるような内容が流れている場合もあるのだが...。
今回ご紹介するのは、このmlで議論された、とあるスレッドを参考に作成したオリジナルのサンプル事例である。サンプル事案の背景は以下としよう。
「会社の共用PC(WindowsXP SP3)で不適切な画像「himitsu.jpg」の所持が発見された。その画像は社員himitsu氏のアカウントのマイドキュメントに保存されていた。しかし、himitsu氏は関与を否定。PCは共用であり、自分を陥れるための陰謀であると説明した。PCのレジストリ情報から会社のUSBメモリ経由でデータがコピーされたと判明し、調査員であるあなたの手元には該当USBメモリと問題のPCがある。さて、これから何を調べるか...」
この事例のアプローチ方法はいくつかあるのだが、今回は特にWindowsリンクファイルとサムネイルのタイムスタンプに注目して事例を追う。
■画像ファイルのタイムスタンプの比較
それでは、USBメモリとPCに存在する該当ファイルhimitsu.jpgのタイムスタンプを見比よう(図1)。まずはUSBメモリ側から確認する。
Eドライブ直下に「HIMITSU.JPG」が存在しており、ファイルのタイムスタンプは以下である。
最終更新日時 | 2010/11/24 14:50:24 |
最終アクセス日時 | 2010/11/24 |
作成日時 | 2010/11/24 14:51:40 |
次にPC側だが、ユーザ名himitsuつまりhimitsu氏のユーザアカウントのマイドキュメントに「himitsu.jpg」が存在している。該当ファイルのタイムスタンプは以下である。
最終更新日時 | 2010/11/24 14:50:24 |
最終アクセス日時 | 2010/11/24 15:03:49 |
作成日時 | 2010/11/24 15:03:38 |
エントリ更新日時 | 2010/11/24 15:03:43 |
USBメモリの「HIMITSU.JPG」とPCの「himitsu.jpg」のハッシュ値は同一であったため、これら二つのファイルは論理的には全く同じものであることがわかった。
これまでのタイムスタンプの情報から、まずEドライブはFAT形式でフォーマットされているように見える。最終アクセスが日付までしか記録されておらず、なおかつ$mftのエントリ更新が記録されていない点などを総合的に判断した結果だが、もちろん実際の調査ではVolume BootやFATテーブルを確認して正確に確定する必要がある。
次に、事案の背景でも触れられていたように、「PCのレジストリ情報から会社のUSBメモリ経由でデータがコピーされた」という判断は、これらのタイムスタンプを見る限りでは正しそうである。PC側の作成日時がUSB側よりもより新しい点、最終更新日時が両ファイルで同じである点、ハッシュ値が同じである点などを判断した結果だ。ちなみに、両ファイルとも最終更新日時のほうが作成日よりも過去の時間が記録されているが、これは後から説明するので、今は頭の片隅にでも入れておく程度でよい。
■Exifメタ情報の確認
それでは、次に問題のjpegファイルのExif(Exchangeable image file format)情報を確認しよう(図2)。ハッシュ値が同一であるためどちらのファイルを調べても問題はないが、ここでは、よりタイムスタンプの古いオリジナルファイルに近いと思われるUSBメモリ側の「HIMITSU.JPG」のプロパティをチェックする。細かい点ではあるが、レポートを書く際にはこのような点にも注意し、一貫した記述を心がけたほうが第三者への心象が良く、説明がスムーズになる。
Exif情報を確認すると「写真の撮影日」という項目があり、そこには2010/11/24 14:37と記録されている。USBメモリの画像作成日よりもさらに古いことがわかる。つまり、タイムスタンプから確認する限り、このjpeg画像は携帯のデジタルカメラ(KDDI-SN W61S)で撮影された後にUSBメモリにコピーされ、さらにその後、PCにコピーされたものと推測できる。
また、両ファイルとも最終更新日時のほうが作成日よりも過去の時間が記録されている点だが、元ファイルの撮影日時(つまりファイルの作成日)が2010/11/24 14:37であり、USBメモリとPCのファイルの作成日よりも過去である点から、コピーを繰り返すことによって、タイムスタンプが逆転してしまったと考えられる。このあたりの現象は、前回の記事でも紹介しているので参考にしていただければと思う(参考画像)。
では、ここまでのタイムラインをまとめてみよう(図3)。
作成日(撮影日)でシンプルにまとめると非常に分かりやすい。携帯デジカメからUSBメモリへのコピーの前にもしかすると更にワンクッションあった可能性も考えられるが、現状の証拠からは断定できない。また、ファイル名が「HIMITSU.JPG」となっているが、通常デジカメで撮影した画像は機械的に付けられる連番のファイル名であることが多い。したがって、どこかのタイミングでファイル名を変更した可能性もある。実際の調査では、このタイミングで携帯(のSDメモリカード)および、ファイル名の編集に用いた端末を探す作業も平行して行うことになるだろう。
■サムネイルの解析
さて、次にPC側のThumbs.dbを確認する。図1でも確認したように、himitsu氏のマイドキュメントに画像とThumbs.dbが作成されている。Thumbs.dbはWindowsでサムネイル表示する場合に作成されるデータベースである。バイナリ表示で確認すると、jpegのファイルヘッダが確認できる(図4)。
そこで、Thumbs.dbのjpegファイルヘッダからファイルフッタまでを切り出す。手順としてはjpeg画像のファイルヘッダである「\xFF\xD8\xFF\xE0」から、フッタ「\xFF\xD9」までをコピーし、jpgの拡張子を付け保存した(図5)。そのファイルを確認したところ「HIMITSU.JPG」のサムネイルであることが確認できた。
そうすると、Thumbs.dbのタイムスタンプも重要になってくる。図1から再度確認すると、C:\Documents and Settings\himitsu\My Documents\Thumbs.dbのタイムスタンプは以下の状態であった。
最終更新日時 | 2010/11/24 15:59:16 |
最終アクセス日時 | 2010/11/24 15:59:16 |
作成日時 | 2010/11/24 15:59:14 |
エントリ更新日時 | 2010/11/24 15:59:16 |
つまり、2010/11/24 15:59:14に作成され、2010/11/24 15:59:16にデータが更新されて以降、アクセスもエントリ情報も変更が無い、ということが分かる。
■Windowsリンクファイルの解析
サムネイル表示されているということは、ユーザが実際にPC上で画像ファイルを開いた可能性を疑ってみる必要がある。WindowsOSではエクスプローラ上でファイルを開くと、ユーザディレクトリのRecentフォルダの中にWindowsショートカット(リンクファイル)が作成される。これは「最近使ったファイル」をすばやく表示させるためのユーザビリティ向上のために用いられているが、通常はあまりユーザに意識されることのないリンクファイルである。調査対象PCで「himitsu.jpg」のリンクファイルを検索したところ、matsumotoというユーザディレクトリの配下で発見された(図6)。
C:\Documents and Settings\matsumoto\My Documents\Recent\himitsu.jpg.lnkファイルのタイムスタンプは以下の状態であった。
最終更新日時 | 2010/11/24 15:59:04 |
最終アクセス日時 | 2010/11/24 15:59:04 |
作成日時 | 2010/11/24 14:51:40 |
エントリ更新日時 | 2010/11/24 15:59:04 |
Windowsリンクファイルはファイル自身にオリジナルファイルのパス情報やタイムスタンプを持っている。そこで、バイナリエディタで発見されたhimitsu.jpg.lnkを表示した結果が左図である(図7)。
この結果から、たしかにユーザ名himitsuのマイドキュメント直下にリンクが張られていること、リンク元ファイルの作成日時は2010/11/24 15:03:38であり、これはリンク元ファイルC:\Documents and Settings\himitsu\My Documents\himitsu.jpgの作成日時と一致する。
■まとめ
最後に、これまでの情報をもとにタイムラインを作成、整理しよう(図8)。ここから何が分かるだろうか。箇条書きにまとめる。
- 携帯電話で撮影された
- 撮影後USBメモリに画像ファイルがコピーされた
- USBメモリからPCに画像ファイルがコピーされた
- ユーザmatsumotoが2010/11/24 15:59:04にファイルを開いている(recent内のリンクファイル)
- himitsu氏のユーザアカウントでファイルを開いた痕跡は今のところ確認できない
- ユーザmatsumotoがファイルを開いたその数秒後にhimitsu氏のユーザアカウントのマイドキュメントに画像ファイルのThmbs.dbが新規に作成されている(このパス上の画像サムネイル表示が初めてされた)
つまり、少なくともhimitsu氏のアカウントでは画像は閲覧されておらず、このPCのユーザのうち唯一matsumotoのみがファイルの存在を認識しているといえる。ただし、この情報だけではあくまでユーザ名matsumotoによる作業の痕跡があったという事実だけであり、このユーザと紐づいている社員であるmatsumoto氏本人がログオンして作業を行ったかどうかに関しては、断定できない。
今回のサンプル事案の調査では、タイムラインが矛盾無く繋がっているように見えるが、実はいくつか気になる点がある。実際のフォレンジック調査では各種システムファイル、ユーザのレジストリ情報やバックアップされた情報などからその疑問点を追求しつつ、タイムラインを補強していくことになる。また、忘れてはいけないのは、データやタイムスタンプは改ざんされる可能性があるという点だ。各ユーザによるデータの取り扱いに不自然な点はなかったか、などに関しても、調査員は調べる必要がある。
-----
今回は、フォレンジック調査におけるタイムライン作成について解説させていただきましたが、いかがだったでしょうか。フォレンジック調査は、簡単に言えばデータの中に残るわずかな手がかりを元に、事実を推理していく探偵のような業務と言えます。これを機にフォレンジック技術に興味を持っていただけたら幸いです。