-サーバ連携方法、オープンソースの使い方など様々なCurlの実際のソースコードの記述方法が集約されています。~スマートフォンのセキュリティの基礎知識と個人利用について~スマートフォンに関してですが、筆者は俗に言う携帯端末ギークじゃないかなって最近思います。1台で良くない?」とか聞かれます。「まぁ、それぞれ使い分けもあるし、用途も違うんだよ」と話しても周りからは理解されません・・・そんな私が、ちょっとスマートフォンに関するセキュリティについて数回に分けて書いてみます。便利なアプリが使いたいので、Jailbreakやroot化してみた!?じゃぁ、私はスマートフォンとどう付き合っていけばいいの?について語っていこうと思います。「docomoからはスマホは出ててないんだ!」・・・等々、上げればキリがないですが、そんな話を聞きました。その時は苦笑いしたりもしましたが、この記事を読まれてる皆様は当然ご存知だと思います。単純に高機能というだけでなく、汎用のOSを搭載し、利用者が後からソフトウェアなどを追加できる端末の事を指します。OS有名な所だと、上記5つが挙げられます。等、前世紀からこういった端末はありました。スマートフォンですし(iPhoneを使い出してからは持ち歩いてないですが・・・まだ使える状態で眠ってます。OSを使っていませんでした。スマートフォンっていうのはここ1~2年で出来たものではなく、結構昔からあったのですね。・スマートフォンにウイルス!?さて、最近これだけスマートフォンが有名になってきてよく聞く、「スマートフォンのウイルス対策は大丈夫?」って言葉ですが・・・そもそも、コンピュータウイルスってなんでしょうね?ウイルスもはプログラムの一種ですが、どのようなものがウイルスと定義されているのでしょうか?「コンピュータウイルス」という言葉が最初に使われたのは1983年のことで、カリフォルニア大学のフレッド・コーヘン氏によるものでした。そのときにコーヘン氏が定義したのがこの様な言葉になります。他のプログラムに自分を寄生するかたちで感染していき、ウイルスのコピーを次々に別のパソコンに広げていってしまうプログラムをウイルスといいます。コンピュータウイルスが実際のウイルスと挙動がよく似ていることからコンピューターウイルスと名づけられました。以下のようになっています。コンピュータウイルス(以下「ウイルス」とする。次の機能を一つ以上有するもの。条件を記憶させて、発病するまで症状を出さない機能(3)発病機能プログラム、データ等のファイルの破壊を行ったり、設計者の意図しない動作をする等の機能IPAの基準に則ると、日本においては3だけの機能を持った悪意のあるアプリケーションでもウイルスと呼ぶことが出来ます。実態としては、海外の報道ではマルウェア(悪意のあるアプリケーション)等と報道されているものが、日本ではウイルスと報道されたりしています。満たしているもののみウイルスソフトとして分類しているようです。略称であり、日本語の「不正プログラム」に対応する英語の表現です。マルウェアにはいくつかの分類があり代表的なものに以下のようなものがあります。ウイルス:自己増殖を行い、自身のウイルスコードのコピーを他のプログラムファイルに寄生させてコントロールを奪います。ワーム:自己増殖を行い、ファイル単位で自身のコピーを作成します。トロイの木馬:自己増殖を行わず、不正プログラムの総称です。スパイウェア:個人情報の漏洩を行うものを言います。外部からの指令により不正操作を行うものをいいます。☆この講座では、業界(世界)の標準にしたがって、ウイルスとウイルス以外のマルウェアは分けて説明していきます。Phoneはどうなのかというところに関しては、ウイルス対策ソフトベンダー各社には2012年3月現在までにウイルスの報告は無いようです。?と思うかもしれませんが、それはアプリケーションの安全性を考えられた仕組みにあります。従来のスマートフォンOSやPCのアプリケーション仕組みと比べてみましょう。ユーザが使う各種「アプリ」と、その背後で動く様々な「サービス」、そしてその全体を管理する「OS」があります。これらはすべて相互に通信していて、様々な機能を提供してくれます。ウィルスというのは、この「アプリ」「サービス」「OS」のいずれかに混入して悪さを行います。皆さんもパソコンにはいつどこからウィルスが入るかもわからないので、ウィルス対策ソフトなどを導入してシステム全体をチェックしていますよね?一方、新しいスマートフォン用OSではサンドボックスモデルを利用し、各アプリのアクセス可能な部分を分離することにより、OSなどとの限定的なやりとりしか許していません。ウイルスやワームなどを作成したとしてもそのアプリケーション領域を超えてのアクセスができなくなっています。このように、サンドボックス化が徹底されていればウィルスもセキュリティソフトも必要がありません。実際には共有アクセスできる領域がありますので、PCと同様にすべてのマルウェアを防ぐことは出来ません。・iPhoneのサンドボックス化iPhoneでは写真や連絡先などはすべてのアプリで共有されています。した共有データは、マルウェアからも参照できますので、全くセキュリティ的にリスクがないわけではありません。アプリ間の連携もある程度は許されています。「ユーザが指定した場合」に限って、あるアプリが持っているデータを他のアプリに渡す手段が用意されています。いえ、iPhoneのサンドボックス化は厳しく設定されており、悪意のあるアプリが他のアプリの情報を奪うことは難しくなっています。逆に、セキュリティソフトがウィルスを探すようなことも許されていないし、仮に何かしらのセキュリティソフトを入れたとしても、ユーザが自分でそれを起動しない限りは自動的にスキャンするなどということは出来ません。iPhoneにウィルス対策ソフトがないのには、こうした理由があります。・Androidのサンドボックス化Androidでは、iPhoneと比べるとアプリ間の連携が簡単に出来るようになっています。iPhoneのOS標準のブラウザでリンクからURLを開く場合、OS標準のブラウザでそのURLを開きます。PDF等のファイルもブラウザで開きます。他のアプリがブラウザの動きに対して関与できません。iPhoneのサンドボックス化で説明したように、ユーザーがそのURL(URLに含まれるファイル等)を開くアプリを指定することにより、他のアプリにURLやファイルのデータを引き渡すことは出来ます。Androidの場合、ユーザがURLを開こうとすると、別のアプリがその情報を取得することが出来ます。特定のURLやファイルをブラウザで開こうとすると、別のアプリが起動するという事ができます。逆に<悪意をもったアプリが情報を奪うことができる>という意味でもあります。iPhoneではユーザが指定しない限りはアプリが起動することもないですが、Androidではアプリをインストールしただけでシステムの動きが変わって、ユーザの意図していない動作をする可能性があります。逆に、Androidでセキュリティソフトが実現できるのは、Androidがそうした情報をアプリに提供しているからでもあります。ユーザがスマートフォンを使っている裏で、その挙動をチェックするようなアプリをAndroidでなら作ることが出来ます。いったニュースが報道されました。ここで言われているスマートフォンとは、Android端末になります。電話番号などの個人情報を勝手に外部に送信していたことが、セキュリティー会社の調査で分かりました。このアプリはGooglePlayに登録されており、2012年4月13日には削除されましたが、分かっているだけで16種類のアプリがあります。GooglePlayのダウンロード数によると、これまでにこのアプリをインストールした人はおよそ6万6千人から最大で27万人余りに上るということで、セキュリティー会社では、場合によっては延べ数十万人から数百万人の大量の個人情報が流出した可能性があるとみられています。自分の個人情報が流出してしまっている可能性があります。得られることとなり、今大きな話題となっています。このアプリをダウンロードした各自の電話帳に平均50人の情報があるとすれば333万~1357万5000人ぐらいの個人情報が集められたのではないかと推測できます。今回のアプリからの電話帳からの個人情報取得ですがAndroidでもiOSでも技術的には可能となります。アプリの配信の仕組みがAndroidとiOSでは違うために、Androidの方が問題が起こりやすくこの様な事が起こりました。」に則りソースコードレベルで厳格に審査します。よって、自分の作成したアプリを登録後、公開されるまで2週間程度かかります。Storeで見ていらいらすることがありますが安全性を考えると仕方のないことも言えます。Storeには公開されません。Storeの厳正さは保たれていると考えていいでしょう。Androidでは開発者が比較的簡単にアプリをGooglePlayに登録・公開することができます。自分の作成したアプリを登録後、数十分から数時間程度で公開されます。悪意のあるアプリであってもGooglePlayに公開出来るため、マルウェアが相当数GooglePlay上に存在します。2010年まではGooglePlayへの登録は無審査で登録が可能でしたが、従来からこの問題点を指摘されていたため、2011年後半よりBouncerと呼ばれるマルウエア検知システムを使ってアプリを自動検査しています。必要最低限度の審査のみということで、今回はBouncerをすり抜けてしまったようです。Store以外の経路からのアプリのインストールを行えません。社内専用などに登録した端末などに配布する仕組みがあります。)Androidでは、GooglePlay以外にアプリケーションを直接インストールする仕組みを持っています。Google以外のMarketも存在しており、そこからのインストールも行えます。(デフォルトではGooglePlay以外からアプリのインストールは行えない設定になっていますが、設定から簡単に変更できます。)なぜ、この様になっているかというと考え方がiOSとAndroidでは違うためです。iOSではAppleの管理のもと、Appleの指定した方法でスマートフォンやアプリを利用してもらう。Androidではスマートフォン技術の発展とAndroidの普及のため、より多くの開発者が自由に開発を行い技術やノウハウを蓄積し最終的には質の悪いものが淘汰され良い物だけが残る過渡期であり、ユーザにはリテラシーを身に着けて頂き、アプリの利用に関してはユーザの自己責任で行なってもらう。ものと筆者は考えます。WindwosPhoneもVer7から従来のGoogleと同じ方式から、Appleと同じ方式に転換しました。対する考え方の観点が違い、一概にiOSがよくてAndroidが悪いとは言えません。「私のAndroid端末は単体でスクリーンショットが取れないので、root化すると簡単にスクリーンショットが撮れるみたい」などと言う言葉を聞いたことはありますか?また、GooglePlay上にroot化端末向けのアプリも公開されているため、root化に興味をもった人もいるでしょう。(GooglePlay上に特定のアプリをインストールすると、root化迄自動で行なってくれるアプリもあったようです。)便利さについて解説しているサイトは山ほどありますが、そのリスクについて解説しているサイトは少ないかもしれません。聞くことの一つに、「メーカー保証がなくなります。筆者としては、メーカー保証だけで言うと「自己責任でやっていることなのでメーカー保証なんて要らないよ!そもそも、メーカー保証に頼らなくてもハードウェア的に壊れたとしても自分で直せるし!」とか言ってしまいますが、そんな人はあまり居ないでしょうね。「メーカー保証」よりも重大で自己責任の範囲では済まされない事がJailbreakやroot化によって起きてしまう可能性があります。これらを行うと、管理者権限で端末内の全てのデータやカーネルにアクセスすることが出来るようになり、サンドボックスモデルで保護されていた部分が崩壊します。Store以外の経路からアプリのインストールが行えます。マルウェアが入る経路が出来てしまったり、技術的にはウイルスも作成・実行できます。通常iOS端末はデフォルトのパスワードが固定であり、リモート接続のモジュールも他のアプリを導入時に同時に入ってしまう可能性があります。その状態ですと、リモートで携帯電話会社のIP範囲を常にアタックしているプログラムにより侵入されてしまうこともあります。Android端末でも同様で、Android端末ではroot化されていない端末では便利なアプリとして振舞うが、root化されている端末では、裏で全く違う振る舞いを行うといったことが出来てしまいます。便利になるといった安易な理由でJailbreakやroot化を行うと、その代償は大変なことになる可能性があるためお勧めはしません。「この端末では出来ません。root化して、スクリーンショット取得アプリ入れちゃえば・・・」という話が、キャリアのショップ店員から出てきたという話を聞いた時はさすがに驚きました。・じゃぁ、私はスマートフォンとどう付き合っていけばいいの?個人利用の場合では以下のような使いかたがひとつの例となります。これまでの説明に出て来なかったものは次回以降詳細を説明する予定です。iPhoneの場合Jailbreakはしない。アプリのインストールを行う場合は、説明及びレビューをよく読む。レビュアーの人の反応をみる。OSのアップデート通知は他の人の反応を見て大きな問題が起きていないことを確認してから、なるべく早く行う。使う自分にとって重要なアプリのアップデートは自動で行わない。少なくとも数日たってから同じアプリを使用している人の反応を見て、アップデートする。(iPhoneのアプリは重大なバグの対応をすぐにおこなっても、公開までの審査に時間がかかります。自分にとって重要な機能のアプリはアップデート通知と同時に自動更新させず、他の人の反応を見て問題がないことを確認してから手動でアップデートする。)アプリのアップデート内容を確認する。(でも、BugFixとしか書いてない人が多くて困ります・・・。)自動ロックを設定する。(4桁の数字ではなく複雑なパスワード推奨)Androidの場合root化はしない。マルウェア対策ソフトを導入する。信頼出来きる提供元以外からのアプリをインストールしない(筆者はGooglePlayも疑ってかかっています。Androidデベロッパーが信頼出来るか、誰がビルドしたものかを基準としています。)アプリのインストールを行う場合は、アクセス許可、説明及びレビューをよく読む。レビュアーの反応をみる。オピニオン・リーダー等の口コミなどを確認しマルウェアの疑いがないか確認する。アプリのアップデート内容を確認する。アクセス許可の変更があった場合必ず確認する。インストールするアプリがroot化を自動で行うといった説明がないことを確認する。キャリアやメーカーからのOSアップデート情報を定期的に取得し、必要と認めた場合はインストールをする。使っていないアプリで、今後も使う予定のない物は削除する。(システムとしてバックグラウンドで動いていないか?)自動ロックを設定する。(パターンロック推奨)外部SDカードに重要なファイルを置かない(iPhone・Android共にストレージは暗号化はされていますが、Androidの外部SDカードはデフォルトで暗号化されていません。)これが、必ずしも全てのケースにおいて正しいとはいえませんし、業務利用やエンタープライズ用途では異なりますので、次回以降業利用やエンタープライズ用途の回を参考にして下さい。Android用マルウェア対策ソフトってどれがいいのかな?Android端末には、まずはマルウェア対策ソフトを導入することをおすすめします。一言にマルウェア対策ソフトと言ってもGooglePlay上に有料・無料含めてかなりの数が登録されています。そこで、気をつけて欲しいのが、マルウェア対策ソフトを偽装したマルウェアがあります。これを入れてしまっては、本末転倒となります。マルウェア対策ソフトをインストールすることにより、動作が遅くなったりバッテリーの減りが早くなったりもします。どれが良い、どれを入れたほうがいいというのはここでは明言しませんが、選び方の基準をお話しします。マルウェア対策ソフトを偽装したマルウェアに関してはそのアプリの提供元を確認する。そもそも、マルウェア対策に強い会社か?と言うことを確認した上で入れてもらえれば、マルウェア対策ソフトを偽装したマルウェアに引っかかる可能性はほぼ無いかと思われます。マルウェア対策ソフトの比較等を複数個確認してみる雑誌のマルウェア対策特集記事や、比較サイトなどもありますがやっぱり広告の関係で特定の製品の評価に偏りがあったりすることもあります。有料の製品が優れていて、無料の製品がダメということはありません。有料でもダメなものもありますし、無料のマルウェア対策ソフトでも高性能なものもあります。無料体験版が公開されている製品もあるので、まずは試用してバッテリの消費や動作が極端に遅くなっていないかを確認後、製品版を購入するのも良いと思います。対策済みのマルウェアの情報が公開されていて、更新頻度の高いものを選んで導入してみてください。自分のスタイルに合わせて最適なマルウェア対策ソフト選んでもらうのが良いでしょう。いうわけで、今回はスマートフォンの個人利用について書いてみました。「最近よく聞くMDMってなあに?」について書いて行きたいと思います。