あれこれ備忘録@はてなブログ

勉強したことやニュースや出来事を備忘録として書いていきます

このブログには広告が含まれます

Rootを取らなくても使えるAndroidのファイアウォール NoRoot Firewall

NoRootファイアウォール

BARとまり木技術研究室(仮)

アプリの不用意なインターネットアクセスを制限できる「NoRootファイアウォール」

 

アプリや通信先サーバー、ポートによって通信を制限するのがファイアウォールですが、AndroidファイアウォールはほとんどがRootという特殊な権限を使える状態で無いと使えません。

 

スマホタブレットの重要な部分をコントロールしようとするアプリはほとんどがRoot権限必須です。

 

「要root」と書いてあるアプリはこれですね。

 

Rootを取るとフォントを変更したり、スマホの設定を細かく変更できたり、最初から入っていて通常使用では消すことが出来ないアプリを削除することができるのでとても便利です。

 

でも、機種によってはRootを取るとアップデートができなくなったりします。

 

またアプリによってはRootを取っている状態では使用できないものもあります。

 

一時的にRootを使えないようにできるアプリもありますが、それでも使えないアプリもあります。

 

そういうソフトを使っている場合、Rootを取ることが出来ないわけです。

 

もちろん、不必要にroot状態にするのは危険なので、そのようにしているのです。

 

NoRoot Firewallは非Root環境でも使うことができるファイアウォールです。

 

普通ならそんなことはできません。

 

Androidのセキュリティ上の問題点をついた抜け道でも利用しているのかと思ったのですが、VPNというAndroidに備わっている標準機能を利用していました。

 

VPN(仮想プライベートネットワーク)という仕組みは、あたかもネットの先の離れた地点のコンピュータなどの端末を手元の通信機能を持ったインタフェースに見せかける機能です。

 

自分のPCやスマホに内蔵されているLANインターフェース(有線LANのコネクタ無線LANアダプタ)が、数百km離れた所にあるようなものです。

 

もっともそこと通信をするために自分のLANインターフェースを使っているわけですが。 日本にいながらアメリカからインターネットをしているように見せかけることができるのです。

 

またその間の通信は暗号化されているので、公衆無線LANなどを利用する場合でもその無線LANを提供している施設や店に通信内容を知られる心配が少なく安心です。

 

しかし、このNoRoot FirewallはVPNのこの機能を利用しているわけではありません。

 

通常のアプリは自分以外のアプリの通信を調べたり、挙動を調べることはほぼできません。

 

これができたらバックグラウンドで個人情報を集めることも出来てしまいます。

 

こういうことも含めて色々なことが可能になるのが要rootアプリです。

 

このように通常はrootの無いアプリで他の通信を監視したり制御したりすることはできません。

 

しかし、VPNクライアントアプリでは、全ての通信がVPNを通じて行われるため、そのVPNクライアントアプリで通信の監視・制御が可能になるわけです。 これはアイディアですね。

 

見掛け上、VPNクライアントとして動作しているだけで、実際にこのアプリがどこか海外のVPNサーバーにつながるということはないようです。

 

これを使ってログを見ると、普段からどのくらいいろいろなアプリが勝手に通信しているかがわかります。

 

スマホタブレットのアップデートのためのソフトウェアや、ここ数日使っていないアプリまでもが通信しています。

 

無料ソフトが広告表示のために通信していることもありますが、広告表示も無い、また外部と通信する必要がないアプリまでが勝手に通信しています。

 

問題のあるアプリでは電話帳などにアクセスする必要が無いのにアクセスし、そのデータを外部へ送っていたりします。

 

こういうソフトはインストールしないことが最も大事なことですが、動作の怪しいアプリはたくさんあるので、厳格に管理しようとすれば何もインストールできません。

 

NoRoot Firewallのようなソフトを使って個々のアプリの通信を見張って、信用できるアプリだけ通信を許可したり、必要な時だけ通信を許すというのが、現実的な対応でしょう。

 

より高度で細かく制御しようと思えば、アプリの動作やアップデートに必要だと思われるサーバーとの通信だけを許可し、その他の目的ではないか?と思われる通信は遮断することもできます。

 

NoRoot Firewall自体がさほど細かい設定はできないようなので、PCほど高度な管理は出来ないと思います。

 

ポートレンジの設定もできないようです(1000から2000までだけ許可するなど)。

 

それでも一日に一度だけで良さそうなアップデートのための通信などや使っている時だけでいいアプリがバックグランドでする通信を、普段閉じておくのには、十分です。

 

これをすることで個人情報流出などの安全をいくらか守られるだけでなく、必要の無い通信をさせないことで、通信料を抑えたり、バッテリー消費を抑えたりすることができます。

 

みなさんも試してみてください。