■モバイルアプリのセキュリティは学びづらい?
スマートフォンが生活の一部となった今、モバイルアプリは常に攻撃のリスクにさらされています。ユーザーの情報を守るためにも、セキュリティ対策は開発者にとって不可欠な要件です。
一方で、Androidアプリ開発に必要なセキュリティ知識を学ぼうとして、苦労している方も多いのではないでしょうか。公式ドキュメントや各種ガイドラインが点在しており、「実際の開発にどう生かせばいいのか」をつかみにくいのが現実です。
■本書の特徴
本書は、Androidアプリ開発者が最低限押さえるべきセキュリティの基礎と、すぐに実践できる対策を、ハンズオン形式で体系的に解説した入門ガイドです。日々セキュリティ課題に向き合ってきた著者が、開発の現場で本当に役立つノウハウを、丁寧かつ実践的にまとめています。
たとえば、次のような「モバイルならでは」のリスクを、コードの実例とともに具体的に解説します。
・マニフェストファイルの設定ミスによる権限漏れ
・インテントの誤用による情報漏洩
・ストレージへの保存方法に起因するデータ流出
・WebViewの不適切な実装
・認証・認可まわりの設計ミス
・不十分なネットワーク通信の暗号化設定
各リスクの仕組みや想定される攻撃手法を理解したうえで、脆弱なコードを実際に動かしてみることで、対策の重要性と効果を実感できる構成になっています。
■本書の対象読者
・Androidアプリ開発者(経験2〜3年程度)
・モバイルアプリのセキュリティに関心がある人
・セキュリティガイドラインを読んでもピンと来なかった人
第1章 モバイルアプリケーションとセキュリティ
1.1 Androidアプリを狙う脅威について
1.2 OSセキュリティ
1.3 モバイルアプリにおけるセキュリティの検討
第2章ハンズオン環境のインストールとセットアップ
2.1 ハンズオン環境のセットアップ
2.2 診断ツールのセットアップ
第3章マニフェストファイルとアプリコンポーネントにおける脆弱性と対策
3.1 Androidアプリとアプリコンポーネント
3.2 【脆弱性】意図しないアクティビティの公開
3.3 【脆弱性】コンテンツプロバイダやファイルプロバイダの設定不備による情報漏洩や操作
3.4 【脆弱性】ブロードキャストの誤った利用による情報漏洩
3.5 【脆弱性】不要なパーミッションの設定による問題
第4章 インテントにおける脆弱性と対策
4.1 アプリの入力に対する検証の必要性とは
4.2 インテントとインテントフィルタ
4.3 【脆弱性】暗黙的インテントを通じた機密情報の漏洩
4.4 【脆弱性】インテントの利用による意図しないコンポーネントの公開・利用
4.5 【脆弱性】インテントを経由したアプリへの攻撃
第5章 Androidが扱う機密情報に関する脆弱性と対策
5.1 アプリが守るべき情報とは
5.2 モバイルアプリにおける機密情報を狙う脅威について
5.3 【脆弱性】不適切なストレージの利用による情報漏洩
5.4 【脆弱性】ログによる機密情報の漏洩
5.5 【脆弱性】ハードコードによる漏洩
5.6 【脆弱性】表示による機密情報の漏洩
5.7 暗号化時の注意
第6章 WebViewにおける脆弱性と対策
6.1 WebViewやディープリンクに関する脅威
6.2 【脆弱性】WebViewとXSS
6.3 【脆弱性】信頼できないURLの読み込みによる脅威
6.4 【脆弱性】ファイルの読み込み設定が引き起こす脅威
第7章 ネットワークにおける脆弱性と対策
7.1 モバイルアプリとネットワークにおける脅威
7.2 【脆弱性】HTTP通信の許可による攻撃
7.3 【脆弱性】証明書の不適切な利用による脅威
7.4 証明書ピンニングによる防御
第8章 セキュリティを向上するための方法
8.1 Androidアプリのセキュリティ情報の収集方法について