ファイル構造検査による悪性 MS 文書ファイル検知手法の評価
大坪雄平 †三村守 ‡† 内閣官房情報セキュリティセンター
100-0014 東京都千代田区永田町 2-4-12
yuhei.otsubo@cas.go.jp

田中英彦 ‡‡ 情報セキュリティ大学院大学
221-0835 神奈川県横浜市神奈川区鶴屋町 2-14-1

あらまし 実行ファイルを埋め込んだ MS 文書（Rich Text または Compound File Binary）ファイルを用いた標的型攻撃が発生している．これに対し，われわれは MS 文書ファイルのサイズや構造に関する情報を検査することで，悪性文書ファイルを検知する手法を提案した．しかしながら，CFB ファイルに対する評価や既存の手法との比較が不十分であった．本論文では，以前検証を行った検体に悪性一太郎ファイルも加えて提案手法の有効性を検証する実験を行った結果，98.5%の悪性 MS 文書ファイルを検知することができた．さらに Microsoft Oﬃce 2010 から導入されたファイル検証機能と検知率を比較する実験を行った結果，提案手法の有効性が確認できた．

Evaluation of Methods to Detect Malicious
MS Document File using File Structure Inspection
Yuhei Otsubo†

Mamoru Mimura‡

Hidehiko Tanaka‡†National Information Security Center
2-4-12 Nagata-cho, Chiyoda-ward, Tokyo 100-0014, JAPANyuhei.otsubo@cas.go.jp‡Institute of Information Security
2-14-1 Tsuruya-cho, Kanagawa-ward, Yokohama 221-0835, JAPAN

Abstract Targeted attacks using MS document (Rich Text or Compound File Binary) files that
contain executable files are popular. We proposed detection methods of malicious MS document
files checking file size, file structure and so on. However, our previous paper has the insuﬃcientevaluation to CFB files and other methods. In this paper, we added malicious Ichitaro files toprevious specimen. Our methods could detect 98.5% of the malicious MS document files in theexperiment. In addition, Microsoft added OFV (Oﬃce File Validation) to Microsoft Ofice 2010,
we compared our methods’s detection rate and OFV’s one. The experimental result shows theeﬀectiveness of our methods.

1

はじめに

近年では，特定の組織や個人を狙って情報窃取等を行う標的型攻撃が顕在化している．標的型攻撃の防御策として最新のパターンファイルを適用したウイルス対策ソフトを導入したとしても，標的型攻撃に用いられるマルウェアを検知できないことがほとんどである．この原因としては，標的型攻撃に用いるマルウェアが最新のウイルス対策ソフトで検知できないことを確認した後，攻撃者は特定の組織や個人にマルウェアを送付しているということが考えられる．さらに，攻撃を秘匿するため，マルウェアの本体で関連する先行研究について述べる．
ある実行ファイルが埋め込まれた悪性文書ファ文献 [5] では，様々な形式の悪性文書ファイルイルが送付されることもある．に埋め込まれた実行ファイルを自動的に抽出す標的型攻撃に用いられる実行ファイルが埋めるツールが提案されている．この手法では，実込まれた悪性文書ファイルの典型的な動作を以行ファイルを埋め込む際に使用される様々なエ下に示す．悪性文書ファイルを開くと，閲覧ソンコード方式を自動的に解読し，実行ファイルフトの脆弱性を攻撃する exploit と呼ばれる部に頻出する文字列を検索することで実行ファイ分が動作し，shellcode（侵入した端末を制御でルを抽出することができる．MS 文書ファイル専
きるようにするためのコード）が実行される． 用の解析ツールである OﬃceMalScanner[6] は，shellcode は文書ファイルに埋め込まれた実行
MS 文書ファイルから不正なコードによく利用ファイルやダミー表示用の文書ファイルを取りされるコードを検索したり，文書ファイルに埋出し，実行ファイルを実行したりダミー表示用め込まれた実行ファイルや別の文書ファイルをの文書ファイルを表示する．これによって悪性ヘッダに使われる文字列を検索することにより文書ファイルを閲覧した端末はマルウェアに感抽出することができる．
染する．一方，文書ファイルに埋め込まれた実
文献 [7] では，MS 文書ファイルの構造を検査
行ファイルやダミー表示用の文書ファイルはウすることにより，MS 文書ファイルに埋め込まイルス対策ソフト等の検知を回避するため様々れた，表示内容と関係のないデータを解析するな方式でエンコード（符号化）されているほか， ツールが提案されている．このツールは MS 文
ダミー表示用の文書ファイルの表示内容は通常書ファイル内でデータが秘匿される可能性があの文書ファイルと変わらないため，一般に，悪る 4 種類の場所を表示する．
性文書ファイルの受信者には実行ファイルが埋Microsoft 社が Microsoft Oﬃce 2010 から導め込まれた悪性文書ファイルと通常の文書ファ入したファイル検証機能は，Oﬃce 文書ファイルイルとを区別することは困難である．
（xls，doc，ppt，pub 拡張子）を開こうとした
われわれが Microsoft 社の開発した Rich Text[1] 場合に，正常なファイル構造の Oﬃce 文書ファ（rtf 拡張子）や CFB（Compound File Binary） イルか否かを検証し，正常なファイル構造でな[2]（doc，xls，ppt，jtd，jtdc 拡張子）の MS 文
い場合に閲覧するか否か確認するポップアップ
書ファイルに実行ファイルが埋め込まれた悪性ウインドウが表示される機能である．ファイル
MS 文書ファイルを分析したところ，多くの悪性検証機能がどのような仕組みでファイル構造をMS 文書ファイルで通常の MS 文書ファイルと検証しているかは不明であるものの，ファイルファイル構造に違いがあることが明らかになっ構造を検証するという，われわれの提案と同じた．そこでわれわれは，MS 文書ファイルのファ目的の機能であるので，ファイル検証機能におイル構造を検査し，悪性 MS 文書ファイルを検ける検知率との比較を行う．
知する手法を提案した [3]．本論文では，提案手法の有効性を確認することを目的とし，検体に3 悪性 MS 文書ファイルのファイ悪性一太郎ファイルを加えて検知率の評価を行うほか，Microsoft 社のファイル検証機能 [4] とル構造の比較も行う．
exploit の多くは閲覧ソフトの脆弱性を利用しており，閲覧ソフトが通常読み込む部分に埋め込まれている．一方，実行ファイルやダミー表
2 関連研究示用の文書ファイルを閲覧ソフトが通常読み込
われわれの提案手法は，MS 文書ファイルをむ部分に埋め込むと，閲覧ソフトが誤動作した
対象に悪性 MS 文書ファイルであるか否かを検り，表示される内容が文字化け状態になってし査する．以下，悪性 MS 文書ファイルの検知にまう．したがって，実行ファイルやダミー表示

用の文書ファイルは閲覧ソフトが通常読み込まない部分に埋め込まれることが多い．その結果，ファイル構造に通常の文書ファイルとは異なる特徴が表れる．
われわれが 2009 年から 2012 年の間に複数の組織において採取した実行ファイルが埋め込まれた悪性 MS 文書ファイルのファイル構造を分析し，判明した悪性 MS 文書ファイルの特徴を以下に示す．詳細については文献 [3] に示すとおりである．

ZŽŽƚ^ƚŽƌĂŐĞ^ƚŽƌĂŐĞϭ^ƚƌĞĂŵ

3.1.1

Rich Text の場合
基本構造

&d

3.1.2

特徴 1：EOF 違反

一般的な Rich Text では “}”（EOF）がファイルの末尾となっていたが，実行ファイルが埋め込まれた Rich Text では EOF の後にデータが追加されているものがほとんどであった．

3.2

CFB の場合

3.2.1

基本構造

CFB は Microsoft 社により開発された複合ファイルフォーマットの 1 つである．Microsoft
Word，Microsoft Excel や Microsoft PowerPoint
等で保存されるときに使用される doc，xls，pptという拡張子のファイルは CFB を利用しており，文書ファイルに利用される様々なデータを^ƚŽƌĂŐĞϯƐĞĐƚŽƌWŚǇƐŝĐĂů^ƚƌƵĐƚƵƌĞŝƌĞĐƚŽƌǇŶƚƌǇŚĞĂĚĞƌ^ƚƌĞĂŵEĂŵĞ͗͟Ă͘ƚǆƚ͟^ŝǌĞ͗ϲϵϲ͕/ŶĚĞǆ͗ϮϬ&ŝůĞůůŽĐĂƚŝŽŶdĂďůĞͲϮϭŝƌĞĐƚŽƌǇŶƚƌǇϯϮ^ƚƌĞĂŵͲϮϯ^ƚƌĞĂŵͲϭϰ&ƌĞĞ^ĞĐƚŽƌϱ^ƚƌĞĂŵͲϮ

Rich Text は Microsoft 社により開発された文書ファイルフォーマットの 1 つである．RichText のデータは通常，7bit の ASCII 文字列で記述されており，プレーンテキストに装飾やレイアウトのための制御用の文字列を付加した形式となっている．Rich Text ファイルの最初の文字は，“{” である．Rich Text は入れ子構造となっており，ファイルの最後の文字は，ファイルの最初の “{” に対応する “}”（EOF）となっている．閲覧ソフトは “}”（EOF）より後のデータについて通常は何もしない．

^ƚƌĞĂŵ^ƚƌĞĂŵ

図 1: CFB の階層構造

ͲϮ3.1^ƚŽƌĂŐĞ ϮŝŶĚĞǆ^ƚƌĞĂŵEĂŵĞ͗͟ď͘ƚǆƚ͟^ŝǌĞ͗ϯϭϴ͕/ŶĚĞǆ͗ϱ^ƚŽƌĂŐĞEĂŵĞ͗͟ƌŽŽƚ͟^ŝǌĞ͗Ͳ͕/ŶĚĞǆ͗Ͳ

図 2: CFB のファイル構造１つのファイルに集約して保存している．また，JustSystems 社が開発した日本語ワープロソフトである一太郎で使用される jtd および jtdc という拡張子のファイルも CFB を利用している．
CFB の階層構造を図 1 に示す．CFB の階層構
造はファイルシステムによく似た構造となっており，ファイルに相当する Stream とディレクトリに相当する Storage の集合体となっている．
CFB のファイル構造を図 2 に示す．CFB のファ
イル構造はヘッダと sector と呼ばれる一連の index 番号が振られた小さなブロックの集合で構成され，Stream は sector に分割して格納されている．各 sector の管理情報は FAT（File Allocation Table）という領域で管理されている．
各 Stream，Storage の名称，サイズ，親子関係などの情報は DE（Directory Entry）という領域で管理されている．

3.2.2

特徴 2：ファイルサイズ違反

一般的な CFB ファイルのファイルサイズはヘッダサイズを除くと sector サイズの倍数であるが，実行ファイルが埋め込まれた CFB ファイルの中には，ヘッダサイズを除いたファイルサイズが sector サイズの倍数でないものがあった．

3.2.3特徴 3：FAT 参照不可能領域

FAT において参照することのできる領域の大きさは，FAT に割り当てられた領域の大きさに依存している．一般的な CFB ファイルはヘッダを除いたすべての領域を FAT において参照することができていたが，実行ファイル埋め込まれた CFB ファイルの中には，FAT で参照可能な領域の上限を超えたファイルサイズのものがあった．

䝣䜯䜲䝹ධຊZŝĐŚdĞǆƚzĞƐ≉ᚩ䠍䛾ุᐃEŽzĞƐ≉ᚩ䠎䛾ุᐃ

&EŽ≉ᚩ䠏䛾ุᐃ≉ᚩ䠐䛾ุᐃ≉ᚩ䠑䛾ุᐃzĞƐ䝬䝹䜴䜵䜰᳨▱EŽ⤊஢

3.2.4≉ᚩ᳨▱⤊஢

特徴 4：Free Sector 位置違反

一般的な CFB ファイルについて，ファイル末尾に該当する sector が Free Sector（未使用のsector）であることはなかったが，実行ファイ
ルが埋め込まれた CFB ファイルの中には，ファイル末尾に該当する sector で Free Sector であるものがみられた．

図 3: 試験プログラムの動作の概要

4.2

実験内容

試験プログラムの性能を評価するため，悪性MS 文書ファイルを入力して結果を分析する．実験の対象となる MS 文書ファイルの概要を表 1に示す．rtf，doc および xls 拡張子以外の悪性MS 文書ファイルにも試験プログラムが有効で3.2.5 特徴 5：使途不明の sectorあることを確かめるため，表 1 の検体は，文献
CFB では，sector は，DIFAT（Double-Indirect [3] で行った実験に使用した検体に一太郎で使用される jtd および jtdc という拡張子のファイFAT），FAT，miniFAT，DE，Stream またはルを加えたものである．これらの検体は，2009
Free Sector の 6 種類に分類される．ここでいう年から 2012 年までに複数の組織において採取
DIFAT は，FAT に使用されている sector を管した固有のハッシュ値を持つ MS 文書ファイル
理するための領域であり，miniFAT はある一定で，分析により実行ファイルが埋め込まれていサイズ未満の Stream をまとめて管理するためることをあらかじめ確認しているものである．の領域である．
ただし，拡張子は doc であるものの実際の中身
一方，実行ファイルが埋め込まれた CFB ファ
は Rich Text であるものは rtf としている．こイルの中には，上記 6 種類に分類できない sector
れらの検体を試験プログラムに入力し，検知のを持つものがあった．
成功率および平均実行時間を求める．また，試験プログラムの検知率と，採取した当時の最新
4 実験
パターンファイルを適用した大手ベンダのウイルス対策ソフトの検知率，OﬃceMalScanner の4.1 試験プログラムの概要
検知率およびファイル検証機能の検知率を比較
これまでに示した 5 つのファイル構造上の特する．
徴を検知するプログラムを，オープンソースの実験を実施する環境は表 2 に示すとおりであプログラミング言語である Python を用いて実り，実験はすべて仮想マシン上で行った．
装した．実装したプログラムの概要を図 3 に示す．試験プログラムは文書ファイルを引数として受け取り，悪性 MS 文書ファイルの特徴を検知するコマンドラインプログラムである．実装の詳細については文献 [3] に示すとおりである．

表 1: 検体の概要
拡張子 検体数 平均容量 (KB)

表 3: 試験プログラムの検知率
拡張子
検知数
検知率 平均実行時間

rtf
doc
xls
jtd/jtdc
合計

rtf
doc
xls
jtd/jtdc
合計

98364917200266.5
252.2
180.4
268.5
243.0

表 2: 実験環境
CPUCore i5-3450 3.1GHzMemory8.0GB
OS
Windows 7 SP1Memory(VM)
2.0GB
OS(VM)
Windows XP SP3
Interpreter(VM)
Python 2.7.3

実験結果

97 / 98
35 / 36
48 / 49
17 / 17
197 / 200

99.0%
97.2%
98.0%
100.0%
98.5%

0.021s
0.062s
0.051s0.201s
0.051s

表 4: 検体の特徴ごとの検知状況
検知数
検知率
特徴 1
特徴 2
特徴 3
特徴 4
特徴 5

97 / 98
79 / 102
92 / 102
99 / 102
98 / 102

99.0%
77.5%
90.2%
97.1%
96.1%

ンは v0.58 であり，jtd/jtdc を含む CFB ファイ
ルについては，一般的な shellcode のパターン
検体の拡張子ごとの検知率を表 3 に示す．こを検索する “SCAN” オプションおよび総当たりの表における検知数の欄は，検知数/検体数 を表で実行ファイル等を検索する “BRUTE” オプショしている．検知の成功率は全体で 98.5%であっンを使用して実行した．また，Rich Text ファた．また，平均実行時間は約 0.051s であり，最イルについては，OﬃceMalScanner に同封されも実行時間が長いもので 0.391s であった．ている RTFScan を，“SCAN” オプションを使用検知に成功した 197 体の検体の特徴ごとの検して実行した．表中の OﬃceMalScanner の検知
知状況は表 4 に示すとおりである．表中の特徴
数は OﬃceMalScanner，RTFScan いずれかで
1 は rtf 拡張子のファイルの検知数であり，特検知した数を示す．OﬃceMalScanner の検知率
徴 2 から特徴 5 までは doc 拡張子のファイルのは 91.0%であった．
検知数，xls 拡張子のファイルの検知数およびファイル検証機能の実験には，Microsoft Ofjtd/jtdc 拡張子のファイルの検知数を合算した
fice 2007 にファイル検証機能を有効にするため値である．に必要な更新プログラム（KB2464583 （MS11次に，試験プログラムの検知率と，大手ベンダ021），KB2464605 および KB2509488 （MS11のウイルス対策ソフトの検知率，OﬃceMalScan023））を適用し，Oﬃce ファイル検証機能のア
ner の検知率およびファイル検証機能の検知率とドイン（KB2501584）をインストールしたものの比較結果を表 5 に示す．実験に用いた検体にを使用した．doc 拡張子および xls 拡張子の悪性対しては，採取した当時の最新のパターンファ
文書ファイルを閲覧ソフトで読み込んだときに，イルを適用した大手ベンダのウイルス対策ソフ
ファイル検証機能が正常なファイル構造でない
トでも 20.0%から 21.0%の低い確率でしかマルと判定し，ポップアップウインドウが表示され閲ウェアを検知することができなかった．しかも，覧処理が開始されなかった場合にファイル検証
ウイルス対策ソフトで検知できるマルウェアの機能による検知とした．実験に用いた検体に対種類には重複があったため，3 種類のウイルスするファイル検証機能の検知率は 38.8%であっ対策ソフトを組み合わせた場合（T，S，M 社
た．また，ファイル検証機能で検知できて，試験AV）でも，検知率は 43.0%であった．
プログラムで検知できなかったものはなかった．
実験に使用した OﬃceMalScanner のバージョ

4.3

表 5: ウイルス対策ソフト等との検知率の比較
検知数
検知率
試験プログラム
T 社 AVS 社 AVM 社 AV
T，S，M 社 AV
OﬃceMalScanner
ファイル検証機能

197 / 200
42 / 200
40 / 200
42 / 200
86 / 200
182 / 200
33 / 85

98.5%
21.0%
20.0%
21.0%
43.0%
91.0%
38.8%

加えて，各特徴の検知率のうち最も検知率の低い特徴 2 の検知率はファイル検証機能の検知率の値の 2 倍以上となっており，ファイル検証機能の機能に特徴 2 から特徴 5 までの判定が包含されてとは考えにくい．したがって，われわれの提案手法は，ファイル検証機能とは異なる手法である可能性が高いと考えられる．

5.3

試験プログラムの効果試験プログラムは，検査処理に要する時間の平均値はわずか0.051s で，98.5%という高い確
5 考察率で悪性 MS 文書ファイルを検知することに成5.1 検知に失敗した原因功した．試験プログラムは高速に検査することが可能であることから，試験プログラムを組織試験プログラムが検知に失敗した検体を分析内のメールサーバ等で自動実行させれば，組織した結果，失敗の原因は，exploit および shell内に到達するメールの簡易チェックを実施する
code に連結する形で実行ファイルが埋め込まれことが可能である．添付ファイルがパスワードているためであった．exploit および shellcode
で暗号化された zip ファイルであった場合，ウは閲覧ソフトが通常読み込む部分に埋め込ま
イルス対策ソフトでは通常中身を検査することれることが多いことから，exploit および shellができない．一方，パスワードで暗号化されたcode が埋め込まれた部分には本論文で論じた
zip ファイルであっても，格納されているファイような特徴は現れないことが多い．exploit おルの名称とサイズは復号しなくても判明する．
よび shellcode と実行ファイルやダミー表示用
これは，パスワードで暗号化された圧縮ファイの文書ファイルが別々の場所に埋め込まれていルに格納された悪性 MS 文書ファイルにも特徴る場合はわれわれの提案手法で検知することが2 の判定が適用可能であることを示している．
できるが，exploit および shellcode と実行ファ
ウイルス対策ソフトはマルウェアに対応する
イルやダミー表示用の文書ファイルが連結してパターンファイルを作成して検知するが，マルいる場合はわれわれの提案手法で検知することウェアは日々新たなものが出現している．Oﬃceはできない．一方，検知に失敗した 3 個についMalScanner は不正なコードによく利用されるて，OﬃceMalScanner では 2 個検知することがコードを検知するが，エンコードされたり未知でき，Handy Scissors[5] では 1 個検知することの不正なコードは検知できない．Handy Scissors[5]ができたが，いずれのツールでも検知することはエンコード方式を解析し埋め込まれた実行フができなかったものは 1 個であった．
ァイルを検知するが，未知のエンコード方式を利用したものは検知することができない．実験
5.2 ファイル検証機能との差異に用いた検体は，少なくとも採取した時点では大手ベンダの最新のパターンファイルを適用しファイル構造を検証するという，われわれのたウイルス対策ソフトでも，ほとんど検知する提案と同じ目的の機能を持つファイル検証機能ことができない未知のマルウェアであった．その検知率は 38.8%であり，試験プログラムの検れにもかかわらず，試験プログラムはパターン知率の 98.5%と比較して低い結果となった．検ファイルを用いずに高い確率で悪性 MS 文書ファ体の特徴ごとの検知状況とファイル検証機能のイルを検知することに成功した．さらに，試験検知状況を比較したが，今回の実験で使用した検体では関連性を見出すことができなかった． プログラムは悪性 MS 文書ファイルに埋め込まれていた exploit や実行ファイルのエンコード

方式を解析することなく高い確率で悪性 MS 文者の意志で仕様を変更することが不可能である書ファイルを検知することに成功した．また， ことから，提案手法は長期にわたり有効である．
われわれの提案手法と同様にファイル構造を検証するファイル検証機能と検知率を比較した結
参考文献
果，ファイル検証機能の検知率 38.8%に対し試験プログラムの検知率は 98.5%であり，試験プ[1] Microsoft：Rich Text Format (RTF)
ログラムが検知できないものでファイル検証機
Specification,version 1.9.1(online)，
能で検知できるものは確認できなかったことか
http://www.microsoft.com/en-us/
ら，われわれの提案手法の有効性が確認できた．
download/details.aspx?id=10725
文書ファイルの仕様は，攻撃者の意志で変更(2013-05-22).
することが困難であり，その結果，悪性 MS 文書[2] Microsoft：[MS-CFB]: Compound File Biファイルのファイル構造はマルウェアやエンコー
nary File Format(online)，http://
ド方式と比較して時間に対する変化が少なくな
msdn.microsoft.com/en-us/library/
る．試験プログラムはその悪性 MS 文書ファイ
dd942138.aspx (2013-05-22).
ルのファイル構造を検査対象としており，今後プログラムを更新しなくても高い検知率を維持[3] 大坪雄平，三村守，田中英彦：ファイル構することが可能であると考えられる．また，い造検査による悪性 MS 文書ファイルの検知，わゆるゼロデイ攻撃にも本論文の提案手法は有情報処理学会研究報告, Vol.2013-IOT-22,効である．例えば，実験に用いた jtd/jtdc 拡張
No.16 (2013).
子の検体 17 個中 14 個は検体入手時点で対策の[4] Microsoft：Microsoft Oﬃce 向けの Mi取られていない脆弱性を利用したものであった
crosoft Oﬃce ファイル検証機能の公開 (onが，試験プログラムはすべて検知することがでline)，http://technet.microsoft.com/
きた．doc 拡張子，rtf 拡張子などのファイルでja-jp/security/advisory/2501584
も同様で，未知の脆弱性を利用した検体であっ(2013-06-18).ても，実行ファイルを埋め込む場所が変わらなければ検知することができると考えられる．
[5] 三村守，田中英彦：Handy Scissors：悪性
一方，われわれの提案手法は，原理的に ex文書ファイルに埋め込まれた実行ファイル
ploit および shellcode はほぼ検知することはでの自動抽出ツール，情報処理学会論文誌,きない．したがって，exploit および shellcode に
Vol.54, No.3, pp.1211-1219 (2013).
連結する形で実行ファイルが埋め込まれている[6] Boldewin,F.：Analyzing
MSOﬃce
ものや exploit および shellcode のみが埋め込ま
malware with OﬃceMalScanner(online)，
れてるもの，例えば実行ファイルを外部のサー
http://www.reconstructer.org/papers/
バ等からダウンロードするようなものは検知す
Analyzing%20MSOffice%20malware%20
ることができない．これらについては，われわ
with%20OfficeMalScanner.zip (2013れの提案手法以外の方法で検知する必要がある．
05-08).

6

おわりに

本論文では，ファイル構造検査により悪性 MS文書ファイルを検知するという，われわれの提案手法の有効性を検証する実験を行った結果，平
均実行時間 0.051s で 98.5%の悪性文書ファイルを検知することができた．ファイル構造は攻撃[7] Hyukdon, K. Yeog, K. Sangjin, L. andJongin, L.：A Tool for the Detectionof Hidden Data in Microsoft Compound
Document File Format，ICISS ’08 Proceedings of the 2008 International Conference on Information Science and Security, pp.141-146 (2008).