• 検索結果がありません。

PowerPoint プレゼンテーション

N/A
N/A
Protected

Academic year: 2022

シェア "PowerPoint プレゼンテーション"

Copied!
27
0
0

読み込み中.... (全文を見る)

全文

(1)

MWS Cup 2017

課題2: 静的解析

中津留 勇 石淵 一三 石丸 傑

(2)

Copyright © 2017 Kaspersky Lab. All rights reserved.

課題2 担当

2

中津留 勇

ynakatsuru[at]secureworks.com

SecureWorks Japan 株式会社

石淵 一三

kazumi.ishibuchi.hh[at]hitachi.com

日立製作所

石丸 傑

suguru.Ishimaru[at]kaspersky.com

株式会社 カスペルスキー

(3)

課題2 変わらぬテーマ

最新情報を得る 実務に近い作業 マルウェアを正しく理解する

静的解析を通じ

(4)

Copyright © 2017 Kaspersky Lab. All rights reserved.

課題 2 解説

4

MWS Cup 2017

(5)

課題2 oni.exe

https://blog.kaspersky.co.jp/wannacry-ransomware/15524/

(6)

Copyright © 2017 Kaspersky Lab. All rights reserved.

6

引数の意味

当該検体が

SHA-256

ハッ シュ値を求めるために使用さ れる関数

sub_404C3E

は、

4

目の引数によってどのような 処理の変化が起きるか答え

(4

)

格納データの意味

当該検体のリソース

EXDATA

格納されている

112

番のデータ は、復号しても意味不明なデー タとなるが、本来どのような情 報が格納されているべきか、

コードから推測せよ

(5

)

関数の挙動解析

関数

sub_401000

が何をす る関数か答えよ

(4

)

被害対象の特定

暗号化の対象となるドライブの 種類をすべて選択せよ

(4

)

関数の挙動解析

関数

sub_406306

が何をする 関数か答えよ

(4

)

呼び出し規約

設問1 設問

2

設問

3

設問

4

設問

5

設問

6

課題2 設問

当該検体の(

Windows API

やラ イブラリ関数以外の)関数呼び 出しに使用されている呼出規約 を以下から選べ

(4

)

(7)

課題2 解析のポイント

難しく考えない

アセンブラ言語 そのものは単純

文字列

定数

• API

わかりやすい 文字を探す

必要な部分を 必要な分だけ 集中して読む

コード全てを 読む必要はない

Google

先生や

MSDN

は貴重 な情報元

困った時の

Web

検索

(8)

Copyright © 2017 Kaspersky Lab. All rights reserved.

設問1 呼び出し規約

8

当該検体の(

Windows API

やライブラリ関数以外の)関数呼び出 しに使用されている呼出規約を以下から選べ

(4

)

• __cdecl

引数をスタックに経由で渡す

• __stdcall

引数をスタック経由で渡す

• __fastcall

引数を

ECX, EDX,

スタックを経由して渡す

• __thiscall

引数をスタックに、

this

ポインターを

ECX

に格納

• others

他に適切な答えがある為却下

スタックだけでなく

ECX

EDX

経由で値を渡して いることがわかる

(9)

設問2 関数の挙動解析

関数

sub_401000

が何をする関数か答えよ

(4

)

関数のアドレスを取得

• Process32FirstW

• Process32NextW

• CreateToolhel

32Snapshot

CreateToolhel

32Snapshot

でス ナップショットを作成

Process32FirstW

でスナップショット 内の最初のプロセス情報を取得

全プロセス中から

sql

outlook

ssms

postgre

に一致したプロセス名 の

PID

を基に

taskkill

を用いてプロセスツリーごと強制終了する関数

(10)

Copyright © 2017 Kaspersky Lab. All rights reserved.

設問2 関数の挙動解析

10

関数

sub_401000

が何をする関数か答えよ

(4

)

対象プロセス名と思われる文字列

• sql

• outlook

• ssms

• postgre

Taskkill /F /T PID

をコマンドとして実行

全プロセス中から

sql

outlook

ssms

postgre

に一致したプロセス名 の

PID

を基に

taskkill

を用いてプロセスツリーごと強制終了する関数

(11)

設問3 被害対象の特定

暗号化の対象となるドライブの種類をすべて選択せよ

(4

)

固定ドライブ

取り外し可能ドライブ

ネットワークドライブ

書き込み可能な

CD/DVD

ドライブ

戻り値と比較してい る値の意味を調べる

GetDriveTypeA

Imports

から探す

(12)

Copyright © 2017 Kaspersky Lab. All rights reserved.

設問4 関数の挙動解析

12

関数

sub_406306

が何をする関数か答えよ

(4

)

第一引数である鍵を 用いて

sbox

を生成

00

から ff まで

256

イトの

sbox

を初期化

RC4

で復号化する関数。第一引数に暗号データへのアドレス、

第二引数に鍵、第三引数にデータサイズがそれぞれ入り、戻 り値は復号データへのアドレスが入る

(13)

設問4 関数の挙動解析

関数

sub_406306

が何をする関数か答えよ

(4

)

1

バイトづつ

XOR

ストリーム暗号

RC4

で復号化する関数。第一引数に暗号データへのアドレス、

第二引数に鍵、第三引数にデータサイズがそれぞれ入り、戻 り値は復号データへのアドレスが入る

(14)

Copyright © 2017 Kaspersky Lab. All rights reserved.

設問5 引数の意味

14

当該検体が

SHA-256

ハッシュ値を求めるために使用される 関数

sub_404C3E

は、

4

番目の引数によってどのような処理の 変化が起きるか答えよ

(4

)

SHA-256

SHA-224

の定数が使用される

引数が

0

の場合は

SHA-256

のハッシュ値、それ以外の場合に

SHA-224

のハッシュ値を求めるように変化する。

4

番目の引数は

sub_403FFD

2

番目の引数として分岐 フラグとして用いられる

(15)

設問5 引数の意味

当該検体が

SHA-256

ハッシュ値を求めるために使用される 関数

sub_404C3E

は、

4

番目の引数によってどのような処理の 変化が起きるか答えよ

(4

)

計算部分でも

4

番目の 引数を基に

SHA-256

SHA-224

で処理が分岐

引数が

0

の場合は

SHA-256

のハッシュ値、それ以外の場合に

SHA-224

のハッシュ値を求めるように変化する。

(16)

Copyright © 2017 Kaspersky Lab. All rights reserved.

設問5 引数の意味

16

当該検体が

SHA-256

ハッシュ値を求めるために使用される 関数

sub_404C3E

は、

4

番目の引数によってどのような処理の 変化が起きるか答えよ

(4

)

引数が

0

の場合は

SHA-256

のハッシュ値、それ以外の場合に

SHA-224

のハッシュ値を求めるように変化する。

(17)

設問6 格納データの意味

当該検体のリソース

EXDATA

に格納されている

112

番のデー タは、復号しても意味不明なデータとなるが、本来どのような 情報が格納されているべきか、コードから推測せよ

(5

)

EXDATA

からデータを 取得、

RC4

で復号化

拡張子リストが“

,

”(カンマ)を区切りとして格納されているべき と考えられる。また、最初の区切り文字を“ ”(スペース)にも 変更することが可能であり、当該拡張子を持つファイルはファ イルサイズに関わらずデータ全体を暗号化対象とする

(18)

Copyright © 2017 Kaspersky Lab. All rights reserved.

設問6 格納データの意味

18

当該検体のリソース

EXDATA

に格納されている

112

番のデー タは、復号しても意味不明なデータとなるが、本来どのような 情報が格納されているべきか、コードから推測せよ

(5

)

“,”を区切り文字とし てデータを抽出

拡張子リストが“

,

”(カンマ)を区切りとして格納されているべき と考えられる。また、最初の区切り文字を“ ”(スペース)にも 変更することが可能であり、当該拡張子を持つファイルはファ イルサイズに関わらずデータ全体を暗号化対象とする

KDATA110

に格納され ている“

.oni

”を追加

“,”と“ ”を区切り文 字としてデータを抽出

(19)

設問6 格納データの意味

当該検体のリソース

EXDATA

に格納されている

112

番のデー タは、復号しても意味不明なデータとなるが、本来どのような 情報が格納されているべきか、コードから推測せよ

(5

)

復号化された

EXDATA112

と暗号化対象となるファ イルの拡張子を比較

拡張子リストが“

,

”(カンマ)を区切りとして格納されているべき と考えられる。また、最初の区切り文字を“ ”(スペース)にも 変更することが可能であり、当該拡張子を持つファイルはファ イルサイズに関わらずデータ全体を暗号化対象とする

(20)

Copyright © 2017 Kaspersky Lab. All rights reserved.

設問6 格納データの意味

20

当該検体のリソース

EXDATA

に格納されている

112

番のデー タは、復号しても意味不明なデータとなるが、本来どのような 情報が格納されているべきか、コードから推測せよ

(5

)

EXDATA112

の拡張子であっ た場合ファイルサイズに関係 なく全て暗号化する

拡張子リストが“

,

”(カンマ)を区切りとして格納されているべき と考えられる。また、最初の区切り文字を“ ”(スペース)にも 変更することが可能であり、当該拡張子を持つファイルはファ イルサイズに関わらずデータ全体を暗号化対象とする

暗号化対象ファイルのサイ ズが

500000h

以上かどうか 確認し、以上の場合は暗号 化するサイズを

500000h

でに設定する

(21)

課題2 採点結果

(22)

Copyright © 2017 Kaspersky Lab. All rights reserved.

課題 2 今後の課題

22

MWS Cup 2017

(23)

アンケートの意見コメント

(24)

Copyright © 2017 Kaspersky Lab. All rights reserved.

問題作成の課題

25

テーマ選定の難しさ

問題文の出し方

作成委員不足

問題文が一部が伝わりにくかった どの程度の解答を求めているのか 明示できていなかった

協議中のプレゼンが公開処刑すぎる為 蚤の心臓では耐えらない

問題作成はコードと向き合う必要がある為勉強 になること、なにより楽しい

動化などを静的解析で適することの困難さ より実務に近い検体、

2

時間で解ける

課題として昇華させる難しさ

(25)

参加者側の課題

アンケート答えてくださいね。お願いします。

過去問や過去の解答をもとに復習

Write-up 書いてみると勉強になる

(26)

Copyright © 2017 Kaspersky Lab. All rights reserved.

勉強する際の参考資料

28

セキュリティ・キャンプ全国⼤会

2015

でのマルウエア分析講義

(2015-09-10) https://www.jpcert.or.jp/magazine/acreport-seccamp.html

リバースエンジニアリング⼊⾨

-

IT http://www.atmarkit.co.jp/ait/series/2614/

Edomae 2015 -

マルウェアを解析してみよう

http://www.slideshare.net/SatoshiMimura/edomae-2015 Practical Malware Analysis | No Starch Press

https://www.nostarch.com/malware

O'Reilly Japan -

アナライジング・マルウェア

https://www.oreilly.co.jp/books/9784873114552/

ML

に投げてるので、それを⼊⼿する データセットに⼊っている資料を読む

WEB

書籍

過去問

(27)

THANK YOU

ynakatsuru[at]secureworks.com

kazumi.ishibuchi.hh[at]hitachi.com

suguru.Ishimaru[at]kaspersky.com

参照

関連したドキュメント

[r]

この数日前に、K児の母から「最近、家でも参観曰の様子を見ていても、あまり話をし

した宇宙を持つ人間である。他人からの拘束的規定を受けていない人Ⅲ1であ

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

幕末維新期に北区を訪れ、さまざまな記録を残した欧米人は、管見でも 20 人以上を数える。いっ

はありますが、これまでの 40 人から 35

2 第 85.01 項から第 85.04 項までには、第 85.11 項、第 85.12 項又は第 85.40 項から第 85.42

北区無電柱化推進計画の対象期間は、平成 31 年(2019 年)度を初年度 とし、2028 年度までの 10