これは痛い部門より。
あるAnonymous Coward 曰く、
ZDNet(日本語訳)にて、多くのブラウザやAdobe Flashに存在するクリックジャック(Clickjacking)に対する脆弱性について報じられている(本家/.より)。この脆弱性はIE、Firefox、Safari、Operaなど多くブラウザやAdobe Flashに存在し、影響を受けないブラウザはLynxくらいだそうだ。
クリックジャックされると、ユーザのクリック全てがクリックジャックのクリックとなり、ユーザの意図や動作とは無関係にページ上のリンクやボタンをクリックしたことになってしまう。このため、Flashゲームなどは格好のターゲットとなり得る。攻撃はブラウザの根本的な欠陥を突いたもので、DHTMLを利用しているとのこと。また、JavaScriptは必須ではないため、JavaScriptを無効にしても完全には防げないそうだ。
クリックジャックはOWASP NYC AppSec 2008 ConferenceにてProof of Conceptとともに発表されるはずだったが、Adobeや他ベンダーからの要請により、発表はベンダーが対策を準備できるまで延期されたとのこと。
なお、ZDNetのアップデートにはNoScriptの製作者Giorgio MaoneがZDNetの記者にあてたメールが掲載されており、それによるとNoScriptのデフォルトコンフィグでは危険な攻撃の大部分を防げるとのこと。さらに、「プラグイン」設定の「IFRAMEの禁止」オプションをオンにすることで、攻撃を100%防げるとしている。
現時点ではまだ詳細が発表されていないため、続報が待たれるところだ。
CSS + Flash (スコア:5, 興味深い)
ただ、チキンなのでACで。
これは、CSSを使って、透過したFlashをウィンドウの全面に貼付けて、クリックを奪ってしまう、ってことなんだろう。
実際に実行コードも書いてみたけど、見事にちゃんと、記事のとおりになった。
(と、ここでかっこ良くサンプルページを貼付けたいんだけど、あまりにも単純すぎて、コピペでそのまま悪用できるのでやめた)
実際にスクリプトはFlashの中で動くので、JavaScriptが切ってあっても問題ない。
JavaScript をターゲットのページに投げるのは一筋縄ではいかないけど、Flashになれてる人なら簡単だろう。
逆に考えると、Flashの中で生成できるので、例えば現在のURLにパラメタを追加して投げるとか、そのページ内に存在しない何かをどこかに向かって投げるとかも簡単。
これを防ぐには、ユーザーレベルでは、Flashを切る or CSS を切るかどちらか。
Adobeが根本的に対応するには、Flashの背景(ステージ)の透過を出来ないようにするしか無い。
これはあまりにも簡単で、何でも出来て、ぱっと見バレにくいから、攻撃として流行りそうな気がする。
しかも、出ている情報だけでわかる人にはわかってしまう、一番中途半端で問題の多いパターンだと思う。
だから、詳しく書いてみた。
コメントを書く
Re:CSS + Flash (スコア:3, 興味深い)
何か関係があるのかもしれません。
ただし Firefox では動作しなかったので、別件だとは思いますが...
こんなふうに <iframe> 要素全体を <a> で括ってやると、
iframe 内の任意の箇所(リンクは除く)をクリックすると <a> が動きます。
上記例では、iframe 内の google ページの適当なところをクリックすると、
スラドが開いてしまうというものです。
ウィンドウ全体に広がるような iframe を作成して、
アフィリエイト等のクリックさせたい URL に向けたリンクで囲ってやれば、
何か面白いことができそうだね、という話をしていたのですが...
コメントを書く
親コメント
Re:CSS + Flash (スコア:2, 興味深い)
そうだとすると透過を禁止するだけではなく、リンクのあるところでは必ずカーソルが変わる、という仕様が必要ではないですか。脱出系Flashゲームは専用のブラウザでやることに…?
コメントを書く
親コメント
延期されたのは発表じゃなくて (スコア:2, すばらしい洞察)
#この解釈で正しいのだとすると、記事自体がわかりにくいんだけれども…
コメントを書く
親コメント
NoScript (スコア:1)
NoScriptのデフォルト設定はフツーに閲覧するには少々厳しすぎない?
私はNoScriptを入れてるけど、いつもは無効にしてる。
コメントを書く
JSとCSSの住み分けが進む (スコア:5, 興味深い)
Javascriptを視覚エフェクトとしてつかっているサイトは非常に多いと思いますが、Scriptなしでも最低限の機能は提供するのがうまい設計であって、切るだけでボロ崩れ/飛べない場所が出る等の機能不全を起こすのはダメダメといえます。
CSS2.1(の主にセレクタ)をフルに使えるブラウザに最適化されたサイトは、この部分にさえ、Javascriptを多用する必要はありませんよね。
これから視覚エフェクトはCSS一本に、Javascriptはそれ以外にと住み分けが進んでいくと思います。
# Noscriptはホワイトリストで使ってますが、まともに見れなくなるダメサイト結構多い。
コメントを書く
親コメント
Re:NoScript (スコア:3, 興味深い)
コメントを書く
親コメント
Re:NoScript (スコア:3, すばらしい洞察)
そう?
基本的に全サイトを禁止。っていうのは普通だと思うけど。
使ってればわかると思うけど
NoScriptはそのページを1回目は問答無用でFlash,JavaScript禁止。
で、そのページでFlash,JavaScriptを見たかったら、右下のステータスバー上のアイコンで
ちょこちょこっと押せば、そのページは見れるわけだから全然困ってない。
今後ずっと有効 or 今だけ有効 が選べるし、
1ページ内に複数のサイトのFlash(JavaScript)があった時に
有効にするサイトも選べるし。
>私はNoScriptを入れてるけど、いつもは無効にしてる。
逆に質問。
じゃあなぜ入れてるの?
コメントを書く
親コメント
Re:NoScript (スコア:2, 興味深い)
YesScriptはほんの少しの時間しか使ってないので細かいところまでは見てないのですが、ステータスバーのボタン一発で禁止出来るのは便利なのですが、禁止したのを解除する時はいちいち設定ウィンドウを開いてリストから削除する必要があります。また、NoScriptはページ内のJavaScriptをサイト毎に禁止するかどうかが指定出来ますが、YesScriptは一括指定なのも不便だなと思いました。
NoScriptで不満な点は、ブラックリスト(信頼しないサイトの一覧)が参照出来ないこと。
コメントを書く
親コメント
Re:NoScript (スコア:2, すばらしい洞察)
デフォルト設定でフィルタリストを購読できる AdBlock (Plus) とは対照的に
NoScript のデフォルト設定はフツーに閲覧するには安全なほうに倒れているので安心安心。
私はNoScriptを入れてるから、常に有効にしている。
JavaScript が必要なページはそんなに多くないし、必要ならその場でサイト単位で有効にしてあげればすむ話。
コメントを書く
親コメント
なるほどー (スコア:1, おもしろおかしい)
私の物欲のせいかと思っていたのですが、少し安心しました。
# そんなわけないのでAC
コメントを書く
Google検索のアレもそうですよね? (スコア:1)
あれもクリックジャックですよね。
反応が返ってくるのが遅くなる事があるのが嫌なので切れるものなら切りたいですねえ。ブラウザ側で対策できるものなのでしょうか。
コメントを書く
現時点では情報不足 (スコア:1)
発見者の一人である Jeremiah Grossman さんのブログ記事「(Cancelled) / Clickjacking - OWASP AppSec Talk [blogspot.com]」を読んでみました。
ブログ記事に対する僕の理解が正しければ、「クリックジャック」とは、ユーザーが悪意のあるページを訪れて、そのページの中でマウスボタンをクリックすると、ユーザーの意図しない動作が引き起こされることのようです。これが脆弱性? 悪意のあるページを訪れてしまった以上、そのページの中の何がどういう動作をしようが、それってブラウザー等の脆弱性ではないのでは?
ということで、発見者が何を問題視しているのかわかりませんでした。もっと詳しい説明があれば理解できるかもしれませんが、今出ている情報だけでは理解できなくても仕方がないように思います。速やかに必要な修正が行われて詳細が公表されることを期待することにします。
コメントを書く
Re:現時点では情報不足 (スコア:2, 興味深い)
悪意あるページ内部だけで、クリックジャックがあることによってできる何かは思いつかない。
1を聞いて0を知れ!
コメントを書く
親コメント
Re:Adsenseを踏ませたりはできないのか (スコア:5, 参考になる)
AdSenseは広告の上にマウスが来た回数を計測してる。(今月初旬に確認)
具体的には、onmouseoverで広告のURLの最後にn=1、n=2と回数を追加している。
不正クリック排除のためにマウスがやってきてクリックしたと確認しているのか、
それともユーザーがどれぐらいカーソルをうろうろさせているかを計測しているのか、
ソースを確認してこの事実を知ったときは鳥肌が立った。
もし、不正クリック排除のためにやっているならば、クリックジャックのような手段でクリックさせていると
即効でバレてBANじゃないかな。
コメントを書く
親コメント