このautofill-jacking(仮称)はclick-jackingの亜種(さらにCSRFの亜種)で次のような状況で発生する。
・サービス(特にSNS)のログインパスワードフォームが外部呼び出し可能でiframe内で動作する
・ブラウザがiframe内のパスワードフォームに自動入力する
では次の条件で発生する。PC版ChromeとFirefoxで確認している。
・パスワードを保存する
・サードパーティクッキーを有効にする
・ログアウトしている
・フォントがデフォルトのまま
・ユーザーの位置情報取得をfoursquare.comに恒久的に許可
iframeにログインフォームを読み込み、CSSでログインボタンのみを切り出す。透明化してもいいかもしれない。
他のサイトのボタンを偽装できるので、clickjackingは容易である。
この状態で、偽装され埋め込まれたiframeのボタンをクリックしてしまうと、ユーザが意図せずfoursquareにログインさせることが出来る。
foursquareではログインした瞬間から現在地が公開されるので、公開したくない所在地をノートPC経由で漏洩してしまうことがありうる。(修正:mala氏
@bulkneets より。御指摘感謝 )foursquare側に位置情報が伝わってしまう。(自動チェックインできるわけではないので一般公開されるわけではない)
用途はジョークから、ソーシャルハッキングの一部として利用されるかもしれない。その場合GeoIPよりずっと精度の高いリアルタイム情報が得られることになる。
この手の問題は、mala氏
@bulkneets に指摘頂いた通り、既にMozillaのBugzillaなどに報告されているものの、それ自体は危険性が無いと見られていたようだ。
しかし、リアルタイム情報発信型SNSにおいては、ログインすること自体が不可逆な情報漏えいを起こしかねない。
この問題をfoursquareに問い合わせたが、応答がない。最初の通知から2週間近く、少なくとも進捗を問い合わせてから丸3日は返信がない。当然というか、対策はなされていない。
自分の英語力の拙さは筆舌に(ryだが、Webアプリ開発者が見れば明らかに意図がわかるサンプルは提示してある。
公開自粛要請のような通知も一切無いため、公開に問題は無いものと判断しここに公開しておく。
念のため、サービス側の対策はログインフォームページにヘッダ X-frame-options: denyを一行入れるだけである。
ユーザー側としては、サードパーティクッキーを無効にすることで対処できる。ただしこれはあくまでfoursquareの実装依存なので、この対策が無効になったり、似たような脆弱性を持つ他のSNSで同じ対策が可能とは限らないので注意。
(追記)
Android
(2.3系でチェック) の標準ブラウザはiframeの中で自動入力が働かない+iframeのクリップにバグがあるようなのでクリクジャックできないようだ
posted by ko-zu at 04:32|
Comment(0)
|
TrackBack(0)
|
セキュリティ
|

|