セキュリティ関連リンク
ここでは、モバイルアプリケーション開発を始める上で参考になる、セキュリティ関連のガイドや記事を紹介します。
本ページのOWASP MASVSに関するリンクは、最新の情報より古いページを参照しています。
OWASP MASVSはv2がリリースされ、一部のコンテンツをOWASP MASTGに移行中です。
これらの移行が完了次第、本ページの内容と共にリンク先を更新予定です。
OWASP Mobile Top10
プロジェクト開始時に確認することをお勧めします。特にモバイル開発に初めて取り組む方は必ず知っておくべき内容です。
Open Web Application Security Project (OWASP)が公開しているドキュメントで、モバイル開発する上で注意すべきセキュリティ事項が簡潔にまとめられています。数時間もあれば読み終えることができます。
ただし記載が不足している箇所もあるので、次に紹介するOWASP Mobile Security Testing Guideも参照するとより理解を深めることができます。例えば以下のような記事です。
- iOSのアプリで脱獄(Jailbreak)を検知する方法
- KeyStoreはデバイスによってはTrusted Execution Environment(TEE)、Secure Elements(SE)に未対応
OWASP Mobile AppSec Verification Standard (OWASP MASVS)
プロジェクト開始時に確認することをお勧めします。
Open Web Application Security Project (OWASP)が公開しているドキュメントです。モバイル開発におけるセキュリティ要件がチェックリスト形式でまとめられており、数時間もあれば読み終えることができます。
MASVSは2つのセキュリティ検証レベル(MASVS-L1およびMASVS-L2)とリバースエンジニアリング耐性要件(MASVS-R)を定義しています。
- MASVS-L1: 一般的なセキュリティ要件であり、すべてのモバイルアプリに推奨される
- MASVS-L2: 機密性の高いデータを扱うアプリに推奨される
- MASVS-R: 追加の保護コントロール
Using the MASVS(日本語)に、どのようなアプリケーションでどのセキュリティ検証レベルを採用するべきかについて説明が記載されています。プロジェクトでどのセキュリティ検証レベルを採用するべきかについてもガイドラインが提示されている(日本語)ので、セキュリティ要件を定義する際などに参考にしてください。
OWASP Mobile Security Testing Guide (OWASP MSTG)
- 原文
- GitBook(原文)
- GitBook(日本語訳)
- チェックリスト (1.1.3)
- OWASP MASVSとOWASP MSTGのマッピング表です。
- チェックリスト(Framework別)
- React NativeやFlutterなどフレームワークごとにセキュリティ要件を担保しているかが明記されているチェックリストです。ただし未完成(Work In Progress)なので注意してください。
OWASPが公開している、モバイルアプリケーションのセキュリティをテストするための包括的なマニュアルです。OWASP MASVSに記載されている要件に対応するテストケースのリストが含まれています。
OWASP Mobile Top10よりも、詳細に記載されているため分量は多いですが、案件の内容に合わせてピックアップして読むだけでも十分役に立ちます。例えば、モバイルアプリの認証アーキテクチャを読むと、認証アーキテクチャや注意点などについて理解できるでしょう。
Android Developers Guide | Security
Android オープンソース プロジェクトが公開しているガイドで、Androidアプリケーションを設計する際に読むと参考になります。
一般的なセキュリティ観点はここまでに紹介したOWASPのドキュメントで網羅できますが、Android特有のセキュリティ観点についてはこちらを一読するのをお勧めします。次で紹介するAndroidアプリのセキュア設計・セキュアコーディングガイドをあわせて読むと、より実装ベースで理解できます。分量は多いですが、案件の内容に合わせてピックアップして読むだけでも十分役に立ちます。
Androidアプリのセキュア設計・セキュアコーディングガイド
一般社団法人日本スマートフォンセキュリティ協会(JSSEC)が公開しているガイドで、設計、実装を始める際に読むことをお勧めします。 OWASP Mobile Top 10やOWASP MASVS、OWASP MSTGと重複する部分はありますが、他ドキュメントよりも実装レベルで詳細に記載されています。例えばAndroid特有のパーミッションの管理やモバイル特有の生体認証などについてです。
ボリュームは大きく、ソースコードは読み飛ばし「ルールブック」に注目すれば、1日で読むことができます。
「ルールブック」のセクションでは、その記事がテーマとする開発者コンテキストにおいて、セキュリティ観点から守るべきルールや考慮事項を掲載しています。1、2章は読み飛ばして3~6章を読むことお勧めします。
iOSのセキュリティについて
iOSのセキュリティに関するガイド等で最近のドキュメントは見つけられておりません。
OWASP MSTGのiOSテストガイドをご覧ください。
開発ツールごとのセキュリティに関するガイド
開発ツールごとにセキュリティ関連のガイドがあるので、プロジェクト開始時に見ておくことをお勧めします。