(2013/03/01 14:40追記) twitter側で、このタイプのウイルスへの対策が取られ、「URLを踏んだだけでアカウントを乗っ取られる」という脅威は無くなりました
twitterに出現した新型ウイルスが非常にヤバいので、対処法などをまとめてみました。
#正しくはウイルスではなく「攻撃サイト」ですが、脅威が伝わりづらいので釣り気味に「ウイルス」と書いてます。
(2013/02/28 23:08追記):この問題はTwitterに既に報告済みとのこと
どういうウイルス?
- フォローしている人から「ちょっとこれみてくれよ →(フィッシングサイトのリンク)」といったDMが届く
#文面は他にもバリエーションがある可能性があります。 - リンクをクリックすると即感染!Twitterのアカウントを乗っ取られる。
- 勝手に自分のアカウントでウイルス付きのDMをバラまかれる
いままでのDMで広がるウイルスと違い、リンクをクリックした時点で感染します。
また、メッセージが日本語なので、かつてのウイルス対策の「英語のDMにだけ気をつければいい」が通用しません。
URLをクリックしちゃったときの対処
うっかりURLをクリックしたときにすべきことをまとめました。
- まずパスワードの変更
- 「ツイッターの設定 – アプリ連携」から以下のアプリの「許可を取り消す」
- TweetDeck
- Tweetbot for iOS
- HootSuite
- iOSのデフォルトアプリ
- ShootingStar
- ShootingStar Pro
- 既に送ってしまったDMを削除。URLを踏まないようにReplyで知らせる。
新型ウイルスの予防方法
アカウントを乗っ取られないように、前もって対処する方法です。
- ブラウザで、Twitterからログアウトしておく 。ログインしっぱなしは危険。
- 知ってる人からのDMであっても、URLをクリックしない
この騒動が終息するまで、DMでURLをやりとりしないほうがよさそうです。
—–一般向けコンテンツここまで —–
—–マニア向けコンテンツここから —–
なんでこうなったの?
- 有名ツイッタークライアントのConsumer key/secretが漏れてる
- ソースコードをバイナリエディタで見た?逆アセンブル?パケットキャプチャ?
- Consumer key/secretを暗号化せずにソースコードに書くと、バイナリエディタで簡単に読める
- オープンソースのクライアントアプリは、対策してないと簡単にConsumer key/secretが読めますね
- TwitterのOAuth認証では、コールバック先のURLを後から自由に決めれる。
- 有名アプリのConsumer key/Secretで認証させ、戻り先は自分のアプリに設定すれば、アクセストークンが自分のアプリに帰ってくる・・・
- 設定時にコールバックの設定を空欄にしても(PIN認証モード)、認証時にパラメータでコールバックを指定すると、コールバックURLを好きなように変えれてしまう
- (2013/03/01 0:07追記)PIN認証必須にしておけば、コールバックURLは変更できないとのこと
- TwitterのOAuth認証では、一度でも連携の認証を受けたアプリケーションは、認証画面をすっ飛ばしていきなりアクセストークンを貰うことができる。
- 既に認証が済んでいる場合は認証画面を出さずそのままコールバックURLにリダイレクトする方法
- (2013/03/01 14:40追記)twitter側で対策が取られ、dev.twitterのアプリケーション設定で、「Allow this application to be used to Sign in with Twitter」にチェックが入ってない場合は、認証画面をすっ飛ばすことができなくなりました。
- Changes to the ‘Sign in with Twitter’ flow | Twitter Developers
- TwitterのOAuth認証画面はx-frame-options:SAMEORIGINでiFrame対策をしているが、locationが優先されてリダイレクトしちゃう
- (2013/03/01 14:40追記)twitter側で対策が取られ、x-frame-options:SAMEORIGINが正しく機能するようになりました。
これらをまとめると
「URLをクリックする→
クライアントアプリのOAuth認証がiframeでいっぱい貼られたページに飛ばされる→
どれか1つでも認証したことがあると、勝手に認証される→
コールバックで仕込まれた罠サイトにアクセストークンが渡る→
アカウントが乗っ取られ、勝手にDMを送信されたりする→
猫起きる」
というコンボが可能に・・・・
クライアントアプリ開発者がとるべき対策
- consumer key/secretを取得しなおして、暗号化する
- バイナリエディタで開いたぐらいじゃわからないように暗号化
- 復号化されるリスクはあるけど、ターゲットにはされづらいかと・・・
- オープンソースのクライアントアプリでは、consumer key/secretを書いた部分だけバイナリ化しておくとか?
Twitterがとるべき対策
- コールバックのURLを好き勝手に決められないようにすべき
- アプリケーションの設定でコールバックのURLのドメインをあらかじめ決めておいて、それ以外のコールバックを禁止するとか
- クライアントアプリはPIN認証以外を認めないようにする
- PIN認証モードにしてるのに、後からコールバックURLをブチ込めるのがおかしい・・・
- (2013/02/28 23:13追記) PIN認証必須(アプリケーションの設定で、コールバックURLの欄を空白にする)にしておけば、あとからコールバックURLを入れても無効になるとの指摘がありましたので、修正しました。
- フィッシングサイトのURLを叩いたら、t.co側で警告を出すようにする
参考サイト
- ”フィッシング? – Togetter” http://togetter.com/li/463503
- ”DM踏んだだけでアレな件はTwitterのOAuth実装がク○だと思う” https://gist.github.com/ritou/5053810
- ”TwitterのOAuthの問題まとめ” https://gist.github.com/mala/5062931
2013年3月4日 at 18:36
はじめまして、ガジェット通信編集部と申します。
私どもは、『ガジェット通信』(http://getnews.jp/)
というウェブ媒体を運営しております。
「【拡散希望】twitterの新型ウイルスがヤバい URL踏んだだけでアウト」
こちらのブログ記事を興味深く読ませていただき、『ガジェット通信』に寄稿という形で掲載させていただきたく、お願いのご連絡でございます。
尚、掲載の際には、元記事へのリンクも貼らせていただきます。
ご検討いただき、下記アドレスへお返事をいただけるとありがたく存じます。
[email protected]
以上、よろしくお願いいたします。
———–
ガジェット通信編集部
2013年3月4日 at 21:15
もう終息したやつなので、寄稿は見送ります。ご了承ください。
2013年3月4日 at 22:45
お世話になっております。
ガジェット通信編集部でございます。
ご辞退とのこと、了解いたしました。
ご検討いただき、ありがとうございます。
また機会がございましたら、よろしくお願い申し上げます。
———–
ガジェット通信編集部
[email protected]
http://getnews.jp/