いまだWebViewを使うOAuth認証、ホバーする広告、ツイートを拡散するスパム…そんな昨今のセキュリティ事情について思うことをまとめてみました。
いまだ正しい使い方をされていないOAuth
個人的には最近の中でこれが一番大問題。
最近「(^q^)くおえうえーーーるえうおおおwwwwwwwwwwwwwwww 」で話題な某C社のなんとかフレンド(仮)というゲームをプレイしてみようとするとアカウントのログインを求められる、その中でTwitterを選択すると上の画面のようなOAuth認証のような画面に飛ばされる。
これの何が問題かというとWebViewを使ってアプリの中に表示していることが問題なのだ。 この状態では例えば、WebViewの中に偽のTwitterのサイトを表示させ、あたかもOAuth認証と見せかけてユーザーのIDとパスワードを入手することもできる。 WebViewを使ってもアドレスが見えていれば”良い”というわけではなく、そのアドレス自体もなんら信用にならないわけで、適切な対処法はユーザーが利用しているブラウザでOAuth認証の画面を表示させることである。
しかし、受託の開発をやっている時にOAuth認証を外部のブラウザアプリを起動させていると受託者から「これだとユーザーの離脱率が増えそうだからWebView使ってアプリ内で認証してよ」と言われる。こういう人間には一度アカウントをのっとってもらったほうがいいのだろうか。。。
こんな記事もある。
OAuthの認証にWebViewを使うのはやめよう http://shogo82148.github.io/blog/2012/11/24/no-more-webview/
しかし、最近はFacebookの公式SDK(iOSとAndroidともに)がアドレスバーを表示しないWebViewを使用したOAuth認証を行っている。
無論、同じような表示をすれば騙されるユーザーも居るだろうに…公式のSDKを使うとこうなってしまうので現状では公式のSDKを使わないことをおすすめしたいところ…
スマートフォンのアラートに見せかけた広告
これもまぁまぁ問題。
部類としてはホバーで拡大する広告とだいたい同じであるが、この広告の場合は、ページの読み込み完了時に強制的にリダイレクトさせられOS標準のアラートのような表示を行う。 また、ユーザーがタップできる場所が一箇所しかないためタップしてしまう確率が高い。このページから離れるにはブラウザの戻る機能を利用する必要がある。
他にもアラートを使ったものもある。
おそらくASP側でも把握していないのではないかと思われる。 現在では、Twitpicなどで確認した。
TwitterやFacebookで巡るスパム?
これに関しては、最近結構話題になっているが、問題ではない。というのもセキュリティ上はほとんど無問題(後述)で、使っている人間に穴があるだけなのだ。はっきり言うとスパムというには程遠いがここでは便宜上スパムと言う。
このスパムの流れはこう。
リンクの中身が気になるようなツイート ↓ リンクをクリックすると詳細を見るにはボタンをクリックする旨が書いてある ↓ ボタンをクリックするとTwitterのOAuth認証画面に飛ばされる ↓ 認証を許可するとコンテンツが見れるとともに「リンクの中身が気になるようなツイート」自体をツイートする
つまり、リンクをクリックしてOAuth認証をするたびにそのリンクが拡散される仕組みだ。
上の図とともに詳しい内容は以下のブログにもまとめられている。
流行しているらしいTwitterスパムをまとめてみた。 http://d.hatena.ne.jp/Kango/20140202/1391347948
しかし、このスパムの実害は、アプリケーションにトークンを渡してしまうだけである。 トークンが渡ったことでアプリケーションが任意のタイミングでツイートやフォローを行うことができるが、これはTwitterの設定画面から連携を解除することができる。
もちろん、スパムアプリケーションの認証時にはユーザーしっかりがアプリケーションがツイートすることを許可しているため何の悪いこともしていない。 つまり、アプリケーションはツイートの許可を取ってツイートしているだけでスパムではなく、利用しているユーザーが悪いのである。
ただし、以下のように他の商標などを使ってあたかも安心感のあるアプリケーションのように見せかけるのは問題である。
セキュリティ上の問題とすれば、Twitterにはアプリケーションを通報する機能がないこと。 Facebookなどではアプリのリダイレクトが何回も続くと通報についてのテキストがでる親切設計であるが、Twitterにはそのような設計はおろか通報機能さえない。 Twitterのサポートの通報をたどっても、以下のようにツイートの通報にしかたどり着けなくアプリ自体を通報することはできない。
人間(開発者と利用者)それぞれがOAuth認証に追いつけて行けてないこの現状を何とかすべき。