48
IE ののののののの ののののののののののの のののの () のの の aka hebikuzure

Iecachedata 20130427

  • Upload
    -

  • View
    6.648

  • Download
    0

Embed Size (px)

DESCRIPTION

2013年4月27日「ブラウザー勉強会」のセッション スライドです。 Internet Explorer 10 のインターネット一時ファイルをオフライン解析する方法について調査した結果です。

Citation preview

Page 1: Iecachedata 20130427

IE のキャッシュのオフライン調査について

(改訂版)

村地 彰 aka hebikuzure

Page 2: Iecachedata 20130427

この発表について

• この発表は 2012 年 7 月 21 日開催の「まっちゃ 445 勉強会 目覚ましの会」で発表した内容に、 Windows 8 および Internet Explorer 10 における調査結果を追加したものです

• 内容については発表者が個人として調査して者であり、特定の会社・団体の見解ではありません

Page 3: Iecachedata 20130427

Internet Explorer のキャッシュ

ここ

Page 4: Iecachedata 20130427

ファイルを表示させると

Page 5: Iecachedata 20130427

実体は…

Windows Vista 以降の場合• 保護モード無効のキャッシュ

%userprofile%\AppData\Local \Microsoft\Windows \Temporary Internet Files\Content.IE5

• 保護モード有効のキャッシュ%userprofile%\AppData\Local \Microsoft\Windows \Temporary Internet Files\Low \Content.IE5

Page 6: Iecachedata 20130427

なぜ Content.IE5 ??

• Internet Explorer のキャッシュ データ構造は IE5 から変わっていなかった

•IE5 ???•13 年間不変のテクノロジー (^_^.)

Page 7: Iecachedata 20130427

実は… ..

• Internet Explorer 10 ではキャッシュのシステムが変更されています

• 14 年間ご苦労様でした• とはいえ、 IE9 以前のシステムも多いの

で、まず古いシステムの話から…

Page 8: Iecachedata 20130427

Content.IE5 の中身

• index.dat–インデックスファイル

• キャッシュ フォルダ–ランダムな英数 8 文字の名前のフォルダ–フォルダ内の一時ファイルの実データ ファ

イルを格納

Page 9: Iecachedata 20130427

こんな感じ 旧

Page 10: Iecachedata 20130427

さらにフォルダ内を見る 旧

Page 11: Iecachedata 20130427

キャッシュの情報はどこ ?

• 実データ ファイル–ダウンロードされたコンテンツ そのも

のがファイルとして保存されている• Temporary Internet Files には「イン

ターネット アドレス」「有効期限日時」「最終変更日時」「最終アクセス日時」「最終チェック日時」などが表示される–これらの情報はどこに ??

Page 12: Iecachedata 20130427

情報は index.dat にある

• index.dat–バイナリ ファイル–データ構造は非公開–データにアクセスする API (WinInet

API) が公開されている

中身が見たい

Page 13: Iecachedata 20130427

注意事項

• ログオンしているユーザーの index.dat はシステム プロセスがロックしているので普通には開けない

• 不用意に書き換えるとキャッシュが壊れて不具合が生じる

• 別のユーザーでログオンするか、別のシステムでブートして、 index.dat をコピーしてから開く

Page 14: Iecachedata 20130427

バイナリ エディタで開く

何か見える

Page 15: Iecachedata 20130427

中身を確認

シグネチャ

フォルダ名

Page 16: Iecachedata 20130427

さらに確認

何か出た

アドレス ?

ヘッダー ?

Page 17: Iecachedata 20130427

分かる事

• index.dat はバイナリ情報が含まれているが、テキストがそのまま記録されている部分もある

• 基本的な情報はテキストを抽出するだけでも取得できる (strings とか )

Page 18: Iecachedata 20130427

詳しい人いた~\ (◎o◎) /!

• この人

• The INDEX.DAT File Formathttp://www.geoffchappell.com/studies/windows/ie/wininet/api/urlcache/indexdat.htm

Page 19: Iecachedata 20130427

The INDEX.DAT File Format

• index.dat のファイル構造を解析して公開しています

• 某中の人によれば、ここに書いてある内容は「正しいと考えられる」だそうです

• 実際に採取した index.dat は、この解析結果の通りの構造でした

• と言う事で、キャッシュの静的解析をするなら必読

Page 20: Iecachedata 20130427

同じような解析情報

• Internet Explorer History File Formathttp://www.forensicswiki.org/wiki/Internet_Explorer_History_File_Format

• MSIE Cache File (index.dat) format.pdfhttp://sourceforge.net/projects/libmsiecf/files/Documentation/MSIE%20Cache%20File%20format/

Page 21: Iecachedata 20130427

その他の参考情報

• A bit about WinInet's Index.dathttp://blogs.msdn.com/b/wndp/archive/2006/08/04/wininet-index-dat.aspx

• A bit about WinInet's Index.dat – Q&Ahttp://blogs.msdn.com/b/wndp/archive/2006/08/07/wininet-index-dat-q-and-a.aspx

Page 22: Iecachedata 20130427

つづき

• Internet Explorer 一時ファイルが肥大化するhttp://blogs.technet.com/b/jpieblog/archive/2011/09/09/3452071.aspx

Page 23: Iecachedata 20130427

さらにこんなツールも…

• Index Dat Spyhttp://www.stevengould.org/index.php?option=com_content&task=view&id=47&Itemid=88

• Index.dat Viewerhttp://www.acesoft.net/index.dat%20viewer/index.dat_viewer.htm

• libmsiecfhttp://sourceforge.net/projects/libmsiecf/

Page 24: Iecachedata 20130427

では IE10 では……

Page 25: Iecachedata 20130427

IE9 以前との比較

• index.dat がない

• container.dat という怪しげなファイルがあるが、サイズが 0 バイト

• ランダムな英数 8 文字の名前のフォルダは健在

Page 26: Iecachedata 20130427

フォルダ内を見る

Page 27: Iecachedata 20130427

フォルダ内のファイル

• キャッシュ(一時ファイル)の実体• IE9 以前と同様、ダウンロードされたコ

ンテンツがそのままファイルとして保存されている

• では「インターネット アドレス」「有効期限日時」「最終変更日時」「最終アクセス日時」「最終チェック日時」などの情報はどこに ??

Page 28: Iecachedata 20130427

procmon で調べる

• procmon.exe (Process Monitor)–http://technet.microsoft.com/ja-jp/

sysinternals/bb896645.aspx• プロセスが行った処理 ( ファイル システ

ム、レジストリ、プロセスおよびスレッドの活動 ) をリアルタイムで表示し、ログを採取できるツール

Page 29: Iecachedata 20130427

こんなログがある

Page 30: Iecachedata 20130427

ログの詳細

• 17:12:28.8842513• taskhostex.exe• 1156• QueryBasicInformationFile• C:\Users\hebik_000\AppData\Local\

Microsoft\Windows\Temporary Internet Files\Low\Content.IE5\container.dat

• SUCCESS

Page 31: Iecachedata 20130427

taskhostex.exe のスタック

Page 32: Iecachedata 20130427

ログとスタックからわかること

• taskhostex.exe は wininet.dll の SetUrlCacheEntryInfoA を呼び出している

• そのアクセス対象は%userprofile%\AppData\Local\Microsoft\Windows\Temporary Internet Files\Low\Content.IE5\container.dat

• taskhostex.exe がキャッシュ管理に関係しているらしい

Page 33: Iecachedata 20130427

taskhostex.exe をさらに調べる

• 17:12:28.8848751• taskhostex.exe• 1156• QueryDirectory• C:\Users\hebik_000\AppData\Local\

Microsoft\Windows\WebCache\WebCacheV01.dat

• SUCCESS

Page 34: Iecachedata 20130427

この時のスタック

Page 35: Iecachedata 20130427

ログとスタックから

• taskhostex.exe は wininet.dll の SetUrlCacheEntryInfoA を呼び出している

• さらに ESENT.dll JetCloseDatabase が呼び出されている

• そのアクセス対象は%userprofile%\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat

Page 36: Iecachedata 20130427

これって何 ?

Page 37: Iecachedata 20130427

Extensible Storage Engine

• JET Blue とも呼ばれる Windows 内蔵の ISAM データベース エンジン

• Exchange, Active Directory, Desktop Search などで利用されている–http://msdn.microsoft.com/en-us/

library/windows/desktop/gg269259.aspx–http://en.wikipedia.org/wiki/

Extensible_Storage_Engine

Page 38: Iecachedata 20130427

さらに調べると

• taskhostex.exe (ESENT.dll ) は WebCacheV01.dat に READ / WRITE を繰り返している

• いずれも wininet.dll のキャッシュ関連 API を経由している

Page 39: Iecachedata 20130427

WebCache フォルダを見る

Page 40: Iecachedata 20130427

ファイルを見てみる

• WebCacheV01.dat と V01.log はロックされていてログイン中は開けない

• 別ユーザーでログオンすれば取り扱える

Page 41: Iecachedata 20130427

V01.log

Page 42: Iecachedata 20130427

WebCacheV01.dat

Page 43: Iecachedata 20130427

ここまででわかった事

• Internet Explorer 10 ではキャッシュの管理に Extensible Storage Engine が利用されている

• キャッシュに関するデータベースは%userprofile%\AppData\Local\Microsoft\Windows\WebCacheに保存されている

Page 44: Iecachedata 20130427

追加情報

• ネット上のレポートなどを見ると、 WebCacheV01.datの代わりに WebCacheV24.datが利用されている環境もあるようです。

Page 45: Iecachedata 20130427

詳しい人いた~\ (◎o◎) /!

• いつもおなじみ NirSoft• http://blog.nirsoft.net/2012/12/08/a-

few-words-about-the-cache-history-on-internet-explorer-10/–WebCacheV01.dat は VSS(Volume

Shadow Copy) でログオン中でもコピーできたとの事です

Page 46: Iecachedata 20130427

NirSoft のツール

• BrowsingHistoryView– http://www.nirsoft.net/utils/

browsing_history_view.html

• WebCacheV01.dat (WebCacheV24.dat) からも一時ファイル情報を取得できます…と言う事なのですが、手元環境では IE の情報は表示されませんでした

Page 47: Iecachedata 20130427

まとめ

• Internet Explorer 10 では一時ファイルの管理方法が変更されている

• キャッシュの実体の保存方法は変更なし• インデックス管理は index.dat のバイ

ナリ ファイルから Extensible Storage Engine の ISAM データベースに変更

• インデックスが堅牢になったと考えられます

Page 48: Iecachedata 20130427

ありがとうございました

• ネットワーク パケットを読む会 (仮 )–次回 5/24 開催予定–パケット持ち寄りの会(予定)– http://pa.hebikuzure.com/