Androidとセキュリティ ~ユーザーを脅威から守る~

Post on 08-Jul-2015

4.962 views 1 download

description

2010/09/25に大阪、堂島ビルヂングで行われた「日本Androidの会 関西支部&スマートフォン勉強会@関西 共同開催勉強会」で行われたセッションの資料です

Transcript of Androidとセキュリティ ~ユーザーを脅威から守る~

Androidとセキュリティ~ユーザーを脅威から守る~

灘高等学校一年

セキュリティ&プログラミングキャンプ2010ネットワークセキュリティ組

Mine (@mine_studio)

すまべん関西& Androidの会関西支部  共同開催イベント

自己紹介● 灘校パソコン研究部 副部長● 日本 Android の会 所属● 京都 GTUGメンバー● セプキャン 2010 NW組

旧ロゴ

実は家は名古屋だったりする・・・

関西圏を中心にイベント等に顔を出してます。でも・・・

やってること● プログラミング

● Android , Google App Engine , LAMP , マイコンプログラミング

● Web製作● サーバー構築

● 仮想化 , LDAP , フェールオーバークラスタリング● 動画制作

Android , Android言ってるけど・・・・

Android自体は 5月下旬からなのでまだ初心者

じゃあ以前は何やってたの?

Bash , Linux , C , PHP , C++ , Java , ActionScript , JavaScript , WindowsServer , XHTML , CSS , マイコン , 計算機科学 , ハードウェア ...............................etc

Agenda

● セキュリティを考える● モバイルデバイスのセキュリティ● ユーザー視点での脅威● 開発者がユーザーを守る!

セキュリティとは

安全

安全を維持する

脅威から守る

現実世界での脅威● 自然災害 (地震、雷、竜巻、台風 etc...)● 火災● 犯罪 (盗難、器物損壊、殺人 etc...)● 事故 (落下、衝突 etc...)● 陰謀● テロ● 景気

それらの対応は・・・?

手段や原因、発生時期などの要素がわかった上でそれらに対する対応策を用意する。 つまり、予め防ぐという「予防」を行う。

例:盗難侵入経路が分かっているからこそ、そこに防犯カメラをおいたり、警報をおいたりできる

情報技術でも同じ

情報技術でも例外なく、予め攻撃者や侵入者の手口を知らない限り、こちらは防御することが出来ない。

例→ネットワークからの侵入 ファイアーウォール→メールによるウイルス拡散 メールスキャン

だけど実態は・・・・

攻撃手段や侵入手段を知っている人はかなり少ない

知識だけで容易に攻撃・侵入を実行できてしまうため、ブラックな知識として認識されている。

理由は

これは危ない

だけどむやみに広められない

一部の人にしっかりとした情報モラルと共に教えなければならない

セキュリティ&プログラミングキャンプ

国家事業としてセキュリティに関する正しい知識を持った、未来を担う技術者を育成する。22 歳未満限定 書類選考

攻撃、侵入の例● ネットワークからの空きポートへの侵入● パスワードクラック● root奪取 (root kit)● ARPポイゾニング● バックドア● P2Pネットワークへの不正パケット● バッファオーバーフロー .....................etc

攻撃手段が多すぎる!

普通に一つ一つ防ぐ方法では追いつかない

「ウイルス対策ソフト」として防御をパッケージ化名前とは違いウイルス以外の攻撃・侵入にも対応

セキュリティの知識に乏しくても最低限のセキュリティ維持ができるようになった

ただし!

一般的に「ウイルス対策ソフト」と言われるものは誤検知をなくすために、ウイルスを取りこぼしやすい

それは初心者向けである

誤検知とは本来ウイルスではないものをウイルスと判定し、そのまま削除、隔離処理などを行ってしまうこと

結局、最後には技術を持った人間の力がないとセキュリティは維持できない

人間の力が必要

モバイルデバイスのセキュリティ

なぜか、モバイルデバイス、組み込みに関するセキュリティが話題にならない

これまでのモバイルの世界

インターネット

携帯電話

ゲーム機

音楽プレーヤー

携帯電話事業者

今、これからのモバイルの世界

インターネット

ガラケー

ゲーム機

携帯電話事業者

スマートフォン

プロバイダ

家庭向け

無線LAN

公共無線LAN音楽プレーヤー

ネットワークの複雑化

便利さの裏には

接続の多様化

侵入・攻撃ポイントの増加

セキュリティリスクの増大

特に家庭用無線 LANに注意

携帯電話回線は携帯電話事業者により、無線通信の暗号化や通信品質の保証などが

あるが、家庭用無線 LANは未だ暗号化が施されていない、

容易に暗号解読が可能なWEPの使用が目立つ

でも、変わったのはこれだけではない

もう一度Androidや iPhoneが革新的と思われる理由を

考えてみよう

世界共通のアプリケーションプラットフォーム

プラットフォーム統一ガラケー

DoJa or Star (DoCoMo)

MIDP (Softbank)

BREW or MIDP (au)

日本だけでもこんなにあるそれに、海外に携帯電話でアプリケーションという物がほとんど無かった

スマートフォン

Android (Google)

iOS (Apple)

ともに世界中で動いている

マルウェア等も同じ

アプリケーションがいろんな場所で動くようになると同様、マルウェアなどの悪意のあるプログラムもいろんな場所で動く

Androidや iPhoneの普及は攻撃者にフィールドを与えることになる

では対策はしてるのか?

開発時のセキュリティの重要度が低く、ウイルス対策などよりも新技術、新サービスの開発にほとんどの力が注がれている。

おかげで、今の状況でウイルスが流行ると対処できない

そうとは言えない

ユーザー視点での脅威~ Androidに潜む危険~

セキュリティを考える上で、ユーザーが対処できるだろうという考えはタブー

ユーザーは何も知らないと思え

極論を言えば・・・

ユーザーはセキュリティという言葉すら知らなくてもセキュリティが維持できるシステムを目指す

見えない脅威

脅威はユーザーから見えない

開発者は Androidの裏を見ろ!

Androidのアーキテクチャ

Androidの Linuxカーネルは・・・● hiromu1996 : Androidのカーネルバージョンっていくつ?● mine_studio : 1.6だと 2.6.29だね● hiromu1996 : となるとメモリの不正アクセスできるね● mine_studio : このバージョンだと直されてないのか● hiromu1996 : うん● mine_studio : これが世界中の Android機に乗ってると・・● hiromu1996 : 危険だね

そもそもカーネルレベルで危険です

OSSであることもリスク

AndroidがOSSであるという点もひとつのリスクを生み出しているとも言える

OSSであるならばそれの脆弱性を修正していくシステムが必要だ

Androidの許可情報

アプリケーションが取得する情報 (GPSによる位置情報や Gmailアカウント名など )をユーザーが確認し、それをユーザーが許可することで初めてアプリが情報を読める

インストール時にしか聞かれないが、果たしてユーザーはその許可情報を把握してるのだろうか?

SQLインジェクション攻撃Androidアプリではデータを SQLiteデータベースとして格納することが多い。そして、これを他のアプリケーションからコンテントプロバイダーという形で利用することができる

他のアプリ

コンテント

プロバイダ

アプリケーション

デー

タベー

不正な値 SQL命令生成

インジェクション

データの破壊、漏洩

Androidはインターネット端末Androidはインターネットと通信できてなんぼ!

だけど、当然通信するからにはセキュリティの問題も浮上

サー

バー

Android

インターネット

実は簡単にデータを見ることが出来る暗号化するのが基本

普通の対策

ウイルス対策ソフト

セキュリティパッチ

モバイルデバイスではスペック、電力不足のため、ウイルス対策ソフトを常駐させるのは困難

Androidの場合、ベンダーにまかせっきりになり、なかなか迅速なパッチ適応が行われない

でもガラケーの世界では・・・・

McAfee入ってます!

ガラケーではすでに数年前からスキャンソフトを搭載しているものがある

スマートフォンでのセキュリティ

スマートフォンでのセキュリティはかなり遅れている

開発者がユーザーを守る!

Androidは何でもできるブラウザ、つまりWeb専用端末

アプリが受け取るデータは誰が作ったかもわからない得体のしれないデータ当然、 XSSや SQLインジェクション攻撃に相当する攻撃手段が行われる可能性がある。

しかし、限界がある

基本的に開発しているのはアプリケーションAndroidプラットフォーム自体の脆弱性に対する

対応は困難

ベンダーや Googleの情報をリサーチして、対応

しかし、今後は・・・

当然のごとく、 Androidを搭載した機種が増えるため機種ごとの情報を集めるだけでも至難の業。ソースコードに情報を反映しようものなら、競合しまくって、本来の開発に支障が出る

その対応に特化したビジネスが成立するかもしれない??

意外と対処法は少ない

Androidに様々な脆弱性があっても、アプリ側での対処というのはなかなか難しい

多くの脅威は低レイヤーに存在しており、高レイヤーのアプリケーションでは手に負えない

まとめ

セキュリティというのは、本当に細々としていて、なんというのか「泥臭い」

おそらく、組み込みにも負けないぐらい

セキュリティまとめ

流れ続けるパケットを監視したり、メモリのデータ追跡したり、ログを一個一個検証したり、たまには事故らせてみたり

ご静聴ありがとうございました