今やスマートフォンやタブレットなどで利用できるアプリは誰でもが少し勉強するだけで、手軽に開発できるようになっています。
また、アプリ開発の要望や案件も非常に多くなっていて、クラウドソーシングなどでもアプリ開発の案件は大変多くなっています。それとともに、アプリ開発者の人口もどんどんと増えています。Evans Data社の2014年の「開発者人口の地理的調査」によると全世界で870万人がアプリ開発に従事しているとも言われています。
2014年の調査なので、今やもっと増えているのは確実でしょう。当然のことですが、初めてアプリ開発をするという人もたくさんいると思います。
アプリ開発の際に重要なこととは
さて、初めてアプリ開発をするにあたって大切なことは何だと思いますか。
いろいろとあると思います。
言語は当然覚えないと開発できないし、アプリの公開方法もしっかりと把握しないと作っても把握できないことになりますし、これらは一つ一つもちろんとても大切なことです。
忘れてはならないこと、それは「アプリ自身に脆弱性を持たせないようにする」ことです。それって意外と忘れがちですよね。開発したアプリに脆弱性を持たせないことがなぜそんなに大切なのでしょうか。それは「アプリの脆弱性は悪用されると影響がアプリの中だけにとどまらない」からです。
どういうことかというと、あるアプリに脆弱性があると、それをトリガーにして、そのアプリの導入されたスマートフォンに不正に侵入したり、リモートで操作したりすることが可能になるということが起こりうるということです。最悪の場合、自分が開発したアプリによって不正に外部から侵入されるなど、多くの人やシステムが悪影響を受ける、情報が漏えいしてしまう、そうなってしまうと大変なことです。
では、そうならないためにはどのようにすれば良いのでしょうか。どのようにして自分が開発しているアプリに脆弱性があるかないかを判断すれば良いのでしょうか。それには以下の方法があります。
脆弱性の有無を確認する2つの方法
- 脆弱性チェックツールを利用する
- Web上でのチェックサービスを利用する
まず①では、脆弱性をチェックするための専用のツールを利用します。
例えば、こういったチェックが出来るツールにはIPA「独立行政法人 情報処理推進機構」から提供されている「AnCoLe(アンコール)」が挙げられます。
AnCoLe(アンコール)について
このツールでは、IPAに報告が多い7つのタイプの脆弱性である下記項目に該当しないかをチェックし、該当する場合は問題の箇所を教えてくれます。
- ファイルのアクセス制限不備
- コンポーネントのアクセス制限不備
- 暗黙的Intentの不適切な使用
- 不適切なログ出力
- WebViewの不適切な使用
- SSL通信の実装不備
- 不必要な権限の取得
他に、ソースコードをチェックして問題点を洗い出す「「HP Fortify SCA(Fortify Static Code Analyzer)」なども有効に使えるツールです。このAnCoLeは、無料で利用できるというメリットもあります。
Webブラウザ経由で行えるサービスについて
同じように2はこれらのチェックをWebブラウザ経由で行えるサービスです。1のツールによるセキュリティ診断をWeb経由で行えます。このサービスでは、例えば下記項目について問題がないかどうかチェックを行う仕組みを持っています。
- ソースコード内部に脆弱性をもったコードがないかどうか
- アプリが外部に不正な通信を行っていないか
- 個人情報などを取り扱うことがないかどうか
- APIを提供するサーバ側に脆弱性がないかどうか
おわりに
いずれにしろ、自分が開発したアプリによって大きな問題が発生することは絶対に避けなければいけません。
しっかりと脆弱性の有無をチェックして、問題を解消する必要があります。確実にチェックして、安全なアプリをリリースするようにしましょう。