OLAP(多次元データ分析)を利用した攻撃元データの分析と検体の自動解析
永田大堀合 啓一

田中 英彦

情報セキュリティ大学院大学
あらまし

OLAP とは，BI などで利用されるデータを多次元に解析する手法である．本論では，研究用データセット CCC DATAset 2008 の攻撃元データを OLAP による分析を行い，分析の方法とその結果を考察する．また，筆者らはマルウェアの自動解析システムを構築し運用しているが，このシステムの概要と研究用データセット CCC DATAset 2008 のマルウェア検体の自動解析を行った結果についても報告する．

Analysis of CCC DATAset 2008 using OLAP and Automated malware variant classification
Dai Nagata, Keiichi Horiai, Hidehiko Tanaka
INSTITUTE of INFORMATION SECURITY
Abstract The OLAP is a method to analyze multi-dimensional data in the area such as BusinessIntelligence. In this report, we describe the method of applying OLAP to the analysis of CCC DATAset
2008 and its results. Authors have been developing an automated malware analyzing system. We haveadopted the system to analyze the specified malware in the CCC DATAset 2008 and we describe theoutline of the system and the obtained results.

1

はじめに務システム等で蓄積されたデータの分析・加工

OLAP（On-line Analytical Processing）とは，を行い，企業経営の意思決定に活用しようとすビジネスインテリジェンス等で利用されるデる手法である．このように OLAP は，一般的にータを多次元に解析する手法である．本論では，は経営計画や企業戦略に利用される．BI ツール

研究用データセット CCC DATAset 2008 の攻撃

では，論理的に 3 次元以上の視点を持つ分析用元データ(以降，攻撃元データ)を分析するに当データベースから 2 次元のクロス集計表としてたり OLAP を使用した．多次元でデータを扱う

データを取り出しデータの多次元的な分析をことにより，マルウェアの傾向分析を行った．

行うことができる．

また，筆者らは定点観測と連動したマルウェア

本論では，攻撃元データについて多次元デーの自動解析システムを構築し運用しており，こタとして解析することを試み，その手法としてのシステムを拡張し，研究用データセット CCC

OLAP を利用することとした．OLAP にてデー

DATAset 2008 のマルウェア検体(以降，マルウタを扱うことにより，基礎数値の把握と傾向分ェア検体)の挙動解析を行った．

析を簡潔に行うことができるのではないかと考えた．

2

OLAP の概要
OLAP は，ビジネスインテリジェンス（BI）と呼ばれる経営分析等で用いられる．企業の業

3

分析システムの概要
本研究では，OLAP のソフトウェアとして，

OpenStandia[1] を 利 用 し た ． OpenStandia は ，を作成した．これらの各ディメンジョンを組みOpenOLAP をベースにしたフリーウェアである．

合わせて多次元的にデータを分析した．

OpenStandia では，データベースに mySQL が使

表 1 ログ管理テーブル

われている．図 1 に構成を示す．
カラム名pk

プライマリキー（追加項目）

datetime

日時

ip

攻撃元 IP アドレス

port

ポート番号

direction

攻撃方向

hash

ハッシュ値

virusname

マルウェア名filename

ファイル名virusnamegroup

マルウェアの Family 名（追加図 1 システムの構成
OLAP では，リレーショナルデータベースのデータを特定のタイミングで多次元データとして再構成する．再構成されたデータをキューブと呼ぶ．キューブに対して問い合わせを行こ項目）
countrycode

CN（追加項目）24h

24 時間表記での受信時刻（追加項目）

24h_timezone（追加項目）

取得することができる．またキューブは，複数のディメンジョンで構成される．ディメンジョ表 2 使用したディメンジョンンとは多次元的にデータを集計する際の軸で3.1テーブル構造OLAP でのデータ解析にあたり，mySQL にログのデータをロードするが，そのテーブル構成を表１に示す．ログの値と同じものに加え，マルウェアの Family 名や CountryCode を追加した．

名称

説明

virusgroupname

マルウェアの Family 名を扱う

countrycode

攻撃元 IP アドレスから導出した国コードを扱う

24 時間

であれば，PE_BOBAX を Family 名とする．追加した項目は，他のカラムからの導出が可能であるが，性能を考慮し，あらかじめデータを設定しておく方針とした．

3.2

ディメンジョンの構成

今回の分析では，表 2 に示すディメンジョン

24 時間表記での時刻時間を扱う

ハッシュ値

マルウェア名称についてカンマより前の部分を Family 名として扱う．例えば PE_BOBAX.AH

24 時間表記での受信時刻で日本との時差を考慮したものとによりグラフや CSV の元となる分析情報をある．

説明

検体のハッシュ値を扱う

分析結果

4

本システムを使用し次の分析を行った．
・全体基本情報の把握
・国別，時間帯別の分析
・ハッシュ値，マルウェア名称の分析

4.1

全体基本情報の把握

マクロ的な概要をつかむため，全体の基本となる統計情報を取得した．本システムでは，データをテーブルにロードしているため，全体の種類数や種類別出現数の情報は，SQL にて容易に取得可能である．表 3 に SQL で取得した件数情報を記述する．また表 4 にマルウェア名称についての種類別出現件数の情報を記述する．

表 3 全体基本情報 種類数
全ログレコード数

2,942,221 件

マルウェア名称による種類数

1,082 種類

ハッシュ値による種類数

52,465 種類

攻撃元 IP 種類数

258,711 種類

port/プロトコルによる種類数

63,820 種類

攻撃国別種類数

図 2 時間帯別攻撃数

150 種類表 4 マルウェア名称別出力件数（上位 5）
UNKNOWN

651,492

PE_BOBAX.AH

130,708

BKDR_VANBOT.AX

97,176

BKDR_VANBOT.AD

68,785

TROJ_POEBOT.AGU

66,6494.2

国別，時間帯別グラフ

鬼頭[2]らは，不正ホストからの攻撃を時間軸

図 3 時間帯別攻撃数（時差補正）
今回の分析では，時差補正を行った場合に顕著な特徴見られなかった．

での分析を行い，その中でそれぞれの国における日本時間を現地時間に修正し，時間帯別による攻撃数の変化のグラフ化を行っている．本シ
ステムで同様に，国別・時間帯別の集計を行った．図 2 は ，出現数 の 多い国か ら 10 カ 国（JP,CA,CN,US,TW,CZ,KR,DE,IN,PH）に対して，時差を考慮せずにグラフ化したものである．また，図 3 は，同じ国について時差を考慮してグラフ化したものである．

4.3

ハッシュ値，マルウェア名称の分析

ハッシュ値とマルウェア名称の関係を分析した．図 4 は，ウィルスパターンが更新されるまでの期間を視覚化したものである．横軸は月を示し，縦軸はマルウェアの検体を示す．
UNKNOWN の期間が赤色で，名前が付くと黄色，さらに名前が変わると別の色で表現している．図 5 は，UNKOWN の検体へマルウェアの名称が付与されるまでの期間を示したものである．

の時点から分析の結果が変わっているので，解析が難しいマルウェアや，新しいタイプのマルウェアと考えられる．

4.4

Excel によるグラフと簡易アニメーション化
OpenOLAP では，Viewer から分析結果を CSV形式のファイルに出力することできる．その出力データを利用して，Excel による簡易アニメーションを行った．時系列に複数のシートにデータを配置した．グラフの元データを連続的に切り替えることにより，簡易アニメーションと
図 4 ウィルスパターン更新の可視化して，傾向の変化を見る事ができる．図 6 は，国とマルウェア名称を軸に取り，アニメーション切り替えを時間帯によって実施した場合の表示例である．

図 5 マルウェア名称付与までの期間
これらの図によって，マルウェア名称の変化（定義体が更新される期間）を見ることができる．マルウェア名称が途中で変化しているもの
で，UNKNOWN を除外したハッシュ値は，247件であった． 247 件の中で Family 名の変化に

図 6 アニメーション表示例

着目して確認したところ，Family 名が変わった検体が 109 件，Family 内だけで変わった検5

マルウェア検体の自動解析

体が 138 件（内 126 件は PE_VIRUT Family）

筆者らは定点観測と連動したマルウェアのという結果であった．マルウェアの名称が途中自動解析システムを構築し運用している[4,5]．

で変わった 247 件のうち，ほぼ半数にあたる

このシステムは，ハニーポットを定点観測のセ126 件が PE_VIRUT Family の検体であった．

ンサーとして利用し，捕獲したマルウェアを一PE_VIRUT は，2008 年 1 月の CCC 分析レポ

般のネットワークから隔離した安全な環境でート[3]によると，2007 年 11 月末より増えてい実行して，その挙動を自動的に解析するものでて，１日 300 種の異なる検体が発生すると報告ある．解析の対象は，マルウェアの実行前後のされている．マルウェア名称が変更されるといWindows のファイルやプロセス等の変化と，観うことは，はじめの定義ファイル提供時の分析測される通信の状況である．また，このシステ

ムは解析済みデータをＤＢへ蓄積し，新たに捕(3) 起動した Windows は，マルウェア実行前の獲したマルウェアの挙動とＤＢ内のデータと状態を記録し，その後に制御 PC から解析対象の類似性を自動的に算出して，その名称を推定のマルウェアファイルを受信して，このファイする機能を有している．マルウェアの実行環境

ルを実行する．

は，感染後に必要となる Windows システムの復(4) マルウェア実行後の状態を記録し，実行前旧の容易性から仮想マシン上で構築している．のログとともに制御 PC へ転送する．

このシステムを利用して，指定されたマルウ
ェア検体の解析を試みたが，arp パケットが観(5) 感染 PC 自身をリブートし,(1)のステップから繰り返す．

測されるのみで，その他の挙動は観測されなか基本的には制御 PC と連携し，以上のステッった．近年のマルウェアの中には，自身が解析プを繰り返すことによって，全自動でマルウェされることを妨害する機能を持ったものの存アの解析が可能であるが，マルウェアの実行に在が知られていることから，今回の検体がこれ伴う Windows システムのクラッシュ等の原因に該当すると想定し，仮想マシンを利用しないで(4),(5)が機能しない場合が発生する．この状環境を構築して解析を試みた．

態を検出し，制御 PC からの指令によって感染PC をハード的にリブート（電源の OFF/ON）さ5.1

解析環境の概要せる仕組みを持たせている．

自動解析は解析全般の処理を制御する PC（制御 PC）とマルウェアを実行する PC（感染 PC）の２台で構成した．制御 PC は Linux を OS とし，5.2

解析結果

解析結果は，Web ブラウザで閲覧可能なシス解析全般の制御を行う他，次の処理を行う．

テムとして実装しているが，マルウェア検体の・解析析環境に必要なネットワークの模擬解析結果の表示例を図 7 に示す．図において②・DNS,IRC など関連サーバの模擬レジストリの改ざんが１件，③システム関連フ・マルウェア実行中の通信パケットの記録

ァイルの生成と削除がそれぞれ１件，④・感染 PC から取得したマルウェア実行前後

NVCOM プロセスの起動などが記録されている．のログを比較して得られる挙動の変化の抽出

また，⑤には起動したプロセスと，このプロセと HTTP サーバと連動した解析結果の出力

スが待ち受けているポート番号，⑥には HOSTS

一方の感染 PC は，マルウェアを実行するファイルの改ざんの状態が表示される．解析対

Windows OS 起動用のパーティションと，この象の検体は，HOSTS ファイルの改ざんを行うこ

パーティションのファイルを感染前の状態へとが知られているが[7]，本自動解析ではファイ復旧させるための環境を備えた Linux 起動用のルの最後に１バイト(¥x0a)が追加されているこパーティションのデュアルブート構成とし，以とを確認している．これらの解析結果は，ウィ下のステップで処理を行う．

ルス対策製品ベンダーなどが Web 上で公開し(1) Linux のパーティションから起動し，感染前ている情報[7]とほぼ一致している．⑦にマルウの正常な状態の Windows のディスク・イメー

ェアの実行に伴って発生した通信パケットのジ・ファイルを，Windows 用のパーティション情報を示す．マルウェアは解析環へ実装した模へコピー．

擬 DNS サーバへホスト名 rx7.teensmutbox. com(2) ブートマネージャ Grub[6]の機能を利用し，の FQDN の問い合わせを行い，模擬 DNS が指当該 PC をリブートした際に，Windows のパー定した仮の IP アドレス 4.3.2.234 の IRC サーバ

ティションから１回だけ起動するように設定へログインする様子が示されている．

して感染 PC をリブート．

(172.16.50.128 は感染 PC の IP アドレスである．)

このように，既知のプロトコルを利用するマル化をすることができるようになった．しかしなウェアについては，動的な挙動を観測することがら，事前にディメンジョンやキューブを作成で，ボットネットの指令サーバを自動的に特定する必要があるためリアルタイムでの分析はし，指令文字列を自動的に抽出することが可能難しい．

である．

マルウェアの自動解析については，挙動の解

本自動解析システムはこれまでに述べた挙析については所期の目的を達することができ動をカテゴリデータへ変換してベクトル化し，た．ただし，挙動の類似性を基にしてマルウェベクトル間のハミング距離を指標とした挙動アの名称を推定する機能については，DB の充の類似性を基に，マルウェアの名称を推定する

実やアルゴリズムの改善による精度の向上が機能を有している[5]．筆者らが仮想マシン上の今後の課題である．

環境で自動解析を行って蓄積した約 7,600 検体のデータとの挙動の類似性から推定したマルウェアの名称が①に示されている．この例では，推定した名称が BKDR_VANBOT.NM となり，実際の名称と一致しなかった．その原因として

参考文献[1] OpenStandia
http://www.nri-aitd.com/openstandia/)は，実行環境の違い（仮想マシン上と実マシン[2] 鬼頭哲郎，仲小路博史，寺田真敏，菊池上）に加えて，蓄積している解析済の DB 内に，

浩明「インターネット上の不正ホスト分布に関今回の検体と挙動が類似しているデータが含する社会的レイヤからの考察」情報処理学会研

まれていないことが原因と推定している．

究 報 告 . CSEC Vol.2007, No.71(20070719) ,Jul.2008[3] 2008 年 1 月 CCC 分析レポート
https://www.ccc.go.jp/report/200801/0801monthly.
①html[4]堀合啓一，今泉隆文，田中英彦「定点観測②によるボットネットの観測と Malware の動的挙③動解析システムの提案」情報処理学会論文誌④Vol.49 No.4 1-12, Apr.2008⑤⑥⑦[5]堀合啓一，今泉隆文，田中英彦「ハミング距離によるマルウェア亜種の自動分類」CSEC
Vol.2008, No.45(20080523), May.2008[6]GNU GRUB
http://www.gnu.org/software/grub/[7] WORM_AGOBOT.ATR
http://www.trendmicro.co.jp/vinfo/virusencyclo/def
ault5.asp?VName=WORM_AGOBOT.ATR&VSect

図 7 検体の自動解析結果
6

まとめ
OLAP を利用することにより，準備されたディメンジョンに対しては，容易にグラフ化・CSV=T