More Related Content
Similar to Shusei tomonaga pac_sec_20171026_jp
Similar to Shusei tomonaga pac_sec_20171026_jp (20)
Shusei tomonaga pac_sec_20171026_jp
- 2. Copyright ©2017 JPCERT/CC All rights reserved.
⾃⼰紹介
JPCERTコーディネーションセンター 分析センター
マルウエア分析、フォレンジック調査
マルウエアの分析結果やテクニカルレポートはJPCERT
のWebページやGithubで公開
̶ https://www.jpcert.or.jp/magazine/acreport.html
̶ https://github.com/JPCERTCC/aa-tools
※ マルウエアアナリストでデータサイエンティストではありません
1
朝⻑ 秀誠 (Shusei Tomonaga)
- 3. Copyright ©2017 JPCERT/CC All rights reserved.
マルウエアの侵⼊を完全に防ぐことは難しい
感染拡⼤(Lateral Movement)を早期に検知する
⽅法に注⽬
ホスト上のプロセスの挙動を記録し、分析す
る技術の開発が進む
EDR(Endpoint Detection and Response)製品
の流⾏?
2
APTインシデント検知の現状
- 5. Copyright ©2017 JPCERT/CC All rights reserved.
アプローチ
攻撃者がどのようにLateral Movementを⾏ってい
るか知らないことが多い
Lateral Movementの⽅法を調査し、検知⽅法を検
討する
4
Lateral Movementを検知するためには、攻撃者が
どのように攻撃を⾏っているか知る必要がある
- 6. Copyright ©2017 JPCERT/CC All rights reserved.
本プレゼンテーションの⽬次
5
1 Lateral Movementの調査
2 Lateral Movementパターン
3
機械学習を⽤いた
Lateral Movementの検知
4 検知システム
- 7. Copyright ©2017 JPCERT/CC All rights reserved.6
1 Lateral Movementの調査
2 Lateral Movementパターン
3
機械学習を⽤いた
Lateral Movementの検知
4 検知システム
- 8. Copyright ©2017 JPCERT/CC All rights reserved.
Lateral Movementの調査
以下の5つの攻撃キャンペーンのC&Cサーバとマル
ウエアの通信を調査
APT10 (named by FireEye)
APT17 (named by FireEye)
Dragon OK (named by Palo Alto)
Blue Termite (named by Kaspersky)
Tick (named by Symantec)
7
調査⽅法
- 9. Copyright ©2017 JPCERT/CC All rights reserved.
Lateral Movementの調査
実際に攻撃者が実⾏したコマンドから、どのよう
にLateral Movementを⾏うのかを調査
8
調査⽅法
- 10. Copyright ©2017 JPCERT/CC All rights reserved.
JPCERT/CC対応の主なAPT攻撃
BKDR_ChChes (APT10)
Asruex
Elirks
Tick
Blue Termite
Scanbox
Winnti
APT17
2013 2014 2015
1 4 7 10 1 4 7 10 1 4 7 10
2016
1 4 7 10
9
- 12. Copyright ©2017 JPCERT/CC All rights reserved.
調査したコマンドの概要
コマンド実⾏総数:
16,866
調査した感染端末延べ
数: 645
11
調査結果の概要
Windowsコマンド実⾏数: 14,268
- 13. Copyright ©2017 JPCERT/CC All rights reserved.
Lateral Movementで攻撃者が使うツール
なぜ攻撃者はWindowsコマンドと正規のツール
を使⽤するのか?
それらはウイルス対策ソフトで検知されない
12
攻撃者は攻撃ツールだけでなく
Windowsコマンドと正規のツールも使⽤する
- 14. Copyright ©2017 JPCERT/CC All rights reserved.13
1 Lateral Movementの調査
2 Lateral Movementパターン
3
機械学習を⽤いた
Lateral Movementの検知
4 検知システム
- 15. Copyright ©2017 JPCERT/CC All rights reserved.14
AD/
ファイルサーバ
標的組織
1. 侵⼊
2. 初期調査
3. 探索活動
4. 感染拡⼤
5. 情報送信
APTインシデントおよびLateral Movementの概要
6. 痕跡削除
- 16. Copyright ©2017 JPCERT/CC All rights reserved.
Lateral Movement: 初期調査
最も実⾏されることが多いコマンド: tasklist
感染したホストが解析環境だった場合、攻撃者は
すぐにログアウトする
15
• 感染した端末の情報を収集する
初期調査
- 17. Copyright ©2017 JPCERT/CC All rights reserved.
初期調査で使⽤されるWindowsコマンド
Rank Command Count
1 tasklist 327
2 ver 182
3 ipconfig 145
4 net time 133
5 systeminfo 75
6 netstat 42
7 whoami 37
8 nbtstat 36
9 net start 35
10 set 29
11 qprocess 27
12 nslookup 11
16
- 18. Copyright ©2017 JPCERT/CC All rights reserved.
Lateral Movement: 探索活動
• ネットワーク内ホストやリモートホストに保存さ
れている情報を調査
探索活動
17
最も実⾏されることが多いコマンド: dir
— 攻撃者は、感染したホストに保存されている
機密情報を調査する
ローカルネットワークの調査にはnetを使⽤する
- 19. Copyright ©2017 JPCERT/CC All rights reserved.
探索活動で使⽤されるWindowsコマンド
Rank Command Count
1 dir 4466
2 ping 2372
3 net view 590
4 type 543
5 net use 541
6 echo 496
7 net user 442
8 net group 172
9 net localgroup 85
10 dsquery 81
11 net config 32
12 csvde 21
18
- 20. Copyright ©2017 JPCERT/CC All rights reserved.
netコマンド
net view
̶ 接続可能なドメインのリソース⼀覧取得
net user
̶ ローカルおよびドメインのアカウント管理
net localgroup
̶ ローカルのグループに所属するユーザ⼀覧取得
net group
̶ 特定ドメインのグループに所属するユーザ⼀覧取得
net use
̶ リソースへのアクセス
19
- 21. Copyright ©2017 JPCERT/CC All rights reserved.
Lateral Movement: 感染拡⼤
• 他のマルウエアを感染させたり、他のホストにア
クセスする
感染拡⼤
20
最も実⾏されることが多いコマンド: at
— atコマンドはWindows 10, Windows 8.1などではサ
ポートされていない
— もし、atコマンドが使えない場合は、schtasks
パスワードダンプツールは必ず使⽤される
- 22. Copyright ©2017 JPCERT/CC All rights reserved.
感染拡⼤に使⽤されるWindowsコマンド
21
Rank Command Count
1 at 445
2 move 399
3 schtasks 379
4 copy 299
5 ren 151
6 reg 119
7 wmic 40
8 powershell 29
9 md 16
10 cscript 9
11 runas 7
12 sc 6
- 23. Copyright ©2017 JPCERT/CC All rights reserved.
Windowsコマンドを使ったリモートコマンド実⾏
22
at command
> at [IP Address] 12:00 cmd /c "C:windowstemp
mal.exe"
schtasks command
> schtasks /create /tn [Task Name] /tr C:1.bat /sc
onstart /ru System /s [IP Address]
- 24. Copyright ©2017 JPCERT/CC All rights reserved.
Windowsコマンドを使ったリモートコマンド実⾏
23
wmic command
> wmic /node:[IP Address] /user:”[User Name]” /
password:”[PASSWORD]” process call create
“cmd /c c:WindowsSystem32net.exe user”
- 25. Copyright ©2017 JPCERT/CC All rights reserved.
Lateral Movement: 痕跡削除
• 攻撃者の使⽤したファイルおよびログの削除
痕跡削除
24
最も実⾏されることが多いコマンド: del
イベントログの削除にはwevtutil
- 26. Copyright ©2017 JPCERT/CC All rights reserved.
痕跡削除に使⽤されるWindowsコマンド
Rank Command Count
1 del 844
2 taskkill 80
3 klist 73
4 wevtutil 23
5 rd 15
25
- 27. Copyright ©2017 JPCERT/CC All rights reserved.
• 攻撃者の攻撃パターンを調査
• 攻撃者はLateral MovementにWindowsコマンドを
使⽤する
• Windowsコマンドを監視することでLateral
Movementを検知できる
26
ここまでのまとめ
- 29. Copyright ©2017 JPCERT/CC All rights reserved.28
ブラックリスト⽅式
攻撃者が使⽤する可能性があるWindowsコマンド
が実⾏されたことを検知
Command executed
by the attacker
at
whoami
del
net use
Command
at
schtasks
klist
net use
…
Black List
whoami
tasklist
del
dir
Command executed
by the attacker
False NegativeDETECTED!
- 30. Copyright ©2017 JPCERT/CC All rights reserved.
net useやschtasks、atコマンドが実⾏されたことを検知
アプリケーションやユーザが実⾏する可能性がある
29
ブラックリスト⽅式
攻撃者がブラックリストのコマンド実⾏しない
限り検知することはできない
問題
- 31. Copyright ©2017 JPCERT/CC All rights reserved.30
スコアリング⽅式
実⾏されたWindowsコマンドをスコアリングして、
閾値以上のコマンドが実⾏された場合に検知
Command Score
at 50
schtasks 50
whoami 10
net use 30
del 5
tasklist 10
Score sheet
at
whoami
del
net use
Calculation result
50 + 30 + 10 + 5 = 95
Threshold = 90
DETECTED!
Command executed
by the attacker
- 32. Copyright ©2017 JPCERT/CC All rights reserved.31
スコアリング⽅式
Windowsコマンドを重要度に応じてスコアリング
スコアを作成する負担⼤(更新を続ける必要がある)
スコアが低いコマンドは攻撃者が実⾏してもわからない
問題
実⾏されたWindowsコマンドをスコアリングして、
閾値以上のコマンドが実⾏された場合に検知
- 33. Copyright ©2017 JPCERT/CC All rights reserved.
32
機械学習
機械学習を⽤いて不正なWindowsコマンドを検知
Machine Learning
at
whoami
del
net use
Result
DETECTED!
Command executed
by the attacker
- 35. Copyright ©2017 JPCERT/CC All rights reserved.34
1 Lateral Movementの調査
2 Lateral Movementパターン
3
機械学習を⽤いた
Lateral Movementの検知
4 検知システム
- 36. Copyright ©2017 JPCERT/CC All rights reserved.
教師あり学習
教師なし学習
強化学習
35
機械学習
機械学習とは、⼈⼯知能における研究課題の⼀つ
で、⼈間が⾃然に⾏っている学習能⼒と同様の機
能をコンピュータで実現しようとする技術・⼿法
のことである。 - Wikipedia※ -
※ https://ja.wikipedia.org/wiki/機械学習
今回使うもの
- 38. Copyright ©2017 JPCERT/CC All rights reserved.
Lateral Movementの調査に使⽤した5つの攻撃キャンペーン
のデータを使⽤
APT10 (named by FireEye)
APT17 (named by FireEye)
Dragon OK (named by Palo Alto)
Blue Termite (named by Kaspersky)
Tick (named by Symantec)
37
学習データの収集
- 40. Copyright ©2017 JPCERT/CC All rights reserved.39
データの前処理
> cd intellogs
> whoami
> klist
> net use
> klist purge
> ping -n 1 10.1.44.16
> ping -n 1 10.1.2.16
> net use 10.1.2.16
> dir 10.1.2.16c$users
> copy bb.bat 10.1.2.16c$windowssystem32
> net time 10.1.2.16
> at 10.1.2.16 12:27 bb.bat
> dir 10.1.2.16c$windowssystem32inf.txt
> move 10.1.2.16c$windowssystem32inf.txt .
> del 10.1.2.16c$windowssystem32bb.bat
何を学習するのか?
- 41. Copyright ©2017 JPCERT/CC All rights reserved.40
データの前処理
> cd intellogs
> whoami
> klist
> net use
> klist purge
> ping -n 1 10.1.44.16
> ping -n 1 10.1.2.16
> net use 10.1.2.16
> dir 10.1.2.16c$users
> copy bb.bat 10.1.2.16c$windowssystem32
> net time 10.1.2.16
> at 10.1.2.16 12:27 bb.bat
> dir 10.1.2.16c$windowssystem32inf.txt
> move 10.1.2.16c$windowssystem32inf.txt .
> del 10.1.2.16c$windowssystem32bb.bat
ホスト上で実⾏されたコマンド
(引数なし)
実⾏されたコマンド群を1つの
データとする
- 42. Copyright ©2017 JPCERT/CC All rights reserved.41
データの前処理
at whoamidel net use
tasklist dir netsh
whoami schtasks echo
dir del echo whoami
Command Set 1
Command Set 2
Command Set 3
Command Set 4
- 43. Copyright ©2017 JPCERT/CC All rights reserved.
教師データの作成
学習対象のコマンド
tasklist ver ipconfig net time cd systeminfo
netstat whoami nbtstat net start set qprocess
nslookup fsutil net view type net use echo
net user net group net localgroup dsquery net config csvde
net share quser net session query user tracert nltest
at move schtasks copy ren reg
wmic powershell md cscript runas sc
netsh wusa icacls del taskkill klist
wevtutil rd
42
対象とするコマンドはLateral Movement
の調査で確認した攻撃者が実⾏することが
多いコマンド50個に限定
- 48. Copyright ©2017 JPCERT/CC All rights reserved.
T F
0.2 0.8
47
ベイジアンネットワーク
「原因」と「結果」の因果関係をグラフ構造と、
お互いに及ぼす影響を確率で表現であらわした
確率モデル
⾬が降った
草が濡れた
スプリンク
ラー動作
Rain T F
F 0.4 0.6
T 0.01 0.99
Sup Rain T F
F F 0 1
F T 0.8 0.2
T F 0.9 0.1
T T 0.99 0.01
- 49. Copyright ©2017 JPCERT/CC All rights reserved.48
ベイジアンネットワーク
「原因」と「結果」の因果関係をグラフ構造と、
お互いに及ぼす影響を確率で表現であらわした
確率モデル
ある変数の値が求まったときに、未観測の変数の確率分
布を求められる
未来の予測ができる
- 50. Copyright ©2017 JPCERT/CC All rights reserved.
あるコマンドが実⾏された際に、その実⾏が攻撃かどう
かを予測する
ネットワークモデルを学習によって作成
49
ベイジアンネットワークを⽤いた不正コマンドの検知
at
攻撃
net use
- 52. Copyright ©2017 JPCERT/CC All rights reserved.51
ベイジアンネットワークを⽤いた不正コマンドの検知
作成されたモデル
> net use 10.1.2.16
> copy bb.bat 10.1.2.16c$windows
system32
> at 10.1.2.16 12:27 bb.bat
マルウエア実⾏の流れ
Lateral Movementの流れが学習によって
適切にモデル化されている
- 53. Copyright ©2017 JPCERT/CC All rights reserved.52
ニューラルネットワーク
⼈間の脳の動きを模したネットワークモデル
画像認識に使⽤されることが多い
3
Input Output 1 2 3
4 5 6
7 8 9Handwritten digits
Neural Network
- 54. Copyright ©2017 JPCERT/CC All rights reserved.53
ニューラルネットワークを⽤いた不正コマンドの検知
実⾏されたコマンドをインプット
不正の有無をアウトプット
Input Output
Neural Network
at
whoami
del
net use
True
or
False
Attack?
- 55. Copyright ©2017 JPCERT/CC All rights reserved.
ニューラルネットワークの設計
Feedforward(全結合) neural network
̶ Input: 50個のコマンド
̶ Output: 攻撃判定(True or False)
54
Affine
Batch
Norm
ReLU Affine
Soft
max
Command
Set
3-layers
True
False
- 56. Copyright ©2017 JPCERT/CC All rights reserved.55
ニューラルネットワークによる学習結果
0.4
0.5
0.6
0.7
0.8
0.9
1
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
accuracy
epoch
- 57. Copyright ©2017 JPCERT/CC All rights reserved.
課題
56
・学習によって作成したモデルがブラックボック
スである、どのような基準で判定されているかを
知ることができない
・学習結果によって判定基準が変化する
ニューラルネットワークの問題
- 58. Copyright ©2017 JPCERT/CC All rights reserved.
ニューラルネットワークの判定基準
ネットワークの可視化
変数重要度
アクティベーション最⼤化 (Activation Maximization)
感度分析 (Sensitivity Analysis)
LIME (Local Interpretable Model-Agnostic Explanations)
57
ニューラルネットワークの判定基準を知るための
様々な研究が⾏われている
今回使うもの
- 59. Copyright ©2017 JPCERT/CC All rights reserved.58
ニューラルネットワークの変数重要度
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
dsquery
cscript
netsh
tracert
nltest
nslookup
wusa
nbtstat
ren
fsutil
set
echo
netstat
copy
wevtutil
icacls
net_share
move
net_session
md
cd
schtasks
csvde
net_start
net_time
type
ver
systeminfo
whoami
ipconfig
tasklist
klist
qprocess
runas
net_use
reg
sc
net_config
rd
net_user
taskkill
wmic
quser
del
at
powershell
net_localgroup
net_view
net_group
query
attack
command
- 61. Copyright ©2017 JPCERT/CC All rights reserved.
評価指標
再現率
(Recall) 答えが正の中で、予測が正とさ
れたもの
適合率
(Precision) 正しいと判断した中で、答えも
正しいのもの
F尺度
(F-
measure)
予測精度の評価指標
60
Recall= 𝑇 𝑃/𝑇𝑃
+ 𝐹𝑁
Precision= 𝑇 𝑃/𝑇𝑃
+ 𝐹𝑃
F-measure=2 𝑅𝑒𝑎𝑙𝑙∗ 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛/𝑅𝑒𝑐𝑎𝑙𝑙
+ 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛
- 62. Copyright ©2017 JPCERT/CC All rights reserved.
結果
アルゴリズム recall precision F-measure
ベイジアンネットワーク 0.994343 0.683800 0.810337
ニューラルネットワーク 0.965517 0.967742 0.966628
決定⽊ 0.839154 0.960347 0.895669
ランダムフォレスト 0.915388 0.975964 0.944705
61
1,000回繰り返した平均値
- 63. Copyright ©2017 JPCERT/CC All rights reserved.
ベイジアンネットワーク
• False Negativeが少ない
ニューラルネットワーク
• バランスの良いアルゴリズム
ランダムフォレスト
• False Positiveが少ない
62
結果
- 64. Copyright ©2017 JPCERT/CC All rights reserved.63
1 Lateral Movementの調査
2 Lateral Movementパターン
3
機械学習を⽤いた
Lateral Movementの検知
4 検知システム
- 66. Copyright ©2017 JPCERT/CC All rights reserved.
システム概要 (クライアント)
65
• cmd.exe経由で実⾏されたコマンドを収集
cmdlogs.bat (Shell Script)
• 収集されたログをサーバに送信
• 分析結果を確認し、アラート表⽰
Invoke-DetectLM.ps1 (PowerShell)
- 67. Copyright ©2017 JPCERT/CC All rights reserved.
システム概要 (サーバ)
66
• ログを収集
Elasticsearch
• ログを可視化
Kibana
• Elasticsearchのログを収集し機械学習で不審なコマンド実⾏検知
DetectLM.py (Python)
- 68. Copyright ©2017 JPCERT/CC All rights reserved.
DetectLM.py (Python)
ニューラルネットワークでログ分析
Elasticsearchとのデータやり取りはREST API
67
Elasticsearchのログを収集し機械学習で不審な
コマンド実⾏を検知する
- 69. Copyright ©2017 JPCERT/CC All rights reserved.68
Alert Level
クライアントから送信されたログ
異常判定
Alert Level 0
No
Alert Level 1
Yes
ユーザ確認
Alert Level 2
NoYes
- 70. Copyright ©2017 JPCERT/CC All rights reserved.
• デフォルト
Level 0
• 機械学習で不審と判断されたログ
Level 1
• ユーザが報告した異常ログ
Level 2
69
Alert Level
ログには3段階の検知レベルを設定
- 71. Copyright ©2017 JPCERT/CC All rights reserved.
クライアントへの通知
意図したものであった場合は、Ignore Flagが設定される
70
機械学習で異常判定したログ(Alert Level:1)は
ユーザに通知される
- 74. Copyright ©2017 JPCERT/CC All rights reserved.
今後の予定
アルゴリズムのアップデート
• 現在のアルゴリズムは時系列データや、実⾏数
を考慮していない
• コマンドの中には順番に実⾏しなければならな
いものがある
• 時系列データを使⽤したアルゴリズムにアップ
デート予定
73
- 75. Copyright ©2017 JPCERT/CC All rights reserved.
まとめ
Lateral MovementにはWindowsコマンドが使⽤さ
れる
不正なWindowsコマンドを検知することでLateral
Movementを検知することが可能
機械学習を使⽤して不正なWindowsコマンド検知
することを補助することができる
74