Upload
takahiro-yoshimura
View
120
Download
6
Embed Size (px)
Citation preview
WHO I AM➤ 吉村 孝広 (@alterakey)
➤ 株式会社モノリスワークスCTO
➤ Keybase: https://keybase.io/alterakey
➤ 講演:
DEF CON 25 Demo LabsCODE BLUE 2017 etc.
ANATOMY OF ANDROID APPLICATIONS➤ Binary XML: Android manifest, layouts, etc.
➤ Dalvik VM executable (DEX)
➤ Dalvik: Register-based virtual machine
➤ 16-bit opcodes, 65536 regs
➤ java classes are fused: 65536 methods max. ← multidex
➤ incompatible opcodes! (isomorphicではあるけど)
REVERSING ANDROID APPLICATIONS➤ Binary XML: apktool
➤ Dalvik VM executable (DEX) ➤ 逆アセンブル
➤ .dex→baksmali (apktool)→.smali
➤ 逆コンパイル: 一般的
➤ .dex→dex2jar→.jar→JD-GUI, jad, et al.→.java.dex→dad→.java
WHY IS DECOMPILING HARD?➤ 逆コンパイラの動作には何が必要なのか…
➤ 正確な逆アセンブル結果
➤ ある種の共通コードパターン
(e.g. function prologue/epilogue) ➤ 難読化ツールはこれらを妨害
GO DIRECT➤ Trueseeing ➤ 機能
➤ データフロー解析
➤ 定数や型のゆるい推論
➤ マニフェスト分析
➤ 逆コンパイラを使用しない
➤ 速度向上
➤ 頑健性向上
➤ D8にも対応
➤ PyPIからすぐに使える!
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/Kotlinがp*を積極的に再利用するなど
VERSATILE➤ 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
INTUITIVE➤ CVSS 3.0 Temporal ➤ 分かりやすく詳細なレポート
➤ HTML: 人間向け
➤ Text: CI向け
➤ Continuous security(継続的セキュリティ)
AS AN EXPLOITATION TOOL➤ Package grabber
➤ Package resigner ➤ デバッグ有効化
➤ フルバックアップ有効化
➤ TLS un-pinning (WIP)
➤ etc.
FREE AS FREEDOM➤ GPL-3
➤ https://github.com/monolithworks/trueseeing
➤ 永久に自由
➤ 改修やシグニチャを今後拡充
➤ 便利なだけでなく不可欠な存在を目指して
Freedom by Mochamad Arief on flickr, CC-BY-NC-ND 2.0