SlideShare une entreprise Scribd logo
1  sur  55
Télécharger pour lire hors ligne
TRUESEEING:
EFFECTIVE
DATAFLOW ANALYSIS
OVER DALVIK
OPCODES
Takahiro / Ken-ya Yoshimura
(@alterakey / @ad3liae)
WHO WE ARE
➤ 吉村 孝広 (@alterakey)
➤ 株式会社モノリスワークスCTO
➤ Keybase: 

https://keybase.io/alterakey
➤ 吉村 賢哉(@ad3liae)
➤ 株式会社モノリスワークスCEO
➤ Keybase:

https://keybase.io/ad3liae

➤ 株式会社モノリスワークスとは?

http://monolithworks.co.jp/

➤ 講演: DEF CON 25 Demo Labs
WHAT WE DO
➤ alterakey
➤ Security Researcher
➤ iOS/Android
➤ Network pentesting
➤ ad3liae
➤ Security Researcher
➤ iOS/Android
FINDING VULNERABILITIES
➤ 静的解析
➤ 対象のバイナリを解析して挙動を推定
➤ データフローの解析が重要
➤ 動的解析
➤ 対象を実際に動作させて挙動を観測
PROBLEMS
➤ 難読化
➤ 手法として定着
➤ 逆コンパイラを阻害
➤ 動的解析は…?
➤ 許可がない場合も多々 :(

RELATED WORKS
➤ 複数の逆コンパイラを併用

(QARK et al.)
➤ 速度の問題: さらに低下
➤ 信頼性の問題

➤ 実のところ、単なる併用では答にならな
いと感じている…
WHY IS DECOMPILING HARD?
➤ 逆コンパイラの動作には何が必要なのか…
➤ 正確な逆アセンブル結果
➤ ある種の共通コードパターン

(e.g. function prologue/epilogue)
➤ 難読化ツールはこれらを妨害
GO DIRECT
➤ Trueseeing
➤ 機能
➤ データフロー解析
➤ 定数や型のゆるい推論
➤ マニフェスト分析
➤ 逆コンパイラを使用しない
➤ 速度向上
➤ 頑健性向上
➤ D8にも対応
➤ PyPIからすぐに使える!
DISASSEMBLING
➤ ツールチェイン
➤ apktool
➤ SQLite3 DB
MARKING UP
➤ 解釈
➤ 通常指令 (op)
➤ メタ指令
➤ .class / .method
➤ .implements / .super etc.
➤ アノテーション類
➤ マーク
➤ メソッド
➤ クラス
GO FASTER
➤ コードベースをマップする
➤ 定数
➤ 関数呼び出し
➤ sput (static put)
➤ iput (instance put)
➤ 名前類 (メソッド, クラス)
➤ クラス群の関係性
➤ 今ごろなぜSQL?

— 複雑なクエリを効率良く実行
➤ DBに「考えさせる」設計
DATAFLOW TRACING (1)
➤ Lenient Backtracking
➤ 「関心点」から引数まで
➤ 関心点が何らかの定数に帰着させられ
ないか追跡

(関心点を「解く」)
➤ 関心点の例
➤ API呼び出しの引数 etc.
➤ レジスタの参照/書込を対応
➤ move*, const*
DATAFLOW TRACING (2)
➤ Call tracing
➤ 引数から呼び出し元へ
➤ Call stackの上位へ波及
➤ p*の特殊な取扱い
➤ 正しくない場合もある
➤ R8がp*を積極的に再利用する例
➤ WIP, 近日対処
DATAFLOW TRACING (3)
➤ Static trace
➤ sget/sputを対応
➤ sputを解く
DATAFLOW TRACING (4)
➤ Instansic trace
➤ iget/iputを対応
➤ インスタンス同一性無視

(WIP)
➤ iputを解く
PATCH AND TIDY
➤ コードベースの部分更新
➤ 逆アセンブル
➤ コードベース/DBのパッチ
➤ 再アセンブル
BINARY PATCHING
➤ Removing (in smali)
➤ insnの削除
➤ DBのパッチ
AS AN EXPLOITATION TOOL
➤ デバッグ有効化
➤ フルバックアップ有効化
➤ 署名の置き換え
➤ TLS un-pinning (WIP)
REPORTING
➤ 脆弱性をスコア付けして評価
➤ HTML形式: 読みやすく詳細なレポート
➤ Text形式: CI-friendlyなレポート
SCORING VULNERABILITIES
➤ CVSS 3.0 Temporal
➤ プロファイルによる評価調整
➤ 脆弱性クラスごとの重要性
REPORTING IN HTML
➤ 詳細かつ明解なレポート
➤ Summary
➤ Description
➤ Solution
➤ Risk Factor
➤ CVSS score
➤ Instances
➤ 人間向け
REPORTING IN TEXT
➤ gcc-like
➤ CI系など向け
➤ Continuous security

(継続的セキュリティ)
CAPABILITY
➤ OWASP Mobile Top 10 (2016)の

ほぼ全域をカバー
➤ M1: Improper Platform Usage
➤ M2: Insecure Data Storage
➤ M3: Insecure Communication
➤ M4: Insecure Authentication
➤ M5: Insufficient Cryptography
➤ M6: Insecure Authorization
➤ M7: Client Code Quality Issues
➤ M8: Code Tampering
➤ M9: Reverse Engineering
➤ M10: Extraneous Functionality
CASE STUDY
➤ #1: InsecureBankV2

(DEFCON 25)
➤ #2: クレジットカードアプリ
➤ #3: 温泉ガイドアプリ
paper stack 1 SQ SEPIA 500X by wintersoul1 on flickr, CC-BY-NC-ND 2.0
CASE STUDY #1
➤ InsecureBankV2 (難読化版)
➤ DEF CON 25で発表
➤ 優秀な’hack-me’型問題
➤ もともと難読化されていない
➤ 以下のルールを元に難読化

“proguard-android-optimize”
➤ パス増加: 5→8
➤ 全ての最適化を許可

(i.e. HV class merging etc.)
M1: IMPROPER PLATFORM USAGE
➤ 安全でないBroadcastReceiver
➤ privateに見えるaction name
➤ フルバックアップ可能
M3: INSECURE COMMUNICATION
➤ TLS interception
➤ Certificate pinningの未実施
M5: INSUFFICIENT CRYPTOGRAPHY
➤ 固定パラメータによる暗号系の使用
CASE STUDY #2
➤ 中国向けクレジットカードアプリ
➤ 現在日本では入手不能

(地理的制約が適用された?)
➤ 公開β中に発見
➤ 面白い対象
➤ 機微情報の取扱い
➤ 大量の個人情報
M1: IMPROPER PLATFORM USAGE
➤ 大量のプライバシー懸念
➤ 大量のパーミッション宣言
M2: INSECURE STORAGE
➤ world-readableなファイル作成
➤ 大量のログ出力
➤ よくある脆弱性
M3: INSECURE COMMUNICATION
➤ 平文http通信を強く示唆
➤ 位置情報を送信?
M5: INSUFFICIENT CRYPTOGRAPHY
➤ 固定パラメータによる暗号系の使用
M8: CODE TAMPERING
➤ 公開鍵の埋め込み
➤ これを置き換えたらどうなる?
CASE STUDY #3
➤ 温泉ガイド
➤ Target API > 3
M7: CLIENT CODE QUALITY
➤ addJavascriptInterface()によるカスタムJS
インターフェースの使用
➤ APIレベル17未満ではカスタムJSインター
フェースがarbitrary OS command
executionへexploitできる可能性
➤ 条件:
➤ コンテンツのコントロール
➤ 対象あるいは環境のAPIレベルが17未
満
GO FURTHER
➤ 展望・TBD類
➤ バイナリパッチモードの強化
➤ 正確性の向上
➤ シグニチャの追加
➤ exploitationの追加
➤ ARMコード解析
➤ MSILコード解析
➤ iOSサポート
➤ シンボリック実行の使用
➤ 自動的な動的解析
摩周湖 by Sendai Blog on flickr, CC-BY 2.0
FURTHER BINARY PATCHING
➤ Status: ほぼdone (近くPR)
➤ Introducing variable (in smali)
➤ ローカルレジスタの確保
➤ 定数の割り当て
➤ 対象引数の置き換え
➤ DBのパッチ
➤ Introducing function (in smali)
➤ 関数をテンプレートから導入
➤ 呼び出しの導入
➤ DBのパッチ
➤ 自動修復機能の強化に必須
FURTHER ACCURACY
➤ Status: ほぼdone (近くPR)
➤ storageのゾーニング

(e.g. 外部=insecureなど)
➤ 必要な引数のみを解析
➤ APIの選択的なemulation

(e.g. StringBuilderなど)
➤ TLS pinningパターンの追加
➤ 確度の慎重な評価
FURTHER SIGNATURES
➤ Status: WIP
➤ HTTP parameter injection
➤ Path traversal
➤ Client-side XSS/SQLi
➤ 脆弱な暗号系の使用
➤ rooted端末の不完全な検出
➤ 機微情報の疑わしい使用
➤ Taint解析
➤ File I/O
➤ Network I/O
FURTHER EXPLOITS
➤ Status: WIP
➤ TLS pinningの解除
➤ フラグ制御型ログの強制出力
➤ 発見した問題のexploit作成
➤ API仕様の解析?
ARM CODE ANALYSIS
➤ Status: WIP
➤ ネイティブコード解析
➤ 検討: radare2 (r2)+VEX IR
➤ 問題:
➤ r2: 時間がかかる
➤ r2: ファイル全体の逆アセンブルができ
ない?

(cf. IDAでのProduce File)
MSIL CODE ANALYSIS
➤ Status: WIP
➤ 主にUnityベースの古いアプリを対象
(Mono)
➤ 検討: CoreCLR
IOS
➤ Status: WIP
➤ Swift, Objective-C, bitcodeによるバイナ
リの解析
➤ 検討: radare2+VEX IR+LLVM tools
➤ 問題: 

ARMコード解析と同様
TRUE SYMBOLIC EXEC.
➤ Status: 研究中
➤ シンボリック実行によって
➤ 順方向解析できる
➤ 到達可能性の評価ができる
➤ すると…
➤ コードの部分評価ができる

(e.g. 変換を解析したり)
➤ 正確性の向上
➤ 高度な難読化ツールへの耐性
➤ 検討: VEX IR
AUTOMATIC DYNAMIC ANALYSIS
➤ Status: 研究中
➤ MobSFのようなもの
CONCLUSION
➤ Trueseeingの特徴は…
➤ 速い
➤ 正確
➤ 使いやすい
➤ 自由が確約されている
IMG_2988s by 不憂照相館 on flickr, CC-BY-NC-ND 2.0
FAST
➤ 逆コンパイラを一切使わない
➤ SQLによる高速な分析
➤ 複雑なクエリの処理が得意
ACCURATE (1)
➤ Dalvikコードから直接データフローを解
析
➤ Lenient Backtracking
➤ Call stack tracing
➤ Static tracing
➤ Instansic tracing
ACCURATE (2)
➤ アプリが難読化されていても影響を受けずに解析
できる
➤ M1: 不適切なCP/BRの公開, プライバシーの懸
念, 有効なdebug/backupビット etc.
➤ M2: 安全でないファイルパーミッション, ログ
出力がある問題 etc.
➤ M3: 平文通信, TLS non-pinning etc.
➤ M5: 固定パラメータによる暗号系の使用 etc.
➤ M7: WebView関連の脆弱性 etc.
➤ M8: 公開鍵が埋め込まれている問題 etc.
➤ M9: 難読化の欠如
INTUITIVE
➤ 分かりやすく詳細なレポート
➤ HTML: 人間向け
➤ Text: CI向け
➤ Continuous security

(継続的セキュリティ)
FREE AS FREEDOM
➤ GPL-3
➤ https://github.com/monolithworks/
trueseeing
➤ 永久に自由
➤ 改修やシグニチャを今後拡充
➤ 便利なだけでなく不可欠な存在を目指し
て
Freedom by Mochamad Arief on flickr, CC-BY-NC-ND 2.0
QUESTIONS?
BRING YOUR APK!
FIN.
9.11.2017 Monolith Works Inc.

Contenu connexe

Tendances

[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin LongCODE BLUE
 
Androsia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワル
Androsia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワルAndrosia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワル
Androsia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワルCODE BLUE
 
Shusei tomonaga pac_sec_20171026_jp
Shusei tomonaga pac_sec_20171026_jpShusei tomonaga pac_sec_20171026_jp
Shusei tomonaga pac_sec_20171026_jpPacSecJP
 
10分で作るクラスライブラリ
10分で作るクラスライブラリ10分で作るクラスライブラリ
10分で作るクラスライブラリ_norin_
 
ConfD で Linux にNetconfを喋らせてみた
ConfD で Linux にNetconfを喋らせてみたConfD で Linux にNetconfを喋らせてみた
ConfD で Linux にNetconfを喋らせてみたAkira Iwamoto
 
How to apt-get from the internal network: remote sshd with kneesocks
How to apt-get from the internal network: remote sshd with kneesocksHow to apt-get from the internal network: remote sshd with kneesocks
How to apt-get from the internal network: remote sshd with kneesocksinaz2
 
RHELのEOLがCentOSに及ぼす影響
RHELのEOLがCentOSに及ぼす影響RHELのEOLがCentOSに及ぼす影響
RHELのEOLがCentOSに及ぼす影響Kazuki Omo
 
大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク
大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク
大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンクCODE BLUE
 
Use JWT access-token on Grails REST API
Use JWT access-token on Grails REST APIUse JWT access-token on Grails REST API
Use JWT access-token on Grails REST APIUehara Junji
 
Hybrid Public Key Encryption (HPKE)
Hybrid Public Key Encryption (HPKE)Hybrid Public Key Encryption (HPKE)
Hybrid Public Key Encryption (HPKE)Jun Kurihara
 
Osc2017 tokyo spring_soss_sig
Osc2017 tokyo spring_soss_sigOsc2017 tokyo spring_soss_sig
Osc2017 tokyo spring_soss_sigKazuki Omo
 
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみたDockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみたnpsg
 
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)inaz2
 
Abusing Interrupts for Reliable Windows Kernel Exploitation (ja)
Abusing Interrupts for Reliable Windows Kernel Exploitation (ja)Abusing Interrupts for Reliable Windows Kernel Exploitation (ja)
Abusing Interrupts for Reliable Windows Kernel Exploitation (ja)inaz2
 
Android デバッグ小ネタ
Android デバッグ小ネタAndroid デバッグ小ネタ
Android デバッグ小ネタl_b__
 
Zynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチZynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチMr. Vengineer
 
Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Tomoya Hibi
 
自動でできるかな?
自動でできるかな?自動でできるかな?
自動でできるかな?_norin_
 
Node-v0.12のTLSを256倍使いこなす方法
Node-v0.12のTLSを256倍使いこなす方法Node-v0.12のTLSを256倍使いこなす方法
Node-v0.12のTLSを256倍使いこなす方法shigeki_ohtsu
 

Tendances (20)

[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
[CB16] マイクロソフトウィンドウズカーネルのデスノート by Peter Hlavaty & Jin Long
 
Androsia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワル
Androsia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワルAndrosia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワル
Androsia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワル
 
Shusei tomonaga pac_sec_20171026_jp
Shusei tomonaga pac_sec_20171026_jpShusei tomonaga pac_sec_20171026_jp
Shusei tomonaga pac_sec_20171026_jp
 
10分で作るクラスライブラリ
10分で作るクラスライブラリ10分で作るクラスライブラリ
10分で作るクラスライブラリ
 
ConfD で Linux にNetconfを喋らせてみた
ConfD で Linux にNetconfを喋らせてみたConfD で Linux にNetconfを喋らせてみた
ConfD で Linux にNetconfを喋らせてみた
 
How to apt-get from the internal network: remote sshd with kneesocks
How to apt-get from the internal network: remote sshd with kneesocksHow to apt-get from the internal network: remote sshd with kneesocks
How to apt-get from the internal network: remote sshd with kneesocks
 
RHELのEOLがCentOSに及ぼす影響
RHELのEOLがCentOSに及ぼす影響RHELのEOLがCentOSに及ぼす影響
RHELのEOLがCentOSに及ぼす影響
 
大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク
大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク
大義のために:趣味と実益のためのVMware RPCインターフェースの活用 by アブドゥル・アジズ・ハリリ, ジャシエル・スペルマン, ブライアン・ゴーレンク
 
Use JWT access-token on Grails REST API
Use JWT access-token on Grails REST APIUse JWT access-token on Grails REST API
Use JWT access-token on Grails REST API
 
Hybrid Public Key Encryption (HPKE)
Hybrid Public Key Encryption (HPKE)Hybrid Public Key Encryption (HPKE)
Hybrid Public Key Encryption (HPKE)
 
Osc2017 tokyo spring_soss_sig
Osc2017 tokyo spring_soss_sigOsc2017 tokyo spring_soss_sig
Osc2017 tokyo spring_soss_sig
 
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみたDockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
 
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
ROP Illmatic: Exploring Universal ROP on glibc x86-64 (ja)
 
Abusing Interrupts for Reliable Windows Kernel Exploitation (ja)
Abusing Interrupts for Reliable Windows Kernel Exploitation (ja)Abusing Interrupts for Reliable Windows Kernel Exploitation (ja)
Abusing Interrupts for Reliable Windows Kernel Exploitation (ja)
 
Android デバッグ小ネタ
Android デバッグ小ネタAndroid デバッグ小ネタ
Android デバッグ小ネタ
 
Zynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチZynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチ
 
Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続Lagopus + DockerのDPDK接続
Lagopus + DockerのDPDK接続
 
Debian OpenSSL valunerability
Debian OpenSSL valunerability Debian OpenSSL valunerability
Debian OpenSSL valunerability
 
自動でできるかな?
自動でできるかな?自動でできるかな?
自動でできるかな?
 
Node-v0.12のTLSを256倍使いこなす方法
Node-v0.12のTLSを256倍使いこなす方法Node-v0.12のTLSを256倍使いこなす方法
Node-v0.12のTLSを256倍使いこなす方法
 

Similaire à [CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes

Drawing Dataflow On Dalvik Bytecodes
Drawing Dataflow On Dalvik Bytecodes Drawing Dataflow On Dalvik Bytecodes
Drawing Dataflow On Dalvik Bytecodes Takahiro Yoshimura
 
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかなぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかSen Ueno
 
サイバーセキュリティ錬金術
サイバーセキュリティ錬金術サイバーセキュリティ錬金術
サイバーセキュリティ錬金術Isao Takaesu
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことKeisuke Nishitani
 
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeNA
 
ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発Junji Imaoka
 
Alteryxの空間分析で学ぶ、最寄りの指定緊急避難場所と低水位地帯 Developers.IO Tokyo 2019
Alteryxの空間分析で学ぶ、最寄りの指定緊急避難場所と低水位地帯 Developers.IO Tokyo 2019Alteryxの空間分析で学ぶ、最寄りの指定緊急避難場所と低水位地帯 Developers.IO Tokyo 2019
Alteryxの空間分析で学ぶ、最寄りの指定緊急避難場所と低水位地帯 Developers.IO Tokyo 2019Yuji Kanemoto
 
NSDI2015読み会 Correctness セッション
NSDI2015読み会 Correctness セッションNSDI2015読み会 Correctness セッション
NSDI2015読み会 Correctness セッションDaisuke Kotani
 
インフラのQA?なにそれ?おいしいの? Meetup in Osaka Ver.
インフラのQA?なにそれ?おいしいの? Meetup in Osaka Ver.インフラのQA?なにそれ?おいしいの? Meetup in Osaka Ver.
インフラのQA?なにそれ?おいしいの? Meetup in Osaka Ver.Mutsumi Kamiike
 
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~Hiroshi Tokumaru
 
Ble android
Ble androidBle android
Ble androidkudo1048
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンKazuyuki Miyake
 
The Shift Left Path and OWASP
The Shift Left Path and OWASPThe Shift Left Path and OWASP
The Shift Left Path and OWASPRiotaro OKADA
 
フォースポイントCASBのご紹介 (2017年11月版)【本資料は古い情報です】
フォースポイントCASBのご紹介 (2017年11月版)【本資料は古い情報です】 フォースポイントCASBのご紹介 (2017年11月版)【本資料は古い情報です】
フォースポイントCASBのご紹介 (2017年11月版)【本資料は古い情報です】 Tomoyoshi Amano
 
SORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのか
SORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのかSORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのか
SORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのかSORACOM,INC
 
jjugccc2018 app review postmortem
jjugccc2018 app review postmortemjjugccc2018 app review postmortem
jjugccc2018 app review postmortemtamtam180
 
Css2014 ruo ando_2014-10-23-01
Css2014 ruo ando_2014-10-23-01Css2014 ruo ando_2014-10-23-01
Css2014 ruo ando_2014-10-23-01Ruo Ando
 
Statically detecting vulnerability under memory pressure using exhaustive search
Statically detecting vulnerability under memory pressure usingexhaustive searchStatically detecting vulnerability under memory pressure usingexhaustive search
Statically detecting vulnerability under memory pressure using exhaustive searchRuo Ando
 

Similaire à [CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes (20)

Drawing Dataflow On Dalvik Bytecodes
Drawing Dataflow On Dalvik Bytecodes Drawing Dataflow On Dalvik Bytecodes
Drawing Dataflow On Dalvik Bytecodes
 
Outsmarting Smartphone Apps 2
Outsmarting Smartphone Apps 2Outsmarting Smartphone Apps 2
Outsmarting Smartphone Apps 2
 
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかなぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
 
サイバーセキュリティ錬金術
サイバーセキュリティ錬金術サイバーセキュリティ錬金術
サイバーセキュリティ錬金術
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
 
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
 
ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発ITpro EXPO 2011 クラウド上での業務アプリ開発
ITpro EXPO 2011 クラウド上での業務アプリ開発
 
Outsmarting Smartphone Apps
Outsmarting Smartphone AppsOutsmarting Smartphone Apps
Outsmarting Smartphone Apps
 
Alteryxの空間分析で学ぶ、最寄りの指定緊急避難場所と低水位地帯 Developers.IO Tokyo 2019
Alteryxの空間分析で学ぶ、最寄りの指定緊急避難場所と低水位地帯 Developers.IO Tokyo 2019Alteryxの空間分析で学ぶ、最寄りの指定緊急避難場所と低水位地帯 Developers.IO Tokyo 2019
Alteryxの空間分析で学ぶ、最寄りの指定緊急避難場所と低水位地帯 Developers.IO Tokyo 2019
 
NSDI2015読み会 Correctness セッション
NSDI2015読み会 Correctness セッションNSDI2015読み会 Correctness セッション
NSDI2015読み会 Correctness セッション
 
インフラのQA?なにそれ?おいしいの? Meetup in Osaka Ver.
インフラのQA?なにそれ?おいしいの? Meetup in Osaka Ver.インフラのQA?なにそれ?おいしいの? Meetup in Osaka Ver.
インフラのQA?なにそれ?おいしいの? Meetup in Osaka Ver.
 
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
 
Ble android
Ble androidBle android
Ble android
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
 
The Shift Left Path and OWASP
The Shift Left Path and OWASPThe Shift Left Path and OWASP
The Shift Left Path and OWASP
 
フォースポイントCASBのご紹介 (2017年11月版)【本資料は古い情報です】
フォースポイントCASBのご紹介 (2017年11月版)【本資料は古い情報です】 フォースポイントCASBのご紹介 (2017年11月版)【本資料は古い情報です】
フォースポイントCASBのご紹介 (2017年11月版)【本資料は古い情報です】
 
SORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのか
SORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのかSORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのか
SORACOM Technology Camp 2018 | B4. 後手に回りがちなIoTセキュリティをどうすべきなのか
 
jjugccc2018 app review postmortem
jjugccc2018 app review postmortemjjugccc2018 app review postmortem
jjugccc2018 app review postmortem
 
Css2014 ruo ando_2014-10-23-01
Css2014 ruo ando_2014-10-23-01Css2014 ruo ando_2014-10-23-01
Css2014 ruo ando_2014-10-23-01
 
Statically detecting vulnerability under memory pressure using exhaustive search
Statically detecting vulnerability under memory pressure usingexhaustive searchStatically detecting vulnerability under memory pressure usingexhaustive search
Statically detecting vulnerability under memory pressure using exhaustive search
 

Plus de 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
 

Plus de 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...
 

[CB17] Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes

  • 1. TRUESEEING: EFFECTIVE DATAFLOW ANALYSIS OVER DALVIK OPCODES Takahiro / Ken-ya Yoshimura (@alterakey / @ad3liae)
  • 2. WHO WE ARE ➤ 吉村 孝広 (@alterakey) ➤ 株式会社モノリスワークスCTO ➤ Keybase: 
 https://keybase.io/alterakey ➤ 吉村 賢哉(@ad3liae) ➤ 株式会社モノリスワークスCEO ➤ Keybase:
 https://keybase.io/ad3liae
 ➤ 株式会社モノリスワークスとは?
 http://monolithworks.co.jp/
 ➤ 講演: DEF CON 25 Demo Labs
  • 3. WHAT WE DO ➤ alterakey ➤ Security Researcher ➤ iOS/Android ➤ Network pentesting ➤ ad3liae ➤ Security Researcher ➤ iOS/Android
  • 4. FINDING VULNERABILITIES ➤ 静的解析 ➤ 対象のバイナリを解析して挙動を推定 ➤ データフローの解析が重要 ➤ 動的解析 ➤ 対象を実際に動作させて挙動を観測
  • 5. PROBLEMS ➤ 難読化 ➤ 手法として定着 ➤ 逆コンパイラを阻害 ➤ 動的解析は…? ➤ 許可がない場合も多々 :(

  • 6. RELATED WORKS ➤ 複数の逆コンパイラを併用
 (QARK et al.) ➤ 速度の問題: さらに低下 ➤ 信頼性の問題
 ➤ 実のところ、単なる併用では答にならな いと感じている…
  • 7. WHY IS DECOMPILING HARD? ➤ 逆コンパイラの動作には何が必要なのか… ➤ 正確な逆アセンブル結果 ➤ ある種の共通コードパターン
 (e.g. function prologue/epilogue) ➤ 難読化ツールはこれらを妨害
  • 8. GO DIRECT ➤ Trueseeing ➤ 機能 ➤ データフロー解析 ➤ 定数や型のゆるい推論 ➤ マニフェスト分析 ➤ 逆コンパイラを使用しない ➤ 速度向上 ➤ 頑健性向上 ➤ D8にも対応 ➤ PyPIからすぐに使える!
  • 10. MARKING UP ➤ 解釈 ➤ 通常指令 (op) ➤ メタ指令 ➤ .class / .method ➤ .implements / .super etc. ➤ アノテーション類 ➤ マーク ➤ メソッド ➤ クラス
  • 11. GO FASTER ➤ コードベースをマップする ➤ 定数 ➤ 関数呼び出し ➤ sput (static put) ➤ iput (instance put) ➤ 名前類 (メソッド, クラス) ➤ クラス群の関係性 ➤ 今ごろなぜSQL?
 — 複雑なクエリを効率良く実行 ➤ DBに「考えさせる」設計
  • 12. DATAFLOW TRACING (1) ➤ Lenient Backtracking ➤ 「関心点」から引数まで ➤ 関心点が何らかの定数に帰着させられ ないか追跡
 (関心点を「解く」) ➤ 関心点の例 ➤ API呼び出しの引数 etc. ➤ レジスタの参照/書込を対応 ➤ move*, const*
  • 13. DATAFLOW TRACING (2) ➤ Call tracing ➤ 引数から呼び出し元へ ➤ Call stackの上位へ波及 ➤ p*の特殊な取扱い ➤ 正しくない場合もある ➤ R8がp*を積極的に再利用する例 ➤ WIP, 近日対処
  • 14. DATAFLOW TRACING (3) ➤ Static trace ➤ sget/sputを対応 ➤ sputを解く
  • 15. DATAFLOW TRACING (4) ➤ Instansic trace ➤ iget/iputを対応 ➤ インスタンス同一性無視
 (WIP) ➤ iputを解く
  • 16. PATCH AND TIDY ➤ コードベースの部分更新 ➤ 逆アセンブル ➤ コードベース/DBのパッチ ➤ 再アセンブル
  • 17. BINARY PATCHING ➤ Removing (in smali) ➤ insnの削除 ➤ DBのパッチ
  • 18. AS AN EXPLOITATION TOOL ➤ デバッグ有効化 ➤ フルバックアップ有効化 ➤ 署名の置き換え ➤ TLS un-pinning (WIP)
  • 19. REPORTING ➤ 脆弱性をスコア付けして評価 ➤ HTML形式: 読みやすく詳細なレポート ➤ Text形式: CI-friendlyなレポート
  • 20. SCORING VULNERABILITIES ➤ CVSS 3.0 Temporal ➤ プロファイルによる評価調整 ➤ 脆弱性クラスごとの重要性
  • 21. REPORTING IN HTML ➤ 詳細かつ明解なレポート ➤ Summary ➤ Description ➤ Solution ➤ Risk Factor ➤ CVSS score ➤ Instances ➤ 人間向け
  • 22. REPORTING IN TEXT ➤ gcc-like ➤ CI系など向け ➤ Continuous security
 (継続的セキュリティ)
  • 23. CAPABILITY ➤ OWASP Mobile Top 10 (2016)の
 ほぼ全域をカバー ➤ M1: Improper Platform Usage ➤ M2: Insecure Data Storage ➤ M3: Insecure Communication ➤ M4: Insecure Authentication ➤ M5: Insufficient Cryptography ➤ M6: Insecure Authorization ➤ M7: Client Code Quality Issues ➤ M8: Code Tampering ➤ M9: Reverse Engineering ➤ M10: Extraneous Functionality
  • 24. CASE STUDY ➤ #1: InsecureBankV2
 (DEFCON 25) ➤ #2: クレジットカードアプリ ➤ #3: 温泉ガイドアプリ paper stack 1 SQ SEPIA 500X by wintersoul1 on flickr, CC-BY-NC-ND 2.0
  • 25. CASE STUDY #1 ➤ InsecureBankV2 (難読化版) ➤ DEF CON 25で発表 ➤ 優秀な’hack-me’型問題 ➤ もともと難読化されていない ➤ 以下のルールを元に難読化
 “proguard-android-optimize” ➤ パス増加: 5→8 ➤ 全ての最適化を許可
 (i.e. HV class merging etc.)
  • 26. M1: IMPROPER PLATFORM USAGE ➤ 安全でないBroadcastReceiver ➤ privateに見えるaction name ➤ フルバックアップ可能
  • 27. M3: INSECURE COMMUNICATION ➤ TLS interception ➤ Certificate pinningの未実施
  • 28. M5: INSUFFICIENT CRYPTOGRAPHY ➤ 固定パラメータによる暗号系の使用
  • 29. CASE STUDY #2 ➤ 中国向けクレジットカードアプリ ➤ 現在日本では入手不能
 (地理的制約が適用された?) ➤ 公開β中に発見 ➤ 面白い対象 ➤ 機微情報の取扱い ➤ 大量の個人情報
  • 30. M1: IMPROPER PLATFORM USAGE ➤ 大量のプライバシー懸念 ➤ 大量のパーミッション宣言
  • 31. M2: INSECURE STORAGE ➤ world-readableなファイル作成 ➤ 大量のログ出力 ➤ よくある脆弱性
  • 32. M3: INSECURE COMMUNICATION ➤ 平文http通信を強く示唆 ➤ 位置情報を送信?
  • 33. M5: INSUFFICIENT CRYPTOGRAPHY ➤ 固定パラメータによる暗号系の使用
  • 34. M8: CODE TAMPERING ➤ 公開鍵の埋め込み ➤ これを置き換えたらどうなる?
  • 35. CASE STUDY #3 ➤ 温泉ガイド ➤ Target API > 3
  • 36. M7: CLIENT CODE QUALITY ➤ addJavascriptInterface()によるカスタムJS インターフェースの使用 ➤ APIレベル17未満ではカスタムJSインター フェースがarbitrary OS command executionへexploitできる可能性 ➤ 条件: ➤ コンテンツのコントロール ➤ 対象あるいは環境のAPIレベルが17未 満
  • 37. GO FURTHER ➤ 展望・TBD類 ➤ バイナリパッチモードの強化 ➤ 正確性の向上 ➤ シグニチャの追加 ➤ exploitationの追加 ➤ ARMコード解析 ➤ MSILコード解析 ➤ iOSサポート ➤ シンボリック実行の使用 ➤ 自動的な動的解析 摩周湖 by Sendai Blog on flickr, CC-BY 2.0
  • 38. FURTHER BINARY PATCHING ➤ Status: ほぼdone (近くPR) ➤ Introducing variable (in smali) ➤ ローカルレジスタの確保 ➤ 定数の割り当て ➤ 対象引数の置き換え ➤ DBのパッチ ➤ Introducing function (in smali) ➤ 関数をテンプレートから導入 ➤ 呼び出しの導入 ➤ DBのパッチ ➤ 自動修復機能の強化に必須
  • 39. FURTHER ACCURACY ➤ Status: ほぼdone (近くPR) ➤ storageのゾーニング
 (e.g. 外部=insecureなど) ➤ 必要な引数のみを解析 ➤ APIの選択的なemulation
 (e.g. StringBuilderなど) ➤ TLS pinningパターンの追加 ➤ 確度の慎重な評価
  • 40. FURTHER SIGNATURES ➤ Status: WIP ➤ HTTP parameter injection ➤ Path traversal ➤ Client-side XSS/SQLi ➤ 脆弱な暗号系の使用 ➤ rooted端末の不完全な検出 ➤ 機微情報の疑わしい使用 ➤ Taint解析 ➤ File I/O ➤ Network I/O
  • 41. FURTHER EXPLOITS ➤ Status: WIP ➤ TLS pinningの解除 ➤ フラグ制御型ログの強制出力 ➤ 発見した問題のexploit作成 ➤ API仕様の解析?
  • 42. ARM CODE ANALYSIS ➤ Status: WIP ➤ ネイティブコード解析 ➤ 検討: radare2 (r2)+VEX IR ➤ 問題: ➤ r2: 時間がかかる ➤ r2: ファイル全体の逆アセンブルができ ない?
 (cf. IDAでのProduce File)
  • 43. MSIL CODE ANALYSIS ➤ Status: WIP ➤ 主にUnityベースの古いアプリを対象 (Mono) ➤ 検討: CoreCLR
  • 44. IOS ➤ Status: WIP ➤ Swift, Objective-C, bitcodeによるバイナ リの解析 ➤ 検討: radare2+VEX IR+LLVM tools ➤ 問題: 
 ARMコード解析と同様
  • 45. TRUE SYMBOLIC EXEC. ➤ Status: 研究中 ➤ シンボリック実行によって ➤ 順方向解析できる ➤ 到達可能性の評価ができる ➤ すると… ➤ コードの部分評価ができる
 (e.g. 変換を解析したり) ➤ 正確性の向上 ➤ 高度な難読化ツールへの耐性 ➤ 検討: VEX IR
  • 46. AUTOMATIC DYNAMIC ANALYSIS ➤ Status: 研究中 ➤ MobSFのようなもの
  • 47. CONCLUSION ➤ Trueseeingの特徴は… ➤ 速い ➤ 正確 ➤ 使いやすい ➤ 自由が確約されている IMG_2988s by 不憂照相館 on flickr, CC-BY-NC-ND 2.0
  • 49. ACCURATE (1) ➤ Dalvikコードから直接データフローを解 析 ➤ Lenient Backtracking ➤ Call stack tracing ➤ Static tracing ➤ Instansic tracing
  • 50. ACCURATE (2) ➤ アプリが難読化されていても影響を受けずに解析 できる ➤ M1: 不適切なCP/BRの公開, プライバシーの懸 念, 有効なdebug/backupビット etc. ➤ M2: 安全でないファイルパーミッション, ログ 出力がある問題 etc. ➤ M3: 平文通信, TLS non-pinning etc. ➤ M5: 固定パラメータによる暗号系の使用 etc. ➤ M7: WebView関連の脆弱性 etc. ➤ M8: 公開鍵が埋め込まれている問題 etc. ➤ M9: 難読化の欠如
  • 51. INTUITIVE ➤ 分かりやすく詳細なレポート ➤ HTML: 人間向け ➤ Text: CI向け ➤ Continuous security
 (継続的セキュリティ)
  • 52. FREE AS FREEDOM ➤ GPL-3 ➤ https://github.com/monolithworks/ trueseeing ➤ 永久に自由 ➤ 改修やシグニチャを今後拡充 ➤ 便利なだけでなく不可欠な存在を目指し て Freedom by Mochamad Arief on flickr, CC-BY-NC-ND 2.0