LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック
ラックピープル | 

モバイルアプリへのニーズが急増、セキュリティ確保へ必読のOWASP文書「MSTG」を読み解く

初めまして、ラックの篠原です。主にセキュリティサービス開発を担当しています。

ソフトウェアのセキュリティ環境の状況やセキュアなソフトウェア開発を促進する技術やプロセスに関する情報を共有し、普及啓発を目的に専門家が集まるオープンソースソフトウェアコミュニティであるOWASP(Open Web Application Security Project)は、「OWASP Mobile Security Testing Guide(MSTG)」を発行しています。2021年7月にマイナーアップデートがあり「v1.2」となりました。

これを機に、今回はMSTGを解説し、関連するOWASP MSTG資料の活用を例示します。スマートフォンの利用が拡大し、モバイルアプリのセキュリティ確保の重要性が高まる中で、開発者やセキュリティ担当者をサポートする情報を提供します。

MSTGの表紙(OWASPより)
MSTGの表紙(OWASPより)

※ MSTGは、こちらから無料で閲覧・ダウンロードできます。
GitHub - OWASP Mobile Security Testing Guide(MSTG)

OWASP Mobile Security Testing Guide(MSTG)

MSTGはモバイルアプリを対象に、セキュリティテストを実施するためのガイドです。以下の3部構成です。

  • モバイルアプリ全般的のセキュリティテストガイド
  • Androidテストガイド
  • iOSテストガイド

内製化したセキュリティテストを実施している場合に、特に有用なテストガイドです。一方で、セキュリティテストの担当者だけでなく、開発者にもメリットはあります。テストを実施するためのポイントを参照し、解説しているので、セキュリティを考慮した実装の一助になります。

MSTGの活用ポイント

MSTGというテストガイドを手に闇雲にテストしてもスマートとは言えません。ここでは、MSTGを効率的に活用できるOWASPの仕組みと併せて、ポイントを紹介します。

OWASPの体系

OWASPが提供するモバイルアプリに関連する資料には、他に「OWASP Mobile Application Security Verification Standard(MASVS)」や「チェックリスト」が公開されています。もしかしたら、MASVSは聞いたことがあるかもしれません。実際にラックでは、過去にMASVSを紹介してきました。MSTGは、このMASVSやチェックリストと密接な関係があります(図1)。

モバイルアプリに関連する資料の関係(OWASPより)
図1 モバイルアプリに関連する資料の関係(OWASPより)

どういった点が密接かという疑問を解消すべく、MASVSを見てみましょう。MASVSは8つのカテゴリで構成されており、それぞれのカテゴリに詳細なセキュリティ要件が記載されています。表1は、MASVSの「V4:認証とセッション管理要件」カテゴリのセキュリティ検証要件をリスト化(抜粋)したものです。「MSTG-ID」と記載の列があることがわかります。そう、MSTGの文字列が。実は、MASVSの各MSTG-IDは、MSTG記載のテストケースにリンクしています。

# MSTG-ID 説明 # MSTG-ID 説明
4.1 MSTG-AUTH-1 アプリがユーザーにリモートサービスへのアクセスを提供する場合、ユーザー名/パスワード認証など何らかの形態の認証がリモートエンドポイントで実行されている。
4.2 MSTG-AUTH-2 ステートフルなセッション管理を使用する場合、リモートエンドポイントはランダムに生成されたセッション識別子を使用し、ユーザーの資格情報を送信せずにクライアントリクエストを認証している。
4.3 MSTG-AUTH-3 ステートレスなトークンベースの認証を使用する場合、サーバーはセキュアなアルゴリズムを使用して署名されたトークンを提供している。
表1 MASVS「V4:認証とセッション管理要件」(OWASP MASVSより抜粋)

例えば、開発したモバイルアプリが、表1の#4.1のセキュリティ要件を満たしているかどうかを確認したいときには、MSTG内で「MSTG-AUTH-1」を手掛かりにテストケースを探し、手法を理解した上で検証していきます。MSTG内で検索をすると、以下の3つの項目が該当します。

  • Verifying that Appropriate Authentication is in Place (MSTG-ARCH-2 and MSTG-AUTH-1)
  • Testing OAuth 2.0 Flows (MSTG-AUTH-1 and MSTG-AUTH-3)
  • Testing Confirm Credentials (MSTG-AUTH-1 and MSTG-STORAGE-11)

このように、MASVSのセキュリティ要件に該当するテストケースをMSTGから探し出すことは可能ですが、いちいち検索をかけて探すのは面倒だと思いませんか?そこで、「チェックリスト」を使用します。

※ チェックリストのダウンロードページ:https://github.com/OWASP/owasp-mstg/tree/master/Checklists

チェックリストには、MASVSの各セキュリティ要件及びその要件を検証するMSTGのテストケースのURLリンクがマッピングされているので、わずらわしさが解消されました。ただし、残念ながら、2021年10月11日時点では、MSTGのリンクはバージョン1.1.3になっているため、URLリンク遷移先の情報は少し古いです。さらに、このチェックリストを使用しながらテストをし、各MASVSセキュリティ要件の「結果」欄にテスト結果を入力すると、Android及びiOSでのサマリーを示してくれます(図2)。

チェックリストのサマリーのサンプル(OWASPより)
図2 チェックリストのサマリーのサンプル(OWASPより)

OWASP資料の活用ポイント

実際にOWASP資料をどう活用するか、単純な開発モデルを例に活用ポイントをご紹介します。

上流はMASVS

MASVSはモバイルアプリの設計や開発、テストをするときに必要とされるセキュリティ要件のフレームワークを定めたドキュメントです。そのため、例えば図3に示すように、モバイルアプリの要件や仕様策定といった開発モデルの上流で、モバイルアプリの性質や種類に適したセキュリティ要件を定めるために用います。図3は単純な開発工程を示していますが、アジャイル開発でも有効です。機能変更する度、開発サイクルを回す度に、要件をMASVSで固めてMSTGでチェックしていきます。

開発工程に合わせたOWASP資料の活用ポイント
図3 開発工程に合わせたOWASP資料の活用ポイント

どのセキュリティ要件を導入するかの目安は、以下のMASVSのセキュリティ検証レベルを参考にするといいです。

  • MASVS-L1:標準のセキュリティ
  • MASVS-L2:多層防御
  • MASVS-R:リバースエンジニアリングと改ざんに対する耐性

上記検証レベルを組み合わせ、「MASVS-L1」「MASVS-L2」「MASVS-L1+R」「MASVS-L2+R」という4つの検証方式があります。ただし、あれもこれもと選択していくと、開発コストが上がってしまいます。アプリの性質や関連する省庁や団体が定める基準と照らし合わせて取捨選択し、適切なセキュリティ要件にしておくことが大事です。

テストでMSTG

セキュリティ要件を設定し実装後、いよいよテストの段階を迎えました。開発を終えたモバイルアプリでMSTGを利用します。定めたMASVSのセキュリティ要件が満たされているのか、チェックリストとともに確認します。

MSTGでのチェックを自社内で実施できないという場合は、セキュリティベンダーに依頼する方法もあります。ただし、MASVSで定めるセキュリティ要件の一部は、そのアプリの開発に携わらない限り、把握できない項目もあります。どのセキュリティ要件をチェックするか検討する必要があります。

まとめ

今回の記事では、モバイルアプリ開発に活用できるOWASPのドキュメント、MSTGを紹介しました。MSTGはテストガイドですが、その内容の細かさやMASVSと合わせた活用から、モバイルアプリ開発に役立つドキュメントと言えます。

ラックでは、モバイルアプリにおけるセキュリティ対策について様々なサービスを用意しております。ご興味ありましたら、ぜひお問い合わせください。

「モバイルアプリにおけるセキュリティ対策」に関するお問い合わせ

この記事は役に立ちましたか?

はい いいえ