サービスを提供する際、アプリ側はどう守る? 不正な解析・改ざん行為からアプリを守る、DNPハイパーテックによるアプリ保護Q&A

sponsored by 株式会社DNPハイパーテック

今回の記事では、アプリへの不正な解析・改ざん行為(クラッキング)を防ぐ製品「CrackProof」の開発・販売を行っている株式会社DNPハイパーテック(以下、DNPハイパーテック)が、お客様からいただくアプリ保護に関する主なご質問とその回答内容などについてご紹介していきます。

■アプリ改変による、サービスの不正利用という脅威

某電子書籍配信サービスのケースでは、電子書籍を読むためのアプリを利用者に提供していました。一定期間は無料で電子書籍を読むことができ、それ以上読み進めたい場合はアイテムを購入して閲覧可能な時間を増やすことが可能となっている形式です。このようなサービスにおいて、電子書籍の閲覧時間を不正に延長される被害が発生、これはアプリ内で利用制限時間が書かれた場所を特定し、その情報を書き替えるという、アプリ内データの改変によるものでした。

画像提供:株式会社DNPハイパーテック

■アプリ改変のような脅威にどう対応していくべきか?

製造、金融、エンタメなど、様々な業界において、アプリを事業に活用する手法は一般的になっています。アプリをうまく活用することでサービスの利便性を高めたり、アプリ特有のマーケティングにより収益を増加させたりして、ユーザーと企業のどちらにもメリットをもたらすことができます。

サービスを提供する際、各種セキュリティ対策が必要になることは周知の事実ですが、攻撃者はサーバー側だけでなく、上記被害例のようにアプリも狙ってきます。サーバー側でしっかりと対策を行っていても、「クライアント側のアプリが解析されてそこから得た情報を利用してサーバーが攻撃される」「アプリの機能を追加・変更される」「アプリにマルウェアが仕込まれる」などの事態も起こり得ます。

自社サービスでアプリを配信する際は、サーバー側だけでなく、クライアント側のアプリへのセキュリティ対策にも注意が必要です。

画像提供:株式会社DNPハイパーテック

■アプリ保護に関するQ&A

参考情報までに、弊社がお客さまからいただくアプリ保護に関する主なご質問とその回答内容について、ご紹介します。

Q1:自社提供サービスでアプリを配信しています。サーバー側でのセキュリティ対策は既に様々なことを行っており、クライアント側アプリへの対策を検討しているところです。アプリへの攻撃はどのように行われるのでしょうか。

全ての利用者が提供者側の想定通りにアプリを利用するとは限りません。一部の悪意を持った攻撃者によってアプリがクラッキングされる可能性があります。アプリへの攻撃はどのような方法で行われるのか、基本的な3つのアクションについてご説明します。

  1. 静的解析・改ざん
    Google PlayやApp storeなどのストアからアプリを配信し、利用者はスマートフォン端末などにアプリをインストールして利用します。攻撃者は、そのアプリを動作させず、アプリそのものを解析して、プログラムを改ざんします。そのような行為を「静的解析・改ざん」と言います。
  2. 動的解析・改ざん
    アプリを端末上で実行すると、OSが管理するメモリ空間上に展開されて動きます。このアプリを実行している状態で、攻撃者が端末のメモリ情報などを対象に解析・改ざんする行為を「動的解析・改ざん」と言います。
  3. 不正環境での実行
    上記の動的解析・改ざんを行うために、攻撃者は特権を取得したOSやエミュレータなどの通常とは異なる環境でアプリを動作させます。

アプリへのセキュリティ対策を行う際は、上記のようなアクションをどのように防ぐかがポイントとなります。
攻撃を完全に防ぐことは難しいため、現実的には「攻撃をいかに困難にするか」、「対策をいかに継続するか」について考える必要があります。

Q2:アプリへの攻撃について、対策としてどのような方法が効果的でしょうか。

①静的解析・改ざん、②動的解析・改ざん、③不正環境での実行。これらの3つの攻撃アクションについて、効果的な対策方法を以下にまとめます。仮に①で難読化は行っているとしても、対策としては十分ではありません。どれか一つではなく、複数の対策を組み合わせて多角的にアプリを保護することが重要となります。

  1. 静的解析・改ざんへの対策
    静的解析・改ざんへの対策としては、ファイルの解析を妨害する暗号化や難読化が効果的です。
    難読化のみでは逆コンパイル時に解析が多少困難にはなりますが、アプリを動かすことができるため、動的解析・改ざんされる可能性があります。暗号化は、セキュリティ強度がより高いもので暗号化しておくことが望ましいです。暗号化の場合は、復号処理を行わないとアプリを動かすことが不可能となります。
  2. 動的解析・改ざんへの対策
    動的解析への対策としては、デバッガや解析ツールの接続を阻止する対策が有効です。加えて、端末メモリ内の情報を守るために、メモリへのアクセス制限なども行う必要があります。
  3. 不正環境での実行への対策
    不正環境での実行への対策としては、Android端末であればroot化、iOS端末であればJailbreakなど、特権を取得した状態の環境でのアプリ利用や、エミュレータ上でのアプリ利用などを検知または阻止できる対策が有効となります。

 

■アプリを保護する「CrackProof」のご紹介

ここで、弊社が開発・販売を行っている、アプリへの不正な解析・改ざん行為(クラッキング)を防ぐ製品「CrackProof」をご紹介します。
CrackProofは、Android/iOS/Windowsアプリを保護する製品です。お客さま側で開発が完了したアプリに、上記でご説明した、①静的解析・改ざんへの対策、②動的解析・改ざんへの対策、③不正環境での実行への対策などの機能を付加します。堅牢性を重視して強度を高める、アプリの可用性を重視して強度を弱めるなど、堅牢化処理時に保護強度を柔軟に調整することも可能です。

画像提供:株式会社DNPハイパーテック

基本的な使用方法は、アプリをCrackProofクラウドにアップロードするだけ(※)です。アプリ開発フローの最後に適用するので、開発段階での特別な作業や専門的な知識は必要ありません。

画像提供:株式会社DNPハイパーテック

※CrackProofの基本的な操作イメージです。各OS向け製品ごとに使用方法は異なります。
WebAPIご提供により、CIツールにも連携可能(Android、Windowsのみ)

販売開始より約20年の提供実績があり、これまで製造・ゲーム・金融・電機など、幅広い業種・業界でアプリ保護にご活用いただいております。国内で開発・販売を行っている製品のため、ご導入後のお問い合わせに対してもスピード感のあるきめ細やかな対応が可能です。必要に応じて、堅牢化対象アプリの開発志向や配信方針に沿った対策のご提案を行うなど、お客さま側でより強固なアプリ運用を実現できるよう、弊社はご協力を行っております。

■その他、アプリ保護に関する情報について

弊社サイトでは、CrackProofやアプリセキュリティについてさらに詳しい情報がわかるダウンロード資料や、弊社開発担当による技術コラムをご用意しております。ご興味をお持ちいただいた方はぜひチェックしていただければと思います。

ダウンロード資料一覧

コラム一覧

今回の記事でご説明したアプリ保護について、詳しく話を聞いてみたいと思われた方はぜひお気軽に当社にお問い合わせください。

お問い合わせはこちらから

  1. 長時間のコーディング作業で目が疲れる… そんな悩みを軽減!31.5インチのベンキューモニターをレビュー!