Your SlideShare is downloading. ×
  • Like
検証、SEAndroid
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

検証、SEAndroid

  • 9,849 views
Published

Android Bazaar and Conference 2012 Springでのスライドです。 …

Android Bazaar and Conference 2012 Springでのスライドです。

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
9,849
On SlideShare
0
From Embeds
0
Number of Embeds
10

Actions

Shares
Downloads
59
Comments
0
Likes
8

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 検証、SEAndroid Androidセキュリティ部 矢倉大夢
  • 2. まず自己紹介• 矢倉大夢 (@hiromu1996)• 中学3年生• 校パソコン研究部 部長
  • 3. 最近の活動• OSS奨励賞を受賞しました• 「カーネル開発者視点での成果発表」• Androidセキュリティ部での成果発表
  • 4. いままで• 「キャリアはさっさとアップデートか けてほしい」• 「脆弱性が見つかったらすぐアップ デート」
  • 5. 今回は• 脆弱性が見つかってroot奪取されても安 全なしくみを• SEAndroidは権限昇格に対して有効か?
  • 6. SEAndroidとは• Security Enhanced Android • 2012年1月にリリース• SELinuxのAndroidバージョン
  • 7. SELinuxとは• Security Enhanced Linux • National Security Agencyが作成• 代表的なLinux Security Module
  • 8. SELinuxの基本• よくある「SELinuxは無効にしておきま しょう」• SELinuxはサーバー構築の邪魔をするた めに入っているのではない
  • 9. SELinuxの基本$ ls -alZdrwx------ hiromu hiromu user_u:object_r:user_home_dir_t .drwxr-xr-x root root system_u:object_r:home_root_t .. • 従来のアクセス制御 • パーミッションとオーナーで制御 • SELinuxによる強制アクセス制御 • もっと詳細なラベルで制御
  • 10. SELinuxの基本• カーネルに組み込まれている • root権限に対して制御可能• 他のプロセスへの干渉を止められる • 別プロセスの脆弱性が使用しにくい
  • 11. できること• アプリによる権限昇格、データ漏洩の 防止• データの強制アクセス制御による保護
  • 12. SEAndroidの実装• カーネルレイヤー • yaffs2へのラベルシステムの追加 • IPCシステムへのパーミッション チェックの追加
  • 13. SEAndroidの実装• ユーザーランド • chcon, restoreconなどのコマンド類 • ndkによるSELinuxのAPI実装
  • 14. SEAndroidを検証• とりあえずGalaxy Nexusで動かしてみた• http://selinuxproject.org/page/SEAndroid • Wikiにある通りにビルドすると動く
  • 15. SEAndroidを検証• まず、ソースコードをダウンロード • AOSPのソース + SEAndroidのソース • SEAndoidのリポジトリ情報をrepo以下 に保存する
  • 16. SEAndroidを検証• プロプライエタリなファイルを抽出 • device/samsung/maguro/extract-files.sh  • 実機からadbで転送
  • 17. SEAndroidを検証• カーネルをビルド • kernel/samsung/omap  • make tuna_defconfig  • make menuconfigでSEAndroidが有効に なっているか確認
  • 18. SEAndroidを検証• ICSのビルドを開始 • make HAVE_SELINUX=true  • 一晩放置
  • 19. SEAndroidを検証• 端末に書き込み • out/target/product/maguro以下 • fastbootでboot.img system.img userdata.imgを書き込み
  • 20. 速度• 全く気にならない• Quadrant Benchmark: 1930  • Galaxy Nexusの平均が2000程度 • I/Oが少し遅い
  • 21. root奪取• CVE-2009-2692を再現 • asrootというexploitでroot奪取は確認 • SetupSUというroot奪取ツールで実験 • SEAndroidはEnforcing状態
  • 22. root奪取• /system/bin以下はどのユーザーも書き込 みができないようになっている • suやbusyboxは当然書き込めない
  • 23. root奪取• GingerBreakに対しても有効 • そもそも/system/bin/voldに対してアプ リからアクセスできない • voldにexploitを仕掛けることが不可能
  • 24. SEAndroidの利点• root奪取されても問題ない • suなどをインストールできない • 他のアプリケーションに干渉できな い
  • 25. SEAndroidの利点• そもそもAndroidの脆弱性が利用しにく い • root権限で動いているプロセスに exploitを仕掛けることができない • 脆弱性があってもroot権限を奪取でき ない
  • 26. 結論• SEAndroidは堅牢なAndroidシステムを作 る上で有効 • ただしコンテキストをきちんと設定 しておく必要はある • 独自LSMを作成したりするよりは、過 去の運用ノウハウを使える分いいかも
  • 27. 結論• まだ実用レベルではない • SELinux JNI APIは実装途中 • Zygote(Dalvik VMの管理プロセス)が SEAndroidのコンテキストを読みに いってSEGVする
  • 28. 結論• デフォルトのコンテキストを使うだけ でもかなり堅牢にはなる• AOSPのMain StreamにMergeされてから 使うくらいがいいかもしれない
  • 29. ご清聴ありがとうございました