SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
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の判定に関しては、より検討が必要
•たまにはこういう「変化球」もいかがでしょうか?

Weitere ähnliche Inhalte

Was ist angesagt?

Jubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatusOfficial
 
20160618 データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
20160618 データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定20160618 データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
20160618 データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定okanoyasushi
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門Takuji Tahara
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類Shuzo Kashihara
 
Chainerで学ぶdeep learning
Chainerで学ぶdeep learningChainerで学ぶdeep learning
Chainerで学ぶdeep learningRetrieva inc.
 
みんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extrasみんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extrasTakuji Tahara
 
Jubatus使ってみた 作ってみたJubatus
Jubatus使ってみた 作ってみたJubatusJubatus使ってみた 作ってみたJubatus
Jubatus使ってみた 作ってみたJubatusJubatusOfficial
 
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Yasuyuki Sugai
 
Jubatus Python特徴抽出プラグイン
Jubatus Python特徴抽出プラグインJubatus Python特徴抽出プラグイン
Jubatus Python特徴抽出プラグインTetsuya Shioda
 
20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudyTakahiro Iwase
 
小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみたJubatusOfficial
 
【公開版】AWS基礎 for 新卒エンジニア
【公開版】AWS基礎 for 新卒エンジニア【公開版】AWS基礎 for 新卒エンジニア
【公開版】AWS基礎 for 新卒エンジニア鉄次 尾形
 
SensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使うSensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使うDaisuke Tanaka
 
クラウドGPS(仮)
クラウドGPS(仮)クラウドGPS(仮)
クラウドGPS(仮)terurou
 
ストリーム処理とSensorBee
ストリーム処理とSensorBeeストリーム処理とSensorBee
ストリーム処理とSensorBeeDaisuke Tanaka
 
「深層学習」の本に出てきたデータセット達
「深層学習」の本に出てきたデータセット達「深層学習」の本に出てきたデータセット達
「深層学習」の本に出てきたデータセット達Hiromasa Ohashi
 

Was ist angesagt? (20)

Jubatus 新機能ハイライト
Jubatus 新機能ハイライトJubatus 新機能ハイライト
Jubatus 新機能ハイライト
 
Jubakitの解説
Jubakitの解説Jubakitの解説
Jubakitの解説
 
20160618 データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
20160618 データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定20160618 データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
20160618 データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
 
Jubatus 1.0 の紹介
Jubatus 1.0 の紹介Jubatus 1.0 の紹介
Jubatus 1.0 の紹介
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類
 
Chainerで学ぶdeep learning
Chainerで学ぶdeep learningChainerで学ぶdeep learning
Chainerで学ぶdeep learning
 
みんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extrasみんなが知らない pytorch-pfn-extras
みんなが知らない pytorch-pfn-extras
 
Jubatus使ってみた 作ってみたJubatus
Jubatus使ってみた 作ってみたJubatusJubatus使ってみた 作ってみたJubatus
Jubatus使ってみた 作ってみたJubatus
 
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
 
Jubatus Python特徴抽出プラグイン
Jubatus Python特徴抽出プラグインJubatus Python特徴抽出プラグイン
Jubatus Python特徴抽出プラグイン
 
20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy
 
小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた小町のレス数が予測できるか試してみた
小町のレス数が予測できるか試してみた
 
【公開版】AWS基礎 for 新卒エンジニア
【公開版】AWS基礎 for 新卒エンジニア【公開版】AWS基礎 for 新卒エンジニア
【公開版】AWS基礎 for 新卒エンジニア
 
SensorBeeの紹介
SensorBeeの紹介SensorBeeの紹介
SensorBeeの紹介
 
SensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使うSensorBeeでChainerをプラグインとして使う
SensorBeeでChainerをプラグインとして使う
 
クラウドGPS(仮)
クラウドGPS(仮)クラウドGPS(仮)
クラウドGPS(仮)
 
SensorBeeのご紹介
SensorBeeのご紹介SensorBeeのご紹介
SensorBeeのご紹介
 
ストリーム処理とSensorBee
ストリーム処理とSensorBeeストリーム処理とSensorBee
ストリーム処理とSensorBee
 
「深層学習」の本に出てきたデータセット達
「深層学習」の本に出てきたデータセット達「深層学習」の本に出てきたデータセット達
「深層学習」の本に出てきたデータセット達
 

Andere mochten auch

Isolation forest
Isolation forestIsolation forest
Isolation forestkataware
 
もくもくしたこと
もくもくしたこともくもくしたこと
もくもくしたことk_oi
 
もくもく成果 IMAMASU
もくもく成果 IMAMASUもくもく成果 IMAMASU
もくもく成果 IMAMASUJubatusOfficial
 
Jubatusハンズオン 機械学習はじめてみた
Jubatusハンズオン 機械学習はじめてみたJubatusハンズオン 機械学習はじめてみた
Jubatusハンズオン 機械学習はじめてみたJubatusOfficial
 
gRPCをちょこっと調べた話
gRPCをちょこっと調べた話gRPCをちょこっと調べた話
gRPCをちょこっと調べた話Shuzo Kashihara
 
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用JubatusOfficial
 
Jubatus解説本の紹介
Jubatus解説本の紹介Jubatus解説本の紹介
Jubatus解説本の紹介JubatusOfficial
 
単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)JubatusOfficial
 
Python 特徴抽出プラグイン
Python 特徴抽出プラグインPython 特徴抽出プラグイン
Python 特徴抽出プラグインJubatusOfficial
 
かまってちゃん小町
かまってちゃん小町かまってちゃん小町
かまってちゃん小町JubatusOfficial
 
新聞から今年の漢字を予測する
新聞から今年の漢字を予測する新聞から今年の漢字を予測する
新聞から今年の漢字を予測するJubatusOfficial
 
発言小町からのプロファイリング
発言小町からのプロファイリング発言小町からのプロファイリング
発言小町からのプロファイリングJubatusOfficial
 
地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAIJubatusOfficial
 
FIT2012招待講演「異常検知技術のビジネス応用最前線」
FIT2012招待講演「異常検知技術のビジネス応用最前線」FIT2012招待講演「異常検知技術のビジネス応用最前線」
FIT2012招待講演「異常検知技術のビジネス応用最前線」Shohei Hido
 

Andere mochten auch (18)

Isolation forest
Isolation forestIsolation forest
Isolation forest
 
もくもくしたこと
もくもくしたこともくもくしたこと
もくもくしたこと
 
もくもく成果 IMAMASU
もくもく成果 IMAMASUもくもく成果 IMAMASU
もくもく成果 IMAMASU
 
Jubatusハンズオン 機械学習はじめてみた
Jubatusハンズオン 機械学習はじめてみたJubatusハンズオン 機械学習はじめてみた
Jubatusハンズオン 機械学習はじめてみた
 
gRPCをちょこっと調べた話
gRPCをちょこっと調べた話gRPCをちょこっと調べた話
gRPCをちょこっと調べた話
 
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
コンテンツマーケティングでレコメンドエンジンが必要になる背景とその活用
 
Jubatus解説本の紹介
Jubatus解説本の紹介Jubatus解説本の紹介
Jubatus解説本の紹介
 
単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)単語コレクター(文章自動校正器)
単語コレクター(文章自動校正器)
 
Python 特徴抽出プラグイン
Python 特徴抽出プラグインPython 特徴抽出プラグイン
Python 特徴抽出プラグイン
 
かまってちゃん小町
かまってちゃん小町かまってちゃん小町
かまってちゃん小町
 
新聞から今年の漢字を予測する
新聞から今年の漢字を予測する新聞から今年の漢字を予測する
新聞から今年の漢字を予測する
 
発言小町からのプロファイリング
発言小町からのプロファイリング発言小町からのプロファイリング
発言小町からのプロファイリング
 
新機能紹介 1.0.6
新機能紹介 1.0.6新機能紹介 1.0.6
新機能紹介 1.0.6
 
JUBARHYME
JUBARHYMEJUBARHYME
JUBARHYME
 
銀座のママ
銀座のママ銀座のママ
銀座のママ
 
小町の溜息
小町の溜息小町の溜息
小町の溜息
 
地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI地域の魅力を伝えるツアーガイドAI
地域の魅力を伝えるツアーガイドAI
 
FIT2012招待講演「異常検知技術のビジネス応用最前線」
FIT2012招待講演「異常検知技術のビジネス応用最前線」FIT2012招待講演「異常検知技術のビジネス応用最前線」
FIT2012招待講演「異常検知技術のビジネス応用最前線」
 

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

統合ログ分析技術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-20180224Tomoya 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/27SORACOM,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
 

Ähnlich wie データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定 (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
 

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

  • 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の判定に関しては、より検討が必要 •たまにはこういう「変化球」もいかがでしょうか?