私たちが日常的に利用するスマホアプリのサービスは、開発者によって多様な機能が連携され、提供されています。しかしスマートフォンは、サイバー攻撃のターゲットになってしまう魅力的な重要情報の宝庫となっており、攻撃者に狙われることも多いです。本記事では、なぜスマホアプリが狙われるのか?スマホアプリのもつ脆弱性情報のご紹介をしつつ、セキュリティ対策にむけた考え方を解説していきます。
なぜスマホアプリは攻撃者に狙われるのか
一人一台以上のスマートフォンを所持・活用しているのが当たり前とされる現代において、私たちは日常的に様々なスマホアプリを利用しています。それらのスマホアプリがサービスとして提供されている裏では、スマートフォンが備えている多様な機能とスマホアプリとが開発者によって連携され、それによりスマホアプリのサービス提供が実現しています。利用者がアプリ上でのみ操作を行っているつもりでも、実際はアプリとスマートフォンの持つ機能が連携することで、便利なサービスを利用できているのです。
しかし便利な一方で、スマホアプリはサイバー攻撃のターゲットとされることも多くあります。なぜならスマホアプリは以下の3つの特徴を持っているためです。
重要情報の宝庫
スマホアプリではWebアプリよりも多くの重要情報が扱われます。例えば連絡先情報、メールや通信のログ、GPS(位置情報)、決済情報、さらには利用者が何を好むかといった趣味嗜好など個人に関する情報が多様に含まれています。これらの情報が集まっているスマホアプリは、攻撃者にとっては魅力的な重要情報の宝庫といえます。
もし攻撃者に狙われた場合、これらの重要情報が漏洩してしまう可能性があります。
ユーザ側での端末管理
Webアプリではサービス提供者が管理しているサーバ側で情報を保持していましたが、スマホアプリでは各ユーザ端末側に情報が保持されているものが多くあります。Webアプリの場合はサービス提供者側がセキュリティソリューションを活用したりすることでセキュリティ対策を行っていましたが、スマホアプリのように各ユーザ端末側で情報が保持されている場合、セキュリティ対策の実施はユーザ個人に依存するため、セキュリティ対策が十分に行われていないこともあります。特にスマートフォンに関するセキュリティ対策情報は、パソコンのセキュリティ対策に比べてユーザにあまり認知されていないため、ユーザのセキュリティ意識がパソコンよりも薄い状況にあります。
もしスマートフォンのセキュリティ対策が十分にされていなかった場合、脆弱な状態や設定のまま放置され、そのままアプリ連携や端末間での共有がなされることで、ユーザが意図しない手段や経由により不正アクセスが行われる可能性があります。
常時外部と接続状態
Webアプリはブラウザからアクセスしますが、スマホアプリではアプリごとに独自開発された機能によってアクセスします。また、スマートフォンは常時電源がオンになっており、インターネットにも常時接続されている状態です。
そのため、例えばあるスマホアプリで非暗号化通信での情報のやり取りなどが行われて重要情報が外部から見えるような状態であった場合に、常時接続状態であるスマートフォンは攻撃者に狙われる隙が生まれやすくなってしまいます。これにより不正利用・操作や、通信内容の盗聴・情報改竄が行われる可能性があります。
攻撃者にとって重要情報の宝庫であるのにも関わらず、セキュリティ対策がユーザ側に依存し、また常時インターネットに接続状態となっているため、攻撃の隙も生まれやすい。これがスマホアプリが攻撃者に狙われやすい理由です。またBYOD(Bring Your Own Device)を導入している企業も増えてきたため、個人のスマートフォンが攻撃されることで、企業への攻撃の踏み台にされる可能性もあります。
スマホアプリにおける情報漏洩の事例
実際に近年起きたスマホアプリにおける情報漏洩は下記のようなものがあります。
スマホアプリにおける脆弱性の届出状況
IPAおよびJPCERT/CCが発表している「ソフトウェア等の脆弱性関連情報に関する届出状況[2022年第2四半期(4月~6月)]」によると、2022年の第2四半期(4月~6月)までで届出が出されている脆弱性を製品種類に分けて集計すると、スマホアプリの脆弱性はソフトウェア製品全体の8%となっており、ウェブアプリケーションソフトとルータに次いで多く検出されている結果となりました。スマホアプリ開発段階で脆弱性を見落とされて、そのままリリースされてしまった場合、スマホアプリを利用するすべての人々に影響が及ぶ可能性があり、情報漏洩事故につながってしまう恐れがあります。
スマホアプリのセキュリティの対策にむけて
誰もがスマートフォンを利用しているからこそ、実際に被害に遭う可能性を誰しもが持っています。また、攻撃の影響は多くの人々に及ぶことが想定されます。ユーザ目線では被害を受けないための、またスマホアプリを提供する側目線では被害を防ぐためのセキュリティ対策を心掛けることが重要でしょう。
今回はスマホアプリを提供する上で重要な考え方や手段を大きく3つご紹介します。
脆弱性情報の収集
脆弱性情報を取りまとめている機関*1等から定期的に脆弱性情報を収集し、セキュリティの最新情報や対策方法を取り入れることで、普段からセキュリティに対する意識を高める必要があります。
セキュアコーディングを意識した開発
セキュアコーディングとは開発段階で攻撃に耐え得る堅牢なプログラムを書くことを指します。セキュアコーディングのガイドライン「Androidアプリのセキュア設計・セキュアコーディングガイド」を活用することで、スマホアプリ開発段階から脆弱性の有無を知り、より早い対策を実施することができます。また、より早い段階で対策ができれば、リリース後の手戻りやコストの発生も防ぐことができます。このようなシフトレフトを実践することも重要な考え方の一つです。
セキュアなアプリケーション開発の考え方について、SQAT.jpでは以下の記事でご紹介しています。
こちらもあわせてご覧ください。
「Webアプリケーション開発プロセスをセキュアに ―DevSecOps実現のポイント―」
信頼できる第三者機関の脆弱性診断サービスを実施
企業として実施できるセキュリティ対策として、信頼できる第三者機関による脆弱性診断が挙げられます。第三者の専門家からの診断を受けることで、現状の問題点や対応の優先順位などリスクを可視化することができるため、早急に効率よく対策を実施するのに役立ちます。
APIのセキュリティ対策
スマホアプリと切っても切れないものとして、API(Application Programming Interface)が存在します。スマホアプリはAPIを経由してサーバとやり取りをしているケースが多く、セキュリティ対策を行ううえでAPIを無視することはできません。
APIにおいてもWebアプリと同様に様々なセキュリティリスクが存在しますので、スマホアプリ、Webアプリと同様に最適なセキュリティ対策をとることが大切です。
APIのセキュリティに関する10大リスク
APIにおけるセキュリティ対策を講じるうえで役立つ情報として、Webアプリケーションセキュリティに関する国際的コミュニティOWASP(Open Web Application Security Project)が公開している「OWASP API Security Top 10」があります。
SQAT.jpでは以下の記事でご紹介しています。あわせてご覧ください。
「APIのセキュリティ脅威とは」
スマホアプリ脆弱性診断とは
「スマホアプリのセキュリティ対策」に既述した脆弱性診断サービスですが、そういったサービスの活用がなぜ必要なのでしょうか。その理由は図の通りです。
スマホアプリ診断で検出される脆弱性項目例
例えば弊社のスマホアプリ診断において検出数の多い脆弱性項目としては、下記のようなものがあります。このような脆弱性はなかなか開発段階で自社の目線からすべて網羅するのは難しく、脆弱性診断サービスを使うことで効率よく発見することが可能です。
重要情報の漏洩
<例>
・スマートフォン内部の記憶媒体領域(ストレージ等)に認証情報が保存されている
・スマホアプリからサーバ側に通信を行う際に、URLパラメータ等が暗号化されていないままの状態であるために認証情報が露呈している
重要情報がスマホアプリ側だけではなく、ユーザのスマートフォン内部など他の領域で確認できる状態であるために、攻撃者に情報が漏洩してしまう可能性があります。
不正な行動・操作が可能
<例>
・信頼境界へのアクセスが厳密に制御されていない状態である
・外部アクセスの制御不備などにより、スマホアプリの権限外のユーザによるアクセス制御が可能である
スマホアプリではAPIや他のアプリとの連携、スマートフォン内部の記憶領域など、外部との通信が頻繁に行われます。その中で、信頼できない外部からのアクセスを制御するといった対策が厳密に行われていないために、攻撃者から不正な操作の実行や、データ改竄および不正利用される可能性があります。
難読化処理の未対応
<例>プログラムコードが難読化されていないため、リバースエンジニアリングによるソースコード解析が可能な状態である
攻撃者により、スマホアプリの機能およびロジック分析が行われた場合、弱点をついた攻撃手法の分析や技術情報の解析につながる可能性があります。
誰もがスマートフォンを利用している今、攻撃の被害が多くの人々に影響を及ぼす可能性があるからこそ、スマホアプリにおいて次の攻撃につながる情報が漏洩したり、スマホアプリの改竄が行われたりする可能性を摘んでおくことが、スマホアプリを提供するうえで重要となります。
スマホアプリ脆弱性診断に+α
開発者視点でのスマホアプリの品質管理、セキュアコーディング、セキュリティ設定のチェックにはソースコード診断サービスもあわせて実施することを推奨しています。スマホアプリに潜在する脆弱性をソースコードレベルで診断することで、さらなるセキュリティ向上にお役立ちできます。
スマホアプリの進化にあわせた対策を
スマホアプリは様々なかたちで利用され、日々利便性が向上されています。それに伴い開発・提供者側はより高度な機能を活用し、扱う分野や範囲も広がってきています。すでに述べてきたように、機能の利便性の反面、Webアプリと比べてスマホアプリは独自のリスクを抱えています。そのため、基本的なセキュリティ対策はもちろん、より強固なセキュリティ対策を行うことが、サイバー攻撃を防ぐカギとなります。
Security Report TOPに戻る
TOP-更新情報に戻る