SlideShare a Scribd company logo
1 of 37
Download to read offline
マルウェアを
解析してみよう
三村 聡志 / みむら (@MIMURA1133)
自己紹介
• 三村 聡志 a.k.a. 親方 (@mimura1133)
• Twitter : @mimura1133
• http://mimumimu.net/
• http://www.windowsinternals.moe/
• 普通の大学生やってます。
• CTF 入門者向け勉強会 “CTF for Beginners”
やってます。 ( http://2014.seccon.jp )
• 絶賛就活生(M1) です。
マルウェア解析?
テーマを決めるに当たって
まっちゃさん、今度の江戸前で
「マルウェア解析」って
やっても大丈夫ですか
ええんちゃう、
なんもないで。
解析手法
• 動的解析
• マルウェアを「動」かして解析する方法
• サンドボックス上で動かして眺めたり。
• Keyword: Cuckoo Sandbox, QEMU, etc…
• 静的解析
• マルウェアを動かさずに解析する方法
• 逆アセンブルして眺めたり。
• Keyword: IDA Pro, objdump, 逆アセンブル, etc…
解析準備
解析に必要なもの(今回使用したもの)
• Windows 7 x86, x64 – Service Pack 1
• 環境によって動くモノと動かないモノが出るので合わせる
• IDA Pro 6.7
• Pro 版は買うと世界が広がります。おすすめ。
• VMware Workstation
• 基本的には仮想マシン上で。潤沢なメモリと一緒に。
• 折れない心
• マルウェアの解析とプレゼン作成は昨日の深夜から。
解析をする環境
• 基本的には「仮想マシンの上で」
• 静的解析なら大丈夫?
→ その解析ソフトの脆弱性を突かれたらどうするの
• 何がおすすめ?
• 個人的に楽なのは Microsoft Hyper-V.
• よりもっと入りたいなら QEMU.
• でも VMware Workstation がベター。
解析する環境
• 参考までに・・。私はこんな感じです。
• IDA Pro / Windbg / Ollydbg
• Wireshark / Fiddler
• API Monitor
• MinGW
• MAP
→ なお、CTF4b の実習環境は
私の解析環境の構成がベースで組まれてます。
さぁ解析してみよう
基本的な解析の流れ
• 私の場合は IDA Pro でやってます。
• 静的解析でさっと眺め
(複雑な場合は動的から)
• 動的で詳しいところの挙動をブラックボックス
で見て、静的で追いかける。
基本的な解析の流れ
• 最初は分からないことだらけ
• 分かったときにメモを
書いていく
解析をする場合の注意点
• ネットワークは切りましょう。
• ネットワーク通信して・・というのを観察したい
→ グローバルIP アドレスを別のモノに。空き IP アドレス等を。
• VM 上でやるならば、万全の状態を作った上で
「スナップショット」を作りましょう
• 汚した後、スナップショットに戻して
ネットワークなりが戻ってしまった例をよく見ます・・。
解析をする場合の注意点
• 解析ツールの検知や
VM 検知をするマル
ウェアがあります。
解析をする場合の注意点
• これ以外にも
BIOS の名前を見て
“Oracle”
“Vmware”
“QEMU”
等の文字列を見てい
る事があります。
→ ただ Hyper-V の検知は、ほとんど見ない。
今回使用したもの
今回使用したもの
• 2014年11月25日に発生した
Sony Pictures Entertainment に対して
行われたマルウェアを使用しました。
• 紹介するのは下の4検体
• 760c35a80d758f032d02cf4db12d3e55
• E1864a55d5ccb76af4bf7a0ae16279ba
• b80aa583591eaf758fd95ab4ea7afe39
各検体がどういう動きをするか
• Piyokango さんのまとめが詳しいです。
• http://d.hatena.ne.jp/Kango/20141228/1419787
781
• なぞるのは面白くないと思うので
先ほどのマルウェアを見ながら
面白そうなところだけを見ていきます。
760c35a80d758f032
d02cf4db12d3e55
この検体だけは速度を落としてゆっくりと。
760c35a80d758f032d02cf4db12d3e55
-i, -k, -m, -d, -w が引数として取れる
• -i : 自身をサービスとして登録する
• -k : (サービスとして呼び出された際に実行)
→ サービスとしての main() を実行
→ 自身を taskhost??.exe としてコピーし
それらを –w, -m, -d を付けてそれぞれ起動
→ かつ MSExchangeIS サービスを停止する
760c35a80d758f032d02cf4db12d3e55
• -w : usbdrbv32.sys を産み落として MBR を消す
• -d : (ハードディスクをワイプするらしいですが)
該当部分の実装がないので、何もせず
• -m : iissvr.exe を産み落として実行(後述)
→ termservice も止める
760c35a80d758f032d02cf4db12d3e55
• コードは簡単に strings 等で特定出来ないよう
になっている
• これ、何がしたいか分かりますか?
760c35a80d758f032d02cf4db12d3e55
• 面白そうなところ
• 今のユーザ権限でシャットダウンできるかどうかを
ちゃんと判断して処理している
760c35a80d758f032d02cf4db12d3e55
• 面白そうなところ
• ブートセクタをちゃんと読む処理がある(ライブラリ使用か)
760c35a80d758f032d02cf4db12d3e55
• 面白そうなところ
• こいつ・・・もしかして Windows 9x 対応か・・
b80aa583591eaf758
fd95ab4ea7afe39
b80aa583591eaf758fd95ab4ea7afe39
• 基本的には
760c35a80d758f032d02cf4db12d3e55
と近いコード(1つめの検体)
• -n : 壁紙を書き換える
b80aa583591eaf758fd95ab4ea7afe39
• 壁紙の変更まで・・
• 別スレッドを作って 0x493E0 分 Sleep
→その後
壁紙変更
b80aa583591eaf758fd95ab4ea7afe39
• Sleep(0x493E0)?
→ 300,000 ms.
→ 300 sec.
→ 5 minutes.
その後、自身のリソースから walls.bmp を作り、
SystemParametersInfoW を使って
壁紙を変更する。
E1864a55d5ccb76af
4bf7a0ae16279ba
E1864a55d5ccb76af4bf7a0ae16279ba
• iissvr.exe という名前で実行
• TCP 2332 でバックドアとして動作
• ブラウザに警告のページを出す
家に帰って
解析したい人へ
家に帰って解析したい人へ
• VirusTotal にモノは上がってます。
• MD5 の値で照合可能
• ネットワークに繋いだ状態でやると
何がおきるか分からないのでご注意を。
• このマルウェアではないですが、
VirusShare とかでもマルウェアは手に入ります
• http://virusshare.com/
マルウェアを
解析してみよう
三村 聡志 / みむら (@MIMURA1133)
ささやかな宣伝
宣伝
• CTF for Beginners やりまぁす!
• CTF for ビギナーズ2015横浜 with mochigoma-
Beginners(2月15日)
• CTF for Beginners 2015 in Hiroshima
(2月21日)
• 横浜の募集は月曜日から開始する予定です。
• http://2014.seccon.jp/

More Related Content

What's hot

What's hot (20)

ダークネットのはなし #ssmjp
ダークネットのはなし #ssmjpダークネットのはなし #ssmjp
ダークネットのはなし #ssmjp
 
工学系大学4年生のための論文の読み方
工学系大学4年生のための論文の読み方工学系大学4年生のための論文の読み方
工学系大学4年生のための論文の読み方
 
CpawCTF 勉強会 Network
CpawCTF 勉強会 NetworkCpawCTF 勉強会 Network
CpawCTF 勉強会 Network
 
Pietのエディタを作った話
Pietのエディタを作った話Pietのエディタを作った話
Pietのエディタを作った話
 
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点
 
MCC CTF講習会 pwn編
MCC CTF講習会 pwn編MCC CTF講習会 pwn編
MCC CTF講習会 pwn編
 
はじめてのPRD
はじめてのPRDはじめてのPRD
はじめてのPRD
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
 
katagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Cryptokatagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Crypto
 
正しいものを正しくつくる
正しいものを正しくつくる正しいものを正しくつくる
正しいものを正しくつくる
 
WayOfNoTrouble.pptx
WayOfNoTrouble.pptxWayOfNoTrouble.pptx
WayOfNoTrouble.pptx
 
Vertex AI Pipelinesで BigQuery MLのワークフローを管理 (ETL ~ デプロイまで)
Vertex AI Pipelinesで BigQuery MLのワークフローを管理 (ETL ~ デプロイまで)Vertex AI Pipelinesで BigQuery MLのワークフローを管理 (ETL ~ デプロイまで)
Vertex AI Pipelinesで BigQuery MLのワークフローを管理 (ETL ~ デプロイまで)
 
自動でバグを見つける!プログラム解析と動的バイナリ計装
自動でバグを見つける!プログラム解析と動的バイナリ計装自動でバグを見つける!プログラム解析と動的バイナリ計装
自動でバグを見つける!プログラム解析と動的バイナリ計装
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料
 
セキュリティを楽しむ(CTFとbugbountyの始め方)
セキュリティを楽しむ(CTFとbugbountyの始め方)セキュリティを楽しむ(CTFとbugbountyの始め方)
セキュリティを楽しむ(CTFとbugbountyの始め方)
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
 
Digitaltransformation Journey
Digitaltransformation JourneyDigitaltransformation Journey
Digitaltransformation Journey
 
CVE、JVN番号の取得経験者になろう!
CVE、JVN番号の取得経験者になろう!CVE、JVN番号の取得経験者になろう!
CVE、JVN番号の取得経験者になろう!
 
コンピュータフォレンジックにちょっとだけ触れてみる
コンピュータフォレンジックにちょっとだけ触れてみるコンピュータフォレンジックにちょっとだけ触れてみる
コンピュータフォレンジックにちょっとだけ触れてみる
 

Viewers also liked

[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい
[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい
[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい
CODE BLUE
 
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
CODE BLUE
 
マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜
マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜
マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜
Saya Katafuchi
 
Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策
Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策
Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策
wintechq
 
[CB16] Keynote: How much security is too much? by Karsten Nohl
[CB16] Keynote: How much security is too much? by Karsten Nohl[CB16] Keynote: How much security is too much? by Karsten Nohl
[CB16] Keynote: How much security is too much? by Karsten Nohl
CODE BLUE
 
[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl
[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl
[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl
CODE BLUE
 
[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...
[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...
[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...
CODE BLUE
 

Viewers also liked (14)

Can We Prevent Use-after-free Attacks?
Can We Prevent Use-after-free Attacks?Can We Prevent Use-after-free Attacks?
Can We Prevent Use-after-free Attacks?
 
[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい
[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい
[CB16] EXOTIC DATA RECOVERY & PARADAIS by しもがいとだい
 
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
 
第3回長崎デジタルコンテストLT『リバースエンジニアリング入門』
第3回長崎デジタルコンテストLT『リバースエンジニアリング入門』第3回長崎デジタルコンテストLT『リバースエンジニアリング入門』
第3回長崎デジタルコンテストLT『リバースエンジニアリング入門』
 
第一回バイナリゆるゆる勉強会スライド
第一回バイナリゆるゆる勉強会スライド第一回バイナリゆるゆる勉強会スライド
第一回バイナリゆるゆる勉強会スライド
 
Azureで始めるDevOps
Azureで始めるDevOpsAzureで始めるDevOps
Azureで始めるDevOps
 
マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜
マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜
マルウェア解析講座そのいち〜仮想環境下では暴れないけど質問ある?〜
 
Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策
Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策
Microsoft Antimalware for Azure による Azure 仮想マシンの簡易的なマルウェア対策
 
[CB16] Keynote: How much security is too much? by Karsten Nohl
[CB16] Keynote: How much security is too much? by Karsten Nohl[CB16] Keynote: How much security is too much? by Karsten Nohl
[CB16] Keynote: How much security is too much? by Karsten Nohl
 
Elastic{on}オープンな世界へようこそ
Elastic{on}オープンな世界へようこそElastic{on}オープンな世界へようこそ
Elastic{on}オープンな世界へようこそ
 
[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl
[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl
[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl
 
[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...
[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...
[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...
 
Elastic stack 世界にさらしたサーバを可視化してみた
Elastic stack 世界にさらしたサーバを可視化してみたElastic stack 世界にさらしたサーバを可視化してみた
Elastic stack 世界にさらしたサーバを可視化してみた
 
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
 

More from Satoshi Mimura

アプリ作者と Windows XP
アプリ作者と Windows XPアプリ作者と Windows XP
アプリ作者と Windows XP
Satoshi Mimura
 
Iron python と c sharp
Iron python と c sharpIron python と c sharp
Iron python と c sharp
Satoshi Mimura
 

More from Satoshi Mimura (13)

Inside wsl
Inside wslInside wsl
Inside wsl
 
Inside wsl
Inside wslInside wsl
Inside wsl
 
おうちで簡単ハードウェアセキュリティ
おうちで簡単ハードウェアセキュリティおうちで簡単ハードウェアセキュリティ
おうちで簡単ハードウェアセキュリティ
 
某Ctf にて writeup
某Ctf にて writeup某Ctf にて writeup
某Ctf にて writeup
 
Visual Studio で TeX 編集
Visual Studio で TeX 編集Visual Studio で TeX 編集
Visual Studio で TeX 編集
 
3本指ジェスチャでの 仮想デスクトップ機能を Windows に実装した話
3本指ジェスチャでの仮想デスクトップ機能を Windows に実装した話3本指ジェスチャでの仮想デスクトップ機能を Windows に実装した話
3本指ジェスチャでの 仮想デスクトップ機能を Windows に実装した話
 
WHAT_A_KERNEL_IRQL
WHAT_A_KERNEL_IRQLWHAT_A_KERNEL_IRQL
WHAT_A_KERNEL_IRQL
 
アプリ作者と Windows XP
アプリ作者と Windows XPアプリ作者と Windows XP
アプリ作者と Windows XP
 
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
 
マシン語によるコード実行
マシン語によるコード実行マシン語によるコード実行
マシン語によるコード実行
 
Iron python と c sharp
Iron python と c sharpIron python と c sharp
Iron python と c sharp
 
Unix と windows 世界の融合
Unix と windows 世界の融合Unix と windows 世界の融合
Unix と windows 世界の融合
 
Windows Phone 7 と XNA の世界
Windows Phone 7 と XNA の世界Windows Phone 7 と XNA の世界
Windows Phone 7 と XNA の世界
 

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