OUTSMARTING
SMARTPHONE
APPS
Takahiro Yoshimura (@alterakey)

Ken-ya Yoshimura (@ad3liae)
filed by Tengrain on flickr, CC-BY-NC 2.0
WHO WE ARE
➤ 吉村 賢哉(@ad3liae)

https://keybase.io/ad3liae
➤ 吉村 孝広(@alterakey)

https://keybase.io/alterakey
➤ Monolith Works Inc.

Founder/Co-founder
WHAT WE DO
➤ Security research and development
➤ iOS/Android Apps

→Financial, Games, IoT related,
etc. (>200)

→trueseeing: Non-decompiling
Android Application Vulnerability
Scanner [2017]
➤ Windows/Mac/Web/HTML5 Apps

→POS, RAD tools etc.
➤ Network/Web penetration testing

→PCI-DSS etc.
➤ Search engine reconnaissance

(aka. Google Hacking)
➤ Whitebox testing
➤ Forensic analysis
WHAT WE DO
➤ CTF
➤ Enemy10, Sutegoma2
➤ METI CTFCJ 2012 Qual.: 優
勝
➤ METI CTFCJ 2012: 3位
➤ DEF CON 21 CTF: 6位
➤ DEF CON 22 OpenCTF: 4位
➤ 講演:

DEF CON 25 Demo Labs

CODE BLUE 2017 etc.
DEFCON 2016 by Wiyre Media on flickr, CC-BY 2.0
DEVELOPERS OFTEN VIEW...
➤ Storage
➤ 専用の領域
➤ 暗号化すれば万全
➤ Keychain
➤ 究極のセキュアストレージ
➤ TLS
➤ セキュアなチャネル
摩周湖 by Sendai Blog on flickr, CC-BY 2.0
DEVELOPERS OFTEN VIEW...
➤ WebView
➤ 簡単なUI実現手段
➤ XSSには注意
➤ API
➤ アプリ専用
➤ IPC (URL scheme etc.)
➤ パートナーが叩くもの
➤ Binary
➤ 改竄不能
摩周湖 by Sendai Blog on flickr, CC-BY 2.0
FACT: STORAGE
For the Record by Nimfolb on flickr, CC-BY-NC 2.0
STORAGE
➤ 汚染・解読
➤ バックアップ攻撃
➤ 暗号系への攻撃
➤ 固定キーの解析
➤ 既知平文攻撃
➤ bruteforce攻撃
garbage faggot wedding by jes on flickr, CC-BY-SA 2.0
BACKUP ATTACK
➤ 端末を保持する攻撃者が実行
➤ バックアップを通してデータ
を窃取改竄する攻撃
➤ Android:

adb

Android Backup Extracter
➤ iOS:

Xcode

iMazing 2 etc.
STATIC KEY ANALYSIS
➤ 対象のバイナリを持つ攻撃者
が実行
➤ 対象が使用する暗号系および
キーを割出し、暗号文の盗聴
改竄を行なう攻撃
➤ Android:

trueseeing

CFR / lilac

Radare2

IDA
➤ iOS:

IDA
CHOSEN-PLAINTEXT ATTACK
➤ 暗号文を傍受でき、かつ任意
の平文を暗号系に渡せる攻撃
者が実行
➤ 暗号系に対する、既知の平文
と暗号文の関連を利用する攻
撃一般
➤ 主にECBモード暗号系の解読
に使用
➤ Python: pycryptodome
Máquina Enigma by Leandro Neumann Ciuffo on flickr, CC-BY 2.0
CONFINED BRUTEFORCE
➤ 暗号文を傍受できる攻撃者が
実行
➤ キー生成ロジックにおけるエ
ントロピー不足を利用し、キー
を推測
➤ Python: pycryptodome
No lock 2 by Jens Eilers Bischoff on flickr, CC-BY 2.0
FACT: KEYCHAINS
For the Record by Nimfolb on flickr, CC-BY-NC 2.0
KEYCHAIN: IOS
➤ 解読
➤ rooted端末の使用
➤ 汚染・解読
➤ re-signing
the ties that bind by jes on flickr, CC-BY-NC-ND 2.0
ROOTED DEVICE
➤ 処理可能な端末を持つ攻撃者
が実行
➤ 端末の管理権限を奪取するこ
とでセキュリティ機構を無効
化する攻撃
➤ iOS:

いわゆる “jailbreak”
RE-SIGNING
➤ バイナリを持つ攻撃者が実行
➤ 署名を置換し、メタデータお
よびバイナリ自体への改竄を
行なう攻撃
➤ 管轄グループを置換し
keychainの盗聴改竄を行なう
➤ iOS:

resigner
RE-SIGNING
➤ 署名の置換…
➤ Provisioning Profileも当然置換
➤ 動作可能端末の制約を無視!
➤ In-house Distribution Profiles
も使用可
RE-SIGNING
➤ ところで:

対象をひそかに置換すると…
➤ データは消える
➤ 更新が止まる
➤ push通知が止まる

→普段なければ気づけない!
➤ 攻撃者が後から不正なdumper
を導入することでkeychainの
内容を窃取改竄可能
FACT: TLS
For the Record by Nimfolb on flickr, CC-BY-NC 2.0
TRANSPORT LAYER SECURITY
➤ 傍受・改竄
➤ TLS interception
➤ rooted端末の使用
https by Sean MacEntee on flickr, CC-BY 2.0
TLS INTERCEPTION
➤ 端末を持つ攻撃者が実行
➤ 証明書ストアへ証明書を導入、
信頼させてTLS通信を傍受改竄
する攻撃
➤ mitmproxy

Burp Suite*
➤ Android:

trueseeing

※暗黙的pinningの突破 (> 23)
➤ iOS:

Apple Configurator 2
ROOTED DEVICE
➤ 処理可能な端末を持つ攻撃者
が実行
➤ 端末の管理権限を奪取後、TLS
証明書検証機構を全体的に無
効化する攻撃
➤ iOS:

SSL Kill Switch 2
FACT: WEBVIEW
For the Record by Nimfolb on flickr, CC-BY-NC 2.0
WEBVIEW
➤ 汚染
➤ TLS interception

→省略
➤ DNS cache poisoning
➤ ARP cache poisoning
➤ Evil twin
➤ deauth/switch
➤ 認証情報・履歴奪取
➤ Web storage scavenging
UBC - default webview coding in progress by James Cridland on flickr, CC-BY 2.0
DNS CACHE POISONING
➤ 同一ネットワークに存在する
攻撃者が実行
➤ DNS resolverへの返答を偽造
しresolverのキャッシュを汚染
する攻撃
➤ ettercap
ARP CACHE POISONING
➤ 同一ネットワークに存在する
攻撃者が実行
➤ ARP返答を偽造しキャッシュ
を汚染する攻撃
➤ ettercap
EVIL TWIN
➤ 近接する攻撃者が実行
➤ 類似したSSIDを持つAPを立て
ユーザを混乱させることで接
続させる攻撃
➤ AP一般
DEAUTH/SWITCH
➤ 十分に近接した攻撃者が実行
➤ 同一設定を持つAPを立てた
後、正規APへの接続を強制切
断することによって誘導する
攻撃
➤ aircrack-ng
WEB STORAGE SCAVENGING
➤ 端末を保持する攻撃者が実行
➤ Cookie Store/storageのバック
アップから認証情報や履歴を
奪取する攻撃
➤ バックアップ攻撃の一種
➤ Android:

adb

Android Backup Extracter
➤ iOS:

Xcode

iMazing 2 etc.
FACT: API
For the Record by Nimfolb on flickr, CC-BY-NC 2.0
API
➤ 傍受・改竄
➤ TLS interception

→省略
➤ 認証情報奪取
➤ 固定キーの解析

→省略
API by SimonOx on flickr, CC-BY 2.0
FACT: BINARY
For the Record by Nimfolb on flickr, CC-BY-NC 2.0
BINARY
➤ 改竄
➤ re-signing
➤ 解析
➤ 静的解析
➤ 動的解析
Bitscuits by Barnet LIvingston on flickr, CC-BY-SA 2.0
RE-SIGNING
➤ バイナリを持つ攻撃者が実行
➤ 署名の置換によりメタデータ
およびバイナリ自体を改竄す
る攻撃
➤ Android:

trueseeing

lilac
➤ iOS:

resigner
STATIC ANALYSIS
➤ バイナリを持つ攻撃者が実行
➤ 可読化することで機密情報奪取
や内部状態解析を行なう攻撃
➤ Android:

trueseeing

dex2jar / CFR

apktool / lilac

Radare2

IDA
➤ iOS:

Radare2

IDA

llvm-dis
DYNAMIC ANALYSIS
➤ バイナリを改竄できる攻撃者
が実行
➤ 改竄してデバッグ支援機構を
使用することで内部状態解析
やアクセス制御突破を行なう
攻撃
➤ Android:

trueseeing

frida
➤ iOS:

frida

cycript
OTHER FACTS
Files by Takashi Toyooka on flickr, CC-BY-NC 2.0
USER INTERACTION
➤ 自動化
➤ UIテスト機構
AUTOMATIC INTERACTION
➤ adb接続できる攻撃者が実行
➤ ユーザ操作を自動化する攻撃
➤ Android:

adb
FORENSIC ANALYSIS
➤ 機密情報窃取・暗号解読
➤ memory dump
Forensics Investigator Cake by Copy Cake Bakery on flickr, CC-BY-NC-ND 2.0
MEMORY DUMP
➤ 不正端末で対象を動作させら
れる攻撃者が実行
➤ 対象のメモリイメージを取得
し、内部状態を包括的に把握
する攻撃
➤ Android:

Android Emulator

“rooted” devices
➤ iOS:

iOS Simulator

“jailbroken” devices

clutch
.. SO?
Amy & Roger’s Photo Booth by ESL Photography & Design on flickr, CC-BY-NC-ND 2.0
TAKEAWAYS
➤ 脅威モデルの再考を
➤ 悪意あるユーザ
➤ 端末一時所有は難しくない

→スクリーンロック
➤ 不正端末

→SafetyNet (Android)
➤ バックアップ攻撃

→バックアップの禁止を

→iOS 10未満はサポートしない

→重要情報はKeychainへ

→キャッシュ制御を徹底
The Farewell Forest by Michael Shaheen on flickr, CC-BY-NC-ND 2.0
TAKEAWAYS
➤ 脅威モデルの再考を
➤ TLS interception/平文通信

→整合性侵害が本質的問題

→Certificate Pinning
➤ WebViewからのPhishing

→出所か整合性担保が鍵

→Hybrid Appsは特に注意

→ATSの使用

→HPKP/HSTSの使用

→キャッシュ制御を徹底
The Farewell Forest by Michael Shaheen on flickr, CC-BY-NC-ND 2.0
TAKEAWAYS
➤ 脅威モデルの再考を
➤ 改竄/静的解析/動的解析

→改竄検知+難読化

→ログ出力の徹底的な削除

→キーは埋め込まない

→機密のライフタイム管理
徹底
➤ UI操作の自動化

→PINなどもロックアウト
が必要
The Farewell Forest by Michael Shaheen on flickr, CC-BY-NC-ND 2.0
QUESTIONS?
FIN.
Monolith Works Inc.

26.7.2018

Outsmarting Smartphone Apps