ども編集Sです。HackerJapan3月号、絶賛発売中です。今回の書評コーナーではたりきさんによる「Android Security」を取り上げていますが、紙幅の都合でダイジェスト版となってしまったので、フルバージョンをここでご紹介します。
たりきさんオススメの本書は3月号のプレゼントにもなっています。欲しい方はドシドシご応募ください。よろしくお願いします。
たりきさんオススメの本書は3月号のプレゼントにもなっています。欲しい方はドシドシご応募ください。よろしくお願いします。
『Android Security:安全なアプリケーションを作成するために』
著者:タオソフトウェア株式会社
発行:インプレスジャパン(2011年12月刊)
価格:3360円(税込)
ページ数:304ページ
最近、Androidアプリについてさまざまな問題が持ち上がっています。不適切なパーミッション、広告モジュールによるプライバシー情報の盗み出し、アプリそのものの不適切な動作、マルウェアの登場などなど。
新しいプラットフォームが立ち上がると、以前からあるプラットフォームが経験したセキュリティ上の問題をひととおりなぞる、というのはこれまでに何度も目にした光景です。もちろん、プラットフォームに特有の新しいリスクも生まれ、そこから新たな対策の必要性に迫られる、といった光景も繰り返されてきました。
本書はこれまでにほとんど触れられることのなかった、Androidのセキュリティに特化した技術書です。これまでよく見かけたAndroidの本は初心者向けのハウツー本、初歩の開発手引き、APIのリファレンスといったところでしたが、満を持してといった趣でセキュリティに関する技術書が登場しました。
Androidの本ではありますが、本書はAndroidに限らずすべてのソフトウェア開発関係者に一度は目を通してもらいたい内容がギッシリ詰まっています。技術的にはAndroidに関するものが多く占めるのですが、考え方としては今日求められるソフトウェア開発やサービス展開に先立つ設計部分に関する部分は広く共通していると思います。
本書は主にAndroid上で動作するアプリの開発者、それも少なくともアプリやウィジェットをいくつか作り上げた経験のある中級者以上を対象にした技術書です。もちろん、企業などの開発チームの資料としても充分役目を果たすでしょう。加えて、クライアントアプリを配布してサービスを展開する,といった時,サービスそのものの設計やクライアントの開発に関わる人が考えておくべき内容についてもページ数を割いて記述されています。
このように本書が扱う範囲は非常に広く、そのため内容は濃密なものとなっています。そのため、本書が主題としているAndroidのセキュリティ、特に「安全なアプリケーションの配布」という目的を中心に扱うためにはどうしても初歩の部分については織り込み済みとして省略せざるを得ない、また想定読者として単にコーディングができるだけでなく、新しくアプリやサービスを開発できる人を対象にしているため、前提として初歩の段階は脱していることが求められます。300ページに満たない紙幅では初心者向けの解説を入れることは難しかったのでしょう。
あくまでも「ひととおりの開発ができる」「プログラミングについていちいち解説しなくても理解できる」という水準以上の人を対象にしているため、読み手を選ぶ本ですが、できれば手元に置いて少しずつでも読んでほしい内容です。
ざっくりと内容を紹介してみましょう。まず,第1章から第3章までは主に設計に関する部分といえます。また、本書の概要・概略になる部分でもあります。
第4章から第6章にかけて、スタンドアローンで動作するアプリで考慮しなければいけない内容が詳しく述べられています。少なくともマーケットなどで広範に配布するのであれば、本書第6章までは通読してサンプルを試しておくくらいの準備をしてもよい、あるいは開発チームの教育資料に使ってもよいでしょう。
第7章から第8章にかけて、アプリ間のデータやメッセージのやりとりについても詳しく述べられています。これまでよく書店で見かけたプログラミング本ではなかなか理解し辛かった「インテントの発行」「受け取り」「アクティビティの動作」の一連の流れが理解しやすく並べられているとともに、本書の目的でもあるセキュアな実装方法についてもしっかり示されています。
第9章はアプリケーション本体の保護、第10章は扱うデータの保護について触れられています。主に難読化と暗号化ですが,このあたりはAndroidに限らず広範囲な開発環境で役立つトピックがギュウギュウに詰め込まれています。
第11章、驚くことにここでようやくAndroidが持つセキュリティ機能について触れられます。ボリュームの比率でいっても,本書執筆陣がいかに「セキュアな開発」を重要視しているかがよくわかります。Androidの本ですからもちろん各章でAndroid固有の機能にも触れられているのですが、「Android Security」というタイトルからすればOSレベルのセキュリティ機能が最後尾に押し込められているのは本書の性格をよく現しているといえます。
全体を通して、「要件」「サンプル」「まとめ」という小構成が繰り返され、一つひとつのトピックが実際に動作させて理解できるよう考慮されています。また、この構成によって目次から探したいトピックをすぐに見つけ出せ、テストを行えるという利点も備えています。
豊富なサンプルコードを利用して、具体的に何がどうなればよいのかを体験できる、という構成は非常に学習効果が高いものでしょう。
また、巻末に収録されているセキュリティチェックリストはとてもよくできています。贅沢をいえば、このチェックリストをPDFで公開して頂けないかと思います。書籍から切り離してコピーして使うのはなかなか使い勝手が悪いので、A4サイズ2枚くらいのレイアウトで提供して頂けると、とても役立つはずです。
個人レベルで本書を読みこなすには,最初に述べたとおり初心者ではかなり難しいのではないかと思います。少なくとも,入門書ではありません。
また,技術書でありながら、設計についても考慮されている点は見逃せません。この手の書籍ではどうしても技術論に偏りがちで,取り扱うデータはとりあえず暗号化、ソースコードは難読化してSSL通信前提、さて好きなようにデータを扱えるぞ,なんてことにもなりかねないのですが,本書においてはまずかなり早いページでユーザーに関する情報の取り扱いは慎重であるべきだ、と指摘しています。
また、不必要に利用者を不安にさせないためのパーミッション選択や機能の組み合わせなど、開発者向けの書籍でありながら、利用者がいるんだ、ということを忘れていない点を高く評価します。
「安全なアプリケーションを作成するために」という副題がつけられていますが,誰にとって安全なアプリケーションなのか。本書はこれまでほとんど見られなかった視点を示しつつ、必要十分なトピックを適切に示した最初のAndroid本ではないかと思います。
個人的には,本書をさらに4分冊にして,第1章から第3章までに相当する「設計編」、第4章から第6章までに相当する「スタンドアロン編」、第7章と第8章に相当する「連携編」といった形で、拡充版も出してほしいところです。
ソフトウェアの開発において、セキュリティ要件とは追加要件ではなく、最初から織り込んでおくべきものだと私は考えています。その観点から本書のようなしっかりした内容の技術書が、さらにハードルを下げた入門編も提供してくれれば、Androidという門戸の広いプラットフォームで初めてプログラミングの世界に足を踏み入れる初心者プログラマーに対してもアプローチできるだろう、そして、そうしたアプローチがあれば、最初から「安全なアプリケーション」の開発を考慮したプログラマーが増えるだろうと思うのです。
本書は中級レベルから読めるという点からも、セキュリティに重点を置いた技術書という点からも貴重であり、かつ、内容の充実ぶり・学習効果の高い構成・見過ごされがちなトピックを見落とさず網羅している幅広さから、ぜひ、これからマーケットにアプリを公開しようとしている人には手にとってほしい1冊であると断言します。
著者:タオソフトウェア株式会社
発行:インプレスジャパン(2011年12月刊)
価格:3360円(税込)
ページ数:304ページ
最近、Androidアプリについてさまざまな問題が持ち上がっています。不適切なパーミッション、広告モジュールによるプライバシー情報の盗み出し、アプリそのものの不適切な動作、マルウェアの登場などなど。
新しいプラットフォームが立ち上がると、以前からあるプラットフォームが経験したセキュリティ上の問題をひととおりなぞる、というのはこれまでに何度も目にした光景です。もちろん、プラットフォームに特有の新しいリスクも生まれ、そこから新たな対策の必要性に迫られる、といった光景も繰り返されてきました。
本書はこれまでにほとんど触れられることのなかった、Androidのセキュリティに特化した技術書です。これまでよく見かけたAndroidの本は初心者向けのハウツー本、初歩の開発手引き、APIのリファレンスといったところでしたが、満を持してといった趣でセキュリティに関する技術書が登場しました。
Androidの本ではありますが、本書はAndroidに限らずすべてのソフトウェア開発関係者に一度は目を通してもらいたい内容がギッシリ詰まっています。技術的にはAndroidに関するものが多く占めるのですが、考え方としては今日求められるソフトウェア開発やサービス展開に先立つ設計部分に関する部分は広く共通していると思います。
本書は主にAndroid上で動作するアプリの開発者、それも少なくともアプリやウィジェットをいくつか作り上げた経験のある中級者以上を対象にした技術書です。もちろん、企業などの開発チームの資料としても充分役目を果たすでしょう。加えて、クライアントアプリを配布してサービスを展開する,といった時,サービスそのものの設計やクライアントの開発に関わる人が考えておくべき内容についてもページ数を割いて記述されています。
このように本書が扱う範囲は非常に広く、そのため内容は濃密なものとなっています。そのため、本書が主題としているAndroidのセキュリティ、特に「安全なアプリケーションの配布」という目的を中心に扱うためにはどうしても初歩の部分については織り込み済みとして省略せざるを得ない、また想定読者として単にコーディングができるだけでなく、新しくアプリやサービスを開発できる人を対象にしているため、前提として初歩の段階は脱していることが求められます。300ページに満たない紙幅では初心者向けの解説を入れることは難しかったのでしょう。
あくまでも「ひととおりの開発ができる」「プログラミングについていちいち解説しなくても理解できる」という水準以上の人を対象にしているため、読み手を選ぶ本ですが、できれば手元に置いて少しずつでも読んでほしい内容です。
ざっくりと内容を紹介してみましょう。まず,第1章から第3章までは主に設計に関する部分といえます。また、本書の概要・概略になる部分でもあります。
第4章から第6章にかけて、スタンドアローンで動作するアプリで考慮しなければいけない内容が詳しく述べられています。少なくともマーケットなどで広範に配布するのであれば、本書第6章までは通読してサンプルを試しておくくらいの準備をしてもよい、あるいは開発チームの教育資料に使ってもよいでしょう。
第7章から第8章にかけて、アプリ間のデータやメッセージのやりとりについても詳しく述べられています。これまでよく書店で見かけたプログラミング本ではなかなか理解し辛かった「インテントの発行」「受け取り」「アクティビティの動作」の一連の流れが理解しやすく並べられているとともに、本書の目的でもあるセキュアな実装方法についてもしっかり示されています。
第9章はアプリケーション本体の保護、第10章は扱うデータの保護について触れられています。主に難読化と暗号化ですが,このあたりはAndroidに限らず広範囲な開発環境で役立つトピックがギュウギュウに詰め込まれています。
第11章、驚くことにここでようやくAndroidが持つセキュリティ機能について触れられます。ボリュームの比率でいっても,本書執筆陣がいかに「セキュアな開発」を重要視しているかがよくわかります。Androidの本ですからもちろん各章でAndroid固有の機能にも触れられているのですが、「Android Security」というタイトルからすればOSレベルのセキュリティ機能が最後尾に押し込められているのは本書の性格をよく現しているといえます。
全体を通して、「要件」「サンプル」「まとめ」という小構成が繰り返され、一つひとつのトピックが実際に動作させて理解できるよう考慮されています。また、この構成によって目次から探したいトピックをすぐに見つけ出せ、テストを行えるという利点も備えています。
豊富なサンプルコードを利用して、具体的に何がどうなればよいのかを体験できる、という構成は非常に学習効果が高いものでしょう。
また、巻末に収録されているセキュリティチェックリストはとてもよくできています。贅沢をいえば、このチェックリストをPDFで公開して頂けないかと思います。書籍から切り離してコピーして使うのはなかなか使い勝手が悪いので、A4サイズ2枚くらいのレイアウトで提供して頂けると、とても役立つはずです。
個人レベルで本書を読みこなすには,最初に述べたとおり初心者ではかなり難しいのではないかと思います。少なくとも,入門書ではありません。
また,技術書でありながら、設計についても考慮されている点は見逃せません。この手の書籍ではどうしても技術論に偏りがちで,取り扱うデータはとりあえず暗号化、ソースコードは難読化してSSL通信前提、さて好きなようにデータを扱えるぞ,なんてことにもなりかねないのですが,本書においてはまずかなり早いページでユーザーに関する情報の取り扱いは慎重であるべきだ、と指摘しています。
また、不必要に利用者を不安にさせないためのパーミッション選択や機能の組み合わせなど、開発者向けの書籍でありながら、利用者がいるんだ、ということを忘れていない点を高く評価します。
「安全なアプリケーションを作成するために」という副題がつけられていますが,誰にとって安全なアプリケーションなのか。本書はこれまでほとんど見られなかった視点を示しつつ、必要十分なトピックを適切に示した最初のAndroid本ではないかと思います。
個人的には,本書をさらに4分冊にして,第1章から第3章までに相当する「設計編」、第4章から第6章までに相当する「スタンドアロン編」、第7章と第8章に相当する「連携編」といった形で、拡充版も出してほしいところです。
ソフトウェアの開発において、セキュリティ要件とは追加要件ではなく、最初から織り込んでおくべきものだと私は考えています。その観点から本書のようなしっかりした内容の技術書が、さらにハードルを下げた入門編も提供してくれれば、Androidという門戸の広いプラットフォームで初めてプログラミングの世界に足を踏み入れる初心者プログラマーに対してもアプローチできるだろう、そして、そうしたアプローチがあれば、最初から「安全なアプリケーション」の開発を考慮したプログラマーが増えるだろうと思うのです。
本書は中級レベルから読めるという点からも、セキュリティに重点を置いた技術書という点からも貴重であり、かつ、内容の充実ぶり・学習効果の高い構成・見過ごされがちなトピックを見落とさず網羅している幅広さから、ぜひ、これからマーケットにアプリを公開しようとしている人には手にとってほしい1冊であると断言します。
この記事のトラックバックURL
http://hackerjapan.blog55.fc2.com/tb.php/160-bf7778a6
この記事にトラックバックする(FC2ブログユーザー)
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
ハッカージャパンブログ 『Android Security:安全なアプリケーションを作成するために』書評
2013/07/14(日) 19:25:48 | プラダ トート