最終回 見せたくないなら「持たせない」が鉄則!
杉山 俊春
株式会社ユービーセキュア
技術本部 VEXグループ リーダー
兼 セキュリティオーディットコンサルタント
2011/12/15
| 「もいちどイチから! 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セキュリティ バックナンバー
- 第1回 スマートフォンで「できちゃうこと」って?
- 第2回 知ってるつもりで知らない端末のほんとの挙動
- 第3回 デバッグ情報にご用心!
- 第4回 要注意! 本当は怖い出力データ
- 最終回 見せたくないなら「持たせない」が鉄則!
| イチから始める! Androidセキュリティ 連載インデックス |
TechTargetジャパン
- 実録、「Hardening Zero」の舞台裏 (2012/5/25)
コラムの更新頻度を落として何をやっていたかって? 「守る技術」に焦点を当てたこんなイベントを開催しました - 複雑化、巧妙化する脅威への対策は? (2012/5/23)
データ保護や標的型攻撃対策、クラウドセキュリティ……「第9回 情報セキュリティEXPO」の会場で見つけた製品を一挙に紹介 - 仮想化がはらむ新たなリスク (2012/5/17)
仮想化に伴って生じるセキュリティやパフォーマンスへの影響を慎重に考慮し、うまく制御していく方法を紹介します - 新入生も新入社員も勉強会に寄っといで! (2012/5/14)
週末ともなれば至るところでセキュリティ系勉強会やCTFなどのイベントがあり、ツイートも盛り上がりました
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -

