Twitter のフィッシングサイトに関してはかなり前から言われてて、日本の Twitter オフィシャル Blog の方からも警告が出されています。
これ自体は大きな問題としてありますし、皆さん気をつけてくださいなんですが、今日たまたま自分が過去に tweet した内容をさらっと探そうと思って google さんに聞いてみたら、その検索結果にシレっとフィッシングサイトらしきもの出てきて気になったので調べてみたのですが、そこでちょっと面白い(?)ことがわかったのでその経緯などを書いてみようと思います。
Twitter フィッシングサイトらしきものとの遭遇
自分が過去に tweet したものを探すときって、人によっていろいろな方法があると思うんですが、個人的には Twilog から検索することが多いです。
ただ、今回はたまたま Google であることを検索している最中に、「そういえば前に Twitter で書いたのっていつだっけ」 と思ってそのまま Google 検索から検索したんですが、その時ドメイン内検索 (site:) しないで、
- [検索キーワード] burnworks twitter.com
って検索したんですね (burnworks はアカウント名です)。そしたら検索結果の 2番目とか 3番目にドメインが twitter.com じゃなくて、検索結果に出てくるタイトル部分は Twitter と同じっていうサイトが 2サイトほど。
おや?っと思って、試しにアクセス※1 してみたら…
ちなみに、下記が本物。
まんまですね。もちろん、ドメインは異なり、Google App Engine (appspot.com) 上でホストされていることがわかりますし、問題のサイトのソースコードを見てみると、ソースコードを丸々 Twitter から取得してきているだけというのがわかります。なので、広告のリンク先とかも本物…
これは誰が見たってフィッシングサイトですよね。ちなみに、ソースコードコピーしてきただけでフィッシングサイトになるのかってところですが、本家 Twitter のソースコード上では、「ログイン」 のっていう部分のリンクが下記のように記述されてます。
<a href="/login" accesskey="l">ログイン</a>
HTML の知識がある方ならすぐにわかると思いますが、これならソースコード丸パクリでも、ログイン画面までは本物 Twitter に戻っちゃうことなくページ遷移させられるってことですね。(本来はログイン画面自体を SSL 化して欲しい、というかするべきなんですが。)
で、当然、その先のログインページでフォームの送信先だけ自分のところで用意したプログラムにして、ユーザーのログイン情報を盗んじゃう作戦なんでしょと予想して、ログインページのソースコードを調べてみたんですが、ここも本家 Twitter のまんま。
本家では、ログインフォームの送信先 (form 要素の action 属性) はSSL 通信のため
- https://twitter.com/****
になってるんで、悪いことするならそこを書き換えてやるのが手っ取り早いんですが、特に書き換えられてない。JavaScript 等でなんかやってるのかなと思って調べてみても、特に何もなし…
ここまできて、このサイト、何がしたいの?っていう疑問が。
で、調べてみたら、Google グループ内でこんなやりとりを発見。
当然のごとく、最初の人が 「これフィッシングサイトじゃね?」 ってディスカッションを始めているわけですが、すぐに 「それは github で公開されてる Google App Engine 上で動作する Twitter Proxy でフィッシングじゃないよ」 という返信が。
でちょっと調べてみたらありました。
なるほどね。Google グループの投稿にもありますが、IP アドレス制限とかで Twitter の利用をブロックされちゃってる国とか会社の人が個人的に使うなら便利なんじゃないのというのがわかりました。Twitter の URL のドメイン部分だけこのプログラムが動作しているドメインに変えてあげれば、同じページが表示できるし、しかもリアルタイムなわけですからね。(当然見るだけですよ)
もちろん、これを公開しちゃったら Twitter の利用規約には反しますし、なにより著作権侵害も甚だしいですので、ダメなんですけど、そういう使い方もあるのねと腑に落ちてスッキリしたというお話でした※2。
と、話はこれで終わりなんですが、
今回、最初はフィッシングサイトだと思ってそれに関する記事を書こうしていたので、Google App Engine って確かにフィッシングサイト作るには便利だよなと考えたりしました。
折角なので、もし本当に Google App Engine の悪用でフィッシングサイトを作るとしたら、どんなメリットがあるのかという点と、蛇足ですが今回のようなケースで私のように変な検索結果に遭遇しないためにはどうすればいいかを最後に簡単にまとめてみます。
Google App Engine の悪用でフィッシングサイト警告を回避
通常、ある程度認知されたフィッシングサイトのドメインに関しては、PhishTank などのフィッシングサイトデータベースで共有された後、ブラウザのフィッシングサイト警告にも反映されるので、最新のブラウザならこんな感じの表示でユーザーが騙されるのを未然に防いでくれます。(Firefox の例)
ですが、Google App Engine を悪用して、appspot.com ドメイン上で運用することで、そういったブラウザベースでの遮断を回避しやすくなるというメリットが考えられます。
当然ですが、appspot.com 自体を遮断するわけにはいきませんから、該当するサブドメインだけ遮断しなければなりませんが、仮にそうなったとしても、すぐに別のアカウント名でまた同じことを繰り返せば簡単です。そういう部分で、悪用されやすいのかなと思ったりしました。
とはいえ、実際すでにそういうことってやられてるかもしれませんし、何も Google App Engine だけが特別悪用されやすいわけではありませんから、ブラウザのフィッシングサイト警告だけに頼らず、アドレスバーをみる癖を付けるというのが大事ですね。
Google で過去 tweet を調べる時は
今回、Google で過去の tweet を調べようとして私がやったことは、あまり効率的な方法ではないですし、今回のサイトを見つけたのもホントに偶然だとは思うのですが、例えば今回の場合なら
- [検索キーワード] burnworks site:twitter.com
とすれば、twitter.com ドメイン内だけを検索するので便利ですね。まあ普通は最初からそうすると思いますが…
ですがこちらも、フィッシングの対象になっているのは Twitter だけではありませんし、Google などの検索エンジンを普通に使っているだけでも、悪意あるサイトに遭遇する可能性は結構あるよということを覚えておくといいと思います。やはり自衛が大切です。
長くなってしまいましたが、要はフィッシングに気をつけましょうねというお話でした。
※1 通常はアクセスしないでください。今回はスクリーンショットを撮るためもあって、最悪なんとかなるサブの PC でわざとアクセスしてます。悪意あるコードが仕込まれている可能性もありますから。
※2 でも、このスクリプトを悪用すれば簡単にフィッシングサイト作ることができちゃいそうですね。Twitter はログインページを SSL 化した方がいいと思うんだけどな。