Your SlideShare is downloading. ×
これからの「マルウェア」の
話をしよう
Kenji Aiko
Twitter: @07c00
kenjiaiko@gmail.com
DEFCON Japan (2013/07)
http://defcon.doorkeeper.jp/even...
Analyzing malwares
Reverse Engineering
2
However…
http://www.microsoft.com/ja-jp/download/details.aspx?id=29046
Have you ever been hearing
Increasing malwares ever...
Actually…
http://www.itmedia.co.jp/enterprise/articles/1209/05/news017.html
100,000 / day
in 2012
4
Analyzing malwares
Reverse Engineering
Automation
自動化
5
cuckoo sandbox (for example)
http://www.cuckoosandbox.org/
Automation
Analyzer
6
Automation
Data Mining
集合としてのマルウェア解析
Analyzing malwares on macro-perspective
Analyzer
7
本当に毎日10万人もの人が
マルウェア作ってたの?
Could you really believe
100,000 people make malwares
everyday in 2012?
8
Actually…
http://www.itmedia.co.jp/enterprise/articles/1209/05/news017.html
100,000 / day
in 2012
ほとんどは自動生成された亜種
Most perc...
True story is …
http://www.microsoft.com/ja-jp/download/details.aspx?id=29046
Num of variants are increasing
Num of origin...
Malware Map on Internet
99% variants
1% originals
11
How many malwares are same each
other?
2,000,000
459
In 2012/07-08
Pick up at random
同じマルウェアはどのくらいある?
58
Num of mals Virus...
なぜこんなに亜種が増えるん
だ?
13
ツールキットがあるから
Source Code for ZeuS Trojan Horse
Freely Available on the Internet
http://www.livehacking.com/2011/05/12/source-code-for-z...
RAT(Remote Administration Tool)
Recently RAT have some functions to create
a malware
最近のRATはマルウェア(Trojan)を
ビルドする機能も持ってる
15
Malware detection
Hash
Regular Expression
Reputation
Collective knowledge
Machine Learning
Semantics-aware
detection
ハッシュ、...
Cloud
Reputation
Is this a malware?
YES or NO
17
Cloud
Reputation
Is this a malware?
YES or NO
18
Advantage of Reputation
TIME
Automatic detection which Collective knowledge help
集合知の力を借りた自動検
知
To increase num of infecti...
Detection rate against new mals
アンチウイルスはそれほど破綻してない?
(ただし亜種が大半を占めることを忘れず
0.569106 0.504065 0.406504 0.796748 0.317073
0.495...
Two issues we have to solve
• Detecting new original malware (1%)
• Detecting new variants malware (99%)
新しいオリジナルのマルウェアを検知...
Two issues we have to solve
• Detecting new original malware (1%)
• Detecting new variants malware (99%)
新しいオリジナルのマルウェアを検知...
Execution Similarity
実行結果に対する類似度を求める
"processtree": [
{
"pid": 1392,
"name": “XXXX.bin",
"children": [
{
"pid": 1296,
"nam...
Execution Similarity
実行結果に対する類似度を求める
RegDeleteKeyA
HKEY_LOCAL_MACHINEsOFtwaRelexlockie
LdrGetDllHandle
mscoree.dll
….
….
A...
Anomaly Detection
E: 1,2,3,4,5,6,5,7,8,9,0,4,4,3,2,3,4,5,4…..
This is NOT member of
this cluster
Anomaly検知で似た亜種を検知
A: 2,3,...
Anomaly Detection
• 一般的なAnomaly検知
– 正常を集め、異常を外れ値として検出
• 今回の手法
– マルウェアを集め、正常系を外れ値として検
出
Anomalyを使う理由:
マルウェアは近似するのに対し、正常系は近似...
Googling it!
• Anomaly Detection(異常検知)
• One class SVM
• Local Outlier Factor (LOF)
セキュリティとは関係ないので省略
詳しく知りたい方は以下のキーワードで検索を...
Demo
28
そもそも機械学習は
セキュリティに役立つか?
Do Security need Machine
Learning?
29
EMET4.0は脆弱性攻撃を検知で
きるが、機械学習を使っている
わけじゃない
For example, EMET4.0 which is
released by Microsoft can detect
some exploitation
B...
Caller checks & Simulate execute flow
STACK
0xbffffb74
0xbffffb78 77021072ESP
CreateProcess
http://ifsec.blogspot.jp/2012/...
Heapspray Allocation
特定領域をあらかじめ確保しておきアクセスを禁止
alloc alloc allocalloc alloc
allocalloc alloc
0x0a0a0a0a
0x0a0a0a0a
pre-alloc...
Null page allocation
VirtualAlloc(1, 1024, MEM_COMMIT, PAGE_NOACCESS);
0x00000000
1024
shellcode
0x00000000領域のメモリ確保を禁止
→ Y...
Load Library checks
LoadLibrary(“12.23.56.78testmalware.dll”);
SMB Path
SMB Pathによるライブラリのロードを禁止
LoadLibrary(“C:testmalware...
Stack pivot
STACK
0xbffffb74
ESP
ESPがスタック以外を指すこと禁止
Heap
.data
etc…
35
EMET 4.0 Released
http://blogs.technet.com/b/jpsecurity/archive/2013/06/18/3579541.aspx
脆弱性緩和ツール EMET 4.0 リリース
XP SP3
XP S...
New Anti-ROP technique
http://www.cs.columbia.edu/~vpappas/papers/kbouncer.pdf
kBouncer: Efficient and Transparent ROP Mitig...
システムは
年々安全になっている…
Computers have been secure
without ML
38
機械学習って必要か?
Do Security need Machine
Learning?
39
もし機械学習×セキュリティで
ビジネスをやるとしよう
Okay, I’ll talk a security business
with ML
40
Different of ad and sec business
• Advertisement Business(広告ビジネス)
• Security Business(セキュリティビジネ
ス)
もしユーザーにマッチしない広告を表示してしまっ...
Cost of getting feature values
• Static analyzing
– PE format
– Disassembling
• Dynamic analyzing
– System call
– Executed...
Cost of getting feature values
• Static analyzing
– PE format
– Disassembling
• Dynamic analyzing
– System call
– Executed...
Updating Problems
• ブラックリストに追加した場合
• ヒューリスティックエンジンを修正した
場合
検知できるようになりました(ドヤァ
おおー新しいマルウェアも検知できるようになった。す
ごい!
検知できるようになりました(...
Must!
• 誤検知は 0.0X% レベルに落とせ
• 速度は 0.X sec/File 以下で解析しろ
• 性能が確実に上がったことを証明しろ
45
ぶっちゃけ実用化が極めて難し
い
It’s so difficult to use on Security
products
46
まとめ
• 世の中には亜種ばかりが異常に増えてる
よ
• アンチウイルスはまだまだ現役だよ、解
析者もわりと足りてるよ
• 研究、解析においては機械学習的なもの
はすでにけっこう使われてるよ
• 製品化まで持っていくのは修羅の道だよ 47
Thank you!
Any Questions?
48
Upcoming SlideShare
Loading in...5
×

これからのマルウェアの話をしよう

1,442

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,442
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "これからのマルウェアの話をしよう"

  1. 1. これからの「マルウェア」の 話をしよう Kenji Aiko Twitter: @07c00 kenjiaiko@gmail.com DEFCON Japan (2013/07) http://defcon.doorkeeper.jp/events/4494
  2. 2. Analyzing malwares Reverse Engineering 2
  3. 3. However… http://www.microsoft.com/ja-jp/download/details.aspx?id=29046 Have you ever been hearing Increasing malwares every years? マルウェアが年々増えているって話 聞いたことない? 3
  4. 4. Actually… http://www.itmedia.co.jp/enterprise/articles/1209/05/news017.html 100,000 / day in 2012 4
  5. 5. Analyzing malwares Reverse Engineering Automation 自動化 5
  6. 6. cuckoo sandbox (for example) http://www.cuckoosandbox.org/ Automation Analyzer 6
  7. 7. Automation Data Mining 集合としてのマルウェア解析 Analyzing malwares on macro-perspective Analyzer 7
  8. 8. 本当に毎日10万人もの人が マルウェア作ってたの? Could you really believe 100,000 people make malwares everyday in 2012? 8
  9. 9. Actually… http://www.itmedia.co.jp/enterprise/articles/1209/05/news017.html 100,000 / day in 2012 ほとんどは自動生成された亜種 Most percentages of it are variants 9
  10. 10. True story is … http://www.microsoft.com/ja-jp/download/details.aspx?id=29046 Num of variants are increasing Num of original malwares are NOT increasing 亜種の数は年々増えている でもオリジナルの数は横ばい 10
  11. 11. Malware Map on Internet 99% variants 1% originals 11
  12. 12. How many malwares are same each other? 2,000,000 459 In 2012/07-08 Pick up at random 同じマルウェアはどのくらいある? 58 Num of mals VirusTotal detect as Zbot 58 / 459 (12.6%) Zbot(=Zeus) 12
  13. 13. なぜこんなに亜種が増えるん だ? 13 ツールキットがあるから
  14. 14. Source Code for ZeuS Trojan Horse Freely Available on the Internet http://www.livehacking.com/2011/05/12/source-code-for-zeus-trojan-horse-freely- available-on-the-internet/ マルウェアがカジュアルに作れる It’s so easy to create a malware to use it 14
  15. 15. RAT(Remote Administration Tool) Recently RAT have some functions to create a malware 最近のRATはマルウェア(Trojan)を ビルドする機能も持ってる 15
  16. 16. Malware detection Hash Regular Expression Reputation Collective knowledge Machine Learning Semantics-aware detection ハッシュ、正規表 現 レピュテーション、集 合知 機械学習、意味論的検 知 16
  17. 17. Cloud Reputation Is this a malware? YES or NO 17
  18. 18. Cloud Reputation Is this a malware? YES or NO 18
  19. 19. Advantage of Reputation TIME Automatic detection which Collective knowledge help 集合知の力を借りた自動検 知 To increase num of infections To up the Probability of detection, too 感染数が上がる 検知率も上昇 19
  20. 20. Detection rate against new mals アンチウイルスはそれほど破綻してない? (ただし亜種が大半を占めることを忘れず 0.569106 0.504065 0.406504 0.796748 0.317073 0.495935 0.487805 0.869919 0.284553 0.894309 0.317073 0.268293 0.642276 0.089431 0.373984 0.788618 0.658537 0.813008 0.601626 0.626016 0.739837 0.869919 0.796748 0.666667 0.658537 0.609756 0.073171 0.764228 0.219512 0.772358 0.487805 0.178862 0.804878 0.926829 0.788618 0.284553 0.845528 0.577236 0.390244 0.357724 0.886179 0.796748 0.056911 0.390244 0.406504 0.691057 0.585366 20
  21. 21. Two issues we have to solve • Detecting new original malware (1%) • Detecting new variants malware (99%) 新しいオリジナルのマルウェアを検知する こと 新しい亜種マルウェアを検知すること It looks like complicate… なんかめっちゃ難しそう… It looks like can do if do the best… 頑張ればできそう… 解くべき課題 21
  22. 22. Two issues we have to solve • Detecting new original malware (1%) • Detecting new variants malware (99%) 新しいオリジナルのマルウェアを検知する こと 新しい亜種マルウェアを検知すること It looks like complicate… なんかめっちゃ難しそう… It looks like can do if do the best… 頑張ればできそう… 解くべき課題 今日はこっちの話 22
  23. 23. Execution Similarity 実行結果に対する類似度を求める "processtree": [ { "pid": 1392, "name": “XXXX.bin", "children": [ { "pid": 1296, "name": "eergrqvhtb", "children": [] } ] } ], “behavior": [ { push 0x4 push 0x1000 push BaseAddress push 0xffffffff call NtAllocateVirtualMem ……… ……… “behavior": [ { push 0x77bc0000 push msvcrt.dll call LdrGetDllHandle ……… ……… ProcessTreeとAPI呼び出し、引数、 呼び出し順序などを取得 23
  24. 24. Execution Similarity 実行結果に対する類似度を求める RegDeleteKeyA HKEY_LOCAL_MACHINEsOFtwaRelexlockie LdrGetDllHandle mscoree.dll …. …. A: 2,3,5,9,1,2,8,4,0,1,9,2,9,3,8,4,7,6,1….. Convert to Numbers RegDeleteKeyA HKEY_LOCAL_MACHINEsOFtwaRelexlockie LdrGetDllHandle mscoree.dll …. …. RegDeleteKeyA HKEY_LOCAL_MACHINEsOFtwaRelexlockie LdrGetDllHandle mscoree.dll …. …. RegDeleteKeyA HKEY_LOCAL_MACHINEsOFtwaRelexlockie LdrGetDllHandle mscoree.dll …. …. b: 2,3,5,9,2,3,8,4,0,2,9,2,9,3,7,4,7,6,1….. C: 2,3,5,3,1,2,9,4,1,1,1,2,9,3,8,4,7,5,1….. d: 2,3,5,3,1,2,9,5,0,1,9,2,9,3,8,4,7,6,1….. もし亜種なら 結果は類似するはず Convert to Numbers 数値に置き換える 24
  25. 25. Anomaly Detection E: 1,2,3,4,5,6,5,7,8,9,0,4,4,3,2,3,4,5,4….. This is NOT member of this cluster Anomaly検知で似た亜種を検知 A: 2,3,5,9,1,2,8,4,0,1,9,2,9,3,8,4,7,6,1….. b: 2,3,5,9,2,3,8,4,0,2,9,2,9,3,7,4,7,6,1….. C: 2,3,5,3,1,2,9,4,1,1,1,2,9,3,8,4,7,5,1….. d: 2,3,5,3,1,2,9,5,0,1,9,2,9,3,8,4,7,6,1….. A b C d E Normal Malicious 25
  26. 26. Anomaly Detection • 一般的なAnomaly検知 – 正常を集め、異常を外れ値として検出 • 今回の手法 – マルウェアを集め、正常系を外れ値として検 出 Anomalyを使う理由: マルウェアは近似するのに対し、正常系は近似しないため、 正常系との間に分離平面がうまく引けない。ここでカーネル にガウス関数辺りを入れ込んでやると1タイプのマルウェアに 対してわりと良い性能が出せるが、今度は複数タイプに対応 できない問題が発生。そこで周辺密度をベースに外れ値を検 知するLOFを採用。 26
  27. 27. Googling it! • Anomaly Detection(異常検知) • One class SVM • Local Outlier Factor (LOF) セキュリティとは関係ないので省略 詳しく知りたい方は以下のキーワードで検索をば Enjoy Hacking!  27
  28. 28. Demo 28
  29. 29. そもそも機械学習は セキュリティに役立つか? Do Security need Machine Learning? 29
  30. 30. EMET4.0は脆弱性攻撃を検知で きるが、機械学習を使っている わけじゃない For example, EMET4.0 which is released by Microsoft can detect some exploitation But it don’t use Machine Learning 30
  31. 31. Caller checks & Simulate execute flow STACK 0xbffffb74 0xbffffb78 77021072ESP CreateProcess http://ifsec.blogspot.jp/2012/08/my-bluehat-prize-entry-ropguard-runtime.html http://www.vdalabs.com/tools/DeMott_BlueHat_Submission.pdf “RET”から(一部の)関数先頭へのジャンプ禁止 etc… 31
  32. 32. Heapspray Allocation 特定領域をあらかじめ確保しておきアクセスを禁止 alloc alloc allocalloc alloc allocalloc alloc 0x0a0a0a0a 0x0a0a0a0a pre-allocated by EMET 32
  33. 33. Null page allocation VirtualAlloc(1, 1024, MEM_COMMIT, PAGE_NOACCESS); 0x00000000 1024 shellcode 0x00000000領域のメモリ確保を禁止 → You have to use NtAllocateVirtualMemory http://www.ivanlef0u.tuxfamily.org/?p=355 http://immunityinc.com/infiltrate/archives/kernelp ool_infiltrate2011.pdf 33
  34. 34. Load Library checks LoadLibrary(“12.23.56.78testmalware.dll”); SMB Path SMB Pathによるライブラリのロードを禁止 LoadLibrary(“C:testmalware.dll”); 34
  35. 35. Stack pivot STACK 0xbffffb74 ESP ESPがスタック以外を指すこと禁止 Heap .data etc… 35
  36. 36. EMET 4.0 Released http://blogs.technet.com/b/jpsecurity/archive/2013/06/18/3579541.aspx 脆弱性緩和ツール EMET 4.0 リリース XP SP3 XP SP3 + EMET 36
  37. 37. New Anti-ROP technique http://www.cs.columbia.edu/~vpappas/papers/kbouncer.pdf kBouncer: Efficient and Transparent ROP Mitigation Anti-ROP using LBR (Last Branch Recording) Last Branch Recordingを用いたROP検知 37
  38. 38. システムは 年々安全になっている… Computers have been secure without ML 38
  39. 39. 機械学習って必要か? Do Security need Machine Learning? 39
  40. 40. もし機械学習×セキュリティで ビジネスをやるとしよう Okay, I’ll talk a security business with ML 40
  41. 41. Different of ad and sec business • Advertisement Business(広告ビジネス) • Security Business(セキュリティビジネ ス) もしユーザーにマッチしない広告を表示してしまった ら…→おいおい、俺こんなん興味ないよー まったく仕方がないなー(笑) 変更ボタンをク リック! もし正常系を間違ってマルウェアといってしまったら… →ファック! 誤検知しやがった! クソ製品だわこ れ! →炎上 ミスに対する重大さがまったく違う 特にFP(False Positive)に対する失望度がデカ41
  42. 42. Cost of getting feature values • Static analyzing – PE format – Disassembling • Dynamic analyzing – System call – Executed ASM cmd – File/Reg access Low cost but also Low value as info of malware Cost Value High cost but also High value as info of malware Cost Value 特徴抽出コスト 42
  43. 43. Cost of getting feature values • Static analyzing – PE format – Disassembling • Dynamic analyzing – System call – Executed ASM cmd – File/Reg access Low cost but also Low value as info of malware Cost Value High cost but also High value as info of malware Cost Value 特徴抽出コスト 43
  44. 44. Updating Problems • ブラックリストに追加した場合 • ヒューリスティックエンジンを修正した 場合 検知できるようになりました(ドヤァ おおー新しいマルウェアも検知できるようになった。す ごい! 検知できるようになりました(ドヤァ おい!前は検知できてたマルウェアが検知できなくなって るじゃねーかゴルァ! →炎上 これまで検知できてたものは 当然これからも検知し続けられないとダメで44
  45. 45. Must! • 誤検知は 0.0X% レベルに落とせ • 速度は 0.X sec/File 以下で解析しろ • 性能が確実に上がったことを証明しろ 45
  46. 46. ぶっちゃけ実用化が極めて難し い It’s so difficult to use on Security products 46
  47. 47. まとめ • 世の中には亜種ばかりが異常に増えてる よ • アンチウイルスはまだまだ現役だよ、解 析者もわりと足りてるよ • 研究、解析においては機械学習的なもの はすでにけっこう使われてるよ • 製品化まで持っていくのは修羅の道だよ 47
  48. 48. Thank you! Any Questions? 48

×