ブログ

catch-img

サイト脆弱性をチェックしよう! -- 第13回:モバイルアプリケーションに対する脅威

<目次>

目次[非表示]

  1. 1.モバイルアプリケーションの特徴
  2. 2.スマートフォンに存在する情報資産
  3. 3.モバイルアプリケーションに対する脅威
    1. 3.1.サーバ側のアプリケーションに対する脅威
    2. 3.2.スマートフォン所持ユーザ以外の攻撃者による直接的なモバイルアプリケーションの不正利用
    3. 3.3.通信データに対する不正中継
    4. 3.4.モバイルアプリケーションが使用するデータへの不正アクセス
    5. 3.5.他のアプリケーションが意図せずモバイルアプリケーションの機能を利用
    6. 3.6.モバイルアプリケーションに存在する脆弱性を利用したアプリケーションの悪用
    7. 3.7.マルウェアに感染したモバイルアプリケーション
  4. 4.まとめ

スマートフォンの普及率は総務省の調査*1で8割近いものになっているほど、一般的に使用されている。しかし、スマートフォン所有者のほとんどがスマートフォンに存在するリスクをあまり考慮しないままアプリケーションをインストールし、利用しているものと思われる。また、組織においても個人のスマートフォンが業務に使用されることが多く、機密情報をスマートフォンで利用することも多くなっている。これに伴い、モバイルアプリケーションに起因する脅威も増大している。

そこで今回は、最初にモバイルアプリケーションの特長を説明し、次にスマートフォンにはどのような情報資産が存在するかを考え、最後にこのコラムのタイトルでもあるモバイルアプリケーションに対する脅威を解説する。

*1 参考:総務省「情報通信白書平成30年版」

モバイルアプリケーションの特徴

モバイルアプリケーションの特徴は以下の2点があげられる。

  1. 個人のスマートフォンにアプリケーションをインストール
  2. サーバとの連携

特に、従来のWebアプリケーションとは異なり、アプリケーションを利用するために、実行コードの配布が必要となる。この結果、配布された実行コードを解析することで、アプリケーションが使用している暗号鍵や存在する脆弱性などを発見できる。これは、処理内容をサーバにしか保存していなかった従来のWebアプリケーションには存在しなかったリスクと言える。
また、サーバと連携を行うため、通信内容を傍受、改ざんされるリスクも存在する。これは、個々の機器でのみ動作していた従来のパッケージソフトには存在しなかったリスクである。

スマートフォンに存在する情報資産

次に、スマートフォンに存在する情報資産を考えてみると、以下の5点が存在する。

  1. システムデータ
    携帯電話番号、通話履歴などのSIM上のデータやスマートフォンが動作する際に使用されるデータ
  2. アプリケーションのプログラムコード
    インストールされているアプリケーションのコード
  3. アプリケーションが使用するデータ
    インストールされているアプリケーションが使用する保存データ、認証情報、実行中の一時的なデータ
  4. スマートフォン本体
  5. OS

これら、スマートフォンに存在する情報資産だけでなく、サーバとの通信で発生する通信データも管理対象の情報資産として存在する。通信データも守るべき情報資産である。

このうち「4. スマートフォン本体」、「5. OS」は、アプリケーションが管理・操作可能な資産ではないため、以下の情報資産が、モバイルアプリケーションが守るべき情報資産となる。

  1. システムデータ
  2. アプリケーションのプログラムコード
  3. アプリケーションが使用するデータ
  4. 通信データ

モバイルアプリケーションに対する脅威

ここまでの情報と昨今の概況を踏まえ、最後にモバイルアプリケーションに対する脅威を解説しよう。スマートフォンには、セキュリティに詳しくないユーザが安全にモバイルアプリケーションを使用できるよう、セキュリティ対策機能が備わっている。最も重要なセキュリティ対策機能は、各種情報資産に対する権限制御である。この権限制限により、モバイルアプリケーションは他のアプリケーションのプログラムコードやデータにアクセスが許可されていない限りできない。しかし、アプリケーションの仕様上、この制限を解除する必要がある場合がある。この際、設定ミスなどにより、必要以上に制限を解除してしまい、その結果、これらが脆弱性となる可能性がある。
モバイルアプリケーションが守るべき情報資産に対する脅威には、以下のようなものがある。

サーバ側のアプリケーションに対する脅威

この脅威はスマートフォンにインストールされるアプリケーションではなく、サーバ側のアプリケーションに存在する。
一般的なWebアプリケーションに存在する脅威、例えばSQLインジェクションなどによる情報漏洩などが該当する。これらについては既に前回までのコラムで記載しているので、確認してほしい。

スマートフォン所持ユーザ以外の攻撃者による直接的なモバイルアプリケーションの不正利用

この脅威はモバイルアプリケーションではなく、スマートフォン自体に存在する。 物理的にユーザ以外でスマートフォンを使用できる第三者が、モバイルアプリケーションをユーザの許可なく利用することによって発生する脅威である。例えば、スマートフォンにインストールされている電子マネーを利用して、勝手に実店舗で商品を購入することなどが該当する。
物理的にスマートフォンを利用できなければ脅威にならず、モバイルアプリケーション単体で対策を行うことは非常に困難である。

通信データに対する不正中継

こちらはスマートフォンとサーバとの間の通信を傍受し、通信データを改ざん、盗聴される脅威である。
攻撃者による悪意あるプロキシを介して通信を行ったり、DNS情報を改ざんして悪意あるサーバに誘導するなどの手法で通信データを入手、改ざんしたりすることができる。例えば、サーバとの通信で送信される個人情報や、セッション情報などを収集し、なりすましに利用することが該当する。

モバイルアプリケーションが使用するデータへの不正アクセス

この脅威はアプリケーションが使用するデータやシステムデータへ認可されていないアクセスが行われることである。
モバイルアプリケーションが使用するデータは、デフォルトでは他のアプリケーションが利用することはできない。しかし、意図的にこの制限を緩和することで、他のアプリケーションがデータを利用することが可能である。例えば、モバイルアプリケーションが、ログイン情報(ログインIDとパスワード)を保存しており、他のアプリケーションからアクセス可能にしている場合、ログイン情報を悪意あるアプリケーションが入手できる。

他のアプリケーションが意図せずモバイルアプリケーションの機能を利用

この脅威は、許可されていないアプリケーションが対象のアプリケーションのプログラムコードを実行できてしまう。
モバイルアプリケーションには他のアプリケーションとの連携のために、アプリケーションが提供している機能の一部を他のアプリケーションから呼び出すことができる機能がある。これを利用して、インストールされた悪意あるアプリケーションが、ユーザに認識させずに特定の機能を実行して情報を詐取したり、データの改ざんなどの攻撃を行ったりすることが可能である。

モバイルアプリケーションに存在する脆弱性を利用したアプリケーションの悪用

こちらはアプリケーションのプログラムコードの処理内容の完全性が失われる脅威である。
モバイルアプリケーションに存在する脆弱性には、バッファオーバーフローや、コードインジェクション、パス・トラバーサルなどがある。この脅威を利用するためには、アプリケーションが使用するデータを改ざんする必要がある。しかし、これらの脆弱性を利用しアプリケーションを介して悪意あるコードを実行したり、モバイルアプリケーションが利用するデータの詐取などを行ったりすることが可能である。

マルウェアに感染したモバイルアプリケーション

この脅威はアプリケーションのプログラムコードの完全性が失われてしまう。
モバイルアプリケーションが使用しているライブラリや作成したバイナリコードに、マルウェアが感染している可能性がある。また、ソースコードには悪意あるコードが含まれていなくても、開発環境にマルウェアが混入しており、コンパイルしたコードにマルウェアが混入している場合もある。マルウェアに感染したアプリケーションをインストールすると、アプリケーションの持つ権限で様々な被害(データの漏洩、サーバへの攻撃、バックドアなど)に遭う可能性がある。

上記の脅威のうち、「サーバ側アプリケーションに対する脅威」と「スマートフォン所持ユーザ以外の攻撃者による直接的なモバイルアプリケーションの不正利用」はモバイルアプリケーションだけで防ぐことは困難であり、他の対策が必要となる。

まとめ

​​​​​​​ここまでお伝えしたように、モバイルアプリケーションにはWebアプリケーションとは異なる特徴があり、それらの特徴によりWebアプリケーションには存在しなかった新たな脅威が出現する。これらの脅威に利用される脆弱性の多くは、データなどの検証の不備と、スマートフォンの機能である権限管理の不備などに起因する。そのため、必要最低限の権限しか許可しない、適切な検証(データ検証、接続先検証など)を実施することで、モバイルアプリケーションに存在する脅威を最小化することが可能となる。
それに加えて、安全なライブラリや開発環境を使用することも重要である。信頼できないライブラリや開発環境にはマルウェア混入のリスクがあると考え、使用しないようにするべきである。
以上のことに注意し、安全なモバイルアプリケーションを開発してもらいたい。

過去の脆弱性コラムについてはこちらからご確認ください。

​​​​​​​


CONTACT

ITインフラに関してお悩みの方は
お気軽にご相談ください

ご不明な点はお気軽に
お問い合わせください。
ITインフラに関するお役立ち資料は
こちらよりダウンロードできます。

人気記事ランキング

タグ一覧