SlideShare a Scribd company logo
Copyright©2016 NTT corp. All Rights Reserved.
2016年6月18日
NTTセキュアプラットフォーム研究所
サイバーセキュリティプロジェクト
岡野 靖
データ圧縮アルゴリズムを用いた
マルウェア感染通信ログの判定
2Copyright©2016 NTT corp. All Rights Reserved.
NTT Confidential
はじめに
•Proxyサーバ等、NW機器のログを分析し、
マルウェアによる通信由来の悪性通信ログを
判定、マルウェア感染端末を検出
•機械学習手法適用時、ログの特徴抽出手法は
課題の一つ
• N-Gram、情報エントロピー、正規表現パターン化、
etc,etc….
•文書を特徴抽出せずに分類可能な手法、
データ圧縮による分類を悪性通信ログ判定に
適用可能かを検討
3Copyright©2016 NTT corp. All Rights Reserved.
NTT Confidential
データ圧縮による分類
類似したデータ同士なら、よりデータ圧縮される性質を用い、推論対
象の悪性・良性通信ログとの類似度を圧縮サイズ・圧縮率で評価
• 圧縮サイズ C悪性 ≪ C良性 ( C良性/ C悪性 >閾値) なら、推論対象は悪性と判定
• データはテキスト、バイナリ等どんな種類のものでも良い。事前の特徴抽出は不要
• データ圧縮は LZSS (gzip)、LZW (compress)、LZT、LZMA、PPM (rar) 等を利用可
http://stc.uol.com/c/webfont/proj
eto-grafico/uol-font/uol-text-regul
….
http://53bvmfnea4p.o62fttv.com/
8fd32e79869bad839e5da6828bf61
http://serv.the-app-data.info//offe
rs/DynamicOfferScreen?offerid=2
http://crl.microsoft.com/pki/crl/pr
oducts/microsoftrootcert.crl
….
http://ajax.googleapis.com/ajax/lib
s/jquery/1.8.3/jquery.min.js
http://serv.the-app-data.info//offe
rs/DynamicOfferScreen?offerid=2
訓練データ
悪性
通信ログ
訓練データ
良性
通信ログ
尾に結合
推論対象:
各訓練データ
最後尾に結合
iaInaokLEN03nn(0903jnnksa
ou9eeI)93$9bf)#$hf940f)($j
….
saiurnI8fd32e79869bad839e
5da6828bf61))4004jj9DJj""9
Inisianfa>kw-kk88finfnaeinfa
jiInfEIn93fn8fj$%jks89#ni89#
Hd#)Nncj)0=-j3bn)CkL>#9hh
….
0i8ikl&y(0#$nLiknlwp0Hni89
sijjise-j9)cc9ue4u-2^jE$knclO
9(kInnliNEIni=0kn)nBWhjjfiNi
ninIEh84hf8lNn)Sjen9-^
データ
圧縮
データ
圧縮 悪性母体の
圧縮サイズ
C悪性
良性母体の
圧縮サイズ
C良性
4Copyright©2016 NTT corp. All Rights Reserved.
NTT Confidential
データ圧縮による分類 関連研究
• 「情報量」としてデータ圧縮による算出量 (relative entropy) を提案
Benedetto, et.al., "Language trees and zipping", Phys. Rev. Lett., vol.88, 2002.
• 分類問題
Keogh, et.al., "Towards Parameter-Free DataMining", KDD, pp. 206-215 ,2004.
• 著作者判定 (Authorship Identification)
• 文書: Marton, et.al., "On compression-based text classification", European
Conference on Information Retrieval, pp. 300-314 , 2005.
• 楽曲: 足達 他、「圧縮類似度による楽譜からの作曲者の判定」、DEIM2013.
• SPAMメール判定
Bratko, et.al., “Spam filtering using statistical data compression”, Journal of
Machine Learning Research, vol.7, pp.2673-2698, 2006.
• Twitter分類
西田他, 「データ圧縮によるツイート話題分類」, 日本データベース学会論文誌,
Vol.10, No.1, 2011.
5Copyright©2016 NTT corp. All Rights Reserved.
NTT Confidential
悪性通信ログ例 (URL)
マルウェア "OutBrowse"
http://installer.apps-track.com/Installer/Flow?pubid=7302
&distid=13467&productid=1694&subpubid=-1&campaigni
d=0&networkid=0&dfb=-1&os=5.1&iev=8.0&ffv=&chrome
v=&macaddress=&netv=&d1=15693&d2=-1&d3=-1&d4=-1
&d5=-1&ds1=&hb=2&systembit=32&vm=1&version=4.0
http://serv.the-app-data.info//offers/DynamicOfferScree
n?offerid=2&distid=13467&leadp=1694&countryid=142&s
ysbit=32&dfb=-1&hb=2&isagg=0&version=4.0&external=0
&external=0&
http://cdn.file7desktop.com/ProductS/PlayerStubWrapper
1.exe
http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.mi
n.js
…(中略)…
http://d.castplatform.com/api/vp/1?clk=gLg_PHWA9aSyio
Xkt-F4b3J9cI1ybf-t-x7VxWH5dmAWXwln-z (以下略)
① APIのような規則
性があるURLが良く
出現する
② 良性・悪性どちら
でもよくアクセスさ
れるサイトがある
Google, Microsoft等
③ しばしば符号化・
暗号化される
6Copyright©2016 NTT corp. All Rights Reserved.
NTT Confidential
実験
方式 概要 大規模ログデータ対応
BoW+
線形SVM
対象実験。URLの特徴抽出は
'/', '?','&',=' を区切りとしたBoW、
分類器に線形SVMを使用
-
LZSS (LZ77) gzip. スライド辞書方式。圧縮対象の
直前領域(スライド窓 32kB)中の最長
一致文字列を探索、相対位置を出力
分割圧縮: 複数分割した
学習データ+推論対象で圧
縮、最小サイズを採用
LZW (LZ78) compress(gif形式). 動的辞書方式。
新規文字列を辞書に順次登録、最
長一致文字列の辞書登録No.を出力
Jubatus Classifier に実装:
学習: 辞書登録あり圧縮
推論: 辞書登録なし圧縮
bzip2 ブロックソートで同一文字が連続した
文字列を得やすいことを利用
ブロックサイズ最大
(Level9: 900kB) を使用
悪性通信ログ: マルウェア検体の動的解析により収集
良性通信ログ: 社内NWの NW装置ログ
Holdout検証: 訓練データ(前) 悪性6.5万件 良性10万件
推論データ(後) 悪性10万件 良性10万件
7Copyright©2016 NTT corp. All Rights Reserved.
NTT Confidential
結果
方式 パラメータ等 総実行時間 AUC pAUC TPR0.5%
BoW+
線形SVM
L2正則
C=0.75
27 s
学習 16s
推論 11s
0.956 0.0787 64.2%
LZSS level 6 16490 s 0.968 0.0797 60.9 %
LZW
(Jubatus)
辞書長20bit
40 s
学習 24s
推論 16s
0.973 0.0825 68.1%
bzip2 level 9 68690 s 0.521 0.0057 0.4 %
8Copyright©2016 NTT corp. All Rights Reserved.
NTT Confidential
悪性通信URL LZW圧縮結果: ①API的URL
[未圧縮: 1352bit] http://serv.the-app-data.info//offers/Dy
namicOfferScreen?offerid=2&distid=13467&leadp=1694&cou
ntryid=142&sysbit=32&dfb=-1&hb=2&isagg=0&version=4.0&e
xternal=0&external=0&
[良性母体: 900bit] |http://serv|.the|-ap|p-|data.|info/|/of
|fers|/D|yna|mic|Off|erS|cre|en|?o|ffe|rid=2|&dis|tid=1|3
467|&le|adp|=16|94&c|ountry|id=14|2&s|ys|bit|=32&|dfb
|=-1&|hb=|2&is|agg|=0&ver|sion=|4.0|&ex|ternal|=0&e|xt
er|nal|=0&|
[悪性母体: 220bit] |http://serv.the-app-data.info//offers/Dy
namicOfferScreen?offerid=2|&distid=1|3467|&leadp=1694&
|countryid=142&sysbit=32&df|b=-1&hb=2|&isagg=0&versio|
n=4|.0&e|xternal=0&e|xternal=0&|
*圧縮時、|| 間の文字列は1Code (本実験では20bit)で表現
||
9Copyright©2016 NTT corp. All Rights Reserved.
NTT Confidential
悪性通信URL LZW圧縮結果: ③符号化URL
[未圧縮: 4688bit] http://d.castplatform.com/api/vp/1?clk=g
Lg_PHWA9aSyioXkt-F4b3J9cI1ybf-t-x7VxWH5dmAWXwln-z (以下
略)
[良性母体: 4420bit] |http://d.|cast|platform|.com/api/|vp|/1
|?cl|k=|gLg|_PH|WA9|aS|yio|Xkt|-F4|b3J|9cI|1y|bf-|t-|x7|Vx
W|H5d|mAW|Xwl|n-|z (以下略)
[悪性母体: 4980bit] |http://d.|cast|platform|.com/api/v|p/1
|?cl|k=|gL|g_|PH|WA|9a|Sy|io|Xk|t-|F4|b3|J9|cI|1yb|f-|t-x|
7V|xWH|5d|mA|WX|wl|n-|z (以下略)
*圧縮時、|| 間の文字列は1Code (本実験では20bit)で表現
10Copyright©2016 NTT corp. All Rights Reserved.
NTT Confidential
分離平面図: LZW
x軸は悪性通信ログ訓練データ母体での圧縮率、y軸は良性通信ログ
訓練データ母体での圧縮率、各点はログ1行を示す (ログ行毎の判定)
推論データ:悪性通信ログ 推論データ:良性通信ログ
悪性母体の圧縮率 悪性母体の圧縮率
良
性
母
体
の
圧
縮
率
良
性
母
体
の
圧
縮
率
11Copyright©2016 NTT corp. All Rights Reserved.
NTT Confidential
推論データ 圧縮率分布図
悪性通信ログのみ学習 良性通信ログのみ学習
■ 推論データ 良性通信ログ ■ 推論データ 悪性通信ログ
悪性母体の圧縮率 良性母体の圧縮率
②
① API的
URL 等
③符号化
URL等
12Copyright©2016 NTT corp. All Rights Reserved.
NTT Confidential
[参考] JubaclassifierへのLZW実装概要
jubatus_coreライブラリを修正し、
分類アルゴリズム lzwクラスを実装;
• jubatus::core::classifier::linear_classifie
r を継承
• 以下のメソッドを実装:
コンストラクタ, train (学習), name,
classify_with_scores (推論)
• LZWの辞書(Trie木)はKVS型のJubatus
学習モデル(local_strage)で代用
• 学習、推論ともにLZW圧縮を実施。
辞書登録は学習時あり、推論時なし。
圧縮データは生成せず、圧縮サイズの
み算出。
• 推論時スコアはクラス毎に「1/圧縮率」
を出力
KVSによるLZW圧縮サンプルコード (Python)
出典: http://rosettacode.org/wiki/LZW_compression
def compress(uncompressed):
dict_size = 256
dictionary = dict((chr(i), chr(i)) for i in
xrange(dict_size))
w = ""
result = []
for c in uncompressed:
wc = w + c
if wc in dictionary:
w = wc
else:
result.append(dictionary[w])
# Add wc to the dictionary.
dictionary[wc] = dict_size
dict_size += 1
w = c
if w:
result.append(dictionary[w])
return result
13Copyright©2016 NTT corp. All Rights Reserved.
NTT Confidential
まとめ
•圧縮アルゴリズムでの分類でURLによる悪性通
信ログ判定を行えた
• 特にAPI的URLの判定に優れる
• 訓練データの運用が楽。オンライン学習可能、
悪性と良性を別々に学習させるのも可。
• 符号化URLの判定に関しては、より検討が必要
•たまにはこういう「変化球」もいかがでしょうか?

More Related Content

Similar to 20160618 データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定

統合ログ分析技術Lognosisと運用ログ分析の取組
統合ログ分析技術Lognosisと運用ログ分析の取組統合ログ分析技術Lognosisと運用ログ分析の取組
統合ログ分析技術Lognosisと運用ログ分析の取組
NTT Software Innovation Center
 
【招待講演】ICM研究会 - 統合ログ分析技術Lognosisと運用ログ分析の取組
【招待講演】ICM研究会 - 統合ログ分析技術Lognosisと運用ログ分析の取組【招待講演】ICM研究会 - 統合ログ分析技術Lognosisと運用ログ分析の取組
【招待講演】ICM研究会 - 統合ログ分析技術Lognosisと運用ログ分析の取組
NTT Software Innovation Center
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
Yoshihiro Nakajima
 
Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224
Tomoya Hibi
 
SORACOM Conference Discovery 2017 | A3. IoT時代のデバイスマネジメント〜SORACOM Inventory の活用〜
SORACOM Conference Discovery 2017 | A3. IoT時代のデバイスマネジメント〜SORACOM Inventory の活用〜SORACOM Conference Discovery 2017 | A3. IoT時代のデバイスマネジメント〜SORACOM Inventory の活用〜
SORACOM Conference Discovery 2017 | A3. IoT時代のデバイスマネジメント〜SORACOM Inventory の活用〜
SORACOM,INC
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
Tomoya Hibi
 
SORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのか
SORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのかSORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのか
SORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのか
SORACOM,INC
 
データセンターを構成する最新ネットワーク技術動向
データセンターを構成する最新ネットワーク技術動向データセンターを構成する最新ネットワーク技術動向
データセンターを構成する最新ネットワーク技術動向
Naoto MATSUMOTO
 
Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下
Koyo Takenoshita
 
無線LANでロボットを動かす話
無線LANでロボットを動かす話無線LANでロボットを動かす話
無線LANでロボットを動かす話Hisaya Okada
 
リリース直前 Hinemos ver.6.0のご紹介
リリース直前 Hinemos ver.6.0のご紹介リリース直前 Hinemos ver.6.0のご紹介
リリース直前 Hinemos ver.6.0のご紹介
Hinemos
 
日本語における自然言語解析とその応用 〜COTOHA VA & API〜
日本語における自然言語解析とその応用 〜COTOHA VA & API〜日本語における自然言語解析とその応用 〜COTOHA VA & API〜
日本語における自然言語解析とその応用 〜COTOHA VA & API〜
ネクストスケープ
 
SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜
SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜
SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜
SORACOM,INC
 
SigfoxではじめるIoT勉強会
SigfoxではじめるIoT勉強会SigfoxではじめるIoT勉強会
SigfoxではじめるIoT勉強会
Gaku Hibi
 
第一回Soft layer勉強会 グローバル分散アーキテクチャ
第一回Soft layer勉強会 グローバル分散アーキテクチャ第一回Soft layer勉強会 グローバル分散アーキテクチャ
第一回Soft layer勉強会 グローバル分散アーキテクチャ
Maho Takara
 
アプリケーション展開におけるキーポイント

アプリケーション展開におけるキーポイント
アプリケーション展開におけるキーポイント

アプリケーション展開におけるキーポイント
MPRG_Chubu_University
 
SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27
SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27
SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27
SORACOM,INC
 
【HinemosWorld2016】A1-2_A2-2_2017年1月リリース!Hinemos ver.6.0のご紹介
【HinemosWorld2016】A1-2_A2-2_2017年1月リリース!Hinemos ver.6.0のご紹介【HinemosWorld2016】A1-2_A2-2_2017年1月リリース!Hinemos ver.6.0のご紹介
【HinemosWorld2016】A1-2_A2-2_2017年1月リリース!Hinemos ver.6.0のご紹介
Hinemos
 
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
aslead
 
130522 01
130522 01130522 01
130522 01openrtm
 

Similar to 20160618 データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定 (20)

統合ログ分析技術Lognosisと運用ログ分析の取組
統合ログ分析技術Lognosisと運用ログ分析の取組統合ログ分析技術Lognosisと運用ログ分析の取組
統合ログ分析技術Lognosisと運用ログ分析の取組
 
【招待講演】ICM研究会 - 統合ログ分析技術Lognosisと運用ログ分析の取組
【招待講演】ICM研究会 - 統合ログ分析技術Lognosisと運用ログ分析の取組【招待講演】ICM研究会 - 統合ログ分析技術Lognosisと運用ログ分析の取組
【招待講演】ICM研究会 - 統合ログ分析技術Lognosisと運用ログ分析の取組
 
Lagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそばLagopus workshop@Internet weekのそば
Lagopus workshop@Internet weekのそば
 
Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224Osc2018tokyo spring-20180224
Osc2018tokyo spring-20180224
 
SORACOM Conference Discovery 2017 | A3. IoT時代のデバイスマネジメント〜SORACOM Inventory の活用〜
SORACOM Conference Discovery 2017 | A3. IoT時代のデバイスマネジメント〜SORACOM Inventory の活用〜SORACOM Conference Discovery 2017 | A3. IoT時代のデバイスマネジメント〜SORACOM Inventory の活用〜
SORACOM Conference Discovery 2017 | A3. IoT時代のデバイスマネジメント〜SORACOM Inventory の活用〜
 
Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)Lagopus Project (Open Source Conference)
Lagopus Project (Open Source Conference)
 
SORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのか
SORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのかSORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのか
SORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのか
 
データセンターを構成する最新ネットワーク技術動向
データセンターを構成する最新ネットワーク技術動向データセンターを構成する最新ネットワーク技術動向
データセンターを構成する最新ネットワーク技術動向
 
Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下Mbed祭り 2017@春の新横浜 20170225 竹之下
Mbed祭り 2017@春の新横浜 20170225 竹之下
 
無線LANでロボットを動かす話
無線LANでロボットを動かす話無線LANでロボットを動かす話
無線LANでロボットを動かす話
 
リリース直前 Hinemos ver.6.0のご紹介
リリース直前 Hinemos ver.6.0のご紹介リリース直前 Hinemos ver.6.0のご紹介
リリース直前 Hinemos ver.6.0のご紹介
 
日本語における自然言語解析とその応用 〜COTOHA VA & API〜
日本語における自然言語解析とその応用 〜COTOHA VA & API〜日本語における自然言語解析とその応用 〜COTOHA VA & API〜
日本語における自然言語解析とその応用 〜COTOHA VA & API〜
 
SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜
SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜
SORACOM LoRaWAN Conference 2017 | LoRaゲートウェイとデバイス 〜デバイス開発と、無線連携〜
 
SigfoxではじめるIoT勉強会
SigfoxではじめるIoT勉強会SigfoxではじめるIoT勉強会
SigfoxではじめるIoT勉強会
 
第一回Soft layer勉強会 グローバル分散アーキテクチャ
第一回Soft layer勉強会 グローバル分散アーキテクチャ第一回Soft layer勉強会 グローバル分散アーキテクチャ
第一回Soft layer勉強会 グローバル分散アーキテクチャ
 
アプリケーション展開におけるキーポイント

アプリケーション展開におけるキーポイント
アプリケーション展開におけるキーポイント

アプリケーション展開におけるキーポイント

 
SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27
SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27
SORACOM UG 九州 #2 | SORACOM アップデート!! since 2017/5/27
 
【HinemosWorld2016】A1-2_A2-2_2017年1月リリース!Hinemos ver.6.0のご紹介
【HinemosWorld2016】A1-2_A2-2_2017年1月リリース!Hinemos ver.6.0のご紹介【HinemosWorld2016】A1-2_A2-2_2017年1月リリース!Hinemos ver.6.0のご紹介
【HinemosWorld2016】A1-2_A2-2_2017年1月リリース!Hinemos ver.6.0のご紹介
 
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
Mattermostが働き方を劇的改善!NRIの働き方改革の秘訣
 
130522 01
130522 01130522 01
130522 01
 

20160618 データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定

  • 1. Copyright©2016 NTT corp. All Rights Reserved. 2016年6月18日 NTTセキュアプラットフォーム研究所 サイバーセキュリティプロジェクト 岡野 靖 データ圧縮アルゴリズムを用いた マルウェア感染通信ログの判定
  • 2. 2Copyright©2016 NTT corp. All Rights Reserved. NTT Confidential はじめに •Proxyサーバ等、NW機器のログを分析し、 マルウェアによる通信由来の悪性通信ログを 判定、マルウェア感染端末を検出 •機械学習手法適用時、ログの特徴抽出手法は 課題の一つ • N-Gram、情報エントロピー、正規表現パターン化、 etc,etc…. •文書を特徴抽出せずに分類可能な手法、 データ圧縮による分類を悪性通信ログ判定に 適用可能かを検討
  • 3. 3Copyright©2016 NTT corp. All Rights Reserved. NTT Confidential データ圧縮による分類 類似したデータ同士なら、よりデータ圧縮される性質を用い、推論対 象の悪性・良性通信ログとの類似度を圧縮サイズ・圧縮率で評価 • 圧縮サイズ C悪性 ≪ C良性 ( C良性/ C悪性 >閾値) なら、推論対象は悪性と判定 • データはテキスト、バイナリ等どんな種類のものでも良い。事前の特徴抽出は不要 • データ圧縮は LZSS (gzip)、LZW (compress)、LZT、LZMA、PPM (rar) 等を利用可 http://stc.uol.com/c/webfont/proj eto-grafico/uol-font/uol-text-regul …. http://53bvmfnea4p.o62fttv.com/ 8fd32e79869bad839e5da6828bf61 http://serv.the-app-data.info//offe rs/DynamicOfferScreen?offerid=2 http://crl.microsoft.com/pki/crl/pr oducts/microsoftrootcert.crl …. http://ajax.googleapis.com/ajax/lib s/jquery/1.8.3/jquery.min.js http://serv.the-app-data.info//offe rs/DynamicOfferScreen?offerid=2 訓練データ 悪性 通信ログ 訓練データ 良性 通信ログ 尾に結合 推論対象: 各訓練データ 最後尾に結合 iaInaokLEN03nn(0903jnnksa ou9eeI)93$9bf)#$hf940f)($j …. saiurnI8fd32e79869bad839e 5da6828bf61))4004jj9DJj""9 Inisianfa>kw-kk88finfnaeinfa jiInfEIn93fn8fj$%jks89#ni89# Hd#)Nncj)0=-j3bn)CkL>#9hh …. 0i8ikl&y(0#$nLiknlwp0Hni89 sijjise-j9)cc9ue4u-2^jE$knclO 9(kInnliNEIni=0kn)nBWhjjfiNi ninIEh84hf8lNn)Sjen9-^ データ 圧縮 データ 圧縮 悪性母体の 圧縮サイズ C悪性 良性母体の 圧縮サイズ C良性
  • 4. 4Copyright©2016 NTT corp. All Rights Reserved. NTT Confidential データ圧縮による分類 関連研究 • 「情報量」としてデータ圧縮による算出量 (relative entropy) を提案 Benedetto, et.al., "Language trees and zipping", Phys. Rev. Lett., vol.88, 2002. • 分類問題 Keogh, et.al., "Towards Parameter-Free DataMining", KDD, pp. 206-215 ,2004. • 著作者判定 (Authorship Identification) • 文書: Marton, et.al., "On compression-based text classification", European Conference on Information Retrieval, pp. 300-314 , 2005. • 楽曲: 足達 他、「圧縮類似度による楽譜からの作曲者の判定」、DEIM2013. • SPAMメール判定 Bratko, et.al., “Spam filtering using statistical data compression”, Journal of Machine Learning Research, vol.7, pp.2673-2698, 2006. • Twitter分類 西田他, 「データ圧縮によるツイート話題分類」, 日本データベース学会論文誌, Vol.10, No.1, 2011.
  • 5. 5Copyright©2016 NTT corp. All Rights Reserved. NTT Confidential 悪性通信ログ例 (URL) マルウェア "OutBrowse" http://installer.apps-track.com/Installer/Flow?pubid=7302 &distid=13467&productid=1694&subpubid=-1&campaigni d=0&networkid=0&dfb=-1&os=5.1&iev=8.0&ffv=&chrome v=&macaddress=&netv=&d1=15693&d2=-1&d3=-1&d4=-1 &d5=-1&ds1=&hb=2&systembit=32&vm=1&version=4.0 http://serv.the-app-data.info//offers/DynamicOfferScree n?offerid=2&distid=13467&leadp=1694&countryid=142&s ysbit=32&dfb=-1&hb=2&isagg=0&version=4.0&external=0 &external=0& http://cdn.file7desktop.com/ProductS/PlayerStubWrapper 1.exe http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.mi n.js …(中略)… http://d.castplatform.com/api/vp/1?clk=gLg_PHWA9aSyio Xkt-F4b3J9cI1ybf-t-x7VxWH5dmAWXwln-z (以下略) ① APIのような規則 性があるURLが良く 出現する ② 良性・悪性どちら でもよくアクセスさ れるサイトがある Google, Microsoft等 ③ しばしば符号化・ 暗号化される
  • 6. 6Copyright©2016 NTT corp. All Rights Reserved. NTT Confidential 実験 方式 概要 大規模ログデータ対応 BoW+ 線形SVM 対象実験。URLの特徴抽出は '/', '?','&',=' を区切りとしたBoW、 分類器に線形SVMを使用 - LZSS (LZ77) gzip. スライド辞書方式。圧縮対象の 直前領域(スライド窓 32kB)中の最長 一致文字列を探索、相対位置を出力 分割圧縮: 複数分割した 学習データ+推論対象で圧 縮、最小サイズを採用 LZW (LZ78) compress(gif形式). 動的辞書方式。 新規文字列を辞書に順次登録、最 長一致文字列の辞書登録No.を出力 Jubatus Classifier に実装: 学習: 辞書登録あり圧縮 推論: 辞書登録なし圧縮 bzip2 ブロックソートで同一文字が連続した 文字列を得やすいことを利用 ブロックサイズ最大 (Level9: 900kB) を使用 悪性通信ログ: マルウェア検体の動的解析により収集 良性通信ログ: 社内NWの NW装置ログ Holdout検証: 訓練データ(前) 悪性6.5万件 良性10万件 推論データ(後) 悪性10万件 良性10万件
  • 7. 7Copyright©2016 NTT corp. All Rights Reserved. NTT Confidential 結果 方式 パラメータ等 総実行時間 AUC pAUC TPR0.5% BoW+ 線形SVM L2正則 C=0.75 27 s 学習 16s 推論 11s 0.956 0.0787 64.2% LZSS level 6 16490 s 0.968 0.0797 60.9 % LZW (Jubatus) 辞書長20bit 40 s 学習 24s 推論 16s 0.973 0.0825 68.1% bzip2 level 9 68690 s 0.521 0.0057 0.4 %
  • 8. 8Copyright©2016 NTT corp. All Rights Reserved. NTT Confidential 悪性通信URL LZW圧縮結果: ①API的URL [未圧縮: 1352bit] http://serv.the-app-data.info//offers/Dy namicOfferScreen?offerid=2&distid=13467&leadp=1694&cou ntryid=142&sysbit=32&dfb=-1&hb=2&isagg=0&version=4.0&e xternal=0&external=0& [良性母体: 900bit] |http://serv|.the|-ap|p-|data.|info/|/of |fers|/D|yna|mic|Off|erS|cre|en|?o|ffe|rid=2|&dis|tid=1|3 467|&le|adp|=16|94&c|ountry|id=14|2&s|ys|bit|=32&|dfb |=-1&|hb=|2&is|agg|=0&ver|sion=|4.0|&ex|ternal|=0&e|xt er|nal|=0&| [悪性母体: 220bit] |http://serv.the-app-data.info//offers/Dy namicOfferScreen?offerid=2|&distid=1|3467|&leadp=1694& |countryid=142&sysbit=32&df|b=-1&hb=2|&isagg=0&versio| n=4|.0&e|xternal=0&e|xternal=0&| *圧縮時、|| 間の文字列は1Code (本実験では20bit)で表現 ||
  • 9. 9Copyright©2016 NTT corp. All Rights Reserved. NTT Confidential 悪性通信URL LZW圧縮結果: ③符号化URL [未圧縮: 4688bit] http://d.castplatform.com/api/vp/1?clk=g Lg_PHWA9aSyioXkt-F4b3J9cI1ybf-t-x7VxWH5dmAWXwln-z (以下 略) [良性母体: 4420bit] |http://d.|cast|platform|.com/api/|vp|/1 |?cl|k=|gLg|_PH|WA9|aS|yio|Xkt|-F4|b3J|9cI|1y|bf-|t-|x7|Vx W|H5d|mAW|Xwl|n-|z (以下略) [悪性母体: 4980bit] |http://d.|cast|platform|.com/api/v|p/1 |?cl|k=|gL|g_|PH|WA|9a|Sy|io|Xk|t-|F4|b3|J9|cI|1yb|f-|t-x| 7V|xWH|5d|mA|WX|wl|n-|z (以下略) *圧縮時、|| 間の文字列は1Code (本実験では20bit)で表現
  • 10. 10Copyright©2016 NTT corp. All Rights Reserved. NTT Confidential 分離平面図: LZW x軸は悪性通信ログ訓練データ母体での圧縮率、y軸は良性通信ログ 訓練データ母体での圧縮率、各点はログ1行を示す (ログ行毎の判定) 推論データ:悪性通信ログ 推論データ:良性通信ログ 悪性母体の圧縮率 悪性母体の圧縮率 良 性 母 体 の 圧 縮 率 良 性 母 体 の 圧 縮 率
  • 11. 11Copyright©2016 NTT corp. All Rights Reserved. NTT Confidential 推論データ 圧縮率分布図 悪性通信ログのみ学習 良性通信ログのみ学習 ■ 推論データ 良性通信ログ ■ 推論データ 悪性通信ログ 悪性母体の圧縮率 良性母体の圧縮率 ② ① API的 URL 等 ③符号化 URL等
  • 12. 12Copyright©2016 NTT corp. All Rights Reserved. NTT Confidential [参考] JubaclassifierへのLZW実装概要 jubatus_coreライブラリを修正し、 分類アルゴリズム lzwクラスを実装; • jubatus::core::classifier::linear_classifie r を継承 • 以下のメソッドを実装: コンストラクタ, train (学習), name, classify_with_scores (推論) • LZWの辞書(Trie木)はKVS型のJubatus 学習モデル(local_strage)で代用 • 学習、推論ともにLZW圧縮を実施。 辞書登録は学習時あり、推論時なし。 圧縮データは生成せず、圧縮サイズの み算出。 • 推論時スコアはクラス毎に「1/圧縮率」 を出力 KVSによるLZW圧縮サンプルコード (Python) 出典: http://rosettacode.org/wiki/LZW_compression def compress(uncompressed): dict_size = 256 dictionary = dict((chr(i), chr(i)) for i in xrange(dict_size)) w = "" result = [] for c in uncompressed: wc = w + c if wc in dictionary: w = wc else: result.append(dictionary[w]) # Add wc to the dictionary. dictionary[wc] = dict_size dict_size += 1 w = c if w: result.append(dictionary[w]) return result
  • 13. 13Copyright©2016 NTT corp. All Rights Reserved. NTT Confidential まとめ •圧縮アルゴリズムでの分類でURLによる悪性通 信ログ判定を行えた • 特にAPI的URLの判定に優れる • 訓練データの運用が楽。オンライン学習可能、 悪性と良性を別々に学習させるのも可。 • 符号化URLの判定に関しては、より検討が必要 •たまにはこういう「変化球」もいかがでしょうか?