スマホアプリ – SQAT®.jp https://www.sqat.jp/ 「SQAT®」は、株式会社ブロードバンドセキュリティがご提供する脆弱性診断サービスです。SQAT®.jpは、BBSec セキュリティサービス本部の管理・運営によるサイトです。 Tue, 25 Apr 2023 06:30:25 +0000 ja hourly 1 https://wordpress.org/?v=5.3.15 https://www.sqat.jp/wp-content/uploads/2020/02/icon.jpg スマホアプリ – SQAT®.jp https://www.sqat.jp/ 32 32 攻撃者が狙う重要情報の宝庫!―スマホアプリのセキュリティ― https://www.sqat.jp/kawaraban/21057/ Thu, 01 Sep 2022 04:00:00 +0000 https://www.sqat.jp/?p=21057 "攻撃者が狙う重要情報の宝庫!
―スマホアプリのセキュリティ―" の
続きを読む

]]>

私たちが日常的に利用するスマホアプリのサービスは、開発者によって多様な機能が連携され、提供されています。しかしスマートフォンは、サイバー攻撃のターゲットになってしまう魅力的な重要情報の宝庫となっており、攻撃者に狙われることも多いです。本記事では、なぜスマホアプリが狙われるのか?スマホアプリのもつ脆弱性情報のご紹介をしつつ、セキュリティ対策にむけた考え方を解説していきます。

なぜスマホアプリは攻撃者に狙われるのか

一人一台以上のスマートフォンを所持・活用しているのが当たり前とされる現代において、私たちは日常的に様々なスマホアプリを利用しています。それらのスマホアプリがサービスとして提供されている裏では、スマートフォンが備えている多様な機能とスマホアプリとが開発者によって連携され、それによりスマホアプリのサービス提供が実現しています。利用者がアプリ上でのみ操作を行っているつもりでも、実際はアプリとスマートフォンの持つ機能が連携することで、便利なサービスを利用できているのです。

しかし便利な一方で、スマホアプリはサイバー攻撃のターゲットとされることも多くあります。なぜならスマホアプリは以下の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のセキュリティ対策のサムネ

スマホアプリと切っても切れないものとして、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-更新情報に戻る


年二回発行されるセキュリティトレンドの詳細レポート。BBSecで行われた診断の統計データも掲載。
サービスに関する疑問や質問はこちらからお気軽にお問合せください。

]]>
ソースコード診断の必要性とは?目的とメリットを紹介 https://www.sqat.jp/tamatebako/5949/ Thu, 23 Apr 2020 04:45:04 +0000 https://18.176.230.225/?p=5949 "ソースコード診断の必要性とは?目的とメリットを紹介" の続きを読む

]]>

WEBアプリケーションは、プログラムの集合体であり、 ソースコードとはシステムやWebアプリを動かすコンピュータプログラムのことです。 このプログラムの集合体は現在では人間から読み書きしやすい言語で書かれていることが多くWebアプリケーションは人間にも読みやすいプログラムのテキスト、ソースコードの集合体と言い換えることができるようになっています。

脆弱性診断とは、システムのセキュリティ上の問題点を洗い出す検査のことですが、その中でも診断対象によりさまざまなサービスがあります。この記事では、その中の「ソースコード診断」を取り上げて、その定義、特徴、メリット、目的などを紹介します。

ソースコード診断とは?

脆弱性診断とは、システムのセキュリティ上の問題点を洗い出す検査のことを指します。
診断対象により、さまざまな脆弱性診断サービスがあります。

まず、企業が開発したWebアプリケーションが挙げられます。
問合せや会員登録といった、入力フォームの入出力値の処理、ログイン機能の認証処理などに対して、幅広く網羅的に脆弱性診断が行われます。
次に、そのWebアプリケーションを実行するサーバやネットワーク機器、OSやミドルウェアに脆弱性がないか検査するネットワーク診断があります。
そのほか、近年増加の一途をたどる スマホアプリケーションや IoT機器を対象とした脆弱性診断もあります。

このうち、ソースコード診断とは、アプリケーションのソースコード(開発者が書いたプログラム)を解析して、セキュリティ上および品質上の問題をコーディングレベルで検査する診断のことをいいます。

ソースコード診断

ソースコード診断には、ツールを用いて自動的に処理するツール診断(自動診断)と、セキュリティエンジニアが目視で確認する手動診断があります。

効率的に網羅性を確保できる自動診断ツールの支援は欠かせません。

一方手動診断は、機械的に検出できず、人間による判断が必要な脆弱性を発見します。手動のみで行う場合もありますが、多くはツール診断と組み合わせて網羅性と精度を上げていきます。

ソースコードを開示するため、ソースコード診断はホワイトボックステストと呼ばれます。これに対して、ソースコードや設計書を見ずに、システムの外部からアクセスして脆弱性や動作を検証する方法をブラックボックステストと呼びます。

ソースコード診断の特徴とメリット

ブラックボックステストでは検出が難しい脆弱性がソースコード診断なら検知できる場合があります。具体的には 「ソースコード診断で検出できる脆弱性」で後述します。

ブラックボックステストは、すでにソフトウェアあるいはシステムが機能していることを前提とした、リリース前あるいはリリース後に実施します。これに対して、ソースコード診断はその前段である開発プロセスから実施できるため、テスト結果を受けてプログラムを修正することが可能です。

開発の手戻りを減らすことでコストや工数削減につながります。詳細は「ソースコード診断の有効性」を参照してください。

ソースコード診断を実施する目的

ソースコード診断の目的は、プログラムに作りこんでしまった脆弱性を網羅的に検出することです。開発時に繰り返し実施し、開発者が修正していく運用が想定されています。

ソースコード診断の有効性

ソースコード診断は開発段階初期から実施可能です。リリース直前やリリース後に脆弱性が発見される可能性を抑えることで、より効率的で信頼性の高いシステム開発が可能になります。

CPE-Coreとはソースコード内の脆弱性と品質面の問題を検査する当社の自動静的解析ツールです。

システムのセキュリティを確保する方法

開発(Dev)、運用(Ops)、セキュリティ(Sec)を一体にしてシステムライフサイクルを回すDevSecOpsという考え方が注目を集めています。DevSecOpsとは、開発の全工程において、開発チームと運用チームが相互協力し、その一環にセキュリティを組みこむことで、アプリケーション開発のセキュリティを確保していく考え方のことをいいます。ここでは、開発プロセスのどこで、セキュリティを確保するための施策を実施するか説明します。

DevSecOpsにおけるセキュリティ対策

DevSecOps実現のためには、「シフトレフト」の考え方が大切になります。
セキュリティを開発の最終段階で対応したのではすでに遅く、開発プロセスの全フェーズにおいて常にセキュリティ上の課題を先取りして解決しながら進めることが、テストやリリースといった最終段階での手戻りを防ぎ、結果的にトータルコストの削減と品質の向上に寄与します。

一般的なセキュリティ対策として多くイメージされている「Webアプリケーション脆弱性診断」は「テスト」「リリース」工程におけるセキュリティ対策の一つ。
その一つ手前工程の「製造」工程におけるセキュリティ対策の一つが「ソースコード診断」です。

セキュアプログラミング

ソースコード診断の前に、そもそもシステムの設計・開発段階で、開発者が脆弱性を作りこまないようにする手法があります。これをセキュアプログラミングと呼びます。セキュアプログラミングで開発し、本当に脆弱性を作りこんでいないかどうかソースコード診断でチェックします。

ソースコード診断で検出できる脆弱性

一般的なWebアプリケーション脆弱性診断(ブラックボックステスト)では検出しにくい脆弱性も、ソースコード診断(ホワイトボックステスト)では発見できる場合があります。
たとえば未使用のコード、ログファイルによる情報の露出、エラーメッセージによる情報の露出などは、ソースコードを直接確認することで検知可能になります。

以下はWebアプリケーション診断とソースコード診断の両方の観点で検出可能な脆弱性です。
ここでは代表的な脆弱性(セキュリティバグ)について説明します。これらのバグを突く攻撃の名称としても用いられています。

バッファオーバーフロー

プログラムを実行する際に確保するメモリ上のバッファ領域に対して、このサイズを超過するデータを書き込めるようになっているバグです。攻撃者は超過する部分に不正なプログラムを書いて実行します。

フォーマットストリング

プログラム中の、書式設定用の関数(フォーマットストリング)の引数の処理に関するセキュリティバグです。正しくは、引数として不正な値が入力された場合には、処理を止めてエラーメッセージを返さなければなりません。

SQLインジェクション/コマンドインジェクション

SQL(データベースを定義、操作する言語)文や、その他のコマンドが入力された場合でも、エラーにせずに処理してしまうバグです。攻撃者の観点からは、コマンドを注入(インジェクション)する形になるため、この名が付いています。攻撃の入り口はアプリケーション上の通常の入力欄で、ここに不正な値を入力することで攻撃を開始します。

クロスサイトスクリプティング

悪意のあるスクリプト(プログラム)をユーザのコンピュータに注入して、複数のWebサイトをまたいで(クロスサイト)行う攻撃や、その攻撃で利用される脆弱性を指します。

まとめ

・ソースコード診断はソースコード(開発者が書いたプログラム)を解析し、セキュリティ上の問題点を発見する
・開発フェーズの初期から実施することで、リリース直前に脆弱性が発見されるようなスケジュールに影響するトラブルを防止する
・一般的なWebアプリケーション脆弱性診断では検出しにくい脆弱性も、ソースコード診断を実施することで開発段階から検出ができる


年二回発行されるセキュリティトレンドの詳細レポート。BBSecで行われた診断の統計データも掲載。
サービスに関する疑問や質問はこちらからお気軽にお問合せください。

]]>