MWS CUP 2018
課題2: 静的解析
2018/12/20
中津留 勇
石丸 傑

石淵 一三

課題作成

SecureWorks Japan 株式会社
中津留 勇

株式会社カスペルスキー
石丸 傑

株式会社日立製作所
石淵 一三

歴史は繰り返される…

課題2 “変わらぬテーマ”
実務に近い作業

最新情報を得る

マルウェアを正しく理解する

MWS CUP 2018
課題2: 解説課題2: “PLEAD”
出典:
https://blog.trendmicro.co.jp/archives/9166
https://www.lac.co.jp/lacwatch/people/20180425_001625.html
https://blogs.jpcert.or.jp/ja/2018/05/linopid.html

sample1.i64
1-1.
関数 sub_00401040 が何を行う関数か以下から選択せよ。

•RC4 復号•AES 復号•DES 復号•XXTEA 復号

sample1.i64
1-1.
関数 sub_00401040 が何を行う関数か以下から選択せよ。

•RC4 復号•AES 復号•DES 復号•XXTEA 復号

参考:
アセンブリで書かれたRC4は見た瞬間分かるかsample1.i64
1-2.
アドレス 0X0040343B の命令に含まれる固定値 0X5EF09604 の意味を答えよ。

sample1.i64
1-2.
アドレス 0X0040343B の命令に含まれる固定値 0X5EF09604 の意味を答えよ。

sample1.i64
1-2.
アドレス 0X0040343B の命令に含まれる固定値 0X5EF09604 の意味を答えよ。

【満点 (3点)の回答】
RC4で復号したデータを以下の手順で集計したチェックサム
集計した結果が0x5EF09604と等しいか確認している
1. 1バイト読む
2. チェックサムを5ビット左ローテートシフト
する
3. チェックサムに読み込んだ1バイトを加算する
4. 1~3を全データに対して適用するsample1.i64
1-3.
• アドレス 0x00403A50 のDialogFunc 関数は，ダイアログボックスへ送信されたメッセージである第二引数 Msg により挙動が変化する。その挙動の内，悪意のあるコードが実行されるメッセージ名 (WM_CREATE など)を答えよ。

sample1.i64
Msg

メッセージ名48(0x30)

WM_SETFONT

1-3.
• アドレス 0x00403A50 の70(0x46)

WM_WINDOWPOSCHANGING

130(0x82)

WM_NCDESTROY

272(0x110)

WM_INITDIALOG

DialogFunc 関数は，ダイアログボックスへ送信されたメッセージである第二引数 Msg により挙動が変化する。その挙動の内，悪意のあるコードが実行されるメッセージ名 (WM_CREATE など)を答えよ。

sample2.i64
2-1.
• アドレス 0x10005010 に格納されているデータは暗号化された設定情報である。このデータを復号して得られる設定情報の文字列を答えよ。なお，暗号化された設定情報はファイル
encrypted_config.bin として同梱している。

sample2.i64
2-1.
• アドレス 0x10005010 に格納
RC4 KSA(Key-schedulingalgorithm)

RC4

されているデータは暗号化された設定情報である。このデータを復号して得られる設定情報の文字列を答えよ。なお，暗号化された設定情報はファイル
encrypted_config.bin として同梱している。

sample2.i64
2-1.
• アドレス 0x10005010 に格納されているデータは暗号化された設定情報である。このデータを復号して得られる設定情報の文字列を答えよ。なお，暗号化された設定情報はファイル
encrypted_config.bin として同梱している。

sample2.i64
2-1.
アドレス 0x10005010 に格納されているデータは暗号化された設定情報である。このデータを復号して得られる設定情報の文字列を答えよ。なお，暗号化された設定情報はファイル encrypted_config.bin として同梱している。

"download.ns01.us:8080,443,1863;movies.sixt
h.biz:8080,443,1863;pats.itsAOL.com:8080,443,1863;"

sample2.i64【満点 (2点 x 4 = 8点)の回答】

2-2.

• sub_10001BB0: 特定の特殊フォルダ(Recent, Desktop,RAT のコマンドとして用意されている関数
sub_10001BB0, sub_10002410,sub_100020F0, sub_10001EB0 それぞれ機能を答えよ。

My Documents, Program Files)の配下に存在するファイル一覧とそれらのファイルサイズや最新の更新日時等，ファイルの詳細情報を取得する• sub_10002410: C&Cサーバーへ接続し，ファイルをダウンロードする• sub_100020F0: 指定されたコマンドを実行する• sub_10001EB0: パスが指定されていなければ，PCに存在するドライブ名一覧とそれらのドライブの種類を取得する．パスが指定されていた場合は指定されたパス配下に存在するファイル一覧とそれらの詳細情報を取得する

全体

3-1.
ここまでの解析結果から，これらの検体が何という名称で呼ばれている検体かを特定せよ。

出典:
https://hitcon.org/2015/CMT/download/day2-f-r0.pdf
https://blog.trendmicro.co.jp/archives/9166

全体
3-1.
ここまでの解析結果から，これらの検体が何という名称で呼ばれている検体かを特定せよ。

出典:
https://www.lac.co.jp/lacwatch/people/20180425_001625.html

各課題と”変わらぬテーマ”のイメージ

理解の証
明 (2-1)

正しく理解する (1-1～ 1-4, 22)

情報を得る (3-1)

実務体験 (課題2)課題2 採点結果

MWS CUP 2018
課題2: 今後の課題

課題2の難易度はどうでしたか？

21%

アンケート結果

43%

難しい

やや難しい
普通

36%

課題2の分量はどうでしたか？

7%

アンケート結果

29%

21%

多い
やや多い
普通

やや少ない

43%

普段静的解析で使用しているツールはどれですか？

アンケート結果

8%

4%

IDA Free8%
13%

objdump50%

IDA Starter/Pro

Binary Ninja
静的解析しない17%

Hopper課題2として取り上げてほしい内容はありますか？

ポジティブネガティブ• ランサムウェア (2件)
• Mirai• 最新のマルウェア• Windows以外のマルウェア• 引き続き静的解析• 特になし (5件)
• わかりません (2件)• “.”

今回の課題2に関して良かった点や悪かった点、意見やコメント等あればお願いします感想• 難しかった• 経験がないと厳しい，レベル未達• 楽しかった，面白かった• ステップアップ的な課題が良かった．
• 時間が足りない．
• マルウェアを調べさせるのはいい問題だと思う．

今回の課題2に関して良かった点や悪かった点、意見やコメント等あればお願いします
改善点• 問題に出てくる固定値の意味がつかめなかった．
• もう少し問題の導線が欲しかった．

→ 次回の問題作成時には，要検討．

問題作成に関する課題

テーマ選定の •• 自動化などを静的解析で適用することの困難さ
より実務に近い検体から，規定時間で解答可能なレベルの設問作成
難しさ
問題の出し方作成委員• 高配点問題の解答が二択となり，点数の偏りを生んでしまった• 解答内容に求めるレベルを明示できていなかった• 例年，作成委員が海外出張でいない→ “UN頼み”から1人参加してくれる(らしい)参加者側に関する課題 / 要望
過去の問題や過去の解答をもとに復習

Write-up 書いてみると勉強になる
予習をしましょう
今年から問題などを公開する方向．
来年は，事前学習よろ～MWS CUP 2018
課題2: 静的解析
2018/12/20
ynakatsuru[at]secureworks.com
suguru.Ishimaru[at]kaspersky.com
kazumi.ishibuchi.hh[at]hitachi.com