セキュリティやデータプライバシーへの懸念は広がりが増しているが、ソーシャル(非デジタルな)ハッキングの古書などには、企業のゴミ捨て場からバラバラにちぎられた用紙を何日もかけて復元し、パスワードとIDを探し出した話やCRTモニタから放出される電磁波を壁の向こうから読み取る試みなど、プライバシーと情報の課題の歴史は古い。大切な情報は慎重に取り扱うことは今も昔も変わっていない。

現代の情報ツールと言えばスマートフォンがその1つに挙げられる。魅力的なアプリがスマートフォンを支えるひとつの柱だがアプリやソフトはできる限り信頼できるものを選ぶ必要がある。英国セキュリティベンダーのSophosのオウンドメディアnakede securityにおいて、自身のスマートフォンアプリの通信を把握する方法が掲載された。

SophosのSEであるMatt Boddy氏は、スマートフォンの場合の懸念の1つが不要な共有。アプリが不要なデータまで入手したり、HTTPSではなくHTTPなど安全ではない方法でデータを転送しているのではないかという懸念がユーザーの不安になると述べ、OWASPの「Mobile Security Testing Guide」を用いて人気のAndroidアプリをネットワーク分析を敢行。そこから得たことを記している。

Matt Boddy氏はGoogle Playで人気のあるアプリを見て、適当にいくつかを選んでインストール。そしてトラフィックをモニタリングして、何を共有しているのかを調べている。テストしたのは14種類のアプリ。そこからわかったことは

・4種類が暗号化なしにデータを送信していた。つまり、公衆WiFiで使うと簡単に傍受される可能性がある。
・1つのアプリが電子メールアドレスと認証トークンをプレインテキストで共有していた。
・ZIPコード(郵便番号)、端末のAndroidのバージョン、充電について共有していた。

いとも簡単に基本的なセキュリティミスが見つかったことはちょっとしたショックだったと述べている。同社ではアプリの開発者とこれを共有したことを述べている。セキュリティベンダは脆弱性を探し出しては、開発者と共有し、アップデートを促す試みを毎日のように行っているが、Google Playにも膨大な数のアプリがある。全てを調べるのは限界があると、自分でネットワークをチェックするための手順を記している。例題としてHTTPSではなくHTTPを使っているかどうかのみを調べている。

同氏の「Nexus 5」(「Android 6.0.1」)と同じWi-Fiを利用するWindowsマシンにFiddlerをインストールする。Fiddlerは無料で入手できるWebデバッグプロキシーで、Androidデバイスを行き来するトラフィックをキャプチャして調べることができる(このほかにもプロキシアプリケーションとしてBURP Suite、Charlesなどがある)。

Windowsマシンの設定

WindowsマシンにFiddlerをインストールしたら展開して「ツール(Tools)」、それから「オプション(Options)」、そこにある「接続(Connections)」に進もう。接続タブより、Fiddlerがどのポートを見るか(デフォルトではポート8888)を示しており、ポート番号の変更も可能だ。次に、WindowsマシンのIPアドレスが必要だ。コマンドプロンプトを開きipconfigと入力しよう。IPアドレスは「IPv4 Address」に表示される。

  • I@001.jpg,Fiddlerの設定画面(公式ブログより)

    Fiddlerの設定画面(公式ブログより)

Androidの設定

Windowsをプロキシとして使用する(トラフィックが経由する)ようAndroidデバイスを設定する。

1.「設定」を開く
2.「無線設定」を開く
3.Windowsマシンと同じWi-Fiネットワークを選択する
4.「詳細設定(Advanced Settings)」を選択する
5.プロキシの設定を「なし(None)」から「手動(Manual)」に変更する。
6.プロキシホスト名をWindowsマシンのIPアドレスに変更する。
7.プロキシのポートをFiddlerと同じにする。

これで、Androidデバイスからのトラフィックをキャプチャできる状態になった。


分析

Fiddlerが中間者(MitM;Man-in-the-Middle)として機能するための設定が完了した。アプリを開いてトラフィックをみることができる。HTTPを使っているか、必要以上の情報を共有していないか、調べてみよう(Fiddlerの便利な機能として、調べたいパケットをダブルクリックすると自動でそのパケットで最も重要と思われる情報を識別してくれる)。


チェックすべきことは何か?

Matt Boddy氏のテストでは、画像は別として、いくつかのアプリが全てのトラフィックを暗号化していたがテストした中には、ユーザ名、電子メールアドレス、認証の詳細を含むJSONファイル(プレインテキスト形式のデータ構造)を送っているものがあったこと、URLにかなりの情報が含まれていることがあり、1件のURLにIPアドレス、Androidのバージョン番号、スマートフォンのメーカーと機種情報、郵便番号、geo-coordinates, 充電状況が含まれていたことを検証結果としてあげている。

Matt Boddy氏はアプリ開発者に対して、AndroidやiPhone向けにアプリを開発しており、SSL/TSLを実装すべきか迷っているのなら、実装すべきだ。ホスティング企業に追加の料金を払ってサーバー証明書を使うべきだ。あるいはLet`s Encryptなら無料だ。Android DeveloperのSecurity with HTTPS and SSLページに詳しい情報があるので参考にしてはいかがだろう。と一言述べている。