Submit Search
Androidアプリ解析の基礎 公開用
•
Download as PPTX, PDF
•
16 likes
•
11,437 views
Lumin Hacker
Follow
アンドロイドアプリの解析基礎 静的解析と動的解析についての概要 実際の講演では実演有り
Read less
Read more
1 of 22
Download now
Downloaded 55 times
More Related Content
Androidアプリ解析の基礎 公開用
1.
Androidアプリ解析の基礎
(公開用) ネットエージェント株式会社 2013/01/19
2.
アプリ解析の目的について • アプリが勝手に情報を持って行っていた
り、意図しない動作をする現状をアプリ 解析で解決しよう
3.
Androidアプリの解析にあたっ
て • 最低限必要なスキル – Android 4.0以上でアプリを実行してそのアプ リを使いこなす。 • あったらより効率的にできるスキル – Javaが読める – パケットが読める – Androidデバイスの識別子について知っている – AndroidのAPIを熟知している
4.
解析手法の比較 静的解析
動的解析 • 実行せずに構造のみで解析す • 実際に実行して解析する る • メリット • メリット – 真実をつかめる – 機器の外部から取得できる。 – 全て探すことができる。 (パケットキャプチャ) – たまにしか難読化されていない – SSLで暗号化されていても内容が (ProGuardは除く) 分かる – 自動化できるので大量にできる。 – IDで検索可能 • デメリット • デメリット – 事実が出ない – ユーザ登録など自動化出来ない 部分が多い – 実装されているものが利用され – 時間がかかる ていないものも含め全てでる。 – Java scriptは入手する必要がある。
5.
静的解析
6.
静的解析(.apkファイルの取得) • .apkファイルの取得 –
Google Playでダウンロードしてインストールして コピー • パケットキャプチャしたデータから再現 – WiresharkやPacketBlackHoleでやってください。 – http://nttxstore.jp/_II_NA14094679 • ダウンロード専用のプログラムを使う – ダウンロードできるアプリに制限有り – 検索すると出てきます
7.
静的解析の手法(1) • .apkファイルを展開 –
zipファイルなので、zipファイルをそのまま展 開して下さい。 – classes.dexがDalvik仮想マシンの中間コードで す。
8.
静的解析の手法(2) • Android's Java
VM implementation – http://code.google.com/p/smali/ • 中間コードに一対一で展開する場合は baksmaliを利用します。 – 編集してapkファイルを再構成することも可能
9.
静的解析の手法(3) • dalvikからjavaの中間コードに変換する場合は dex2jarを
使います。 – http://code.google.com/p/dex2jar/ • Linuxの場合 – $ dex2jar-0.0.9.8/dex2jar.sh classes.dex • Windowsの場合 – > dex2jar-0.0.9.8/dex2jar.bat classes.dex • 以上で.jarファイルに変換出来ます。 • classes_dex2jar.jarというファイルがあると思います
10.
静的解析の手法(4) • classファイルを見やすくするにはJDが便利
です。 • dex2jarで出てきたファイルをJD-guiにド ロップすると中身が見えます。 • http://java.decompiler.free.fr/?q=jdgui • Eclipseが使える方は、JD-Eclipseでもよいで す。
12.
静的解析の手法(5) • 変数を追っかけるには –
開発環境があると便利です Eclipse+JD-Eclipse+ MarkOccurrence機能 – 危険そうなAPIを比較して何をやっているのか 判断します。 – http://developer.android.com/guide/components /index.html
13.
静的解析の手法(6) • これまでのことを自動でやる方法。 • secroidの評価者モードから解析データをダ
ウンロードします。
14.
動的解析
15.
動的解析の手法 • 実機もしくはエミュレータ環境で実行し
ます。 • 実際の動作を確認する。 • 静的解析の情報から、ここにアクセスす る動作をするという目的を作るとやりや すい。 – 例:該当するURLへのアクセスをする
16.
動的解析の3つのアプローチ • ディバッガを使って実際に動かしながら行う。 –
プログラム自体を解析する場合には必要 • でたらめな入力をするツールで通信パケットを確 認 – 自動化できる、自動ユーザ登録や広告モジュールの 動作確認程度のみ可能 – ユーザ登録があるものはほぼ無力 • 実際に動かしてその通信パケットを確認 – 自動化が困難 – ユーザ登録があるものも検査可能
17.
実際に動かしてその通信パケット
を確認 • パケットキャプチャ環境の構築 – Wifi経由で通信して、PCでキャプチャ – tPacketCapture(taosoftware co.,ltd)でキャプチャ https://play.google.com/store/apps/details?id=jp.co.tao software.android.packetcapture • SSLを解読するには、Android4.0以上で、証 明書をインストールする必要があります。 – セキュリティ - 認証情報ストレージ - SDからイン ストール (PINかパターン認証が必要になります)
18.
(4) アプリから発生した通信を
解析サーバーが解析し,可視化。 (3) SSL通信解読サーバーがProxyとして動作し, アプリと外部との通信を確立。 アプリから発生した通信は解読サーバーを経由し, 解析サーバーへコピー。 (1) 任意のスマートフォンから『Google Play』等にアクセスし,任意のアプリをダウンロード。 (2) そのスマートフォンからアプリを起動。任意の操作を実行。 対応OS:iOS 5.0 以降,Android 4.0 以降 18
19.
プライバシーを確認するポイント
(1) • 識別子 – IMEI (端末識別番号)*#06# – ICCID(SIMシリアル番号) – IMSI (加入者識別番号) – Wi-Fi MACアドレス – 電話番号 プロフィール表示など – MCC/MNC (キャリア識別番号) – Android_ID *#*#8255#*#*
20.
プライバシーを確認するポイント
(2) • 個人情報 – 連絡先情報 – 緯度経度 – googleアカウント – インストール済みパッケージ名 – SDカードの中身 – DCIM(カメラデータ)の中身
21.
プライバシーを確認するポイント
(3) • 生情報とMD5,SHA1でハッシュ化された情報 を持っておくと良い • ※そのままハッシュ化していない場合は、同 一ハッシュでは分からないので 0123456789abcdefABCDEFの32文字40文字の連 続で判定。(base64の場合は異なる方法で行 う。)ケースによっては静的解析で出た情報 と同じ方法でハッシュ化する。 • パーミッション情報と静的解析された情報か らそれらをどのように送っているかどうかを 確認する。
Download