ホーム > コラム > セキュアコーディングガイドを活用したアプリ開発の取り組み
コラム
技術者向け
発信元:
書いた人:安田 良明(株式会社ラック/OWASP)

セキュアコーディングガイドを活用したアプリ開発の取り組み

2024年5月27日
2024年5月20日
application_check

はじめに

現代社会では、一人一台のスマートフォンを持ち、仕事や日常生活で多くのアプリを使うことが当たり前になりました。スマートフォンは便利ですが、プライバシー侵害やセキュリティの問題もあります。個人情報の流出、不正アクセス、データの盗難など、スマートフォンに関するリスクは日々増えています。これらの問題に対応するためには、アプリを開発する時からリリースや定期アップデートの時までセキュリティを考えることが大切です。

この記事ではアプリを開発する時のセキュリティの取り組みみについて分析し、アプリを開発する時に必要なセキュリティの活動について述べます。JSSECが長年行ってきた「Androidアプリのセキュア設計・セキュアコーディングガイド」に加えて、2023年に発表された「OWASP Mobile Application Security Design Guide」を参考に、アプリを開発する時に求められるセキュリティ対策を提案します。

アプリ開発セキュリティの取り組み

スマートフォンは、私たちの日常生活に必要不可欠なものとなっていますが、それは多様な機能を提供してくれるアプリが安全に使える時だけです。アプリはユーザーの個人識別情報や位置情報、連絡先、写真、音声、メッセージなど、色々なデータにアクセスすることができるため、アプリのセキュリティやプライバシーを保護するためにはアプリ診断という作業が必要になります。アプリ診断は、アプリ開発のリリースの前後に行われ、アプリの設計、ソースコード、バイナリや動作環境などをチェックし、弱点や不正な動作を見つけて、改善を行っています。

このアプリ診断の取り組みは、一般的に開発したアプリをリリースする直前に実施されることが多い取り組みとなっています。その際のアプリ診断の手法としては、手動・自動または両方を組み合わせたハイブリッドで実施されます。手動で行うアプリ診断は、高度なセキュリティ技術者がアプリ設計からソースコード、動作までを調査・分析し、弱点や欠陥を検出することができます。そのため、多くの場合、アプリ診断を提供するセキュリティ専門業者に依頼して実施する為、深い調査・分析結果を得られる可能性がありますが、調査・分析結果のばらつき等の人的制約、高い費用等による経済的制約を抱えます。自動で行うアプリ診断は、専門ツール・ソフトウェアを用いて、アプリ設計からソースコード、動作までを自動チェックし、弱点や欠陥を検出します。専門ツール・ソフトウェアの購入又はサービスを利用する為、利用者が必要とするタイミングにアプリ診断ができ、効率的(自動化、強制化、低コスト、診断レベルの統一、等)にチェックすることが出来ますが、チェック内容が専門ツール・ソフトウェアの対応範囲内に限られる制約があります。

アプリ開発をサポートするセキュアコーディングガイド

アプリ診断はいくつかの理由からますます必要になっています。まず、アプリの数や種類が増えており、ユーザーのデータや安全性を保護しなければならないアプリが増加しているためアプリのセキュリティ水準が求められています。次に、アプリの機能要件、開発環境や技術が複雑化しており、アプリの設計、コード、ネットワーク、データの保管場所等で起こりやすい脆弱性が多くなっています。これにより、アプリのセキュリティ対策が難しくなっています。最後に、スマートフォン自体がエンドポイントデバイスとなり、攻撃者や悪用者がアプリを攻撃することで組織や個人のデータにアクセスする機会が手に入る可能性が高まってきたため、アプリのセキュリティに対するリスクが大きくなっています。しかし、アプリ診断はますます必要になっている一方で、アプリ診断の結果に応じて、セキュリティやプライバシーの問題を改善するためには、セキュア設計・開発の知識でアプリの開発者や提供者をサポートすることが必要になります。その際、アプリのセキュリティ要件やリスク分析、セキュアコーディングのガイドラインやテスト方法をまとめたJSSECの「Androidアプリのセキュア設計・セキュアコーディングガイド」やOWASPの「Mobile Application Security Design GuideMASDG)」を使用することで、セキュリティ要件の検討や安全なコード実装をガイドに沿って行うことができます。JSSEC のガイドでは、アプリのライフサイクルに従って、セキュリティ活動やチェックポイントが示されており、Androidアプリ開発時のシステム実装の詳細な内容をサポートしています。MASDGでは、AndroidアプリとiOSアプリ開発をサポートし、MASTG MASVS などの OWASPプロジェクトと連携したモバイルアプリのセキュア設計・開発に必要な知識や技術が網羅されています。アプリ開発を行う際、これらのガイドを組み合わせることで、アプリ開発に必要なセキュリティを効果的に考慮することができます。両ガイドの特徴を把握するために、MASDGが基にしているMASVS 1.4.2 L1 の要件に対して、JSSECガイドのトピックの数と、MASDGのルールの数をAndroid版で一覧にしました。

 

表:JSSECガイドとMASDGの対応表

表:JSSECガイドとMASDGの対応表

セキュアコーディングガイドの活用例

アプリ診断はアプリのセキュリティを保護するための重要な方法ですが、それだけでは不十分です。アプリ診断は、アプリのセキュリティの状況や課題を把握し、改善するサポートができますが、根本的な問題や変化に対応することはできません。セキュリティ活動を考慮したアプリ開発を行う場合、アプリの企画・設計段階からセキュリティチェックを実施し、アプリの設計評価、コードレビュー、通信の暗号化、アクセス権限の管理など、さまざまな技術を導入する必要があります。また、ライフサイクルに沿って安全性を確保するためには開発者だけでなく、品質保証担当もセキュリティ意識を高め、リリース時や定期的なアップデートを行う際、不正なアプリの市場への公開を防ぐ対策が必要です。その際、今回紹介したJSSECガイドおよび MASDGを利用することでアプリ開発の初期段階から高品質なセキュリティ活動に取り組むことができます。特に、JSSECガイドは内部設計、開発・システム実装に強い特徴を持ち、MASDGは要件定義、外部設計、内部設計に強いことに加え、テスト手法に関する内容もガイドに記述されています。これら2つのガイドを効果的に組み合わせることで、アプリ開発者の能力を成熟させていくことが期待できます。

 

図:セキュア設計・開発ガイドを組み合わせたアプリ開発の例

図:セキュア設計・開発ガイドを組み合わせたアプリ開発の例

 

よりよいアプリ開発を行うための取り組み

重要なのは、要件定義や仕様に問題を残して外部設計以降の工程に不備を継承させないことです。そのため、アプリ診断の取り組みを行う際、後段の工程となるテストフェーズでアプリ診断を行うのではなく、シフトレフトと呼ばれるアプリ開発の早い段階からセキュリティの活動に取り組むことで、効率よく安心・安全なアプリ開発が実現できるようになります。また、アプリの数や種類が増加することやアプリのアップデート間隔が短くになるにつれ、属人型の限定的なアプリ診断からツールを活用した量産型の実用的なアプリ診断が市場では求められています。この課題を解決するために、セキュリティベンダー、JSSECOWASPではアプリ診断の取り組みを効率よく実施するためのツールやガイドを提供することで、セキュリティチェックの自動化、高速化、精度化するための活動を行っています。なお、総務省が主体となり通信分野におけるサイバーセキュリティ対策の取り組みについて情報発信や政策分科会が行われています。アプリ開発者や提供者に参考になる情報が公開されておりますので合わせてご確認ください。

 

まとめ

今回紹介したJSSECガイド、MASDGを使うことで、常にアプリを最新の状態で安心して市場に公開できるようになることを望んでいます。スマートフォンとアプリの安全性は、単に技術的な問題ではなく、社会全体で対策をするべき課題です。この記事が、アプリ開発セキュリティの大切さを理解し、より安全なデジタル環境を作るための一助となることを願っています。最後に、技術の進歩とともに、私たちの生活を豊かにするために、これらのリスクを管理し、克服していくことが重要です。
 

参考資料

 
※1
JSSEC Android アプリのセキュア設計・セキュアコーディングガイド
https://www.jssec.org/report/20240229_securecoding.html
※2
OWASP Mobile Application Security Design Guide
https://owasp.org/www-project-mobile-application-security-design-guide/
3
総務省 ICTサイバーセキュリティ政策分科会(第1回)
https://www.soumu.go.jp/main_sosiki/kenkyu/cybersecurity_taskforce/02cyber01_04000001_00272.html
総務省 ICTサイバーセキュリティ政策分科会(第5回)
https://www.soumu.go.jp/main_sosiki/kenkyu/cybersecurity_taskforce/02cyber01_04000001_00286.html

2024年5月27日
2024年5月20日
よく読まれている記事