advertisement

ナウいAndroidセキュリティ

43 %
57 %
advertisement
Information about ナウいAndroidセキュリティ
Technology

Published on October 20, 2012

Author: hiromu1996

Source: slideshare.net

Description

Andorid 4系
advertisement

ナウいAndroidセキュリティ 矢倉 大夢

自己紹介• 矢倉 大夢• 高等学校1年• 校パソコン研究部長• @hiromu1996

自己紹介• Linux Kernel Contributor • 情報セキュリティスペシャリスト• Androidセキュリティ部

セキュリティ部• http://asj.mns.me/  • JSSEC特別会員 • ガイドラインの策定協力 • Androidセキュリティ関連の記事執筆

これまでのABC• ABC 2011 Winter  • Lightning Talk • ABC 2012 Summer  • カーネルから見るAndroidのセキュリティ

これまでのABC• ABC 2012 Spring  • 検証、SEAndroid • 今回はこの続き

_人人人人人人人人人人人_> 今、SEAndroidが熱い < ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄

というか

_人人人人人人人人人人人人人人人人_> 今、Androidセキュリティが熱い < ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄

Androidのセキュリティ• 「Androidはウイルスだらけで危ない」• 「Android使うと個人情報を抜かれる」• 「Androidは危険、世の中はiPhone」

それが変わる• Androidのセキュリティ • どんどん改善されていきます• Androidセキュリティはダメ、と 言われることもなくなるはず

Android 4.x• Android 4.0 (Ice Cream Sandwich)  • 2011/10 公開• Android 4.1 (Jelly Beans)  • 2012/06 公開

Android 4.xはココが違う • 顔認証ロック解除 • デフォルトアプリの無効化 • オフライン音声入力

Android 4.xはココが違う • Android Beam  • NFCを使った共有が可能に • 新しい検索画面

それだけじゃない

Android 4.xでココが違う • ASLR  • SEAndroid  • 大きな2つの変更点

ASLR• Address Space Layout Randomization  • メモリに展開する際のアドレスを ランダム化 • Return-to-libc攻撃などに有効

Return-to-libc Attack• コールスタック ローカル変数 a() リターンアドレス 呼び出しの引数

Return-to-libc Attack • コールスタック ローカル変数b(int i, int j) リターンアドレス 呼び出しの引数 ローカル変数 a() リターンアドレス 呼び出しの引数

Return-to-libc Attack • a()からb(int i, int j)を呼び出す ローカル変数b(int i, int j) リターンアドレス int i, int j 呼び出しの引数 ローカル変数 a() リターンアドレス 呼び出しの引数

Return-to-libc Attack • 引数とリターンアドレスがスタックに ローカル変数b(int i, int j) リターンアドレス 戻れる  int i, int j 呼び出しの引数 ローカル変数  ように a() リターンアドレス 呼び出しの引数

Return-to-libc Attack • ここでバッファオーバーフロー ローカル変数b(int i, int j) リターンアドレス オーバーフロー 呼び出しの引数 ローカル変数 a() リターンアドレス 呼び出しの引数

Return-to-libc Attack • ここでバッファオーバーフロー ローカル変数b(int i, int j) オーバーフロー 呼び出したい関数 リターンアドレス 呼び出しの引数 ローカル変数 a() リターンアドレス 呼び出しの引数

Return-to-libc Attack • ここでバッファオーバーフロー ローカル変数b(int i, int j) オーバーフロー system() 呼び出したい関数 リターンアドレス libc.so “ls” 呼び出しの引数 ローカル変数 system(“ls”); a() リターンアドレス 呼び出しの引数

ASLRではこうなるlibc.so • ASLRを有効にすると ローカル変数b(int i, int j) オーバーフロー system() 呼び出したい関数 リターンアドレス “ls” 呼び出しの引数 ローカル変数 system(“ls”); a() リターンアドレス 呼び出しの引数

ASLRではこうなる • ASLRを有効にすると ローカル変数b(int i, int j) オーバーフロー system() 呼び出したい関数 リターンアドレス “ls” 呼び出しの引数 ローカル変数 system(“ls”); a() リターンアドレス 呼び出しの引数 libc.so

ASLRではこうなる • ASLRを有効にするとlibc.so ローカル変数b(int i, int j) オーバーフロー system() 呼び出したい関数 リターンアドレス “ls” 呼び出しの引数 ローカル変数 system(“ls”); a() リターンアドレス 呼び出しの引数

ASLRではこうなる • ASLRを有効にすると ローカル変数 b(int i, int j) オーバーフロー system() 呼び出したい関数 リターンアドレス “ls” 呼び出しの引数 ローカル変数 system(“ls”); a() リターンアドレスlibc.so 呼び出しの引数

Demo

ASLR• ASLRはAndroid 4.0で導入された • Android 4.1から位置独立コードにも 対応 • やっとAndroidに!!! • iOSは2011年3月に対応済み

SEAndroid• 今、SEAndroidが話題 • 発端は次のコミット

_人人人人人人人人人_> 突然の10連patch <  ̄^Y^Y^Y^Y^Y^Y^Y^ ̄

SEAndroidのマージ• 10/17 事件は起こった.... • SEAndroidがデフォルトで 有効化されるようになりました • 突然の出来事にびっくり

SEAndroidって?• そもそもSEAndroidって何なのか • Linux Security Moduleのひとつ • SELinuxのAndroidバージョン

Linux Security Module• 主な機能は強制アクセス制御 • root権限を奪取されても 安全な端末に• より強固なAndroidを実現

root権限の脅威• root権限を奪取されることのリスク • アプリケーションが好き放題できる • キャリアの損失 • ex. テザリングを不当に使用される

現状• root権限奪取の脆弱性が すぐに修正されない • そもそもこまめにアップデートを 提供するのが難しい • 端末のカスタマイズによる分断

現状• 過去には脆弱性の発見から修正まで 1年かかったケースも• さらにベンダーによるアップデートが 打ち切られた機種もある

現状• ベンダー側でも様々な対策をしている • SHARP: Deckard LSM / Miyabi LSM  • Panasonic: TOMOYO Linux • 公式のサポートはなかった

Android 4.1以降• Android 4.1以降は公式のソースに SEAndroidが含まれている • Android 4.2からはデフォルトに

Android 4.2• デフォルトになるって? • すべての機種にSEAndroidが入る? • そういうわけではない

どう変わるのか• ~ Android 4.1  • make HAVE_SELINUX=true  • 使用するにはビルド時にフラグを 指定する必要が

どう変わるのか• Android 4.2 ~  • make  • フラグを指定しなくてもデフォルト でサポートされる

どう変わるのか• あくまでサポートされるだけ • 強制的にSEAndroidが有効にされる わけではない • SEAndroidを有効にしてビルドした カーネルじゃないと使えない

どう変わるのか• SEAndroidが有効なカーネルを使った時 • 設定からSEAndroidの有効・無効を 変更できるように

実用性(?)• ABC 2012 Spring  • 有効にすると落ちる状態 • 「メインラインで使える頃には 安定しているはず」

Demo

スピード• Quadlant Benchmarkで計測 • Galaxy Nexus (デフォルト) • Galaxy Nexus (SEAndroid Permissive)

スピード Default SEAndroid SEAndroid (6months ago) All 2574 2091 1874 CPU 5561 5525 5374Memory 1804 1716 1584 I/O 3533 1050 998 2D 346 247 190 3D 1526 1917 1224

まとめ• SEAndroidはまだ実機で使える 状態じゃなかった • エミュレーターではある程度の 安定性 • ポリシーと調整次第、とも言える

まとめ• これからSEAndroidの時代がくる? • SEAndroidが搭載された端末が そろそろ出てきてもおかしくない • 現在の市販端末で使用されている LSMより更に強固になることは確か

まとめ• Android 4.xではセキュリティが大変 改善されている • iOSに追いつく日も遠くない(?)

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Andoroidマルウェア感染 - Android 解決済 | 教えて!goo

AndroidでセキュリティソフトG-Dateモバイルセキュリティを使用しているのですがスキャンのログを確認 ...
Read more

今すぐ使えるスマホレシピ:第31回 「Google Now」で何ができる? (1/2) - ITmedia Mobile

スマホを使い始めたはいいが、もっと便利に使えることを知らないまま何となく使っている人は多い。そんな ...
Read more

Androidのセキュリティソフト - Android 解決済 | 教えて!goo

Androidでセキュリティソフトをどれを購入しようか悩んでいます。ちなみにAUのXperiaを使用しています ...
Read more

セキュリティ:ITpro

企業がセキュリティ・システムを構築・運用管理するために役立つノウハウや製品/サービス/技術情報を掲載。
Read more

矢倉 大夢 / Hiromu Yakura (hiromu1996) - yumetaro.info

ナウいAndroidセキュリティ ナウいAndroid ...
Read more

セキュリティに関するkuro_m88のはてなブックマーク

セキュリティに関するkuro_m88 ... ナウいAndroidセキュリティ www.slideshare.net. ... kuro_m88 Android, セキュリティ 2012/12/09 ;
Read more