「マンガでわかる!Androidアプリのセキュリティ」とは?
重要度の高まるモバイルアプリのセキュリティ対策とプライバシーの問題で、世の中に公開されている多数のアプリには脆弱性リスクがあるとされています。出荷後に脆弱性が発見された場合、対応コストがかかるだけでなく、製品やブランドの信用に関わる大きな問題に発展する可能性もあります。
この冊子では、Android アプリのセキュリティをテーマに、概要や役立つガイドや対策ツールについてマンガを交えてわかりやすくお伝えします。
こんな方におススメです!
- ・Androidアプリ開発に携わっている
- ・Androidアプリのセキュリティについて興味がある
- ・Androidアプリのセキュリティ対策に役立つ情報が知りたい
目次
はじめに
登場人物紹介
-
矢羅(やら)かし子ちゃん
明るく元気に
やらかす新人OL -
木ノ下さん
セキュリティの妖精
Androidアプリのセキュリティ対策の必要性
-
Androidアプリで多くみられる脆弱性について紹介するね
-
はーい、開発に入る前にちゃんと勉強しておくよ
1.コンポーネントのアクセス制御
Androidはアプリ間連携の仕組みが充実しており、アプリ内のコンポーネントを外部に公開し、他のアプリに直接利用させることができます。この仕組みは充実したアプリ間連携(インテント)を強力に後押ししますが、一方で他のアプリから勝手にアプリ内のコンポーネントが利用されてしまい、アプリ内の情報が漏えいしたり改ざんされたり、アプリの機能が勝手に利用されたりといった被害につながることがあります。
こうした問題を防ぐため、アプリ開発者は各コンポーネントを他のアプリに公開するのか、他のアプリに公開せず非公開にするのかを判断し、正しくコンポーネントのアクセス制御を設定する必要があります。
2.脆弱な暗号化通信
暗号通信は正しく実装しなければその安全性は保障されません。ファイル暗号化など、通信以外にも暗号技術は使われますが、暗号技術にはDESやMD5のように危殆(危険)化した暗号アルゴリズムがあったり、モードやパディングなど脆弱な暗号技術の組み合わせがあったりと、暗号技術の利用方法には注意すべきものがあります。
3.プライバシー
近年、プライバシー情報を守るための世界的な潮流として「プライバシー・バイ・デザイン」が提唱されており、この概念に基づき各国政府においてもプライバシー保護のための法制化を進めています。
スマートフォン内の利用者情報を活用するアプリは、利用者が個人情報やプライバシーの観点から安全・安心にアプリを活用できるように、利用者情報を適切に取り扱うとともに、利用者に対して分かりやすい説明を行い、利用者に利用の可否の選択を促すことが求められます。
そのためには、アプリがどのような情報をどのように扱うか等を示したアプリ毎のアプリケーション・プライバシーポリシーを作成・提示するとともに、慎重な取り扱いが求められる利用者情報の取得・利用については事前にユーザーの同意を得る必要があります。
どんなセキュリティ対策を取ればいいの
■JSSEC「Androidアプリのセキュア設計・セキュアコーディングガイド」
日本スマートフォンセキュリティ協会(JSSEC)から発行されているAndroidアプリケーションのセキュリティを考慮した設計・開発のノウハウを集めたガイド。アプリケーション開発現場で「使う」ことを想定した文書構成が特徴です。英語版も公開されています。
Androidアプリのセキュア設計・セキュアコーディングガイド
■IPA 「セキュア・プログラミング講座」
Androidアプリに限らず、ソフトウェア開発全般におけるセキュアコーディングについて学べる内容になっています。
IPA セキュア・プログラミング講座
■JPCERT/CC「Android アプリケーション開発へのルールの適用」
Java言語で開発する際に気を付けるべきルールを確認することができます。
JPCERT/CC
■IPA「Japan Vulnerability Notes」
日本で使用されているソフトウェアなどの脆弱性関連情報とその対策情報を提供し、情報セキュリティ対策に資することを目的とする脆弱性対策情報ポータルサイトです。スマートフォンアプリの情報も掲載されています。
IPA「Japan Vulnerability Notes」
-
最後に紹介したサイトでは脆弱性情報を見れるから具体的に学べていいと思うよ
-
ありがとう、開発エンジニアチームに共有しておくよ
セキュアコーディングチェッカーとは
Androidアプリ検査ツールSecure Coding Checker
Android アプリのソースコードの問題点を1分で発見し、原因と修正方法を提示する検査ツールです。(日本語/ 英語対応)S a a S 方式の検査環境を提供、Java言語のアプリの検査が可能です。
検査はユーザーの実施したいタイミングで何度でも利用できます。
- 検査イメージ
- 特徴1ガイド更新と同時に、検査ロジックへと反映
- JSSEC『Android アプリのセキュア設計・セキュアコーディングガイド』は、OSのバージョンアップに伴い年に1~2回ほど更新され続けています。
Secure Coding Checker はガイドの更新と同時に検知ロジックを反映できるので、最新のAndroidOSにおける開発遅延の要因を取り除き、円滑なサービスリリースに貢献します。 - 特徴2開発者の負担を減らし、誤検知を防ぐ仕組み
- 一般的な脆弱性検査ツールでは、見つかった問題が本当に被害をもたらすかを開発者自身が判断しなければならず、大きな負担となっています。Secure Coding Checker は、簡単な質問に答えるだけで、設計とコーディングが一致しているのかを判断できる仕組みを実装し、ツールの誤検知がもたらすユーザーの負担を軽減しています。
-
さっき紹介したセキュアコーディングガイドに準拠した検査が可能なツールだよ
-
検査したいときに何度でも使えるっていいね!ソースコード修正するたびに検査しておけば安心だ
APKファイルをアップロードして検査ボタンをクリック
APKファイルをアップロードして検査ボタンをクリック
1分程度待てば・・・
検査完了!
検査結果で見たい項目をクリックすると詳細が確認できます
検査詳細画面から、セキュアコーディングガイドの解説ページを確認することもできます
検査結果をCSVで出力することもできます
-
シンプルで使いやすそうだね、開発エンジニアの方にも見てもらいたいな
-
30日間の無料トライアルがあるからぜひ試してみてね
終わり
最後までご覧いただきましてありがとうございました!
1つでもお役に立てる情報がありましたら嬉しいです!
筆者:かすたーど先生(デジタルペンテストサービス部)
各種お問い合わせ先
- 株式会社ラック
- 〒102-0093 東京都千代田区平河町2-16-1 平河町森タワー
sales@lac.co.jp www.lac.co.jp
本資料は2021年4月現在の情報に基づいて作成しており、記載内容は予告なく変更される場合があります。
secure coding checkerは、株式会社ラックの登録商標です。
「Android」はGoogle Inc.の商標または登録商標です。
Androidロボットは、Googleが作成および提供している作品から複製または変更したものであり、クリエイティブ・コモンズ表示3.0ライセンスに記載された条件に従って使用しています。
Android™ is a trademark of Google Inc.
The Android robot is re produced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.
本内容の一部または全部を著作権法が定める範囲を超えて複製・転載することを禁じます。
このページでは、AndroidアプリやJavaで開発する時に役立つ情報が載っているガイドやWEBサイトを紹介するね