最終回 見せたくないなら「持たせない」が鉄則!


杉山 俊春
株式会社ユービーセキュア
技術本部 VEXグループ リーダー
兼 セキュリティオーディットコンサルタント
2011/12/15
(Illustrated by はるぷ)

もいちどイチから! HTTP基礎訓練中」でWebアプリケーションの脆弱性と対策について学んだクウが、今度はAndroidの世界に挑戦。Android特有の問題、PCや従来の携帯電話向けのWebアプリとの違いや対策について紹介します。(編集部)

 アプリ完成! でもリリースの前に……

 「Androidアプリについて語る会」の集まりで、あらためてAndroidアプリケーションを開発する際には、どういったデータがどこに出力されているかを正しく把握することが大切だと認識したクウ。

 一方、会社のほうでは順調にAndroidアプリの開発案件が進んで……。

クウ 「終わった〜♪」
ナツ 「おー! おめでとー」



クウ 「じゃあ、いよいよリリースですかね? まだリリース予定日まで1週間くらい日がありますけど〜」
ナツ 「今回はちょっと重要な情報を扱うアプリになるから、ちゃんとセキュリティの検査をやろうと思ってね」
クウ 「おー。けど、うちにAndroidセキュリティに詳しい人っていましたっけ……?」
ナツ 「そうだねー。だから、今回は他にお願いすることにしたんだよね♪」
クウ 「なるほどー」
ナツ 「こないだ会ったアキって子覚えてる? そういう検査とか請け負ってたりするみたいだから、お願いしてあるの」
クウ 「なるほどー!」

 Android端末は、従来のフィーチャーフォンなどに比べ、PCに近い形で操作可能だ。保存されているアプリケーションのデータを操作したり、アプリケーションの挙動を監視したりといったことが、比較的容易に行える。また前提として、PCよりも持ち運ぶ機会が多くなる。このため、データの管理にはいっそうの注意が必要だ。

 従って、Androidアプリケーションをリリースする前には、セキュリティ上問題がないか、または問題を最小化できているかどうかの確認作業が必要だ。

 特に以下の3点については、悪意のあるユーザーから狙われる可能性が高いため、注意が必要となる。

A. 通信データおよびサーバへの攻撃
B. 端末内の保存データ
C. プログラムデータ自身

 Androidアプリケーションに特有の要注意項目は、(B)、(C)の端末内データおよびプログラムデータ自身である。こうした重要なデータの保存や処理部分の扱いに関しては、従来のフィーチャーフォン向けのアプリケーションや、PCブラウザから利用することを前提としたWebアプリなどとは大きく異なってくる。

 難読化で逆コンパイルに対抗!


クウ 「どんなことをやってもらうのですかー?」
ナツ 「なんか、逆コンパイルとかしてプログラムの解析までやってくれるらしいよ」
クウ 「ひえー! そんなんもできるんですかー。何も対策してないけど大丈夫ですかねぇ……」
ナツ 「どうだろうね……私も正直、よく分かんないや」
クウ 「どうしましょ。何か今からでも対策したりとか〜」
ナツ 「そうだね。とりあえず、分かる範囲でってことで“難読化”くらいしておこうか」
クウ 「難読化……? ほう……」


 基本的にAndroidアプリケーションのプログラムは、Javaによって記述されている。そしてAndroidアプリケーションに限った話ではなく、Javaプログラムは一般的に、コンパイルされた状態でも、逆コンパイルによって容易に元コードの復元が行える。

 そのため、逆コンパイルに対する対策として、「難読化」という手法が用いられる。難読化とは、逆コンパイルされてしまったとしても、内部のロジックを分かりにくくするような仕組みで、文字通り「読むことを難しくする技術」である。

 Eclipseなどを利用したAndroidアプリケーションの開発環境では、この難読化を行う「ProGuard」という仕組みが用意されている。これを利用すれば、リリース用のapkファイルを作成する際に、簡単な手順で難読化を行うことができる。

【関連リンク】
ProGuard | Android Developers

http://developer.android.com/guide/developing/tools/proguard.html

 リリースを行うapkファイルに対して最終的な段階でのチェックが必要となる。

図1 Eclipseを利用した難読化の概要

 クウたちは、作成したAndroidアプリケーションに対して早速難読化を行い、アキとの打ち合わせに臨んだ。

第4回へ
1/3

Index
見せたくないなら「持たせない」が鉄則!
Page1
アプリ完成! でもリリースの前に……
難読化で逆コンパイルに対抗!
  Page2
いざ、チェックを依頼
その日のうちに判明した問題点
実コードで見る「難読化」の効果

 

Page3
重要なデータは極力端末には持たせない!


イチから始める! Androidセキュリティ 連載インデックス

TechTargetジャパン

Security&Trust フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH