あなたの検索履歴と移動履歴がアプリから覗かれている!?

こんな記事がありまして、Googleのアカウントって他人に知られたらほんとやばいよなあ、とまず。

「ウェブ履歴」で思考・興味が丸裸になる

「ロケーション履歴」でおおよその行動履歴がモロバレに

すべてのGoogleユーザが知っておくべき2つの機能とパスワード管理の重要性 | アプリオ

Google ウェブ履歴
https://history.google.com/history/

Google_-_ウェブ履歴

Googleロケーション履歴
https://maps.google.com/locationhistory/

Googleロケーション履歴

で、マカフィーからこんな情報がでてます。

重要な確認処理が省略されたほぼ自動的な方法でGoogle Playから他のアプリのダウンロード、インストールおよび起動を行う危険な国内ユーザー向けアプリをGoogle Play上で確認しました。

端末上のGoogleアカウント情報を取得し、そのアカウントを用いてGoogleサービスへアクセスする権限をユーザーに要求します。

アプリはその認可トークンを用いてGoogle PlayストアのWebサーバーと何度か非公式な方法でのHTTP通信を行います。

この自動インストールでは、アプリ説明の閲覧や権限要求の確認と許可・拒否を行う機会がユーザーに与えられません。

要するに

「すべての権限の確認をユーザにさせることなく勝手にアプリをインストールして起動できる」

ということになるのでしょうか。

防ぐ方法としては、

この自動インストールは、ユーザーがアプリに対し「端末でアカウントを検索」(GET_ACCOUNTS)と「端末上のアカウントを使用」(USE_CREDENTIALS)という権限要求をインストール時に許可することで可能となります。

ということなので、

実行時に表示されるGoogleアカウントのSIDおよびLSIDに対する権限要求画面上でそれを拒否すること

ということしかないようです。

マカフィー株式会社 | McAfee Blog -Google Playからアプリ自動インストールを行う危険な国内向けAndroidアプリ

この2つのパーミッション

GET_ACCOUNTS
USE_CREDENTIALS

ほとんどの人が気にしてないような気がします。

実際、あたしの今現在の端末の状況を確認してみました。

続きを読む >>


広告バナー経由なポップアップ がなんだかきもい

あちこちでいわれてるけども。

容量が十分に残っているAndroid端末に「警告! 容量が不足しています」などと表示し、クリーンアップアプリのインストールを促す広告に「悪質だ」との批判が相次ぎ、このアプリを公開しているキングソフトが釈明をWebサイトに掲載した。

キングソフト、「警告」ポップアップの悪質広告を釈明 「悪質業者によるものが意図せず配信」 - ライブドアニュース

これですよね。

Screenshot_2014-02-27-04-30-14

あたしは、Chromeを使っていますが、それの機能「ポップアップブロック」では防げなかったです。

で、このダイアログに表示されてるドメイン「ib.abnx.com」はシマンテックのページにも記載されていたりします。

Trojan_Obvod_テクニカルノート___シマンテック_日本-2

この脅威は、Web エクスプロイトパックからドライブバイダウンロードを介して侵入先のコンピュータに届く可能性があります。

その他にもあちこちに。

ib.adnxs.comの広告がサイトに頻繁に表示されます。

画面に広告が表示される - マイクロソフト コミュニティ

検索エンジン設定が変えられてしまったり、拡張機能、プラグインが勝手に入っていたりする事例がある

FC2で「ib.adnxs.comを待機しています」と出てChromeがフリーズ [ おやっ?何か届いたようです。~公開メモ帳2冊目~ ]

Windowsパソコン向けの情報が多いですが怪しいのは間違いないようです。

広告表示までの多段なリダイレクトとか、グレーな原発労働者やIT系多重派遣にも似た「複数の業者を経由」てのが問題なのだろうかしら。


android の static 変数 が気持ち悪い

Android_Application_Framework_FAQ___Android_Developers

整理してメモ。

2つの状況。

その1:

static 変数がプロセスに保持されている。

プロセスが生きたままだとと思っていたら死んでいる。

そのアプリを画面に表示したときにプロセス再起動。

static 変数が初期化される。

その2:

static 変数がプロセスに保持されている。

プロセスが死んでいると思ったら生きている。

そのアプリを画面に表示したときに既存プロセス利用。

static 変数は初期化されず、そのまま利用される。

結局、アプリの画面を表示したときにそれが

「再起動されたプロセス(static変数初期化)」なのか
「再利用されたプロセス(保持されたstatic変数)」なのか

をはっきり認識しづらいのが問題。

めんどくさいので雑にいうと

その表示した画面が

「アプリ全体を新しく起動した画面」なのか
「一部しれっと生きてた情報を再利用した画面」なのか

と思ったほうが簡単で直感的なのか。

細かくいうといろいろあるのだろうけども。

極端に、

「アプリプロセスはいつでも死ぬ可能性がある」

ということにしておいて、消えて困る情報はアプリプロセス以外の
場所に保持しておくとよし、と。

Preference・データベース・ファイル…

(singleton がどうのこうのはアプリプロセスあっての)

なんで「static変数」がよく問題になるのかは、AndroidなJava 以外のように

「異なるライフサイクルを持つクラス間で、アプリ内で見通しよく簡単に情報を持ち回りたい」

から。

これには「Applicationクラス」を使う、と。

Applicationクラスを継承して、データの共有をする。 « Tech Booster

AndroidアプリでContextを持ち回したい話 - FLYING

MyAppのstatic変数を使うことで、アクティビティのライフサイクルに影響を受けずに値を保持し続けることができます。
またstaticメソッドを用意することで、アプリ内のどこからでもアクセスすることができます。

各オブジェクトの状態をアプリから監視させたり。

Android - Applicationクラスを使ってObserverパターンを実装する - Qiita

念のためそこら公式ドキュメントをみる。

続きを読む >>