Submit Search
Jubatusでマルウェア分類
18 likes
5,432 views
Shuzo Kashihara
機械学習×プログラミング勉強会 2012年5月11日
Technology
Read more
1 of 32
Download now
Downloaded 62 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
More Related Content
PPTX
Jubatus使ってみた 作ってみたJubatus
JubatusOfficial
PDF
Jubaanomalyについて
JubatusOfficial
PDF
Jubatus分類器の活用テクニック
JubatusOfficial
PDF
Jubakit の紹介
kmaehashi
PPTX
Jubatus 1.0 の紹介
JubatusOfficial
PPTX
SensorBeeでChainerをプラグインとして使う
Daisuke Tanaka
PDF
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Yasuyuki Sugai
PPTX
SensorBeeのご紹介
Daisuke Tanaka
Jubatus使ってみた 作ってみたJubatus
JubatusOfficial
Jubaanomalyについて
JubatusOfficial
Jubatus分類器の活用テクニック
JubatusOfficial
Jubakit の紹介
kmaehashi
Jubatus 1.0 の紹介
JubatusOfficial
SensorBeeでChainerをプラグインとして使う
Daisuke Tanaka
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Yasuyuki Sugai
SensorBeeのご紹介
Daisuke Tanaka
What's hot
(19)
PPTX
前回のCasual Talkでいただいたご要望に対する進捗状況
JubatusOfficial
PPTX
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
PDF
SensorBeeの紹介
Shuzo Kashihara
PDF
Rユーザのためのspark入門
Shintaro Fukushima
PDF
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Kotaro Nakayama
PDF
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
JubatusOfficial
PDF
Kerasで深層学習を実践する
Kazuaki Tanida
PDF
「深層学習」の本に出てきたデータセット達
Hiromasa Ohashi
PPTX
ストリーム処理とSensorBee
Daisuke Tanaka
PDF
2013.07.15 はじパタlt scikit-learnで始める機械学習
Motoya Wakiyama
PDF
Lt ingaoho-jsonb+postgeres fdw
Toshi Harada
PDF
PostgreSQL:行数推定を読み解く
Hiroya Kabata
PDF
使ってみませんか?pg hint_plan
Masao Fujii
PPTX
SQLチューニング入門 入門編
Miki Shimogai
PDF
Pgunconf 20121212-postgeres fdw
Toshi Harada
PDF
より深く知るオプティマイザとそのチューニング
Yuto Hayamizu
PDF
Jubakitの解説
JubatusOfficial
PDF
Introduction to Chainer and CuPy
Kenta Oono
PDF
mmapパッケージを使ってお手軽オブジェクト管理
Shintaro Fukushima
前回のCasual Talkでいただいたご要望に対する進捗状況
JubatusOfficial
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
Miki Shimogai
SensorBeeの紹介
Shuzo Kashihara
Rユーザのためのspark入門
Shintaro Fukushima
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Kotaro Nakayama
データ圧縮アルゴリズムを用いたマルウェア感染通信ログの判定
JubatusOfficial
Kerasで深層学習を実践する
Kazuaki Tanida
「深層学習」の本に出てきたデータセット達
Hiromasa Ohashi
ストリーム処理とSensorBee
Daisuke Tanaka
2013.07.15 はじパタlt scikit-learnで始める機械学習
Motoya Wakiyama
Lt ingaoho-jsonb+postgeres fdw
Toshi Harada
PostgreSQL:行数推定を読み解く
Hiroya Kabata
使ってみませんか?pg hint_plan
Masao Fujii
SQLチューニング入門 入門編
Miki Shimogai
Pgunconf 20121212-postgeres fdw
Toshi Harada
より深く知るオプティマイザとそのチューニング
Yuto Hayamizu
Jubakitの解説
JubatusOfficial
Introduction to Chainer and CuPy
Kenta Oono
mmapパッケージを使ってお手軽オブジェクト管理
Shintaro Fukushima
Ad
Viewers also liked
(12)
PPTX
かまってちゃん小町
JubatusOfficial
PDF
単語コレクター(文章自動校正器)
JubatusOfficial
PPTX
発言小町からのプロファイリング
JubatusOfficial
PPTX
新聞から今年の漢字を予測する
JubatusOfficial
PPTX
銀座のママ
JubatusOfficial
PPTX
新機能紹介 1.0.6
JubatusOfficial
PPTX
JUBARHYME
JubatusOfficial
PPTX
小町の溜息
JubatusOfficial
PDF
Jubatus解説本の紹介
JubatusOfficial
PDF
Python 特徴抽出プラグイン
JubatusOfficial
ODP
小町のレス数が予測できるか試してみた
JubatusOfficial
PDF
地域の魅力を伝えるツアーガイドAI
JubatusOfficial
かまってちゃん小町
JubatusOfficial
単語コレクター(文章自動校正器)
JubatusOfficial
発言小町からのプロファイリング
JubatusOfficial
新聞から今年の漢字を予測する
JubatusOfficial
銀座のママ
JubatusOfficial
新機能紹介 1.0.6
JubatusOfficial
JUBARHYME
JubatusOfficial
小町の溜息
JubatusOfficial
Jubatus解説本の紹介
JubatusOfficial
Python 特徴抽出プラグイン
JubatusOfficial
小町のレス数が予測できるか試してみた
JubatusOfficial
地域の魅力を伝えるツアーガイドAI
JubatusOfficial
Ad
Similar to Jubatusでマルウェア分類
(20)
PDF
大規模なギョームシステムにHaxeを採用してみた話
terurou
PDF
地方企業がソーシャルゲーム開発を成功させるための10のポイント
Kentaro Matsui
PDF
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Kazumi OHIRA
PPTX
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
PPTX
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
PDF
ElasticSearch勉強会 第6回
Naoyuki Yamada
PDF
JAWSDAYS 2014 ACEに聞け! EMR編
陽平 山口
PDF
Software Development with Symfony
Atsuhiro Kubo
PDF
PHPフレームワーク入門
Sho A
PDF
BPStudy20121221
Shinichiro Takezaki
PDF
A Tour of PostgreSQL
EDB
PDF
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
PDF
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
PDF
CodeIgniter入門
Sho A
PPTX
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
Daiyu Hatakeyama
PPTX
Ossで作成するチーム開発環境
Tadahiro Ishisaka
PDF
利用者主体で行う分析のための分析基盤
Sotaro Kimura
PDF
Jjug springセッション
Yuichi Hasegawa
PDF
フロント作業の効率化
Yuto Yoshinari
PDF
ケーススタディ/実装 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第46回】
Tomoharu ASAMI
大規模なギョームシステムにHaxeを採用してみた話
terurou
地方企業がソーシャルゲーム開発を成功させるための10のポイント
Kentaro Matsui
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Kazumi OHIRA
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
ElasticSearch勉強会 第6回
Naoyuki Yamada
JAWSDAYS 2014 ACEに聞け! EMR編
陽平 山口
Software Development with Symfony
Atsuhiro Kubo
PHPフレームワーク入門
Sho A
BPStudy20121221
Shinichiro Takezaki
A Tour of PostgreSQL
EDB
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
CodeIgniter入門
Sho A
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
Daiyu Hatakeyama
Ossで作成するチーム開発環境
Tadahiro Ishisaka
利用者主体で行う分析のための分析基盤
Sotaro Kimura
Jjug springセッション
Yuichi Hasegawa
フロント作業の効率化
Yuto Yoshinari
ケーススタディ/実装 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第46回】
Tomoharu ASAMI
More from Shuzo Kashihara
(7)
PDF
gRPCをちょこっと調べた話
Shuzo Kashihara
PDF
論文輪読会のススメ
Shuzo Kashihara
PDF
Reading “Unikernels: Rise of the Virtual Library Operating System”
Shuzo Kashihara
PDF
The Google File System
Shuzo Kashihara
PDF
Jubatus Casual Talks #2 Jubatus開発者入門
Shuzo Kashihara
PDF
PFIインターン最終発表
Shuzo Kashihara
PDF
VC++プロジェクト向け難読化ツールの開発
Shuzo Kashihara
gRPCをちょこっと調べた話
Shuzo Kashihara
論文輪読会のススメ
Shuzo Kashihara
Reading “Unikernels: Rise of the Virtual Library Operating System”
Shuzo Kashihara
The Google File System
Shuzo Kashihara
Jubatus Casual Talks #2 Jubatus開発者入門
Shuzo Kashihara
PFIインターン最終発表
Shuzo Kashihara
VC++プロジェクト向け難読化ツールの開発
Shuzo Kashihara
Jubatusでマルウェア分類
1.
Jubatusでマルウェア分類 2012年5月11日@機械学習 プログラミング勉強会
株式会社Preferred Infrastructure 柏原秀蔵(@suma90h)
2.
Agenda • Jubatusとは • Jubatusでマルウェア分類してみる •
Jubatusを使う時に気を付けること • まとめ
3.
Jubatusとは
4.
Jubatusとは • 機械学習フレームワーク •
分散・並列実行できるオンライン機械学習 • サーバ/クライアント • 無料です! • OSS(LGPL)
5.
話さないこと • Jubatusの詳細 •
分散処理の仕組み • オンライン学習 • 内部のモジュール構成 • 機械学習のアルゴリズム
7.
Jubatusの提供する機能 •
機械学習(オンライン学習)のフレームワーク • classifier 多クラス分類器(Perceptron, AROW, NHERD, etc) • recommender レコメンド(Inverted Index, LSH) • regression 回帰 • fv_converter 特徴抽出、フィルタ、プラグイン機能
8.
詳しくは • search Jubatus •
http://www.slideshare.net/JubatusOfficial • http://www.slideshare.net/pfi
9.
Jubatus利用法 • 依存ライブラリの解決、ビルド、インストール • サーバを起動する •
クライアントを書き、サーバのRPCを叩く
10.
Jubatusを使おう
11.
悩んだ • Jubatusで何ができるの? • 機械学習の理論がよくわからない •
どんなアプリが作れるだろうか?
12.
機械学習を使う前に •
機械学習で分類させるには、ラベル付きデータが必要 • 卵が先か、鶏が先か... • 学習させるデータを特徴ベクトルに落とし込む必要がある • fv_converterが何とかしてくれる? • Jubatusは基本的には以下のデータ型を入力する • ペア<string, string> • ペア<string, double>
13.
そうだ、マルウェア を解析しよう
14.
ひらめきよりむしろ、 ラベル付きデータを発見!
15.
マルウェア分類を始めよう •
なぜJubatus? • 勉強会のネタ! 開発者としてJubatusに慣れるため...! • 実験に使ったデータを公開している論文を発見 • "Automatic Analysis of Malware Behavior using Machine Learning" [09 Konrad Rieck et al] • http://www.mlsec.org/malheur/ • A novel tool for malware analysis
16.
Malheurの手法 •
マルウェアの動的解析結果(CWSandbox)を用意 • 結果をMIST(数値)形式へ変換 • 数値の列を得る • MISTの結果をn-gramして特徴ベクトルとする
17.
MISTの中身 Figure.3 (p5) "Automatic
Analysis of Malware Behavior using Machine Learning" [09 Konrad Rieck et al]
18.
CWSandboxの XMLとMISTを見よう
19.
Jubatusで分類してみる •
Jubatusの分類器 • 多クラス分類 (スパム判定といった0/1も可能) • 公開されているデータ(Reference Datasets) • マルウェアの解析結果(XML, MIST) • ラベル, ファイルサイズ, ハッシュ • 論文はMISTのn-gramを特徴ベクトルとして分類していた
20.
クライアントを書く •
Rubyでclassifierクライアントを書く • 現状のクライアントはあまり使わないほうがいい, C++をオ ススメ • 型チェックがクライアント側にない • 使うRPC, やること • set_config:特徴ベクトルを設計して準備する • train:学習させる • classify:分類させる
21.
設定を書く •
アルゴリズムの選択(今回はAROW) • 特徴ベクトルの抽出方法を記述 • Jubatusで入力可能な特徴ベクトルはタプル • 海野さん(@unnonouno)さんに相談したらword単位で のn-gramするプラグインが社内にあった • これでMISTをn-gramできる!
22.
分類させてみる •
公開されているReference Datasetsを試した • ラベル数 24(のみ) • ラベル付きデータ 3133件 • 学習:300件 • 分類を試した数:2833件 • ラベルの一致:2719件
23.
精度と再現率 •
精度:分類器がどれくらい正しいかを示す値 • 予測(分類結果)して一致した数 / 全体の数 • 2719/2833 = 0.95 • 再現率:実際にラベルをカバーできているか示す値 • 予測して一致した数 /実際に存在する分類の数 • なるほどー(計測できていません)
24.
精度は大丈夫か? •
評価として大丈夫か? • Jubatusとの格闘で力尽きました • F値? 交差検定(Cross validation)? • λ.. 出直してきます 論文ではF値は載ってました • 論文ではReferenceDatasetで学習して、他に30,000件程度で実験していた • Known malware/Unknown malware の件数を数えたり • クラスタリングと分類
25.
以上作ってみた •
論文とラベル付きデータを利用しただけ • 特徴ベクトル等々は論文を参照して頂きたい • recommenderも試したかった • マルウェアのレコメンドとは...! 熱い!! • 分散もさせたかった...
26.
Jubatusハマりポイント (2012/05/11時点)
27.
ビルドでハマるポイント •
wafを使ったビルド時のリンクエラー • ./build/c4che/_cache.pyのLINKFLAGS = [ -lhogehoge ]とすれば直 る • CXXFLAGS= -I LIBRARY_PATH= ./waf configure • pficommon on Mac OS X • pkg-configの設定情報がバグっていてリンクフラグに何も指定されない • Mac OS XでJubatusをビルドする際にリンクエラーが発生する • 修正(pull requestをマージ予定)予定です
28.
クライアント開発時のポイント •
set_configすると謎のエラー • 設定情報が間違っていてもサーバ, クライアントはエ ラー箇所を指摘してくれない • コピペ駆動、サンプル駆動が望ましい • Ruby, Pythonクライアントなどで型を間違えるとエラー • C++を使う(それでもset_config問題は残る) • ライブラリの成熟を待つ(開発中です...)
29.
ライブラリはどこ? •
C++クライアント • include/jubatus/clientにヘッダ有り • Java, Ruby, Pythonなどが • https://github.com/jubatus/jubatus/downloads • 自動生成されたコードで、エラー処理は不親切かも
32.
まとめ •
マルウェア分類がJubatus(classifier)で出来た • 機械学習よくわからなくても、わかったこと • 特徴ベクトル抽出で第一歩 • ラベル付きデータ神 これがなければどうなっていたか • 実験・評価方法も勉強すべし(勉強会が終わってからが本番) • Jubatus • ハマり所の発見。持ち帰ってフィードバックします • クライアントライブラリは今後に期待 • 分散処理も実験したい
Download