PacSec_Talk_Slides_A..
Upcoming SlideShare
Loading in...5
×
 

PacSec_Talk_Slides_A..

on

  • 1,118 views

 

Statistics

Views

Total Views
1,118
Views on SlideShare
1,118
Embed Views
0

Actions

Likes
0
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • richc speaks
  • stamosa speaks
  • [stamosa]
  • richc speaks
  • stamosa speaks
  • stamosa expand self-signing discussion
  • richc
  • stamosa
  • richc
  • richc
  • richc
  • richc
  • richc
  • richc
  • stamosa
  • stamosa
  • stamosa
  • stamosa
  • richc
  • richc
  • richc
  • richc
  • richc

PacSec_Talk_Slides_A.. PacSec_Talk_Slides_A.. Presentation Transcript

  • モバイルプラットフォームの徹底セキュア化 Rich Cannings <richc@google.com> Alex Stamos <alex@isecpartners.com>
  • 要旨
      • なぜモバイルセキュリティに注意 ?
      • Android とは ?
      • Android 上でどのように開発 ?
        • Android Market
      • セキュリティは ?
        • Android セキュリティの基盤
          • 防止 ( Prevention )
          • 最小化 ( Minimization )
          • 検知 ( Detection )
          • 対応 ( Reaction )
  • 要旨
      • なぜモバイルセキュリティに注意 ?
      • Android とは ?
      • Android 上でどのように開発 ?
        • Android Market
      • セキュリティは ?
        • Android セキュリティの基盤
          • 防止 (Prevention)
          • 最小化 (Minimization)
          • 検知 (Detection)
          • 対応 (Reaction)
  • 統計データ
      • 総人口 67.7 億 [1]
      • 14.8 億台のインターネット接続 PC [2]
      • 41 億台の携帯電話 [1]
      • 携帯電話の買い替え頻度
        • 平均 12-18 ヵ月 [3]
        • 毎年 11 億台が購入されている [4]
        • 売上の 13.5% はスマートフォン [5]
      • スマートフォン台数は、じきにインターネット接続 PC 台数と
      •   比較されるようになる
    [1] http://en.wikipedia.org/wiki/List_of_countries_by_number_of_mobile_phones_in_use  (based on The World Factbook) [2] http://www.itu.int/ITU-D/icteye/Reporting/ShowReportFrame.aspx?ReportName=/WTI/InformationTechnologyPublic&RP_intYear=2008&RP_intLanguageID=1   [3]  [4] http://www.infonetics.com/pr/2009/2h08-mobile-wifi-phones-market-research-highlights.asp [5] http://www.gartner.com/it/page.jsp?id=985912
  • モバイルセキュリティが注目されてきている
      • デスクトップコンピュータ解析の技術はスマートフォンに更に有用
      • モバイルネットワークは今や簡単にコントロールできる
        •   携帯から :
          • BlackHat 2009 の Miller, Lackey, Miras
        • 偽基地局から :
          •   http://openbts.sourceforge.net/
  • モバイルセキュリティの成熟
    • モバイルインフラのすべてのレイヤが攻撃対象に :
      • アプリケーション
      • プラットフォーム
      • OS
      • ベースバンド
      • ネットワーク
  • モバイルセキュリティの成熟
    • モバイルインフラのすべてのレイヤが攻撃対象に :
      • アプリケーション
      • プラットフォーム
      • OS
      • ベースバンド
      • ネットワーク
    • モバイル機器は本格的なコンピュータとして扱われるべき
    • モバイル機器が”特殊なもの”と思いこまないこと
  • 要旨
      • なぜモバイルセキュリティに注意 ?
      • Android とは ?
      • Android 上でどのように開発 ?
        • Android Market
      • セキュリティは ?
        • Android セキュリティの基盤
          • 防止 (Prevention)
          • 最小化 (Minimization)
          • 検知 (Detection)
          • 対応 (Reaction)
      • 無償、オープンソースのモバイルプラットフォーム
        • ソースコードは  http://source.android.com
      • どんな携帯メーカーでも個人愛好家でもインストール可能
      • 全ての開発者が利用できる
        • SDK は http://developer.android.com
      • ユーザと開発者にパワーを与える
    Android プラットフォーム  
  • Android の技術スタック
      • Linux kernel
      • 90 以上のオープンソースライブラリに依存
        • 統合された WebKit ベースのブラウザ
        • 構造化データストレージのための SQLite
        • OpenSSL
        • BouncyCastle
        • OpenBSD の libc
        • Apache Harmony
        • Apache HttpClient
      • 一般的なビデオ・イメージコーデックをサポート
      • ハンドセット I/O の API サポート
        • Bluetooth, EDGE, 3G, wifi
        • カメラ , ビデオ , GPS, コンパス , 加速度計 , 
    •            サウンド , バイブレータ
  • 要旨
      • なぜモバイルセキュリティに注意 ?
      • Android とは ?
      • Android 上でどのように開発 ?
        • Android Market
      • セキュリティは ?
        • Android セキュリティの基盤
          • 防止 (Prevention)
          • 最小化 (Minimization)
          • 検知 (Detection)
          • 対応 (Reaction)
  • Android 開発
      • Java アプリケーションの構成 :
        • アクティビティ
          • ビジュアルユーザーインターフェース に注力
  • Android 開発
      • Java アプリケーションの構成 :
        • アクティビティー
          • ビジュアルユーザーインターフェース に注力
        • サービス
          • 無期限にバックグラウンドで実行
  • Android 開発
      • Java アプリケーションの構成 :
        • アクティビティー
          • ビジュアルユーザーインターフェース に注力
        • サービス
          • 無期限にバックグラウンドで実行
      • インテンツ
        • 非同期メッセージング
        • steroids 上の URL ディスパッチ
        • アクティビティとサービスを結合し、アプリケーションを形成
        • アプリケーション間にインタラクティビティを提供
  • Email アプリケーション例 受信箱 メール作成 閲覧
  • アプリケーション ライフサイクル
      • バッテリー寿命の保護として設計
  • アプリケーション ライフサイクル
      • バッテリー寿命の保護として設計
      • アクティビティはスタックの中に
  • アプリケーション ライフサイクル
      • バッテリー寿命の保護として設計
      • アクティビティはスタックの中に
  • アプリケーション ライフサイクル
      • バッテリー寿命の保護として設計
      • アクティビティはスタックの中に
      • バックグラウンドの活動はいつでも停止可能
  • アプリケーション ライフサイクル
      • バッテリー寿命の保護として設計
      • アクティビティはスタックの中に
      • バックグラウンドの活動はいつでも停止可能
      • このプラットフォームで状態情報を失うことなくいつでも停止可能なアプリケーション作成が容易に
        • DoS 問題に役立つ
  • Android Market
      • 開発者とユーザを結び付ける
      • 進化論的な環境 
        • いいアプリケーションは秀でる
        • ダメなアプリケーションは淘汰される
      • Android Market には 10,000 以上の アプリケーション
      • 開放性とセキュリティのバランス
        • アプリケーションをインストールする
        •   唯一の方法ではない
        • クローズドな囲い込み環境ではない
      • 開発者はアプリケーションに自己署名
        • アップデートのため
        • Java の keytool と jarsigner を利用
  • アプリケーション署名
    • なぜ自己署名 ?
      • Market で開発者アカウントに身元を紐づけられる
      • CA には過去に身元証明に大きな問題があった
      • 信頼できるアプリケーションはない。「マジックキー」もない
    • 署名が決めることは ?
      • 共有鍵に対する共有 UID
      • セルフアップデート
  • 要旨
      • なぜモバイルセキュリティに注意 ?
      • Android とは ?
      • Android 上でどのように開発 ?
        • Android Market
      • セキュリティは ?
        • Android セキュリティの基盤
          • 防止 (Prevention)
          • 最小化 (Minimization)
          • 検知 (Detection)
          • 対応 (Reaction)
  • セキュリティ指針
      • 時間とリソースは有限
      • 人はリスクをなかなか理解できない
      • 以下の前提がより安全
        • ほとんどの開発者はセキュリティを理解していない
        • ほとんどのユーザはセキュリティを理解していない
      • セキュリティ指針の基盤
        • セキュリティ侵害の発生を 防止 (prevent) する
        • セキュリティ侵害の影響を 最小化 (minimize) する
        • 脆弱性とセキュリティ侵害を 検知 (detect ) する
        • 脆弱性とセキュリティ侵害に迅速に 対応 (react ) する
  • 防止
      • 500 万の新しいコード
      • 約 100 のオープンソースライブラリを使用
      • Android はオープンソース ⇒ 隠ぺいは役に立たない
      • 下記のセキュリティ専門家らと協力
        • Google セキュリティチーム
        • iSEC Partners
        • n.runs
      • ハイリスク分野に集中
        • リモート攻撃
        • メディアコーデック
        • 新規 / カスタム セキュリティ機能
      • 低労力で高い利点の機能
        • ProPolice スタックオーバーフロー防御
        • dlmalloc におけるヒープ保護
  • dlmalloc  
      • ヒープ コンソリデーションアタック
      • 割り当てメタデータはすぐ隣に格納されている
      • ヒープオーバーフローは任意の 2 ポインタを書き換えられる
      • 修正には , チェック :
        • b->fd->bk == b
        • b->bk->fd == b
  • WebKit ヒープオーバフロー
  • 最小化
      • 防止だけでは不十分
        • 脆弱性の存在が前提
      • ユーザはマルウェアをインストールしてしまうもの
      • コードにはバグがあるもの
      • どうやってセキュリティ問題の影響を最小化できるか ?
      • メールウェブアプリはネットバンキングウェブアプリにアクセスできない
        • 同一オリジンポリシー
      • マルウェアがブラウザや銀行情報にアクセスできるのはなぜか?
      • Web ブラウザのセキュリティモデルを OS にも適用した
  • 最小化
      • 旧来のオペレーティングシステムのセキュリティ
        • ホストベース
        • ユーザを分ける
      • モバイル OS はシングルユーザ
      • ユーザの分離は“同一ユーザポリシー”のようなもの
      • 各アプリケーションを固有の UID で実行するのは“同一アプリケーションポリシー”のようなもの 
        • 権限の分離
      • 権限分離を開発者にあまり意識させないようにする
  • アプリケーション サンドボックス
      • 各アプリケーションは固有の UID と VM で実行する
      • デフォルト権限分離モデル
      • インスタント セキュリティ機能
        • リソース共有
          • CPU, メモリー
        • データ保護
          • ファイルシステム のパーミッション
        • 認証済み IPC
          • Unix ドメインソケット
      • アクセス制御は VM ではなく、リソースの近くで
  • アプリケーション サンドボックス
      • アクセス制御はリソースの近くで実施
        • 境界を狭める ⇒ 保護も容易に
      • デフォルト Linux アプリケーションは権限を持ちすぎ
      • デフォルト アプリケーションのユーザアクセスをロックダウン
      • ロックダウンしすぎるとアプリケーションのイノベーションが阻害される
      • 正しいセキュリティ判断をユーザに依存するのは難しい
  • パーミッション
      • ホワイトリストモデル
        • デフォルトでは最小権限を許可
        • リソースへのアクセスを認められたユーザだけ許可
      • ユーザに尋ねる質問は少なく
      • 質問はより分かり易く
      • 194 のパーミッション
        • 増やす ⇒ 細やか
        • 減らす ⇒ わかり易さ
  • さらに権限分離
      • メディアコーデックはとても複雑 ⇒ セキュアでない
      • メディアライブラリーの問題全ては見つけられない
      • OpenCore メディアライブラリーを少ない権限のプロセスに追いやる
        • mediaserver
      • 成果はすぐに出た
        • Charlie Miller が MP3 のパース処理の脆弱性を報告
        • oCERT-2009-002
  • 検知
      • 影響の少ないセキュリティ問題でも、問題なことに変わりない
      • 内部の検知プロセス
        • 開発者教育
        • コード監査
        • ファジング
        • ハニーポット
      • 誰しもセキュリティを望んでいる ⇒ 誰にでも不具合検知を可能に
        • ユーザ
        • 開発者
        • セキュリティ研究者
  • 外部 からの報告
      • Patrick McDaniel, William Enck, Machigar Ongtang
        • SMS とダイヤラーにアクセスする応用形式手法
      • Charlie Miller, John Hering
        • WebKit ライブラリーに含まれる PCRE の問題
      • XDA Developers
        • セーフモードでロックスクリーンをバイパス
      • Charlie Miller, Collin Mulliner
        • MP3, SMS ファジング結果
      • Panasonic, Chris Palmer
        • パーミッションレグレッションバグ
      • セキュリティ問題を発見したらこちらにメールを [email_address]
  • ユーザからのレポート
  • ユーザレポート
      • MemoryUp: モバイル RAM 最適化ツール
        • より速く、安定、 応答性もよく、待ち時間が少ない
        • まだそこまで行っていない
  • 対応
      • 自動アップデートツールは Diffie-Hellman にならぶ最高の
      •   セキュリティツール
      • モダンな OS なら実装すべき機能
        • OS の自動アップデート
        • サードパーティアプリケーションの集中アップデートシステムの提供
      • Android の Over-The-Air アップデートシステム (OTA)
        • ユーザによる操作はオプション
        • コンピュータやケーブルは不要
        • 更新頻度はとても高い
  • 共有 UID のレグレッション
      • 共有 UID 機能
        • コンピュータに被害を及ぼすのはマルウェアではなく、あるウェアの作者
        • 2つのアプリケーションを署名 ⇒ UID は共有可能
        • 双方向性が高い
      • Panasonic から共有 UID 機能がバグってるとの報告
        • ユーザがマルウェアをインストールすると、攻撃者はブラウザ等のインストール済みのアプリと UID を共有できた
        • アプリケーションサンドボックスが破られる
  • アップデートのプロセス
      • 2009-05-14
        • Panasonic が問題を報告
        • 問題にパッチをあて、リグレッションテストを作成
      • 2009-05-15
        • 内部監査を開始
        • 全 Android フレーバーのビルドとテストを実施
        • 情報公開に向けて、報告者、キャリア、広報、 oCERT と調整
      • 2009-05-21
        • 大半から同意を得る
      • 2009-05-22
        • Over-The-Air でアップデート、工場・ SDK ・オープンソースにパッチを展開
        • アドバイザリを公開 (oCERT-2009-006)
  • まだ続く !
      • 2009-07-06
        • 監査とテスト完了
        • 情報公開に向けて、報告者、キャリア、広報、 oCERT と調整
      • 2009-07-15
        • 大半から同意を得る
      • 2009-07-16
        • Over-The-Air でアップデート、工場・ SDK ・オープンソースにパッチを展開
      • 2009-07-16
        • アドバイザリを公開  (oCERT-2009-011),
  • 結論
      • セキュリティ
        • 持続的なプロセス
        • チェックボックスではない
      • プロセス
        • 防止( Prevent )
        • 最小化( Minimize )
        • 検知( Detect )
        • 反応( React )
  • 質問 ?
      • セキュリティ問題を見つけたら
        • Email  [email_address]
      • コードを提供するなら
        • http://source.android.com
        • コードレビュアーも募集中
      • Android アプリケーションを書くなら
        • http://developer.android.com
      • 私達に Email を送るなら
        • Email [email_address]   または [email_address]
        • どちらも人材募集中