ここでは、JSACのCFPとして高く評価される例を掲載しています。このCFPサンプルは、以下の点で高く評価されます。 - まだ誰も実現していない技術で新規性が高い - ツールが公開される - 概要やアウトラインが詳しく書かれており、ツールの実装やプレゼンテーションの流れを確認できる ※ なお、このCFPサンプルは本人の承諾を得てJSACレビューアーがオリジナルの投稿に加筆、修正を加えています。 * 講演タイトル 削除済みVSSスナップショットの復元 * 講演者名 小林 稔 * 講演者の所属 株式会社インターネットイニシアティブ セキュリティ情報統括室 * 講演概要(2,000文字以内) Volume Shadow Copy Service (VSS)とはWindows Vista/Windows Server2003以降に搭載されているバックアップ機能である。VSSを 使用するとストレージのボリューム単位でスナップショットを作成することができる。ユーザはスナップショットを参照することでス ナップショット作成時のディスクのコンテンツにアクセスすることができるため、削除されたファイルや改ざんが行われる前のファイ ルにもアクセスすることが可能となる。 削除ファイルの復元はPhotoRecなどのファイルカービングツールでも行うことができるが、スナップショットはファイルカービング と比較して、ファイル名やファイル生成日時などのメタ情報を復元できる点とフラグメント化したファイルを正しく復元できる点が大 きなメリットとなる。このような特性からスナップショットはディスクフォレンジックにおいて、攻撃者が作成したファイル(攻撃ツ ールや一時的なアーカイブファイルなど)を復元・解析するための重要なデータとなる。 しかし、近年では攻撃者やマルウェア作成者もその重要性を認識しており、侵入時や感染時にすべてのスナップショットを削除して しまう事例が発生している。通常、スナップショットは削除されるとアクセスする術がなくなってしまうが、関連データを復元または 再構築することでスナップショット内のデータにアクセスできる可能性がある。もし、削除されたスナップショットにアクセスできれ ば、今まで利用できなかったデータを有用な情報源として活用することができる。 スナップショットはカタログ(Catalog)とストア(Store)と呼ばれるファイルから構成されており、これらはボリュームルート直下の 「System Volume Information」フォルダに保存される。カタログはスナップショットのメタ情報(スナップショット生成日時やスト アGUIDなど)を記録しており、各メタ情報はカタログエントリと呼ばれる。ストアには差分データ(スナップショット作成時と現在の ボリューム上のデータの差分)が記録される。スナップショットごとにストアのファイルは作られ、ファイル名にはカタログエントリ 内のストアGUIDが含まれている。 vssadmin.exeなどを使用してスナップショットが削除されるとカタログのエントリのタイプが「未使用」を表す値(0x01)に変更され る。また、その他の情報はすべてNull(0x00)に書き換えられる。一方、ストアは特定の16バイトのみ書き換えられるが、差分データは 変更されずにファイルが削除される。ストアの差分データは変更されないためストアのファイルを復元すればスナップショットのデー タにも論理的にはアクセスできる。また、カタログのスナップショット生成日時やGUIDもストアの$MFTやファイル名から復元できる。 このように削除によって失われたデータを補完することはできるが、この状態からスナップショットのデータへアクセスする機能は Windowsには存在しない。そのため、自力でスナップショットの解析を行う必要があるが、幸いなことにvshadowmountというスナップ ショットにアクセスするためのオープンソースのツールが公開されている。このvshadowmountのカタログとストアの解析処理をカスタ マイズすることで、削除されたスナップショットにアクセスすることができる。 講演では実装に関してより詳細な解説と作成したツールのデモを行う予定である。また、講演終了後、作成したツールはオープンソ ースで公開する予定である。 * 講演内容のアウトライン(講演資料、講演に関する参考資料などがある場合は、添付してください) 1. Introduction 初めに、なぜこのような研究を行い、このツールを作ろうと思ったのか、既存のツールの問題点、このツールによって可能となるこ となどを述べる。例えば、本研究の目的としては以下の点が挙げられる。有償ツールを含む既存のツールは削除済みVSSを復元する機 能が実装されておらず、例えばランサムウェアによってVSSが削除されてしまった場合はなす術がない。一方で、本ツールによってVSS を復元できた場合、よりフォレンジック分析調査を強化することができるためである。 2. VSSの概要 このセクションでは、VSSとは何か?や、VSSがどのようなファイルで構成されているか、VSSの動作概要、主なファイルの構造につ いて述べる。VSSはCatalogファイルとStoreファイルという2つのファイルで主に構成されており、Storeは既存のボリュームとの差分 データを管理し、Catalogは各Storeファイルのオフセットなどのメタデータを管理している。VSSが削除された場合、Catalogファイル はコンテンツが上書きされてから削除されてしまうのに対し、Storeファイルのコンテンツはほぼ無傷の状態で削除される。周知のと おり、NTFSはファイルを削除時にコンテンツを書き換えず、該当MFTエントリに削除済フラグを設定して削除したことにするため、コ ンテンツ領域が上書きされなければ、Storeファイルを復元することは可能であると言える。 3. 削除されたVSS Snapshotへのデータアクセス方法の検討と実装 ここでは、どのように本ツールを実装し、実現したかについての詳細を述べる。また、実装後のテスト結果についても述べる。前述 のとおり、StoreファイルはVSSやNTFSの仕様から削除されても復元できる可能性があることがわかっている。一方で、Catalogファイ ルはコンテンツが上書きされてしまうため復元ができないが、CatalogファイルはStoreファイルのメタデータ管理用であり、Storeフ ァイルが復元できれば、Catalogファイルを再現することは可能である。このことから、以下のような方針で削除済みVSSを復元し、そ れらが管理していたファイル群にアクセスする手法を実装した。まずvss_carver.pyという、新たに作成したツールを使い、HDDイメー ジ内のStoreファイルのシグネチャを検索することで、削除済みVSSデータを列挙し、Storeファイルの管理領域部分をCarvingする。復 元したStoreデータ及び既存のStoreデータを元に、Catalogファイルを再現する。次にOpen Source Softwareであるlibvshadowのvshad owmountコマンドを改造し、これらのファイルを渡すことができるように拡張することで、削除済みVSSの管理するデータにアクセスで きるようにした。次にテスト方法については、テスト用のテキストファイルやPDFファイルを用意し、VSSに管理させたあとで、該当フ ァイルやVSSを削除するといったテストを行ったところ、既存のツール群はすべて対応できなかったのに対し、本ツールは正しくファ イルを復元することができた。 4. ツールデモ:削除したスナップショットからのファイル復元 本発表内では以下の2つのデモを行う予定である。 - VSSの管理領域超過により自然消滅したVSSスナップショットデータが管理するファイルの復元 - ランサムウェアによって削除されたVSSスナップショットとそれらが管理するファイルの復元 5. まとめ 最後にまとめとしてどのようなことを実施したかを述べる。またfeature workや、別途注意点としてWindows 8以降でデフォルトで 有効化されたScopeSnapshots機能についても言及する。 * 「講演テーマ」に記載された項目から講演内容に近い分野を選択 [B] フォレンジック関連 (調査手法、分析ツールなど) * すでに公開済みもしくは事前に公開予定の内容か JSAC以前に公開の予定はありません。 * 聴講者にこの発表から伝えたいポイント (具体的に3つ程度上げてください) 1. VSS に関するアーティファクト情報 2. 削除されたVSS Snapshotを復元する方法 3. VSS Snapshotを復元することの有効性と復元するツールの使用方法 * ツールの公開有無 削除されたVSS Snapshotを復元するツールを公開予定