pacsec 2017 neural networkを⽤いた...攻撃者がどのようにlateral movementを ってい...

76
Neural Networkを⽤いた APT Lateral Movement の検知 朝⻑ 秀誠 JPCERTコーディネーションセンター PacSec 2017

Upload: others

Post on 26-Jan-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Neural Networkを⽤いたAPT Lateral Movement の検知

朝⻑ 秀誠 JPCERTコーディネーションセンター

PacSec 2017

Page 2: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

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)

Page 3: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

マルウエアの侵⼊を完全に防ぐことは難しい

感染拡⼤(Lateral Movement)を早期に検知する⽅法に注⽬

ホスト上のプロセスの挙動を記録し、分析する技術の開発が進む

EDR(Endpoint Detection and Response)製品の流⾏?

2

APTインシデント検知の現状

Page 4: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 3

本⽇話す内容

Lateral Movement を検知する⽅法の提案

Page 5: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

アプローチ

 攻撃者がどのようにLateral Movementを⾏っているか知らないことが多い

 Lateral Movementの⽅法を調査し、検知⽅法を検討する

4

Lateral Movementを検知するためには、攻撃者がどのように攻撃を⾏っているか知る必要がある

Page 6: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

本プレゼンテーションの⽬次

5

1 Lateral Movementの調査

2 Lateral Movementパターン

3 機械学習を⽤いた Lateral Movementの検知

4 検知システム

Page 7: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 6

1 Lateral Movementの調査

2 Lateral Movementパターン

3 機械学習を⽤いた Lateral Movementの検知

4 検知システム

Page 8: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

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

調査⽅法

Page 9: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

Lateral Movementの調査

 実際に攻撃者が実⾏したコマンドから、どのようにLateral Movementを⾏うのかを調査

8

調査⽅法

Page 10: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

JPCERT/CC対応の主なAPT攻撃

BKDR_ChChes (APT10)

Asruex

Elirks

Tick

Blue Termite

Scanbox

Winnti

APT17

2013 2014 20151 4 7 10 1 4 7 10 1 4 7 10

20161 4 7 10

9

Page 11: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

調査したコマンドの概要

コマンド実⾏総数: 16,866

調査した感染端末延べ数: 645

10

調査結果の概要

Page 12: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

調査したコマンドの概要

コマンド実⾏総数: 16,866

調査した感染端末延べ数: 645

11

調査結果の概要

Windowsコマンド実⾏数: 14,268

Page 13: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

Lateral Movementで攻撃者が使うツール

 なぜ攻撃者はWindowsコマンドと正規のツールを使⽤するのか?

 それらはウイルス対策ソフトで検知されない12

攻撃者は攻撃ツールだけでなくWindowsコマンドと正規のツールも使⽤する

Page 14: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 13

1 Lateral Movementの調査

2 Lateral Movementパターン

3 機械学習を⽤いた Lateral Movementの検知

4 検知システム

Page 15: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 14

AD/ ファイルサーバ

標的組織1. 侵⼊

2. 初期調査3. 探索活動

4. 感染拡⼤

5. 情報送信

APTインシデントおよびLateral Movementの概要

6. 痕跡削除

Page 16: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

Lateral Movement: 初期調査

 最も実⾏されることが多いコマンド: tasklist

 感染したホストが解析環境だった場合、攻撃者はすぐにログアウトする

15

•  感染した端末の情報を収集する

初期調査

Page 17: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

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

Page 18: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

Lateral Movement: 探索活動

•  ネットワーク内ホストやリモートホストに保存されている情報を調査

探索活動

17

 最も実⾏されることが多いコマンド: dir — 攻撃者は、感染したホストに保存されている

機密情報を調査する

 ローカルネットワークの調査にはnetを使⽤する

Page 19: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

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

Page 20: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

netコマンド net view

 接続可能なドメインのリソース⼀覧取得

 net user  ローカルおよびドメインのアカウント管理

 net localgroup  ローカルのグループに所属するユーザ⼀覧取得

 net group  特定ドメインのグループに所属するユーザ⼀覧取得

 net use  リソースへのアクセス

19

Page 21: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

Lateral Movement: 感染拡⼤

•  他のマルウエアを感染させたり、他のホストにアクセスする

感染拡⼤

20

 最も実⾏されることが多いコマンド: at — atコマンドはWindows 10, Windows 8.1などではサ

ポートされていない — もし、atコマンドが使えない場合は、schtasks

 パスワードダンプツールは必ず使⽤される

Page 22: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

感染拡⼤に使⽤されるWindowsコマンド

21

Rank Command Count1 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

Page 23: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

Windowsコマンドを使ったリモートコマンド実⾏

22

at command

> at \\[IP Address] 12:00 cmd /c "C:\windows\temp\mal.exe"

schtasks command

> schtasks /create /tn [Task Name] /tr C:\1.bat /sc onstart /ru System /s [IP Address]

Page 24: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

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:\Windows\System32\net.exe user”

Page 25: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

Lateral Movement: 痕跡削除

•  攻撃者の使⽤したファイルおよびログの削除

痕跡削除

24

 最も実⾏されることが多いコマンド: del

 イベントログの削除にはwevtutil

Page 26: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

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

Page 27: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

•  攻撃者の攻撃パターンを調査

•  攻撃者はLateral MovementにWindowsコマンドを

使⽤する

•  Windowsコマンドを監視することでLateral

Movementを検知できる

26

ここまでのまとめ

Page 28: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

ブラックリスト⽅式

スコアリング⽅式

機械学習27

不正なWindowsコマンドの実⾏を監視する⽅法

Page 29: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

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

deldir

Command executed by the attacker

False NegativeDETECTED!

Page 30: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

 net useやschtasks、atコマンドが実⾏されたことを検知

 アプリケーションやユーザが実⾏する可能性がある

29

ブラックリスト⽅式

攻撃者がブラックリストのコマンド実⾏しない 限り検知することはできない

問題

Page 31: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

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

Page 32: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 31

スコアリング⽅式

 Windowsコマンドを重要度に応じてスコアリング

 スコアを作成する負担⼤(更新を続ける必要がある)  スコアが低いコマンドは攻撃者が実⾏してもわからない

問題

実⾏されたWindowsコマンドをスコアリングして、閾値以上のコマンドが実⾏された場合に検知

Page 33: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

     

32

機械学習

機械学習を⽤いて不正なWindowsコマンドを検知

Machine Learning

at

whoami

del

net use

Result

DETECTED!

Command executed by the attacker

Page 34: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 33

機械学習

機械学習を⽤いて不正なWindowsコマンドを検知

以降、この⽅法について検討した結果を紹介

Page 35: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 34

1 Lateral Movementの調査

2 Lateral Movementパターン

3 機械学習を⽤いた Lateral Movementの検知

4 検知システム

Page 36: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

教師あり学習  教師なし学習  強化学習

35

機械学習

機械学習とは、⼈⼯知能における研究課題の⼀つで、⼈間が⾃然に⾏っている学習能⼒と同様の機能をコンピュータで実現しようとする技術・⼿法

のことである。 - Wikipedia※ -

※ https://ja.wikipedia.org/wiki/機械学習

今回使うもの

Page 37: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

学習データ収集

データの前処理

データ分析

評価・最適なアルゴリズムを決定36

機械学習のアルゴリズム選定の流れ

Page 38: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

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

学習データの収集

Page 39: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

学習データ収集

データの前処理

データ分析

評価・最適なアルゴリズムを決定38

機械学習のアルゴリズム選定の流れ

Page 40: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 39

データの前処理> cd \intel\logs > 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.16\c$\users > copy bb.bat \\10.1.2.16\c$\windows\system32\ > net time \\10.1.2.16 > at \\10.1.2.16 12:27 bb.bat > dir \\10.1.2.16\c$\windows\system32\inf.txt > move \\10.1.2.16\c$\windows\system32\inf.txt . > del \\10.1.2.16\c$\windows\system32\bb.bat

何を学習するのか?

Page 41: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 40

データの前処理> cd \intel\logs > 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.16\c$\users > copy bb.bat \\10.1.2.16\c$\windows\system32\ > net time \\10.1.2.16 > at \\10.1.2.16 12:27 bb.bat > dir \\10.1.2.16\c$\windows\system32\inf.txt > move \\10.1.2.16\c$\windows\system32\inf.txt . > del \\10.1.2.16\c$\windows\system32\bb.bat

ホスト上で実⾏されたコマンド (引数なし)

実⾏されたコマンド群を1つの

データとする

Page 42: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

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

Page 43: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

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個に限定

Page 44: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 43

教師データの作成

Page 45: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

学習データ収集

データの前処理

データ分析

評価・最適なアルゴリズムを決定44

機械学習のアルゴリズム選定の流れ

Page 46: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

決定⽊ ランダムフォレスト

ニューラルネットワー

ベイジアンネットワー

クk平均法 SVM

45

データ分析

アルゴリズム例

Page 47: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

決定⽊ ランダムフォレスト

ニューラルネットワー

ベイジアンネットワー

クk平均法 SVM

46

データ分析

評価対象

Page 48: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

T F0.2 0.8

47

ベイジアンネットワーク

「原因」と「結果」の因果関係をグラフ構造と、お互いに及ぼす影響を確率で表現であらわした

確率モデル

⾬が降った

草が濡れた

スプリンクラー動作

Rain T FF 0.4 0.6

T 0.01 0.99

Sup Rain T FF F 0 1

F T 0.8 0.2

T F 0.9 0.1

T T 0.99 0.01

Page 49: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 48

ベイジアンネットワーク

「原因」と「結果」の因果関係をグラフ構造と、お互いに及ぼす影響を確率で表現であらわした

確率モデル

 ある変数の値が求まったときに、未観測の変数の確率分布を求められる

 未来の予測ができる

Page 50: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

 あるコマンドが実⾏された際に、その実⾏が攻撃かどうかを予測する

 ネットワークモデルを学習によって作成 49

ベイジアンネットワークを⽤いた不正コマンドの検知

at

攻撃

net use

Page 51: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

50

ベイジアンネットワークを⽤いた不正コマンドの検知

作成されたモデル

Page 52: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 51

ベイジアンネットワークを⽤いた不正コマンドの検知

作成されたモデル> net use \\10.1.2.16 > copy bb.bat \\10.1.2.16\c$\windows\system32\ > at \\10.1.2.16 12:27 bb.bat

マルウエア実⾏の流れ

Lateral Movementの流れが学習によって 適切にモデル化されている

Page 53: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 52

ニューラルネットワーク

⼈間の脳の動きを模したネットワークモデル 画像認識に使⽤されることが多い

3 Input Output 1 2 3

4 5 6 7 8 9Handwritten digits

Neural Network

Page 54: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 53

ニューラルネットワークを⽤いた不正コマンドの検知

実⾏されたコマンドをインプット 不正の有無をアウトプット

Input Output

Neural Network

at

whoami

del

net useTrue or

False

Attack?

Page 55: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

ニューラルネットワークの設計 Feedforward(全結合) neural network Input: 50個のコマンド Output: 攻撃判定(True or False)

54

Affine BatchNorm ReLU Affine Soft

maxCommand

Set

3-layers

True

False

Page 56: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

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

accu

racy

epoch

Page 57: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

課題

56

・学習によって作成したモデルがブラックボックスである、どのような基準で判定されているかを知ることができない ・学習結果によって判定基準が変化する

ニューラルネットワークの問題

Page 58: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

ニューラルネットワークの判定基準

 ネットワークの可視化  変数重要度  アクティベーション最⼤化 (Activation Maximization)  感度分析 (Sensitivity Analysis)  LIME (Local Interpretable Model-Agnostic Explanations)

57

ニューラルネットワークの判定基準を知るための様々な研究が⾏われている

今回使うもの

Page 59: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

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

dsqu

ery

cscr

ipt

nets

h tra

cert

nlte

st

nslo

okup

w

usa

nbts

tat

ren

fsut

il se

t ec

ho

nets

tat

copy

w

evtu

til

icac

ls

net_

shar

e m

ove

net_

sess

ion

md cd

sc

htas

ks

csvd

e ne

t_st

art

net_

time

type

ve

r sy

stem

info

w

hoam

i ip

conf

ig

task

list

klis

t qp

roce

ss

runa

s ne

t_us

e re

g sc

net_

conf

ig

rd

net_

user

ta

skki

ll w

mic

qu

ser

del at

pow

ersh

ell

net_

loca

lgro

up

net_

view

ne

t_gr

oup

quer

y

atta

ck

command

Page 60: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

学習データ収集

データの前処理

データ分析

評価・最適なアルゴリズムを決定59

機械学習のアルゴリズム選定の流れ

Page 61: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

評価指標再現率 (Recall) 答えが正の中で、予測が正とさ

れたもの適合率 (Precision) 正しいと判断した中で、答えも

正しいのものF尺度 (F-measure)

予測精度の評価指標

60

Recall= 𝑇𝑃/𝑇𝑃+𝐹𝑁 

Precision= 𝑇𝑃/𝑇𝑃+𝐹𝑃 

F-measure= 2𝑅𝑒𝑎𝑙𝑙∗𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛/𝑅𝑒𝑐𝑎𝑙𝑙+𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 

Page 62: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

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回繰り返した平均値

Page 63: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

ベイジアンネットワーク•  False Negativeが少ない

ニューラルネットワーク• バランスの良いアルゴリズム

ランダムフォレスト•  False Positiveが少ない

62

結果

Page 64: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 63

1 Lateral Movementの調査

2 Lateral Movementパターン

3 機械学習を⽤いた Lateral Movementの検知

4 検知システム

Page 65: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 64

システム概要

Page 66: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

システム概要 (クライアント)

65

•  cmd.exe経由で実⾏されたコマンドを収集

cmdlogs.bat (Shell Script)

• 収集されたログをサーバに送信• 分析結果を確認し、アラート表⽰

Invoke-DetectLM.ps1 (PowerShell)

Page 67: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

システム概要 (サーバ)

66

•  ログを収集

Elasticsearch

•  ログを可視化

Kibana

•  Elasticsearchのログを収集し機械学習で不審なコマンド実⾏検知

DetectLM.py (Python)

Page 68: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

DetectLM.py (Python)

 ニューラルネットワークでログ分析

Elasticsearchとのデータやり取りはREST API

67

Elasticsearchのログを収集し機械学習で不審な コマンド実⾏を検知する

Page 69: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 68

Alert Level

クライアントから送信されたログ

異常判定

Alert Level 0

No

Alert Level 1

Yes

ユーザ確認

Alert Level 2

NoYes

Page 70: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

•  デフォルト

Level 0

•  機械学習で不審と判断されたログ

Level 1

•  ユーザが報告した異常ログ

Level 2

69

Alert Level

ログには3段階の検知レベルを設定

Page 71: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

クライアントへの通知

 意図したものであった場合は、Ignore Flagが設定される70

機械学習で異常判定したログ(Alert Level:1)はユーザに通知される

Page 72: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

Kibana Dashboard

71

Page 73: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

Demo

72

Page 74: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

今後の予定

アルゴリズムのアップデート•  現在のアルゴリズムは時系列データや、実⾏数

を考慮していない•  コマンドの中には順番に実⾏しなければならな

いものがある•  時系列データを使⽤したアルゴリズムにアップ

デート予定

73

Page 75: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved.

まとめ

Lateral MovementにはWindowsコマンドが使⽤される

不正なWindowsコマンドを検知することでLateral Movementを検知することが可能

機械学習を使⽤して不正なWindowsコマンド検知することを補助することができる

74

Page 76: PacSec 2017 Neural Networkを⽤いた...攻撃者がどのようにLateral Movementを ってい るか知らないことが多い Lateral Movementの 法を調査し、検知 法を検

Copyright ©2017 JPCERT/CC All rights reserved. 75

Thank you

Q&A

https://github.com/JPCERTCC/DetectLM