2013年03月16日

WiFi AdBlocker 避難所

wab.pngGooglePlayストアからAdAwayなどの広告ブロックアプリが一斉削除されたため配布・アップデート用ページを作成しました。

https://app.usb0.net/wifiadblock_update.html

(2015/09/19追記) アップデートのメール通知を受け取れるようにGoogle groupsにスレッドを作成しました。
https://groups.google.com/d/topic/wifistaticdns/7IYXLqaOAEo/discussion
利用される方は購読しておくことをお勧めします。(/追記)


いわゆる野良アプリになるため、初めてインストールする際は、端末の「設定」→「アプリケーション(またはセキュリティ)」→「提供元不明のアプリのインストールを許可する」にチェックを入れた後、アプリ配布元のドメインがusb0.net上であることを確認してからダウンロード、またはPCでダウンロードしてメールなどで端末に転送してください。

(インストール方法の例 http://www.teradas.net/archives/6078/

署名のフィンガープリント
SHA256: B9:6B:7F:E4:FF:BB:A6:36:24:98:45:40:74:EC:E4:B6:24:9E:B8:DD:66:D0:BA:41:4D:3D:C5:7E:B9:F0:71:F8



削除前のGoogleキャッシュ 日本語版 英語版

設定不要の広告ブロックアプリ。
端末のWiFi接続設定を自動的に変更して、Androidアプリやウェブサイトの広告・ユーザー追跡へのWiFi接続をブロックします。(GSM/3G/LTEでの接続時には効果がありません)
広告除去を有効にするには、アプリを起動して『AdBlock機能』のボタンをタップしてください。『設定をテスト』で適用成功の表示が出れば完了です。

FAQ http://causeless.seesaa.net/article/343345819.html
ユーザ向け解説 http://causeless.seesaa.net/article/310279216.html
詳細は http://causeless.seesaa.net/article/306520220.html
動作確認済み機種リスト(自動生成) http://adblocktest.usb0.net/gen/ualist.txt

《注意事項》
・本アプリは無保証です。自己責任でご利用ください。
・本アプリは端末のWiFi(無線LAN)の設定を変更します。アンインストール前に、機能を無効化して端末の設定を元に戻してから削除してください。
・一部のアプリはメモリ内に広告をキャッシュしているため、設定変更直後にブロックが適用されない場合はタスクキラーアプリなどでアプリを完全に終了させてみてください。
・本アプリは専用のDNSサーバー(ドメイン名から接続先サーバーのIPアドレスへ変換するサーバー)を利用して不要なドメインへの接続を制限しています。このアプリがWebサーバーとの通信内容を取得したり、コンテンツを書き換えたりすることはありません。
・他の広告ブロックアプリと同様に、本アプリを利用することで通信が遮断されたり、接続先が変化する場合があります。本アプリ利用の有無に関わらず、重要な通信をされる場合は、普段からHTTPSなどの暗号化された通信を利用することを強くお奨めします。
・ブロックには本アプリ製作者の運用するDNSサーバーの広告除去フィルタを利用しているため、ブロック対象をアプリで個別に設定することはできません。
・ブラックリストは英語・日本語・中国語向けのフィルタを利用しています。ブラックリストの誤検出や、新しい広告配信サーバーを見つけた場合は、不具合報告フォームやtwitterなどでお知らせください。
・GSM/3G/LTE経由での接続時には効果がありません。切り替え直後はブラウザのリロードあるいはアプリの再起動が必要です。

《不具合報告》
アプリ内のメニューから不具合報告フォームが開きます。




Ad-Blocking app for non-root users.
This app automatically configures WiFi settings of your device to block Advertiser/Trackers' servers.
Please launch app and tap "Ad-Blocking Function" to activate adblocking.

DL: http://app.usb0.net/net.usb0.wifiadblock.apk

This app only works on WiFi network. (non-rooted apps cannot configure GSM/3G/LTE network.)

more details: http://causeless.seesaa.net/article/311698186.html
known supported devices: http://adblocktest.usb0.net/gen/ualist.txt

update notice: https://groups.google.com/d/topic/wifistaticdns/7IYXLqaOAEo/discussion

=NOTICE=
THERE IS NO WARRANTY FOR THIS APPLICATION. USE AT YOUR OWN RISK.

- This app configures your device. Please turn off AdBlocking service BEFORE uninstall.
- Some app pre-load/cache advertising image into memory to reduce network loads. Please terminate the app completely by task killer app s.t. "White killer" after enable Adblocking function first time.
- This app is designed to be functional on WiFi connection. Non-root app cannot modify GSM/3G/LTE network configurations.

- This Ad-Blocking Function uses customized DNS servers to convert known ad-servers' domain to invalid IP. It means this app and servers DO NOT proxy your web browsing. http://en.wikipedia.org/wiki/Domain_Name_System
- Please remember that you have to use secure connection (HTTPS/POPS/IMAPS etc) for safe browsing even if you do not use this app. Ad-Blocking also works on HTTPS and may improve your privacy.
- Please try "Overwrite WiFi Setting" from menu if your WiFi settings seem to be corrupted.
- This app DO NOT require root privilege nor local proxy. If you already have rooted your device, try great app "AdAway". AdAway also works on GSM/3G/LTE network.

=Support=
- If you need support or reply, please mail me or mention on twitter. App developers cannot get any address to reply from review.
- If this app does not work on your device, please let me know detailed information about your network environment.
To resolve the pleblem, please send to <appsupport@usb0.net>, website url or app name which show ads, model and Android version of your device, connected WiFi AP and manufacture (or service provider of WiFi Hot-Spot), WiFi advanced options (Settings->Wi-Fi-> long tap SSID->modify network->show advanced options). Your cooperation is greatly appreciated.

=BlackList=
- This app will block servers which host Advertising, User tracking and Malware/Spyware related contents.
- Currently, our blacklist contains most mobile in-app ads and some of web ads from companies in US/Japan. To improve blacklist for worldwide users, please let us know any suggestion.
posted by ko-zu at 22:27| Comment(8) | TrackBack(0) | Android | このブログの読者になる | 更新情報をチェックする

2013年03月13日

JCBのクレジットカード情報を第三者が取得できる可能性

JCBがカード会員向けウェブサイトMyJCBにおいて、rt.rtoaster.jpのjavascriptを読み込んでいたので煽り気味に。面倒なことに埋め込まれているのはログイン後ページなので、魚拓などがとれなかった。Webの人はここまで読めばもう意味が分かるだろう。


サードパーティのjavascirptをウェブページに埋め込むことは、アクセス解析・ユーザー追跡や広告の挿入のために普通に行われている。このseesaaブログでも、google analyticsといったアクセス解析ツールや、広告業者のドメインでホストされているjavascriptを多数読み込んでいる。jQueryなどの基本ライブラリもgoogleやMicrosoftの提供するCDNから利用しているウェブサイトは多い。

scriptタグでウェブページに直接読み込まれたスクリプトは、読み込みウェブサイトと同じ権限を持つ。つまり、(httponlyでない)クッキーの読み書きや、フォーム内容の読み書き、同一ドメインへのリクエストの発行など、javascriptで可能なあらゆることが行える。他社が提供するスクリプトをウェブサイトに埋め込むということは、『ユーザーがアクセス・入力しうる全ての情報や機能』へのアクセス権限をブラウザ経由で第三者に提供することに等しい。
そして、ウェブサイトのオーナーが指定できるのは外部スクリプトのURLだけであって、その内容は外部スクリプトを提供する側が自由に変更できてしまう。導入当初はウェブサイトオーナーの意図した通りのスクリプトでも、ある日からXSS攻撃用の悪意あるスクリプトに変化するということは十分に起こりうる。XSSが可能になれば、"本物のドメイン"上でパスワード入力フォームを偽装することだって出来る。これが重要な情報を扱うウェブサイトやその同一ドメイン内に、第三者のスクリプトを埋め込んではならない理由だ。


MyJCBの場合、例えばログイン直後の画面でユーザー追跡用のjavascriptとしてrt.rtoaster.jpのスクリプトを読み込んでいるため、クレジットカード利用履歴ページをバックグラウンドで読み込むことが出来る。フォームを偽装すればMyJCBで入力する可能性があるオンライン取引用のパスワードなどを得ることも出来るだろう。
もちろん今現在漏洩が起こっているというわけではないが、悪意をもってrt.rtoaster.jp内のスクリプトを書き換えられれば、MyJCBで得られる情報やMyJCBにユーザーが入力しうるIDやパスワード・個人情報は全て漏洩しうる。

JCBが情報漏洩対策として自社サーバにおいて、どんなに厳重なセキュリティを保っていても、外部スクリプト配信サーバーのセキュリティが甘ければ、実質的にJCBのサーバー内の情報にアクセス出来てしまう。つまり、外部スクリプトの配信サーバーには、自社の配信サーバーと同等以上のセキュリティが要求される。意地の悪い言い方をすれば、MyJCBではhttps://my.jcb.co.jp/のサーバーのセキュリティ要件としてrt.rtoaster.jpと同等かそれ以下の甘い要件しか課していない、ということになる。

さらに意地の悪い考え方をすれば、外部スクリプト提供側やその末端のサーバーオペレータが悪意をもった場合、スクリプトを書き換えることで秘密裏にMyJCB内のデータを収集したり、パスワードやIDをフィッシングすることさえ出来てしまう。外部スクリプトはブラウザが直接配信サーバーから取得するため、MyJCBサイト側は内容を検査することはできない。JCBはスクリプトが意図に反して改変されていないかチェックしているかも知れないが、ABテストのようにごく一部の一般ユーザーだけをターゲットにするなど、バレにくくする方法もある。

外部スクリプトを用いず、アクセス解析や広告配信システム自体を購入して、同一ドメイン内の自社サーバーから配信すれば、第三者にブラウザ経由で情報が渡るリスクは生じない。実際のオペレータとして第三者に業務委託することになるかもしれないが、少なくとも、自社の他のサーバーと同じセキュリティの元で配信システムを管理する事ができる。

JCBは外部スクリプトをMyJCB内に埋め込む方法を選んで、自社で運用するよりも安価にサービスを得られたかもしれないが、第三者のサーバ経由で情報が漏洩するリスクを犯している。
サードパーティのスクリプトを埋め込む手法は便利だが、ユーザーがアクセス・入力しうる情報に重要なものが含まれていないか、十分に吟味した上で行うべきだ。
ラベル:セキュリティ
posted by ko-zu at 23:33| Comment(0) | TrackBack(0) | セキュリティ | このブログの読者になる | 更新情報をチェックする

2013年03月07日

WiFi AdBlockerのFAQ的まとめ

自作アプリWiFiAdBlockerにも幾つか質問がきていたのでまとめを兼ねてFAQに。

(追記)GooglePlayストアからAdAwayなどの広告ブロックアプリが一斉削除されたため配布・アップデート用のリンクを公開しました。
http://causeless.seesaa.net/article/347357563.html


・不具合や要望の報告先は?
アプリ内に「不具合を報告」のメニューがあります(…マークをタップしてください)。デバッグ情報を含む不具合レポートのテンプレートが自動的に生成され、メールアプリが起動します。不具合内容を記入してメールしてください。

申し訳ありませんが全てのメールへの返信は出来かねます。ご了承ください。


・有効にしても何も変化が起こらず、広告ブロックが適用されない。
このアプリは広告除去機能を適用可能なWiFiアクセスポイントを発見するまで何もせず待機します。WiFiアクセスポイントに接続済みにも関わらず何も起こらない場合、一旦ブロック機能を無効にして再度有効にしてみてください。
なお、3G/LTE回線には効果がありません。


・有効にした後、「〜にブロック機能を適用しました」とトースト通知が表示されるが、実際にはブロックされない。
「接続をテスト」をタップして適用成功と表示される場合、設定は正常でもアプリやブラウザがダウンロード済みの広告を表示している可能性があります。タスクキラーアプリなどで、該当アプリを完全に終了して再度アプリを起動してみてください。
他のウェブサイト・アプリの広告は正しく除去され、一部のみ表示され続ける場合、その広告がブラックリストに載っていない可能性があるため、該当ウェブサイトのURLを報告いただけると助かります。


・「〜にブロック機能を適用しました」と「〜にブロック機能を解除しました」が交互に表示される。
無線LANアクセスポイントと端末の相性などで、設定変更後のWiFi再接続に極端(60秒以上)に時間がかかる場合、アプリが適用失敗と判断してしまい、リトライを続ける可能性があります。公衆WiFiなど、別のWiFiアクセスポイントで利用できるか試してみてください。


・有効にすると、「〜に適用しました」と出るが、手動で解除するまでネットに全くアクセスできなくなる。
一部のWiFiアクセスポイントや社内ネットワークなどでは、外部のDNSサーバの利用を制限している場合があり、ドメイン名でのネットアクセスができなくなる場合があります。
残念ながらアプリ側では対処不可能なので、該当のアクセスポイントのSSIDを除外リストに追加してください。


・固定IPアドレスを設定済みのアクセスポイントに近づくと「〜適用できませんでした」と表示される
手作業や他の自動設定アプリで、WiFiアクセスポイントの接続に静的IPアドレスを設定済みの場合、WiFi AdBlocker側で自動設定できないためエラーメッセージを表示します。
WiFi AdBlockerを起動して、通知のチェックボックスを外すか、そのアクセスポイントのSSIDを除外リストに追加してください。


・poketwifi.homeなどの、特殊なドメイン名にアクセス出来ない。
一部のメーカーのモバイルWiFiルーターが利用する特殊なドメイン名(他のネットワークにつながったPCなどからアクセス出来ないドメイン)は、ルーターが個別に設定し一般に公開されていないためWiFi AdBlocker側で利用することができません。
pocketwifi.homeは192.168.1.1にリダイレクトしているため、PocketWiFiを利用している方はPocketWiFi本体のIPアドレスが初期設定のままであれば利用できます。


・有効にすると他のアプリが誤動作を起こす
ブラックリストが誤検出している可能性があるので、「不具合が起こるアプリのGoogle PlayストアのURL」をお知らせください。
例: https://play.google.com/store/apps/details?id=net.usb0.wifiadblock


・ブロック対象は?
ウェブ上やアプリ内広告、ユーザー追跡などをドメイン単位でブロックします。
主に、以下の要素を配信するために利用されているドメインをブロックします。
ウェブサイトやアプリを利用する上で、明らかにユーザーが必要としない表示要素(バナー広告など)。ユーザーの情報を追跡するライブラリ(アクセス解析や個人情報送信など)。
ブロックはドメイン単位のため、メインのコンテンツと同じドメインで配信している広告(自社製品の広告など)はブロックすることができません。

正しくブロックできていないウェブサイトやアプリ、個人情報を送信しているアプリの情報がありましたら、アプリ内の不具合報告などからお知らせください。


・動作環境は?
端末側がAndroid2.1以降、WiFiアクセスポイント側がDHCPでIPアドレスが自動的に割り当てられることが必須要件です。
ほとんどの家庭用WiFiルーター・アクセスポイント、公衆WiFi・ホットスポットに対応します。
(制限の厳しい社内WiFiなどDNSプロトコルの利用が制限されている環境下では利用できません。)
動作確認は端末側Android4.2系と2.3系、アクセスポイント側はAterm、Planex、Nexus7 3Gのテザリングで行なっています。
既に利用者がいる端末のリストは http://adblocktest.usb0.net/gen/ualist.txt を参照してください。


・何故WiFiのみ?
root化された端末(端末の内部設定を改竄できる端末)でないと、3G/LTEなどの接続設定を変更することが出来ないためです。WiFiネットワークはユーザーが自由に設定できるため、ブロック機能を利用できます。


・このアプリはインターネットに接続する?
このアプリからインターネットに情報を送受信することはありません。バグレポート機能や設定テスト機能は、端末内蔵のブラウザ・メールソフトにURLやテンプレートを送ることで間接的に実現しています。
https://play.google.com/store/apps/details?id=net.usb0.wifiadblock のアクセス許可に「ネットワーク通信」が無いことから確認できます。


・何故WiFiの設定が必要?
広告ブロック機能はネットワーク設定(DNSサーバー)を変更することでドメイン毎にフィルタリングを行なっています。端末がWiFiネットワークから離れたり、アプリの機能を無効にした際には自動的に元の設定に戻します。


・AdAway、AdBlock Plusと同時利用は?
同時利用しても問題ないですが、ブロックの結果は、「(AdAwayのブラックリスト - AdAwayのホワイトリスト) + WiFiAdBlockerのブラックリスト」になるため、AdAwayでホワイトリストでWiFiAdBlockerのブロックを解除することはできません。
お手数ですが、誤検出しているドメインと参照元URL・アプリをお知らせください。


・WiFi設定自動化アプリとの同時利用は?
WiFi設定を自動化するタイプのアプリとは、相互干渉する場合があります。他のアプリが自動設定するSSIDをAdBlocker側の除外リストに含めることで改善するかもしれません。


・DHCPで割り当てられたIPアドレスをずっと使っても大丈夫?
有効期限切れのIPアドレスは自動的に再取得します。通常の利用環境では問題ないと思われますが、アクセスポイントの割り当ての挙動や、端末の動作に依存するため、PC代わりのタブレットなど常時WiFi接続している端末のお持ちの方は、不具合があればお知らせいただけると助かります。
posted by ko-zu at 20:32| Comment(1) | TrackBack(0) | Android | このブログの読者になる | 更新情報をチェックする