「金融サービスにおけるモバイル・アプリのセキュリティ~UX向上とセキュリティ確保の両立~」

大森 健史 氏
【講演者】
日本シノプシス合同会社
ソフトウェア・インテグリティ・グループ
マネージング・プリンシパル
大森 健史 氏

顧客行動の変化と金融系モバイル・アプリの動向

従来、金融機関では、支店の窓口対応あるいはATMを使用した出入金を行っていたが、COVID-19の流行により、人との接触を避けるために外出を控えるなどの行動変化が起こり、これらの行動がモバイル・アプリ通じて行われるように変化してきた。さらに、振り込みや個人間での金銭の受け渡しなどでもペイメントアプリの利用が増加している。

2020年10月度から2021年3月における、モバイル系のアプリ、ファイナンス系のアプリのインストール数が多い国は、インドやブラジル、インドネシア等の人口が多い国であるが、日本も11位と上位に選出されている。日本と韓国におけるファイナンス系アプリ全体のインストール数は 2020年1月~3月期と2021年の1月~3月期を比べると55%ほど上昇しており、決済系のアプリ、投資関係のアプリ、銀行系のアプリの利用が増加している。

UX(顧客体験)を向上させるために重要なことは、窓口、ATM、実店舗で対応していた業務がモバイル・アプリへ移行しても大きく変わりはなく、顧客の求める機能の実装、使い勝手の良さ、分かりやすさ、心地よさである。また、これらの基準は人それぞれ異なるため、パーソナライズが必要である。

モバイル・アプリにおいてUXを向上させるために行うべきことは、個々に合わせた機能、環境の整備や適切な支援、適時の機能の追加、迅速な問題解決が挙げられる。これらを実現するためには、AIを活用した顧客の好みの抽出と、それに合わせてパーソナライズした機能を提供する仕組みが不可欠であり、これら新技術の迅速な取り込みが必要だと考えている。また、自社での迅速な開発が難しい場合、OSS(オープンソースソフトウェア)の利活用も積極的に行うべきだと考える。

適時の機能追加、迅速な問題解決を行うためには、高速開発やリリース頻度向上が必要であり、どれだけ高速化できるかが肝となる。そのためには、CI(継続的インテグレーション)、CD(継続的デプロイメント)やアジャイル開発が重要になる。

<金融系モバイル・アプリのセキュリティについて>

既知の脆弱性を含むアプリの比率が1~2番目に高いものがゲーム関連であり、その次に、「バンキングアプリ」、「バジェッティングアプリ」、「ペイメントアプリ」など、金融系のモバイル・アプリが挙げられている。

また、モバイル・アプリのセキュリティを考えるうえで、アプリが要求する権限の数は必要最小限のしか要求しないことが重要である。しかしながら、金融系のアプリは不必要な権限も含まれていることが見受けられ、権限数が多い点も問題である。これら2つの観点から、金融系アプリのセキュリティが万全ではないのが現状だ。ペイメント系、決済系アプリに対する脆弱性は平均値で41個、バンキングアプリは平均値で55個と、相当な脆弱性の数を含んでいる。

そのほかにも、修正が提供されている悪用可能なOSSの脆弱性の割合は、バンキングアプリで39%となっており、パッチレベルを上げていれば問題ないにもかかわらず、対応せずに脆弱性を含んだ状態になっている。

さらに、金融系モバイル・アプリのセキュリティでは、開発者による意図しない、または意図的ではあるが悪意のない情報漏洩として、トークン、鍵、認証情報、個人情報などの秘匿情報をソースコードや構成ファイルに埋め込んでしまうことが挙げられる。我々の調査結果として、少なくとも4つのバンキングアプリで、このようなトークンが埋め込まれていることを発見している。

金融系モバイル・アプリは特に安全性に配慮されていると考えられがちだが、他のアプリと比べてセキュリティ面で安全だとは言えず、既知の脆弱性、脆弱なOSSの利用、不要な権限の要求、秘匿情報の埋め込みなどの問題があるのが現状だ。

セキュアなモバイル・アプリを開発するための対応策として、既知の脆弱性に対し、Synopsys Coverityのような静的解析ツールを導入し、脆弱性を見つけて対応していくことが必要だ。

脆弱なOSSの利用については、Synopsys Black duckのようなOSSのコンポジション解析ツールを活用し、どのようなソフトウェアがこのアプリケーションの中に含まれているかを棚卸し、脆弱性を含んでいるバージョンの把握やライセンスリスクの有無をチェックし、脆弱性を含んでいる場合には、脆弱性がないバージョンにアップデートした上でリリースすることが必要である。

そのほかにも、不要な権限や、秘匿情報の埋め込みについても、Synopsys脅威モデリングサービスのような設計レビューや脅威分析、あるいはSynopsys MAST サービスなどのセキュリティ診断が必要であり、不必要な権限を与えられている場合、権限の破棄や情報漏洩を見極めたうえで、修正を行う事が大切である。

セキュリティ対策で一番大切なことは、想像力だと考えている。目に見える事象だけではなく、それが起こることによってお客さまにどのような事象が起こるのか、ひいては自社で何が起こるのかを想像できることが大切だと考える。

脅威モデリングについて

脅威モデリングとは、システムに対する潜在的な脅威を特定するセキュリティの評価手法であり、既知のセキュリティ・パターンやアプリケーション環境に基づく脅威を特定する。目的としては3つあり、「セキュリティ要件の特定」、「セキュリティ上の問題、設計上の欠陥の特定」、「下流セキュリティ・テストへのインプット」である。

「セキュリティ上の問題、設計上の欠陥の特定」については、例えば、パスワードが埋め込まれている場合、あるいはユーザーがパスワードをリセットする際の認証情報の入力に失敗した際の回数制限がない場合などは、「脆弱性」には該当しないため、静的解析ツールで検知することが難しい。このような場合に、脅威や攻撃を受ける可能性がある設計上の欠陥を見つけ出すために、脅威モデリングは必要である。

「下流セキュリティ・テスト」へのインプットについては、ペネトレーション・テストを行う際に、ブラックボックステストでは攻撃者と同様に内部構造がわからない状態で攻撃を行うが、テスターと攻撃者では攻撃に掛けられる時間が著しく異なるため、適切なテストが実施できているとは言えない。そのため、内部構造を理解したうえで、怪しい箇所を狙う必要がある。脅威モデリングを行うことにより、どういう脅威があり、どこにリスクがあるのかを見極めた上で、リスクが高いところを重点的にペネトレーション・テストで調査することができる。

脅威モデリングの利点は、コード作成前の問題検出、設計上の欠陥の発見、新たな攻撃や脅威の評価、セキュリティ要件の特定、テストのインプットに使うことによる予算の有効活用が可能な点だ。

当社の脅威モデリングのアプローチについては、最初にシステムのモデル化を行う。コンポーネント図から入り、資産の特定、資産に対するセキュリティ対策の特定、トラストゾーンの特定、脅威エージェントの特定を行う。アプリのモデル化を行い、脅威モデル図を作成し、そのうえで脅威分析を行う。ハードウェア、ソフトウェアに対する分析やデータ・フロー上のセキュリティ、保存されているデータのセキュリティ、運用上のセキュリティなどに着目して分析をする。

その結果として、影響度と発現可能性の観点から、脅威の優先順位付けを行い、リスクの判定をして、トレーサビリティ・マトリクスを作成することができる。

セキュリティ診断について

当社のモバイル・アプリのセキュリティ診断は2つの種類が存在する。クライアント側のセキュリティ診断(スタンダード)は、プラットフォーム固有のチェックを含む、モバイル・アプリケーションの分析であり、iOSアプリかAndroidアプリのアプリケーション単体でのテストである。しかしながら、ビジネス系のアプリや金融系のアプリはモバイル・アプリが単体で動くことはなく、サーバー側と通信をしながら動くため、エンド・ツー・エンドのテスト(コンプリヘンシブ)が必要になってくる。

セキュリティ診断が2種類ある理由は、多くのお客さまがiOS用のアプリとAndroid用のアプリの両方を作成され、かつ両方のアプリが同じサーバーにアクセスをするため、エンド・ツー・エンドのテストを、AndroidとiOSの両方で行う必要はなく、どちらか片方がコンプリヘンシブ・テストを行い、どちらか片方がスタンダード・テストを行えばよいためである。2つセットで購入を頂けば、AndroidもiOSもサーバーもテストが可能である。

診断内容については、共通事項であるデータの保存とプライバシー、モバイル・アプリ側での暗号化、アーキテクチャー上の問題の調査などが含まれる。

また、プラットフォーム固有の問題の調査として、iOSおけるアプリケーション拡張の問題、Androidにおけるコンテンツ・プロバイダーの問題、あるいはiOSとAndroidで動くクロス・プラットフォーム開発における問題などをチェックする。

さらに、コンプリヘンシブ・テストでは、サーバーとの通信も含めた、認証、認可、セッション管理や、暗号化、ビジネス・ロジックの問題をチェックしている。

その結果として、エグゼクティブ・サマリと共に、詳細な発見内容、再現手順、証跡、ならびに対応策をレポートして提示する。これにより、モバイル・アプリの開発において行うべきこと、セキュアなモバイル・アプリを作るために必要なことを考え、必要に応じて修正して頂くために役立てていただいている。

◆講演企業情報
日本シノプシス合同会社https://www.synopsys.com/ja-jp/software-integrity.html